*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#172033}
a{text-decoration:none;color:inherit}.topbar{background:#10233f;color:#fff;padding:14px 22px;display:flex;justify-content:space-between;align-items:center}
.brand{font-size:21px;font-weight:700}.nav a{margin-left:16px;color:#dce7f5}.container{max-width:1180px;margin:24px auto;padding:0 16px}
.card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 2px 12px rgba(15,35,65,.08);margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.metric{font-size:28px;font-weight:bold;margin-top:8px}
h1,h2,h3{margin-top:0}.btn{display:inline-block;background:#0b65c2;color:#fff;border:0;padding:10px 15px;border-radius:6px;cursor:pointer}
.btn.secondary{background:#667085}.btn.danger{background:#b42318}.btn.small{padding:6px 10px;font-size:13px}
input,select,textarea{width:100%;padding:10px;border:1px solid #cfd7e3;border-radius:6px;margin-top:5px}
label{display:block;margin-bottom:13px;font-weight:600}.row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px;border-bottom:1px solid #e5e9f0;text-align:left;font-size:14px}
th{background:#eef3f9}.alert{padding:12px;border-radius:6px;margin-bottom:15px}.alert.success{background:#e8f7ee;color:#146c43}.alert.error{background:#fdecec;color:#a61b1b}
.badge{display:inline-block;padding:4px 8px;border-radius:99px;background:#e9eef6;font-size:12px}.badge.online{background:#dff6e7;color:#146c43}.badge.offline{background:#fdecec;color:#a61b1b}
.login{max-width:420px;margin:80px auto}.muted{color:#667085;font-size:13px}.code{background:#101828;color:#e6edf3;padding:14px;border-radius:8px;white-space:pre-wrap;font-family:Consolas,monospace}
@media(max-width:700px){.row{grid-template-columns:1fr}.nav{display:none}}

/* Vista de mediciones */
.page-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    margin-bottom:18px;
}
.page-header h1{margin:0;font-size:34px;color:#0b2342}
.page-header p{margin:5px 0 0;color:#667085}
.filter-card{
    display:flex;
    align-items:flex-end;
    gap:14px;
    flex-wrap:wrap;
}
.filter-card label{margin:0;min-width:260px;flex:1}
.stats-strip{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;
    margin-bottom:18px;
}
.stat-box{
    background:#fff;
    border:1px solid #e5ebf2;
    border-radius:10px;
    padding:14px 16px;
    box-shadow:0 2px 10px rgba(15,35,65,.05);
}
.stat-box .label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#667085;font-weight:700}
.stat-box .value{font-size:23px;font-weight:700;color:#10233f;margin-top:4px}
.table-shell{
    background:#fff;
    border-radius:12px;
    box-shadow:0 2px 12px rgba(15,35,65,.08);
    overflow:hidden;
}
.table-scroll{overflow:auto;max-height:68vh}
.measurements-table{
    min-width:1450px;
    border-collapse:separate;
    border-spacing:0;
}
.measurements-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    background:#eaf1f8;
    color:#18324f;
    border-bottom:1px solid #d9e3ee;
    padding:12px 11px;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.03em;
    white-space:nowrap;
}
.measurements-table tbody td{
    padding:12px 11px;
    border-bottom:1px solid #edf1f5;
    white-space:nowrap;
    vertical-align:middle;
}
.measurements-table tbody tr:nth-child(even){background:#fbfcfe}
.measurements-table tbody tr:hover{background:#f2f7fc}
.measurements-table .num{text-align:right;font-variant-numeric:tabular-nums}
.measurements-table .date-cell{font-weight:600;color:#344054}
.measurements-table .device-cell{font-family:Consolas,monospace;color:#0b65c2}
.measurements-table .location-cell{max-width:180px;white-space:normal;line-height:1.25}
.measurements-table .gps-cell{font-family:Consolas,monospace;font-size:12px}
.unit{font-size:11px;color:#7a8699;margin-left:2px}
.empty-value{color:#a0a8b4}
.table-footer{
    padding:11px 14px;
    color:#667085;
    font-size:13px;
    background:#fafcff;
    border-top:1px solid #edf1f5;
}
@media(max-width:700px){
    .page-header{align-items:flex-start;flex-direction:column}
    .filter-card{align-items:stretch}
    .filter-card label{min-width:100%}
    .filter-card .btn{width:100%}
}

.admin-actions{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:14px;
}
.admin-action{
    display:flex;
    flex-direction:column;
    gap:7px;
    min-height:112px;
    padding:18px;
    border:1px solid #dce5ef;
    border-radius:11px;
    background:linear-gradient(180deg,#ffffff,#f7faff);
    transition:.18s ease;
}
.admin-action:hover{
    transform:translateY(-2px);
    border-color:#0b65c2;
    box-shadow:0 8px 22px rgba(11,101,194,.12);
}
.admin-action strong{font-size:18px;color:#0b2342}
.admin-action span{font-size:14px;color:#667085;line-height:1.35}

.global-back-row{display:flex;justify-content:flex-start;margin-bottom:14px}
.back-button{min-width:112px}
.form-error{padding:12px 14px;border-radius:9px;background:#fff1f0;border:1px solid #ffc9c5;color:#9f1d14;margin-bottom:16px}

.back-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:210px;
    text-decoration:none;
}


.page-panel-return{
    display:flex;
    justify-content:flex-start;
    align-items:center;
    width:100%;
    margin:0 0 18px 0;
    padding:0;
}
.panel-return-button{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    min-width:225px;
    min-height:42px;
    font-weight:700;
    text-decoration:none !important;
    visibility:visible !important;
    opacity:1 !important;
}


.color-action-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:14px;
    margin-top:16px;
}

.color-action{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:150px;
    padding:18px;
    border:2px solid;
    border-radius:14px;
    text-decoration:none !important;
    transition:transform .15s ease,box-shadow .15s ease;
}

.color-action:hover{
    transform:translateY(-2px);
    box-shadow:0 9px 22px rgba(20,40,80,.12);
}

.color-action-title{
    font-size:14px;
    font-weight:800;
    letter-spacing:.2px;
    line-height:1.35;
}

.color-action-value{
    display:block;
    margin:10px 0 7px;
    font-size:32px;
    line-height:1;
    font-weight:800;
}

.color-action-description{
    margin-top:auto;
    font-size:13px;
    line-height:1.35;
    opacity:.82;
}

.color-blue{background:#eef4ff;border-color:#7aa7e8;color:#0d3e7a}
.color-cyan{background:#e7f8ff;border-color:#4fc2e9;color:#006b97}
.color-orange{background:#fff1df;border-color:#f1b36c;color:#944b00}
.color-green{background:#e9f8ee;border-color:#79c895;color:#087033}
.color-amber{background:#fff4df;border-color:#e8a125;color:#8b5200}
.color-purple{background:#f1ecff;border-color:#aa91e5;color:#54309c}
.color-teal{background:#e6f7f5;border-color:#58b7ab;color:#08776d}

.client-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:16px;
}

.location-client-groups{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.location-client-title{
    padding:12px 16px;
    border-radius:10px 10px 0 0;
    background:#0b2342;
    color:#fff;
    font-size:18px;
    font-weight:800;
}

.location-client-table{
    margin-top:-18px;
    overflow:auto;
    border:1px solid #d9e2ec;
    border-radius:0 0 10px 10px;
}


.user-role-badge{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    margin-left:10px;
}
.user-role-badge.superop{background:#ffe2e0;color:#a5160a;border:1px solid #f59c94}
.user-role-badge.admin{background:#e8f1ff;color:#174f91;border:1px solid #a9c8ee}
.user-role-badge.client{background:#edf7ef;color:#24703b;border:1px solid #aad3b5}

.superop-delete-form{
    width:100%;
    margin-top:8px;
    padding:12px;
    border:1px solid #efaaa4;
    border-radius:10px;
    background:#fff4f3;
}
.superop-confirm-label{
    display:block;
    margin-bottom:9px;
    font-size:12px;
    font-weight:700;
    color:#8d2018;
}
.superop-confirm-label input{
    margin-top:5px;
}


/* Smartcell V3.0: barra superior permanente */
.app-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:#f4f7fb;
    border-bottom:1px solid #cfd8e3;
    box-shadow:0 3px 12px rgba(17,39,70,.08);
}

.app-header-main{
    min-height:66px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:10px 18px;
    background:#ffffff;
}

.brand-link{
    color:#082a55 !important;
    font-size:25px;
    font-weight:900;
    text-decoration:none !important;
    letter-spacing:.2px;
}

.session-summary{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:10px;
}

.session-user{
    color:#32455f;
    font-size:14px;
}

.session-label{
    color:#6b7789;
}

.main-navigation{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px;
    padding:8px 14px;
    background:#0b2342;
}

.main-navigation a{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:8px 12px;
    border-radius:7px;
    color:#ffffff !important;
    text-decoration:none !important;
    font-size:13px;
    font-weight:750;
    transition:background .15s ease;
}

.main-navigation a:hover{
    background:#164775;
}

.session-actions-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:9px 16px;
    background:#eaf0f7;
    border-top:1px solid #d6dee9;
}

.session-actions-user{
    color:#384b65;
    font-size:13px;
}

.session-actions-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.session-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:7px 15px;
    border:1px solid;
    border-radius:8px;
    text-decoration:none !important;
    font-size:13px;
    font-weight:800;
}

.switch-user{
    background:#ffffff;
    border-color:#275985;
    color:#174b78 !important;
}

.switch-user:hover{
    background:#e6f1fb;
}

.logout-user{
    background:#fff1f0;
    border-color:#c4473d;
    color:#9d251c !important;
}

.logout-user:hover{
    background:#ffe1de;
}

@media (max-width:800px){
    .app-header{
        position:static;
    }

    .app-header-main,
    .session-actions-bar{
        align-items:flex-start;
        flex-direction:column;
    }

    .session-summary{
        justify-content:flex-start;
    }

    .main-navigation{
        align-items:stretch;
        flex-direction:column;
    }

    .main-navigation a{
        width:100%;
    }

    .session-actions-buttons{
        width:100%;
    }

    .session-button{
        flex:1;
    }
}


/* V3.1: asegurar visibilidad completa de la sesión */
.app-header-main,
.main-navigation,
.session-actions-bar{
    width:100%;
    box-sizing:border-box;
}

.session-summary,
.session-actions-bar,
.main-navigation{
    visibility:visible;
    opacity:1;
}

.session-actions-bar{
    min-height:54px;
}

.session-actions-buttons{
    margin-left:auto;
}

@media (min-width:801px){
    .app-header-main{
        padding-left:24px;
        padding-right:24px;
    }

    .main-navigation{
        padding-left:20px;
        padding-right:20px;
    }

    .session-actions-bar{
        padding-left:24px;
        padding-right:24px;
    }
}


/* Smartcell V3.2 - barra superior simple */
.simple-app-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:#ffffff;
    border-bottom:1px solid #d6dee9;
    box-shadow:0 3px 12px rgba(17,39,70,.08);
}

.simple-header-inner{
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:10px 20px;
    box-sizing:border-box;
}

.simple-brand{
    color:#082a55 !important;
    font-size:26px;
    font-weight:900;
    text-decoration:none !important;
    letter-spacing:.2px;
}

.simple-session-zone{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
}

.simple-role-menu{
    position:relative;
}

.simple-role-button{
    display:flex;
    align-items:center;
    gap:7px;
    border:0;
    background:transparent;
    cursor:pointer;
    padding:0;
}

.role-chevron{
    color:#53657d;
    font-size:12px;
}

.simple-user-dropdown{
    display:none;
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    min-width:225px;
    padding:10px;
    border:1px solid #d7e0ea;
    border-radius:10px;
    background:#ffffff;
    box-shadow:0 12px 30px rgba(15,35,65,.18);
}

.simple-user-dropdown.open{
    display:block;
}

.dropdown-user-email{
    padding:9px 10px 11px;
    margin-bottom:7px;
    color:#53657d;
    font-size:13px;
    border-bottom:1px solid #e4eaf1;
    overflow-wrap:anywhere;
}

.simple-user-dropdown a{
    display:block;
    padding:10px;
    border-radius:7px;
    color:#a1281f !important;
    text-decoration:none !important;
    font-weight:800;
}

.simple-user-dropdown a:hover{
    background:#fff0ee;
}

.simple-switch-user{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:8px 15px;
    border:1px solid #275985;
    border-radius:8px;
    background:#ffffff;
    color:#174b78 !important;
    text-decoration:none !important;
    font-size:13px;
    font-weight:800;
}

.simple-switch-user:hover{
    background:#e9f2fb;
}

@media (max-width:680px){
    .simple-app-header{
        position:static;
    }

    .simple-header-inner{
        align-items:flex-start;
        flex-direction:column;
    }

    .simple-session-zone{
        width:100%;
        justify-content:space-between;
    }

    .simple-switch-user{
        flex:1;
    }
}


.device-actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:9px;
    min-width:230px;
}

.device-actions form{
    margin:0;
}

.device-delete-form{
    display:flex;
    flex-direction:column;
    gap:8px;
    width:100%;
    padding:10px;
    border:1px solid #efaaa4;
    border-radius:9px;
    background:#fff5f4;
    box-sizing:border-box;
}

.device-delete-form label{
    width:100%;
    margin:0;
    color:#8f2119;
    font-size:12px;
    font-weight:700;
}

.device-delete-form input{
    width:100%;
    min-height:34px;
    margin-top:4px;
    box-sizing:border-box;
    font-size:12px;
}


.config-chip-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.config-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #cbd7e6;border-radius:10px;background:#f5f8fc}
.config-chip span{font-size:12px;color:#5d6b80}
.config-chip form{margin:0}
.chip-delete{border:0;background:#c62828;color:#fff;border-radius:50%;width:24px;height:24px;cursor:pointer}
.checkbox-label{display:flex!important;align-items:center;gap:8px;padding-top:26px}
.checkbox-label input{width:auto!important}
.map-check{font-weight:800;color:#174b78}
#smartcell-map{height:620px;min-height:420px;border-radius:10px;overflow:hidden}
.color-red{background:linear-gradient(135deg,#b82929,#e24a3f)}


.tag-assignment-form{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #dde5ef;
}

.frequency-input{
    display:flex;
    align-items:center;
    gap:8px;
}

.frequency-input input{
    flex:1;
}

.frequency-input span{
    color:#52647a;
    font-weight:700;
}

.unassigned-notice,
.field-warning{
    padding:14px;
    border-radius:9px;
    background:#fff7df;
    border:1px solid #edd68e;
    color:#6b5515;
    align-self:end;
}

.section-title-with-action{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.status-unassigned{
    display:inline-block;
    padding:4px 8px;
    border-radius:999px;
    background:#eceff3;
    color:#536275;
    font-weight:800;
    font-size:12px;
}

.color-purple{
    background:linear-gradient(135deg,#6336a6,#8c5bd1);
}

@media(max-width:700px){
    .section-title-with-action{
        flex-direction:column;
    }
}


.two-step-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.step-card{
    position:relative;
    padding-top:34px;
}

.step-number{
    position:absolute;
    top:-14px;
    left:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#0d65c5;
    color:#fff;
    font-size:20px;
    font-weight:900;
    box-shadow:0 5px 14px rgba(13,101,197,.25);
}

.selected-tag-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 15px;
    margin-bottom:16px;
    border:1px solid #b8cee7;
    border-radius:9px;
    background:#edf5ff;
}

.selected-tag-box span{
    color:#4d6077;
    font-size:13px;
}

.selected-tag-box strong{
    color:#0b427a;
    font-size:17px;
}

.client-selection-form{
    margin-bottom:16px;
}

.assignment-details-form{
    padding-top:16px;
    border-top:1px solid #dce5ef;
}

.tag-config-update{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #dce5ef;
}

.select-tag-notice{
    padding:18px;
    border:1px dashed #9fb0c4;
    border-radius:10px;
    background:#f7f9fc;
    color:#53657a;
}

.selected-table-row{
    background:#edf5ff;
}

.table-action-group{
    display:flex;
    align-items:center;
    gap:7px;
}

.table-action-group form{
    margin:0;
}

@media(max-width:900px){
    .two-step-layout{
        grid-template-columns:1fr;
    }
}


.client-management-grid{
    display:grid;
    grid-template-columns:minmax(420px,1fr) minmax(520px,1.2fr);
    gap:20px;
}

.client-summary-boxes{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
    margin-bottom:22px;
}

.client-summary-boxes > div{
    padding:14px;
    border:1px solid #cfdbea;
    border-radius:10px;
    background:#f5f8fc;
}

.client-summary-boxes span{
    display:block;
    color:#607087;
    font-size:12px;
    font-weight:700;
}

.client-summary-boxes strong{
    display:block;
    margin-top:4px;
    color:#123e6d;
    font-size:25px;
}

.variable-editor-list{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:16px;
}

.variable-editor-row{
    display:grid;
    grid-template-columns:1fr 1.3fr .8fr auto;
    align-items:end;
    gap:9px;
    padding:10px;
    border:1px solid #d6e0eb;
    border-radius:9px;
    background:#fafcff;
}

.danger-zone{
    padding:16px;
    border:1px solid #e7aaa5;
    border-radius:10px;
    background:#fff5f4;
}

@media(max-width:1100px){
    .client-management-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:760px){
    .variable-editor-row{
        grid-template-columns:1fr;
    }
}


/* V3.11: clientes a ancho completo y sin barra horizontal */
.client-management-stack{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.clients-table-wrap{
    width:100%;
    overflow:visible;
}

.clients-table{
    width:100%;
    table-layout:auto;
}

.clients-table th,
.clients-table td{
    white-space:normal;
    vertical-align:middle;
}

.clients-table th:first-child,
.clients-table td:first-child{
    width:40%;
}

.clients-table th:last-child,
.clients-table td:last-child{
    width:120px;
    text-align:center;
}

.clients-table .btn{
    white-space:nowrap;
}

@media(max-width:760px){
    .clients-table{
        min-width:0;
    }

    .clients-table th,
    .clients-table td{
        padding:9px 7px;
        font-size:13px;
    }

    .clients-table th:first-child,
    .clients-table td:first-child{
        width:auto;
    }
}


.status-auto,
.status-manual{
    display:inline-block;
    padding:4px 8px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    white-space:nowrap;
}

.status-auto{
    background:#e4f6ea;
    color:#16703a;
}

.status-manual{
    background:#e9f1ff;
    color:#215ea8;
}


/* =========================================================
   SMARTCELL WEB V3.34 - PANEL PRINCIPAL COMPACTO
   ========================================================= */
.dashboard-grid-compact,
.dashboard-home-compact .color-actions,
.dashboard-home-compact .dashboard-grid {
    gap: 12px !important;
}

.dashboard-grid-compact .color-action,
.dashboard-home-compact .color-action {
    min-height: 118px !important;
    padding: 14px 16px !important;
    border-radius: 12px !important;
}

.dashboard-grid-compact .color-action-title,
.dashboard-home-compact .color-action-title {
    font-size: .92rem !important;
    line-height: 1.15 !important;
    margin-bottom: 4px !important;
}

.dashboard-grid-compact .color-action-value,
.dashboard-home-compact .color-action-value {
    font-size: 2rem !important;
    line-height: 1 !important;
    margin: 5px 0 !important;
}

.dashboard-grid-compact .color-action-description,
.dashboard-home-compact .color-action-description {
    font-size: .78rem !important;
    line-height: 1.25 !important;
}

.dashboard-home-compact .page-header {
    margin-bottom: 12px !important;
}

.dashboard-home-compact .page-header h1 {
    font-size: 1.6rem !important;
    margin-bottom: 4px !important;
}

.dashboard-home-compact .page-header p {
    font-size: .9rem !important;
    margin: 0 !important;
}

.dashboard-home-compact .btn,
.dashboard-grid-compact .btn {
    padding: 7px 11px !important;
    font-size: .82rem !important;
    min-height: auto !important;
}

@media (min-width: 1200px) {
    .dashboard-grid-compact,
    .dashboard-home-compact .color-actions,
    .dashboard-home-compact .dashboard-grid {
        grid-template-columns: repeat(auto-fit,minmax(210px,1fr)) !important;
    }
}

@media (max-width: 700px) {
    .dashboard-grid-compact .color-action,
    .dashboard-home-compact .color-action {
        min-height: 105px !important;
        padding: 12px 14px !important;
    }

    .dashboard-grid-compact .color-action-value,
    .dashboard-home-compact .color-action-value {
        font-size: 1.75rem !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.35 - PANEL PRINCIPAL ULTRACOMPACTO
   ========================================================= */
.dashboard-grid-compact,
.dashboard-home-compact .color-actions,
.dashboard-home-compact .dashboard-grid {
    gap: 7px !important;
}

.dashboard-grid-compact .color-action,
.dashboard-home-compact .color-action {
    min-height: 82px !important;
    padding: 9px 11px !important;
    border-radius: 9px !important;
}

.dashboard-grid-compact .color-action-title,
.dashboard-home-compact .color-action-title {
    font-size: .78rem !important;
    line-height: 1.05 !important;
    margin-bottom: 2px !important;
}

.dashboard-grid-compact .color-action-value,
.dashboard-home-compact .color-action-value {
    font-size: 1.35rem !important;
    line-height: 1 !important;
    margin: 2px 0 !important;
}

.dashboard-grid-compact .color-action-description,
.dashboard-home-compact .color-action-description {
    font-size: .66rem !important;
    line-height: 1.12 !important;
    margin-top: 2px !important;
}

.dashboard-home-compact .page-header {
    margin-bottom: 8px !important;
}

.dashboard-home-compact .page-header h1 {
    font-size: 1.25rem !important;
    margin-bottom: 2px !important;
}

.dashboard-home-compact .page-header p {
    font-size: .76rem !important;
    margin: 0 !important;
}

.dashboard-home-compact .btn,
.dashboard-grid-compact .btn {
    padding: 5px 8px !important;
    font-size: .7rem !important;
    min-height: auto !important;
    border-radius: 6px !important;
}

@media (min-width: 1200px) {
    .dashboard-grid-compact,
    .dashboard-home-compact .color-actions,
    .dashboard-home-compact .dashboard-grid {
        grid-template-columns: repeat(auto-fit,minmax(165px,1fr)) !important;
    }
}

@media (min-width: 1600px) {
    .dashboard-grid-compact,
    .dashboard-home-compact .color-actions,
    .dashboard-home-compact .dashboard-grid {
        grid-template-columns: repeat(auto-fit,minmax(150px,1fr)) !important;
    }
}

@media (max-width: 700px) {
    .dashboard-grid-compact .color-action,
    .dashboard-home-compact .color-action {
        min-height: 74px !important;
        padding: 8px 10px !important;
    }

    .dashboard-grid-compact .color-action-value,
    .dashboard-home-compact .color-action-value {
        font-size: 1.18rem !important;
    }

    .dashboard-grid-compact .color-action-description,
    .dashboard-home-compact .color-action-description {
        font-size: .62rem !important;
    }
}

/* =========================================================
   SMARTCELL WEB V3.36 - RESUMEN Y ADMINISTRACION COMPACTOS
   ========================================================= */
.dashboard-home-compact > .grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 9px !important;
    margin-bottom: 10px !important;
}

.dashboard-home-compact > .grid > .card {
    min-height: 58px !important;
    padding: 9px 12px !important;
    margin-bottom: 0 !important;
    border-radius: 8px !important;
    font-size: .76rem !important;
    line-height: 1.05 !important;
}

.dashboard-home-compact > .grid > .card .metric {
    font-size: 1.18rem !important;
    line-height: 1 !important;
    margin-top: 4px !important;
}

.dashboard-home-compact > .card {
    padding: 12px !important;
    margin-bottom: 12px !important;
    border-radius: 9px !important;
}

.dashboard-home-compact .section-title-row {
    margin-bottom: 8px !important;
}

.dashboard-home-compact .section-title-row h2 {
    font-size: 1.1rem !important;
    margin: 0 0 3px !important;
}

.dashboard-home-compact .section-title-row p {
    font-size: .73rem !important;
    margin: 0 !important;
}

.dashboard-home-compact .color-action-grid {
    gap: 6px !important;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
}

.dashboard-home-compact .color-action {
    min-height: 64px !important;
    padding: 7px 9px !important;
    border-radius: 7px !important;
}

.dashboard-home-compact .color-action-title {
    font-size: .66rem !important;
    line-height: 1 !important;
    margin-bottom: 1px !important;
}

.dashboard-home-compact .color-action-value {
    font-size: 1.08rem !important;
    line-height: 1 !important;
    margin: 1px 0 !important;
}

.dashboard-home-compact .color-action-description {
    font-size: .56rem !important;
    line-height: 1.08 !important;
    margin-top: 1px !important;
}

@media (min-width: 1500px) {
    .dashboard-home-compact .color-action-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 850px) {
    .dashboard-home-compact > .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 520px) {
    .dashboard-home-compact > .grid {
        grid-template-columns: 1fr !important;
    }

    .dashboard-home-compact .color-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.41 - DESPLIEGUES JSON COMPACTOS
   ========================================================= */
.json-detail-compact {
    padding: 8px 10px !important;
}

.json-detail-compact > * {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
}

.json-detail-compact details {
    margin: 4px 0 8px !important;
}

.json-detail-compact details > summary {
    min-height: 30px !important;
    padding: 6px 9px !important;
    font-size: .78rem !important;
    line-height: 1.1 !important;
    border-radius: 6px !important;
}

.json-detail-compact details[open] > summary {
    margin-bottom: 5px !important;
}

.json-detail-compact pre,
.json-detail-compact code {
    font-size: .7rem !important;
    line-height: 1.2 !important;
}

.json-detail-compact pre {
    max-height: 220px !important;
    padding: 8px !important;
    margin: 4px 0 8px !important;
    overflow: auto !important;
    border-radius: 6px !important;
}

.json-detail-compact h3,
.json-detail-compact h4 {
    margin: 7px 0 5px !important;
    font-size: .9rem !important;
    line-height: 1.1 !important;
}

.json-detail-compact .variables-grid,
.json-detail-compact .variable-grid,
.json-detail-compact .json-variables-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit,minmax(115px,1fr)) !important;
    gap: 6px !important;
    margin: 5px 0 8px !important;
}

.json-detail-compact .variable-card,
.json-detail-compact .json-variable,
.json-detail-compact .variable-item,
.json-detail-compact label.variable-card {
    min-height: 54px !important;
    padding: 7px 8px !important;
    border-radius: 7px !important;
}

.json-detail-compact .variable-card input[type="checkbox"],
.json-detail-compact .json-variable input[type="checkbox"],
.json-detail-compact .variable-item input[type="checkbox"] {
    width: 13px !important;
    height: 13px !important;
    margin: 1px 5px 0 0 !important;
}

.json-detail-compact .variable-name,
.json-detail-compact .variable-label,
.json-detail-compact .json-variable-name {
    font-size: .6rem !important;
    line-height: 1.05 !important;
    margin-bottom: 2px !important;
}

.json-detail-compact .variable-value,
.json-detail-compact .json-variable-value {
    font-size: .78rem !important;
    line-height: 1.05 !important;
    overflow-wrap: anywhere !important;
}

.json-detail-compact .form-row,
.json-detail-compact .form-group {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
}

.json-detail-compact label {
    font-size: .72rem !important;
}

.json-detail-compact select,
.json-detail-compact input[type="text"],
.json-detail-compact input[type="number"] {
    min-height: 30px !important;
    padding: 5px 8px !important;
    font-size: .72rem !important;
}

.json-detail-compact .btn,
.json-detail-compact button {
    min-height: 29px !important;
    padding: 5px 9px !important;
    font-size: .7rem !important;
    border-radius: 5px !important;
}

.json-detail-compact hr {
    margin: 7px 0 !important;
}

@media (min-width: 1200px) {
    .json-detail-compact .variables-grid,
    .json-detail-compact .variable-grid,
    .json-detail-compact .json-variables-grid {
        grid-template-columns: repeat(auto-fit,minmax(105px,1fr)) !important;
    }
}

@media (max-width: 700px) {
    .json-detail-compact {
        padding: 7px 8px !important;
    }

    .json-detail-compact .variables-grid,
    .json-detail-compact .variable-grid,
    .json-detail-compact .json-variables-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.42 - TARJETAS DE VARIABLES BIEN AJUSTADAS
   ========================================================= */
.json-detail-compact .received-vars-grid,
.json-detail-compact .variables-grid,
.json-detail-compact .variable-grid,
.json-detail-compact .json-variables-grid,
.json-detail-compact .checkbox-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 7px !important;
    align-items: stretch !important;
}

.json-detail-compact .received-vars-grid > *,
.json-detail-compact .variables-grid > *,
.json-detail-compact .variable-grid > *,
.json-detail-compact .json-variables-grid > *,
.json-detail-compact .checkbox-grid > * {
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.json-detail-compact .received-var-card,
.json-detail-compact .variable-card,
.json-detail-compact .json-variable,
.json-detail-compact .variable-item,
.json-detail-compact .checkbox-grid > label {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    grid-template-rows: auto 1fr !important;
    column-gap: 6px !important;
    align-items: start !important;
    min-height: 64px !important;
    padding: 7px 8px !important;
    overflow: hidden !important;
}

.json-detail-compact .received-var-card input[type="checkbox"],
.json-detail-compact .variable-card input[type="checkbox"],
.json-detail-compact .json-variable input[type="checkbox"],
.json-detail-compact .variable-item input[type="checkbox"],
.json-detail-compact .checkbox-grid > label input[type="checkbox"] {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    justify-self: center !important;
    margin: 2px 0 0 !important;
}

.json-detail-compact .received-var-card > span,
.json-detail-compact .variable-card > span,
.json-detail-compact .json-variable > span,
.json-detail-compact .variable-item > span,
.json-detail-compact .checkbox-grid > label > span {
    grid-column: 2 !important;
    min-width: 0 !important;
}

.json-detail-compact .variable-name,
.json-detail-compact .variable-label,
.json-detail-compact .json-variable-name,
.json-detail-compact .received-var-card small,
.json-detail-compact .variable-card small,
.json-detail-compact .json-variable small,
.json-detail-compact .variable-item small {
    display: block !important;
    width: 100% !important;
    font-size: .58rem !important;
    line-height: 1.08 !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    text-align: center !important;
    margin: 0 0 3px !important;
}

.json-detail-compact .variable-value,
.json-detail-compact .json-variable-value,
.json-detail-compact .received-var-card strong,
.json-detail-compact .variable-card strong,
.json-detail-compact .json-variable strong,
.json-detail-compact .variable-item strong {
    display: block !important;
    width: 100% !important;
    font-size: .76rem !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    text-align: center !important;
    margin: 0 !important;
}

@media (max-width: 1200px) {
    .json-detail-compact .received-vars-grid,
    .json-detail-compact .variables-grid,
    .json-detail-compact .variable-grid,
    .json-detail-compact .json-variables-grid,
    .json-detail-compact .checkbox-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 950px) {
    .json-detail-compact .received-vars-grid,
    .json-detail-compact .variables-grid,
    .json-detail-compact .variable-grid,
    .json-detail-compact .json-variables-grid,
    .json-detail-compact .checkbox-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .json-detail-compact .received-vars-grid,
    .json-detail-compact .variables-grid,
    .json-detail-compact .variable-grid,
    .json-detail-compact .json-variables-grid,
    .json-detail-compact .checkbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.43 - VISOR JSON UNIFICADO
   ========================================================= */
.smartcell-json-viewer {
    margin: 0 !important;
}

.smartcell-json-viewer > summary {
    display: flex !important;
    align-items: center !important;
    min-height: 30px !important;
    padding: 6px 9px !important;
    border: 1px solid #cfd6df !important;
    border-radius: 6px !important;
    background: #f7f8fa !important;
    cursor: pointer !important;
    font-size: .76rem !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    list-style-position: inside !important;
}

.smartcell-json-viewer[open] > summary {
    margin-bottom: 5px !important;
}

.smartcell-json-content {
    max-width: 100% !important;
    max-height: 230px !important;
    margin: 0 !important;
    padding: 9px !important;
    overflow: auto !important;
    border: 1px solid #d9dfe7 !important;
    border-radius: 6px !important;
    background: #101820 !important;
    color: #eef4fa !important;
    font-family: Consolas, Monaco, monospace !important;
    font-size: .68rem !important;
    line-height: 1.25 !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    box-sizing: border-box !important;
}

.smartcell-json-cell {
    min-width: 185px !important;
    max-width: 320px !important;
    vertical-align: top !important;
}

.smartcell-json-cell .smartcell-json-viewer {
    width: 100% !important;
}

@media (max-width: 900px) {
    .smartcell-json-cell {
        min-width: 160px !important;
    }

    .smartcell-json-content {
        font-size: .64rem !important;
        max-height: 190px !important;
    }
}


.invalid-packets-table {
    width: 100% !important;
    table-layout: fixed !important;
}

.invalid-packets-table th,
.invalid-packets-table td {
    padding: 6px 8px !important;
    font-size: .72rem !important;
    line-height: 1.15 !important;
    vertical-align: top !important;
}

.invalid-packets-table th:last-child,
.invalid-packets-table td:last-child {
    width: 30% !important;
}

.invalid-packets-table td:last-child {
    overflow: visible !important;
}


/* =========================================================
   SMARTCELL WEB V3.45 - JSON BAJO LA FILA EN PAQUETES INVÁLIDOS
   ========================================================= */
.invalid-packets-scroll {
    width: 100%;
    overflow-x: auto;
}

.invalid-packets-table {
    width: 100% !important;
    min-width: 980px !important;
    table-layout: auto !important;
}

.invalid-packets-table th,
.invalid-packets-table td {
    padding: 6px 8px !important;
    font-size: .72rem !important;
    line-height: 1.15 !important;
    vertical-align: middle !important;
}

.invalid-json-toggle-cell {
    width: 145px !important;
    min-width: 145px !important;
    white-space: nowrap !important;
}

.invalid-json-toggle {
    width: 100% !important;
    min-height: 28px !important;
    padding: 5px 8px !important;
    font-size: .7rem !important;
}

.invalid-json-row > td {
    padding: 0 8px 8px !important;
    background: #f7f9fc !important;
}

.invalid-json-panel {
    width: 100% !important;
    box-sizing: border-box !important;
    border-left: 3px solid #f59e0b !important;
    padding: 8px 10px !important;
}

.invalid-json-panel .smartcell-json-content {
    width: 100% !important;
    max-width: none !important;
    max-height: 260px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.invalid-json-row[hidden] {
    display: none !important;
}


/* =========================================================
   SMARTCELL WEB V3.46 - VISOR JSON GLOBAL UNIFICADO
   ========================================================= */
.smartcell-json-block {
    width: 100% !important;
    margin: 6px 0 10px !important;
    box-sizing: border-box !important;
}

.smartcell-json-toggle,
.smartcell-json-block > summary {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 31px !important;
    padding: 6px 10px !important;
    box-sizing: border-box !important;
    border: 1px solid #cfd6df !important;
    border-radius: 6px !important;
    background: #f7f8fa !important;
    color: #102a43 !important;
    cursor: pointer !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    text-align: left !important;
}

.smartcell-json-toggle::before,
.smartcell-json-block > summary::before {
    content: "▶" !important;
    display: inline-block !important;
    margin-right: 6px !important;
    font-size: .68rem !important;
}

.smartcell-json-toggle[aria-expanded="true"]::before,
.smartcell-json-block[open] > summary::before {
    content: "▼" !important;
}

.smartcell-json-panel {
    width: 100% !important;
    margin-top: 5px !important;
    box-sizing: border-box !important;
    border-left: 3px solid #f59e0b !important;
    padding-left: 8px !important;
}

.smartcell-json-original {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    max-height: 250px !important;
    margin: 0 !important;
    padding: 10px !important;
    overflow: auto !important;
    box-sizing: border-box !important;
    border: 1px solid #263746 !important;
    border-radius: 6px !important;
    background: #101820 !important;
    color: #eef4fa !important;
    font-family: Consolas, Monaco, "Courier New", monospace !important;
    font-size: .68rem !important;
    line-height: 1.28 !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.smartcell-json-detail-row > td {
    padding: 0 8px 8px !important;
    background: #f7f9fc !important;
}

.smartcell-json-detail-row[hidden],
.smartcell-json-panel[hidden] {
    display: none !important;
}

.smartcell-json-table-cell {
    min-width: 145px !important;
    width: 145px !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}

.smartcell-json-table-cell .smartcell-json-toggle {
    min-width: 130px !important;
}

@media (max-width: 900px) {
    .smartcell-json-original {
        max-height: 210px !important;
        font-size: .64rem !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.47 - JSON COMPACTO GLOBAL Y UNIFORME
   ========================================================= */
.smartcell-json-block,
.json-detail-compact .smartcell-json-block {
    width: 100% !important;
    margin: 4px 0 7px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.smartcell-json-block > summary,
.smartcell-json-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 27px !important;
    height: 27px !important;
    padding: 4px 8px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid #cfd6df !important;
    border-radius: 5px !important;
    background: #f7f8fa !important;
    color: #102a43 !important;
    cursor: pointer !important;
    font-size: .68rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.smartcell-json-block > summary::before,
.smartcell-json-toggle::before {
    content: "▶" !important;
    flex: 0 0 auto !important;
    margin-right: 5px !important;
    font-size: .62rem !important;
}

.smartcell-json-block[open] > summary::before,
.smartcell-json-toggle[aria-expanded="true"]::before {
    content: "▼" !important;
}

.smartcell-json-panel {
    width: 100% !important;
    margin: 4px 0 0 !important;
    padding: 0 0 0 7px !important;
    box-sizing: border-box !important;
    border-left: 3px solid #f59e0b !important;
}

.smartcell-json-original {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    max-height: 190px !important;
    margin: 0 !important;
    padding: 7px 8px !important;
    overflow: auto !important;
    box-sizing: border-box !important;
    border: 1px solid #263746 !important;
    border-radius: 5px !important;
    background: #101820 !important;
    color: #eef4fa !important;
    font-family: Consolas, Monaco, "Courier New", monospace !important;
    font-size: .62rem !important;
    line-height: 1.18 !important;
    white-space: pre !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.smartcell-json-detail-row > td {
    padding: 0 7px 7px !important;
    background: #f7f9fc !important;
}

.smartcell-json-detail-row[hidden],
.smartcell-json-panel[hidden] {
    display: none !important;
}

.smartcell-json-table-cell {
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}

.smartcell-json-table-cell .smartcell-json-toggle {
    width: 100% !important;
    min-width: 0 !important;
}

@media (max-width: 900px) {
    .smartcell-json-original {
        max-height: 165px !important;
        font-size: .59rem !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.48 - ESTADO DE EQUIPOS EN 6 COLUMNAS
   ========================================================= */
.dashboard-home-compact .equipment-status-vars-grid,
.equipment-status-vars-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 6px !important;
    align-items: stretch !important;
    margin: 6px 0 8px !important;
}

.dashboard-home-compact .equipment-status-vars-grid > *,
.equipment-status-vars-grid > * {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 58px !important;
    height: 58px !important;
    padding: 6px 7px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 7px !important;
}

.dashboard-home-compact .equipment-status-vars-grid label,
.equipment-status-vars-grid label {
    display: grid !important;
    grid-template-columns: 16px minmax(0, 1fr) !important;
    grid-template-rows: auto 1fr !important;
    column-gap: 5px !important;
    align-items: start !important;
}

.dashboard-home-compact .equipment-status-vars-grid input[type="checkbox"],
.equipment-status-vars-grid input[type="checkbox"] {
    width: 12px !important;
    height: 12px !important;
    margin: 1px 0 0 !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    justify-self: center !important;
}

.dashboard-home-compact .equipment-status-vars-grid small,
.dashboard-home-compact .equipment-status-vars-grid .variable-name,
.dashboard-home-compact .equipment-status-vars-grid .variable-label,
.equipment-status-vars-grid small,
.equipment-status-vars-grid .variable-name,
.equipment-status-vars-grid .variable-label {
    display: block !important;
    min-width: 0 !important;
    margin: 0 0 2px !important;
    font-size: .52rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.dashboard-home-compact .equipment-status-vars-grid strong,
.dashboard-home-compact .equipment-status-vars-grid .variable-value,
.equipment-status-vars-grid strong,
.equipment-status-vars-grid .variable-value {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: .68rem !important;
    line-height: 1.02 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.dashboard-home-compact .equipment-status-vars-grid .badge,
.equipment-status-vars-grid .badge {
    padding: 1px 4px !important;
    font-size: .48rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

@media (max-width: 1200px) {
    .dashboard-home-compact .equipment-status-vars-grid,
    .equipment-status-vars-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 950px) {
    .dashboard-home-compact .equipment-status-vars-grid,
    .equipment-status-vars-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .dashboard-home-compact .equipment-status-vars-grid,
    .equipment-status-vars-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.49 - ESTADO DE EQUIPOS MÁS PEQUEÑO
   ========================================================= */
.equipment-status-vars-grid,
.dashboard-home-compact .equipment-status-vars-grid,
.device-variable-grid,
.status-variable-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 5px !important;
    align-items: stretch !important;
    margin: 5px 0 7px !important;
}

.equipment-status-vars-grid > *,
.dashboard-home-compact .equipment-status-vars-grid > *,
.device-variable-grid > *,
.status-variable-grid > * {
    min-width: 0 !important;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;
    padding: 5px 6px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 6px !important;
}

.equipment-status-vars-grid label,
.dashboard-home-compact .equipment-status-vars-grid label,
.device-variable-grid label,
.status-variable-grid label {
    display: grid !important;
    grid-template-columns: 14px minmax(0, 1fr) !important;
    grid-template-rows: 14px 1fr !important;
    column-gap: 4px !important;
    align-items: start !important;
}

.equipment-status-vars-grid input[type="checkbox"],
.dashboard-home-compact .equipment-status-vars-grid input[type="checkbox"],
.device-variable-grid input[type="checkbox"],
.status-variable-grid input[type="checkbox"] {
    width: 11px !important;
    height: 11px !important;
    margin: 0 !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    justify-self: center !important;
}

.equipment-status-vars-grid small,
.equipment-status-vars-grid .variable-name,
.equipment-status-vars-grid .variable-label,
.dashboard-home-compact .equipment-status-vars-grid small,
.dashboard-home-compact .equipment-status-vars-grid .variable-name,
.dashboard-home-compact .equipment-status-vars-grid .variable-label,
.device-variable-grid small,
.device-variable-grid .variable-name,
.status-variable-grid small,
.status-variable-grid .variable-name {
    display: block !important;
    min-width: 0 !important;
    margin: 0 0 2px !important;
    font-size: .46rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.equipment-status-vars-grid strong,
.equipment-status-vars-grid .variable-value,
.dashboard-home-compact .equipment-status-vars-grid strong,
.dashboard-home-compact .equipment-status-vars-grid .variable-value,
.device-variable-grid strong,
.device-variable-grid .variable-value,
.status-variable-grid strong,
.status-variable-grid .variable-value {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: .60rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

/* Ocultar solo las etiquetas de estado internas.
   El color rojo/verde del recuadro sigue indicando el estado. */
.equipment-status-vars-grid .badge,
.equipment-status-vars-grid .pill,
.equipment-status-vars-grid .variable-status,
.dashboard-home-compact .equipment-status-vars-grid .badge,
.dashboard-home-compact .equipment-status-vars-grid .pill,
.dashboard-home-compact .equipment-status-vars-grid .variable-status,
.device-variable-grid .badge,
.device-variable-grid .pill,
.status-variable-grid .badge,
.status-variable-grid .pill {
    display: none !important;
}

/* Mantener seis columnas en escritorio, sin cambiar a cinco. */
@media (min-width: 900px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 899px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.50 - SIN ETIQUETAS NUEVA / CONFIGURADA
   ========================================================= */
.json-detail-compact .variable-status,
.json-detail-compact .status-label,
.json-detail-compact .badge.variable-status,
.json-detail-compact .pill.variable-status,
.received-vars-grid .variable-status,
.received-vars-grid .status-label,
.equipment-status-vars-grid .variable-status,
.equipment-status-vars-grid .status-label,
.variables-grid .variable-status,
.variables-grid .status-label,
.variable-grid .variable-status,
.variable-grid .status-label,
.checkbox-grid .variable-status,
.checkbox-grid .status-label {
    display: none !important;
}

/* El color del borde/fondo del recuadro sigue indicando el estado. */
.json-detail-compact .variable-card,
.json-detail-compact .variable-item,
.json-detail-compact .json-variable,
.received-vars-grid > *,
.equipment-status-vars-grid > * {
    position: relative !important;
}


/* =========================================================
   SMARTCELL WEB V3.51 - ESTADO DE EQUIPOS 6 COLUMNAS FIJAS
   ========================================================= */
.equipment-status-vars-grid,
.dashboard-home-compact .equipment-status-vars-grid,
.device-variable-grid,
.status-variable-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 5px !important;
    align-items: stretch !important;
    margin: 5px 0 7px !important;
}

.equipment-status-vars-grid > *,
.dashboard-home-compact .equipment-status-vars-grid > *,
.device-variable-grid > *,
.status-variable-grid > * {
    min-width: 0 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 4px 5px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 6px !important;
}

.equipment-status-vars-grid label,
.dashboard-home-compact .equipment-status-vars-grid label,
.device-variable-grid label,
.status-variable-grid label {
    display: grid !important;
    grid-template-columns: 13px minmax(0, 1fr) !important;
    grid-template-rows: 13px 1fr !important;
    column-gap: 4px !important;
    align-items: start !important;
}

.equipment-status-vars-grid input[type="checkbox"],
.dashboard-home-compact .equipment-status-vars-grid input[type="checkbox"],
.device-variable-grid input[type="checkbox"],
.status-variable-grid input[type="checkbox"] {
    width: 10px !important;
    height: 10px !important;
    margin: 0 !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    justify-self: center !important;
}

.equipment-status-vars-grid small,
.equipment-status-vars-grid .variable-name,
.equipment-status-vars-grid .variable-label,
.dashboard-home-compact .equipment-status-vars-grid small,
.dashboard-home-compact .equipment-status-vars-grid .variable-name,
.dashboard-home-compact .equipment-status-vars-grid .variable-label,
.device-variable-grid small,
.device-variable-grid .variable-name,
.status-variable-grid small,
.status-variable-grid .variable-name {
    display: block !important;
    min-width: 0 !important;
    margin: 0 0 1px !important;
    font-size: .43rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.equipment-status-vars-grid strong,
.equipment-status-vars-grid .variable-value,
.dashboard-home-compact .equipment-status-vars-grid strong,
.dashboard-home-compact .equipment-status-vars-grid .variable-value,
.device-variable-grid strong,
.device-variable-grid .variable-value,
.status-variable-grid strong,
.status-variable-grid .variable-value {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: .57rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

/* Seis columnas fijas en escritorio */
@media (min-width: 900px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 899px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    .equipment-status-vars-grid,
    .dashboard-home-compact .equipment-status-vars-grid,
    .device-variable-grid,
    .status-variable-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.52 - AJUSTE LIMPIO ESTADO DE EQUIPOS
   Solo afecta la grilla del último JSON en admin/index.php
   ========================================================= */
.equipment-status-clean-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 6px !important;
    align-items: stretch !important;
    width: 100% !important;
    margin: 6px 0 8px !important;
}

.equipment-status-clean-grid > * {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 56px !important;
    height: 56px !important;
    padding: 6px 7px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 6px !important;
}

.equipment-status-clean-grid label {
    display: grid !important;
    grid-template-columns: 14px minmax(0, 1fr) !important;
    grid-template-rows: 16px 1fr !important;
    column-gap: 5px !important;
    align-items: start !important;
    width: 100% !important;
    height: 100% !important;
}

.equipment-status-clean-grid input[type="checkbox"] {
    width: 11px !important;
    height: 11px !important;
    margin: 1px 0 0 !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    justify-self: center !important;
}

.equipment-status-clean-grid small,
.equipment-status-clean-grid .variable-name,
.equipment-status-clean-grid .variable-label {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    font-size: 8px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.equipment-status-clean-grid strong,
.equipment-status-clean-grid .variable-value {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 2px 0 0 !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
}

.equipment-status-clean-grid .badge,
.equipment-status-clean-grid .pill,
.equipment-status-clean-grid .status-label,
.equipment-status-clean-grid .variable-status {
    display: none !important;
}

@media (min-width: 900px) {
    .equipment-status-clean-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 899px) {
    .equipment-status-clean-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    .equipment-status-clean-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}


/* =========================================================
   SMARTCELL WEB V3.53 - JSON ENVUELTO EN PAQUETES INVÁLIDOS
   Solo afecta el visor JSON de admin/invalid_packets.php
   ========================================================= */
.invalid-packets-table .smartcell-json-original,
.invalid-json-panel .smartcell-json-original,
.smartcell-json-detail-row .smartcell-json-original {
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    max-height: 280px !important;
    line-height: 1.28 !important;
}

.invalid-packets-table .smartcell-json-panel,
.invalid-json-panel,
.smartcell-json-detail-row .smartcell-json-panel {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.invalid-packets-table .smartcell-json-detail-row > td,
.smartcell-json-detail-row > td {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}


/* =========================================================
   SMARTCELL WEB V3.54 - JSON PRETTY PRINT GLOBAL
   ========================================================= */
.smartcell-json-original {
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    max-height: 300px !important;
    tab-size: 4 !important;
    line-height: 1.30 !important;
}


/* =========================================================
   SMARTCELL WEB V3.58 - ASIGNACIÓN BLOQUEADA POR TAG
   ========================================================= */
.smartcell-tag-assignment-locked {
    margin: 10px 0 !important;
    padding: 8px 10px !important;
    line-height: 1.25 !important;
}
.smartcell-tag-assignment-locked small {
    display: inline-block;
    margin-top: 3px;
}


/* =========================================================
   SMARTCELL WEB V3.59 - GRÁFICOS DE MEDICIONES
   ========================================================= */
.chart-app-layout{
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:18px;
    align-items:start;
}
.chart-sidebar{
    position:sticky;
    top:12px;
    min-height:calc(100vh - 110px);
    padding:18px 12px;
    border-radius:10px;
    background:#142235;
    color:#fff;
}
.chart-sidebar-title{
    padding:2px 10px 16px;
    font-weight:800;
    font-size:19px;
    letter-spacing:.7px;
}
.chart-sidebar-nav{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.chart-sidebar-nav a,
.chart-sidebar-group>span{
    display:block;
    padding:10px 11px;
    border-radius:7px;
    color:#dce6f1;
    text-decoration:none;
    font-size:14px;
}
.chart-sidebar-nav a:hover,
.chart-sidebar-nav a.active{
    background:#1767c4;
    color:#fff;
}
.chart-sidebar-group{
    padding:5px 0;
}
.chart-sidebar-group>span{
    color:#fff;
    font-weight:700;
}
.chart-sidebar-group a{
    margin-left:10px;
    padding-left:16px;
}
.chart-main{
    min-width:0;
}
.chart-page-header{
    align-items:center;
}
.chart-updated{
    font-size:13px;
    color:#667085;
    text-align:right;
}
.chart-filter-card{
    padding:14px !important;
}
.chart-filter-grid{
    display:grid;
    grid-template-columns:minmax(170px,1fr) minmax(190px,1.4fr) 150px 2.2fr auto;
    gap:12px;
    align-items:end;
}
.chart-filter-grid>label{
    display:flex;
    flex-direction:column;
    gap:6px;
    font-size:12px;
    font-weight:700;
}
.chart-variable-picker{
    min-width:0;
}
.chart-filter-label{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:700;
}
.chart-variable-options{
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding-bottom:2px;
}
.chart-variable-check{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:5px;
    padding:7px 9px;
    border:1px solid #d6dce5;
    border-radius:7px;
    background:#fff;
    font-size:12px;
    white-space:nowrap;
}
.chart-apply-button{
    white-space:nowrap;
}
.chart-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:12px 0;
}
.chart-summary-card{
    padding:14px;
    border:1px solid #dde3eb;
    border-radius:9px;
    background:#fff;
}
.chart-summary-name{
    font-weight:700;
    font-size:13px;
}
.chart-summary-value{
    margin:8px 0;
    font-size:27px;
    font-weight:800;
    color:#1767c4;
}
.chart-summary-value small{
    font-size:14px;
}
.chart-summary-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:5px;
    font-size:11px;
    color:#5f6877;
}
.chart-panels{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.chart-panel{
    padding:14px !important;
}
.chart-panel-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}
.chart-panel-heading h2{
    margin:0;
    font-size:16px;
}
.chart-panel-heading span{
    font-size:12px;
    color:#657184;
}
.chart-reset{
    padding:6px 9px !important;
    font-size:11px !important;
}
.chart-canvas-shell{
    width:100%;
    overflow:hidden;
}
.smartcell-line-chart{
    display:block;
    width:100%;
    height:300px;
    cursor:crosshair;
}
.chart-empty{
    padding:45px !important;
    text-align:center;
}
@media(max-width:1100px){
    .chart-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .chart-variable-picker{
        grid-column:1/-1;
    }
    .chart-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:760px){
    .chart-app-layout{
        grid-template-columns:1fr;
    }
    .chart-sidebar{
        position:static;
        min-height:auto;
    }
    .chart-filter-grid{
        grid-template-columns:1fr;
    }
    .chart-summary-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SMARTCELL WEB V3.60 - BARRA LATERAL GLOBAL PERMANENTE
   ========================================================= */
.smartcell-app-shell{
    display:grid;
    grid-template-columns:235px minmax(0,1fr);
    min-height:calc(100vh - 70px);
    background:#f4f7fb;
}
.smartcell-global-sidebar{
    position:sticky;
    top:0;
    align-self:start;
    height:calc(100vh - 70px);
    overflow-y:auto;
    background:#142235;
    color:#fff;
    border-right:1px solid rgba(255,255,255,.08);
    transition:width .2s ease,transform .2s ease;
    z-index:30;
}
.smartcell-sidebar-brand{
    padding:20px 18px 14px;
    font-weight:900;
    font-size:20px;
    letter-spacing:.8px;
    color:#fff;
}
.smartcell-sidebar-nav{
    padding:0 10px 20px;
}
.smartcell-sidebar-section{
    margin-bottom:13px;
}
.smartcell-sidebar-heading{
    padding:8px 10px 5px;
    color:#8fa5bd;
    font-size:10px;
    font-weight:800;
    letter-spacing:1px;
    text-transform:uppercase;
}
.smartcell-sidebar-nav a{
    display:flex;
    align-items:center;
    min-height:38px;
    padding:9px 11px;
    margin:2px 0;
    border-radius:7px;
    color:#dce6f1;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
}
.smartcell-sidebar-nav a:hover{
    background:rgba(255,255,255,.09);
    color:#fff;
}
.smartcell-sidebar-nav a.active{
    background:#1767c4;
    color:#fff;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.smartcell-app-main{
    position:relative;
    min-width:0;
    padding:18px 0 30px;
}
.smartcell-app-main>.container{
    width:min(100% - 30px,1450px);
    max-width:none;
    margin:0 auto;
}
.smartcell-sidebar-toggle{
    position:fixed;
    left:242px;
    bottom:18px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#1767c4;
    color:#fff;
    font-size:18px;
    cursor:pointer;
    box-shadow:0 5px 16px rgba(0,0,0,.22);
    z-index:50;
    transition:left .2s ease;
}
.smartcell-app-shell.sidebar-collapsed{
    grid-template-columns:0 minmax(0,1fr);
}
.smartcell-app-shell.sidebar-collapsed .smartcell-global-sidebar{
    transform:translateX(-100%);
}
.smartcell-app-shell.sidebar-collapsed .smartcell-sidebar-toggle{
    left:14px;
}
.chart-page-layout{
    display:block;
}
.chart-main-global{
    min-width:0;
}
.chart-main-global .chart-page-header{
    margin-top:0;
}
@media(max-width:900px){
    .smartcell-app-shell{
        grid-template-columns:0 minmax(0,1fr);
    }
    .smartcell-global-sidebar{
        position:fixed;
        top:70px;
        left:0;
        width:235px;
        height:calc(100vh - 70px);
        transform:translateX(-100%);
        box-shadow:8px 0 22px rgba(0,0,0,.22);
    }
    .smartcell-app-shell:not(.sidebar-collapsed) .smartcell-global-sidebar{
        transform:translateX(0);
    }
    .smartcell-app-shell.sidebar-collapsed .smartcell-global-sidebar{
        transform:translateX(-100%);
    }
    .smartcell-sidebar-toggle,
    .smartcell-app-shell.sidebar-collapsed .smartcell-sidebar-toggle{
        left:14px;
    }
    .smartcell-app-main>.container{
        width:min(100% - 20px,1450px);
    }
}


/* =========================================================
   SMARTCELL WEB V3.62 - CENTRO DE MONITOREO
   ========================================================= */
.monitor-page{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.monitor-toolbar{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
}
.monitor-toolbar h1{
    margin:0 0 4px;
}
.monitor-toolbar p{
    margin:0;
    color:#667085;
}
.monitor-filters{
    display:flex;
    gap:10px;
    align-items:end;
}
.monitor-filters label{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:170px;
    font-size:12px;
    font-weight:700;
}
.monitor-device-card{
    display:grid;
    grid-template-columns:minmax(280px,1.1fr) minmax(430px,1.8fr) 170px;
    gap:16px;
    padding:16px;
    border:1px solid #dfe5ec;
    border-radius:12px;
    background:#fff;
}
.monitor-device-main{
    display:flex;
    gap:14px;
    align-items:center;
}
.monitor-device-icon{
    display:grid;
    place-items:center;
    width:72px;
    height:72px;
    border-radius:14px;
    background:#142235;
    color:#fff;
    font-weight:900;
    font-size:20px;
}
.monitor-device-title-row{
    display:flex;
    align-items:center;
    gap:9px;
}
.monitor-device-title-row h2{
    margin:0;
    font-size:20px;
}
.monitor-device-id{
    margin-top:5px;
    font-weight:700;
}
.monitor-location{
    margin-top:8px;
    color:#4b5563;
    line-height:1.5;
}
.monitor-device-data{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    padding-left:16px;
    border-left:1px solid #e4e8ee;
}
.monitor-device-data div{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.monitor-device-data span,
.monitor-alarm-summary span{
    color:#667085;
    font-size:12px;
}
.monitor-device-data strong{
    font-size:13px;
}
.monitor-alarm-summary{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    border-radius:10px;
    background:#f8fafc;
}
.monitor-alarm-summary strong{
    font-size:34px;
}
.monitor-alarm-summary small{
    color:#667085;
}
.monitor-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:4px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
}
.monitor-pill.normal{
    color:#14763d;
    background:#e9f8ef;
}
.monitor-pill.warning{
    color:#9a6500;
    background:#fff5d9;
}
.monitor-pill.alarm{
    color:#b42318;
    background:#feeceb;
}
.monitor-pill.nodata{
    color:#596273;
    background:#edf0f4;
}
.monitor-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}
.monitor-kpi{
    position:relative;
    padding:14px;
    border:1px solid #dfe5ec;
    border-radius:10px;
    background:#fff;
}
.monitor-kpi.normal{
    border-color:#b9dfc5;
    background:linear-gradient(180deg,#f6fff8,#fff);
}
.monitor-kpi.warning{
    border-color:#f3cf7a;
    background:linear-gradient(180deg,#fffaf0,#fff);
}
.monitor-kpi.alarm{
    border-color:#efb0ac;
    background:linear-gradient(180deg,#fff5f4,#fff);
}
.monitor-kpi.nodata{
    background:#f7f8fa;
}
.monitor-kpi-top{
    display:flex;
    justify-content:space-between;
    gap:8px;
    font-size:13px;
    font-weight:700;
}
.monitor-status-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#94a3b8;
}
.monitor-kpi.normal .monitor-status-dot{background:#16a34a;}
.monitor-kpi.warning .monitor-status-dot{background:#f59e0b;}
.monitor-kpi.alarm .monitor-status-dot{background:#dc2626;}
.monitor-kpi-value{
    margin:10px 0 8px;
    font-size:29px;
    font-weight:900;
}
.monitor-kpi-value small{
    font-size:14px;
    font-weight:700;
}
.monitor-kpi-meta{
    display:flex;
    justify-content:space-between;
    color:#667085;
    font-size:11px;
}
.monitor-kpi-status{
    margin-top:8px;
    font-size:11px;
    font-weight:800;
}
.monitor-content-grid{
    display:grid;
    grid-template-columns:minmax(0,2.5fr) minmax(290px,1fr);
    gap:12px;
}
.monitor-chart-area{
    min-width:0;
}
.monitor-range-buttons{
    display:flex;
    gap:6px;
    margin-bottom:10px;
}
.monitor-range-buttons a{
    padding:7px 10px;
    border:1px solid #d9e0e8;
    border-radius:7px;
    background:#fff;
    color:#344054;
    text-decoration:none;
    font-size:12px;
}
.monitor-range-buttons a.active{
    background:#1767c4;
    border-color:#1767c4;
    color:#fff;
}
.monitor-chart-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.monitor-chart-panel,
.monitor-panel{
    padding:13px;
    border:1px solid #dfe5ec;
    border-radius:10px;
    background:#fff;
}
.monitor-chart-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.monitor-chart-heading h3{
    margin:0;
    font-size:14px;
}
.monitor-chart-heading span{
    color:#667085;
    font-size:11px;
}
.monitor-chart{
    display:block;
    width:100%;
    height:250px;
}
.monitor-side-panel{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.monitor-panel h3{
    margin:0 0 10px;
    font-size:15px;
}
.monitor-panel-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.monitor-alarm-list{
    display:flex;
    flex-direction:column;
}
.monitor-alarm-row{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid #edf0f4;
}
.monitor-alarm-row>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.monitor-alarm-row>div:last-child{
    text-align:right;
}
.monitor-alarm-row span{
    color:#667085;
    font-size:11px;
}
.monitor-alarm-row.alarm>div:last-child strong{color:#dc2626;}
.monitor-alarm-row.warning>div:last-child strong{color:#d97706;}
.monitor-normal-message{
    padding:16px;
    border-radius:8px;
    background:#eefaf2;
    color:#14763d;
}
.monitor-summary-list{
    display:flex;
    flex-direction:column;
}
.monitor-summary-list div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:7px 0;
    border-bottom:1px solid #edf0f4;
}
.monitor-summary-list span{
    color:#667085;
}
.monitor-bottom-grid{
    display:grid;
    grid-template-columns:minmax(240px,.8fr) minmax(0,2fr);
    gap:12px;
}
.monitor-location-box{
    display:flex;
    flex-direction:column;
    gap:7px;
    min-height:190px;
    padding:18px;
    border-radius:9px;
    background:
        linear-gradient(rgba(20,34,53,.82),rgba(20,34,53,.82)),
        radial-gradient(circle at 30% 30%,#708090,#273649);
    color:#fff;
}
.monitor-location-box strong{
    font-size:20px;
}
.monitor-location-box .btn{
    align-self:flex-start;
    margin-top:auto;
}
.monitor-event-table-wrap{
    overflow-x:auto;
}
.monitor-event-table{
    width:100%;
    border-collapse:collapse;
}
.monitor-event-table th,
.monitor-event-table td{
    padding:9px;
    border-bottom:1px solid #e8ecf1;
    text-align:left;
    font-size:12px;
}
.monitor-event-table th{
    background:#f4f7fb;
}
.monitor-empty{
    text-align:center;
    padding:50px !important;
}
.chart-header-actions{
    display:flex;
    align-items:center;
    gap:12px;
}
@media(max-width:1250px){
    .monitor-chart-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .monitor-kpi-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .monitor-device-card{
        grid-template-columns:1fr 1.4fr;
    }
    .monitor-alarm-summary{
        grid-column:1/-1;
        min-height:90px;
    }
}
@media(max-width:900px){
    .monitor-toolbar,
    .monitor-filters{
        align-items:stretch;
        flex-direction:column;
    }
    .monitor-content-grid,
    .monitor-bottom-grid,
    .monitor-device-card{
        grid-template-columns:1fr;
    }
    .monitor-device-data{
        padding-left:0;
        border-left:0;
        border-top:1px solid #e4e8ee;
        padding-top:14px;
    }
}
@media(max-width:650px){
    .monitor-kpi-grid,
    .monitor-chart-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SMARTCELL WEB V3.63 - RESUMEN GLOBAL Y LÍMITES
   ========================================================= */
.monitor-view-switch{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.monitor-view-switch a{
    padding:9px 13px;
    border:1px solid #d8e0e9;
    border-radius:8px;
    background:#fff;
    color:#344054;
    text-decoration:none;
    font-weight:700;
    font-size:13px;
}
.monitor-view-switch a.active{
    border-color:#1767c4;
    background:#1767c4;
    color:#fff;
}
.monitor-status-overview{
    padding:14px;
    border:1px solid #dfe5ec;
    border-radius:11px;
    background:#fff;
}
.monitor-overview-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:12px;
}
.monitor-overview-heading h2{
    margin:0 0 3px;
    font-size:18px;
}
.monitor-overview-heading p{
    margin:0;
    color:#667085;
}
.monitor-status-legend{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}
.monitor-status-legend span{
    padding:5px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
}
.monitor-status-legend .normal{
    color:#14763d;
    background:#e9f8ef;
}
.monitor-status-legend .warning{
    color:#9a6500;
    background:#fff5d9;
}
.monitor-status-legend .alarm{
    color:#b42318;
    background:#feeceb;
}
.monitor-status-legend .nodata{
    color:#596273;
    background:#edf0f4;
}
.monitor-kpi-grid-all{
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.monitor-kpi-grid-all .monitor-kpi-meta{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.monitor-kpi-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-top:10px;
    color:#667085;
    font-size:10px;
}
.variable-limit-config{
    margin:16px 0;
    padding:14px;
    border:1px solid #dfe5ec;
    border-radius:10px;
    background:#f8fafc;
}
.variable-limit-config h3{
    margin:0 0 4px;
}
.variable-limit-config p{
    margin:0 0 12px;
    color:#667085;
}
.variable-limit-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}
.variable-limit-grid label{
    display:flex;
    flex-direction:column;
    gap:5px;
}
@media(max-width:1100px){
    .monitor-kpi-grid-all,
    .variable-limit-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:650px){
    .monitor-overview-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .monitor-kpi-grid-all,
    .variable-limit-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SMARTCELL WEB V3.65 - LÍMITES EN CLIENTES / VARIABLES
   ========================================================= */
.variable-main-line{
    display:flex;
    align-items:end;
    gap:10px;
    width:100%;
}
.variable-main-line .variable-update-form{
    flex:1;
}
.variable-limits-toggle{
    white-space:nowrap;
}
.variable-limits-form{
    width:100%;
    margin-top:10px;
    padding:14px;
    border:1px solid #d8e0e9;
    border-radius:9px;
    background:#f8fafc;
}
.variable-limits-form[hidden]{
    display:none !important;
}
.variable-limits-heading{
    margin-bottom:12px;
}
.variable-limits-heading div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.variable-limits-heading span{
    color:#667085;
    font-size:12px;
}
.variable-limits-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(120px,1fr));
    gap:10px;
}
.variable-limits-grid label{
    display:flex;
    flex-direction:column;
    gap:5px;
}
.variable-limits-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:12px;
}
@media(max-width:1200px){
    .variable-limits-grid{
        grid-template-columns:repeat(3,minmax(150px,1fr));
    }
}
@media(max-width:800px){
    .variable-main-line{
        align-items:stretch;
        flex-direction:column;
    }
    .variable-limits-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SMARTCELL WEB V3.66 - RESUMEN DE EQUIPOS
   ========================================================= */
.equipment-summary-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:15px;
    border:1px solid #dfe5ec;
    border-radius:11px;
    background:#fff;
}
.equipment-summary-header h2{
    margin:0 0 4px;
}
.equipment-summary-header p{
    margin:0;
    color:#667085;
}
.equipment-summary-counters{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.equipment-summary-counters div{
    min-width:88px;
    padding:9px 12px;
    border:1px solid #dfe5ec;
    border-radius:9px;
    background:#f8fafc;
    text-align:center;
}
.equipment-summary-counters span{
    display:block;
    color:#667085;
    font-size:10px;
    font-weight:700;
}
.equipment-summary-counters strong{
    display:block;
    margin-top:2px;
    font-size:22px;
}
.equipment-summary-counters .normal{
    border-color:#b9dfc5;
    background:#effbf3;
}
.equipment-summary-counters .warning{
    border-color:#f3cf7a;
    background:#fff9e8;
}
.equipment-summary-counters .alarm{
    border-color:#efb0ac;
    background:#fff1f0;
}
.equipment-summary-counters .nodata{
    background:#f1f3f6;
}
.equipment-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.equipment-summary-card{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:14px;
    border:2px solid #dfe5ec;
    border-radius:11px;
    background:#fff;
}
.equipment-summary-card.normal{
    border-color:#61b979;
}
.equipment-summary-card.warning{
    border-color:#e2aa27;
}
.equipment-summary-card.alarm{
    border-color:#dc5a52;
}
.equipment-summary-card.nodata{
    border-color:#aab2bf;
}
.equipment-summary-card-top{
    display:flex;
    justify-content:space-between;
    gap:12px;
}
.equipment-summary-card-top h3{
    margin:0 0 3px;
    font-size:16px;
}
.equipment-summary-card-top>div>span{
    color:#667085;
    font-size:11px;
}
.equipment-summary-location{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-height:54px;
}
.equipment-summary-location span{
    color:#667085;
    font-size:11px;
}
.equipment-summary-communication{
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:8px;
    padding:9px;
    border-radius:8px;
    background:#f8fafc;
}
.equipment-summary-communication div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.equipment-summary-communication span{
    color:#667085;
    font-size:10px;
}
.equipment-summary-communication strong{
    font-size:11px;
}
.equipment-summary-communication .online{
    color:#15803d;
}
.equipment-summary-communication .offline{
    color:#b42318;
}
.equipment-summary-variable-counts{
    display:flex;
    gap:5px;
    flex-wrap:wrap;
}
.equipment-summary-variable-counts span{
    padding:4px 6px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
}
.equipment-summary-variable-counts .normal{
    color:#14763d;
    background:#e9f8ef;
}
.equipment-summary-variable-counts .warning{
    color:#9a6500;
    background:#fff5d9;
}
.equipment-summary-variable-counts .alarm{
    color:#b42318;
    background:#feeceb;
}
.equipment-summary-variable-counts .nodata{
    color:#596273;
    background:#edf0f4;
}
.equipment-summary-values{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
}
.equipment-summary-values div{
    display:flex;
    justify-content:space-between;
    gap:7px;
    padding:7px;
    border-left:4px solid #98a2b3;
    border-radius:6px;
    background:#f8fafc;
}
.equipment-summary-values div.normal{
    border-left-color:#16a34a;
}
.equipment-summary-values div.warning{
    border-left-color:#f59e0b;
}
.equipment-summary-values div.alarm{
    border-left-color:#dc2626;
}
.equipment-summary-values span{
    overflow:hidden;
    color:#667085;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.equipment-summary-values strong{
    white-space:nowrap;
    font-size:10px;
}
.equipment-summary-card>.btn{
    align-self:flex-end;
    margin-top:auto;
}
@media(max-width:1250px){
    .equipment-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:850px){
    .equipment-summary-header{
        align-items:flex-start;
        flex-direction:column;
    }
    .equipment-summary-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   SMARTCELL WEB V3.67 - COMPARADOR GRÁFICO DE EQUIPOS
   ========================================================= */
.equipment-chart-workspace{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:15px;
    border:1px solid #dfe5ec;
    border-radius:11px;
    background:#fff;
}
.equipment-chart-workspace-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}
.equipment-chart-workspace-heading h2{
    margin:0 0 4px;
}
.equipment-chart-workspace-heading p{
    margin:0;
    color:#667085;
}
.equipment-chart-workspace-actions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}
.equipment-chart-controls{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.equipment-chart-control-group{
    padding:12px;
    border:1px solid #e2e8f0;
    border-radius:9px;
    background:#f8fafc;
}
.equipment-chart-control-group h3{
    margin:0 0 9px;
    font-size:14px;
}
.equipment-chart-check-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
}
.equipment-chart-check{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px;
    border:1px solid #dfe5ec;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
}
.equipment-chart-check input{
    width:auto;
    margin:0;
}
.equipment-chart-check span{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
}
.equipment-chart-check strong,
.equipment-chart-check small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.equipment-chart-check small{
    color:#667085;
}
.equipment-chart-toolbar{
    display:flex;
    align-items:end;
    gap:10px;
    flex-wrap:wrap;
}
.equipment-chart-toolbar label{
    display:flex;
    min-width:220px;
    flex-direction:column;
    gap:5px;
    font-size:12px;
    font-weight:700;
}
.equipment-comparison-chart-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.equipment-comparison-chart-card{
    min-width:0;
    padding:12px;
    border:1px solid #dfe5ec;
    border-radius:10px;
    background:#fff;
}
.equipment-comparison-chart-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
}
.equipment-comparison-chart-heading h3{
    margin:0;
    font-size:14px;
}
.equipment-comparison-chart-heading span{
    color:#667085;
    font-size:11px;
}
.equipment-comparison-chart-heading>div:last-child{
    display:flex;
    gap:6px;
}
.equipment-comparison-chart{
    display:block;
    width:100%;
    height:300px;
}
.equipment-chart-empty{
    grid-column:1/-1;
    padding:30px;
    border:1px dashed #cbd5e1;
    border-radius:9px;
    text-align:center;
    color:#667085;
}
.equipment-chart-modal{
    position:fixed;
    z-index:9999;
    inset:0;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(15,23,42,.72);
}
.equipment-chart-modal[hidden]{
    display:none !important;
}
.equipment-chart-modal-dialog{
    width:min(1500px,96vw);
    max-height:94vh;
    overflow:auto;
    padding:16px;
    border-radius:12px;
    background:#fff;
}
.equipment-chart-modal-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}
.equipment-chart-modal-heading h2{
    margin:0;
}
#equipment-chart-modal-canvas{
    display:block;
    width:100%;
    height:620px;
}
body.equipment-modal-open{
    overflow:hidden;
}
@media(max-width:1100px){
    .equipment-comparison-chart-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:800px){
    .equipment-chart-workspace-heading,
    .equipment-chart-controls{
        align-items:stretch;
        grid-template-columns:1fr;
    }
    .equipment-chart-workspace-heading{
        flex-direction:column;
    }
}
@media(max-width:600px){
    .equipment-chart-check-list{
        grid-template-columns:1fr;
    }
    .equipment-chart-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .equipment-chart-toolbar label{
        min-width:0;
    }
    .equipment-comparison-chart-heading{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* SMARTCELL V3.68 - ACCESO DE CLIENTES */
.auth-body{margin:0;min-height:100vh;background:#eef3f8;font-family:Arial,sans-serif;color:#0b1f3a;}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:22px;}
.auth-card{width:min(440px,100%);padding:34px 32px;border-radius:18px;background:#fff;box-shadow:0 14px 40px rgba(15,35,60,.12);}
.auth-brand{margin-bottom:22px;color:#f59e0b;font-weight:900;letter-spacing:2px;}
.auth-card h1{margin:0 0 12px;font-size:42px;line-height:1.06;letter-spacing:1px;color:#071d3f;}
.auth-subtitle{margin:0 0 16px;color:#334155;}
.auth-form{display:flex;flex-direction:column;gap:14px;}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#0b1f3a;}
.auth-form input{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #cbd6e4;border-radius:8px;font-size:16px;}
.auth-primary{align-self:flex-start;padding:12px 22px;background:#0797dc!important;border-color:#0797dc!important;}
.auth-links{display:flex;flex-direction:column;gap:12px;margin-top:16px;}
.auth-links a{color:#071d3f;text-decoration:none;}
.auth-links a:hover{text-decoration:underline;}
.alert.success{background:#eaf8ef;color:#166534;border-color:#b7e0c1;}
.user-inline-form{display:contents;}
@media(max-width:520px){.auth-card{padding:26px 20px}.auth-card h1{font-size:34px}}


/* Smartcell V4.01 */
.smartcell-version-footer{
    padding:14px 20px;
    border-top:1px solid #dce4ee;
    background:#fff;
    color:#667085;
    font-size:12px;
    text-align:center;
}
.auth-version{
    margin-top:20px;
    padding-top:14px;
    border-top:1px solid #e7ebf0;
    color:#7b8797;
    font-size:12px;
    text-align:center;
}
.auth-form .auth-primary{
    width:100%;
    min-height:43px;
    font-weight:700;
}
.auth-links{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:17px;
    font-size:14px;
}
.auth-links a{
    color:#087ab8;
    font-weight:700;
}

.client-switch-form label,
.active-client-label{
    display:flex;
    flex-direction:column;
    gap:2px;
    font-size:11px;
    color:#65758b;
}
.client-switch-form select{
    min-width:180px;
    height:34px;
    border:1px solid #bac7d8;
    border-radius:6px;
    background:#fff;
    padding:0 8px;
    font-weight:700;
    color:#14365d;
}
.active-client-label strong{
    color:#14365d;
    font-size:13px;
}


/* Smartcell V4.08 - Rol y nombre del usuario en cabecera */
.simple-role-button{
    max-width:360px;
}

.user-role-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-width:0;
}

.role-user-separator{
    opacity:.72;
    font-weight:700;
}

.role-user-name{
    display:inline-block;
    max-width:190px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    vertical-align:bottom;
}

@media (max-width:900px){
    .role-user-name{
        max-width:110px;
    }
}

@media (max-width:700px){
    .role-user-separator,
    .role-user-name{
        display:none;
    }
}


/* Smartcell V4.09 - versión visible en cabecera */
.simple-brand{
    display:inline-flex;
    align-items:center;
    gap:9px;
}

.header-version{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 8px;
    border:1px solid #b9c9dc;
    border-radius:999px;
    background:#eef5fc;
    color:#174f88;
    font-size:11px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

@media (max-width:700px){
    .header-version{
        font-size:10px;
        padding:2px 6px;
    }
}


/* Smartcell V4.10 - gráficos visibles en Resumen de equipos */
.equipment-summary-mini-chart{
    margin-top:10px;
    padding:9px;
    border:1px solid #dfe6ee;
    border-radius:8px;
    background:#fff;
}

.equipment-summary-mini-chart-heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    margin-bottom:5px;
    font-size:11px;
    color:#5b6878;
}

.equipment-summary-mini-chart-heading strong{
    color:#16385f;
    font-size:12px;
}

.equipment-mini-chart{
    display:block;
    width:100%;
    height:180px;
}

.equipment-mini-chart-empty{
    padding:18px 8px;
    color:#778397;
    font-size:12px;
    text-align:center;
}


/* Smartcell V4.11 - Matriz de variables */
.monitor-matrix-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    margin-bottom:14px;
    padding:16px;
    border:1px solid #dce5ef;
    border-radius:10px;
    background:#fff;
}

.monitor-matrix-header h2{
    margin:0 0 4px;
}

.monitor-matrix-header p{
    margin:0;
    color:#66758a;
}

.monitor-matrix-legend{
    flex-shrink:0;
}

.monitor-matrix-stack{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.monitor-matrix-card{
    overflow:hidden;
    border:1px solid #dce5ef;
    border-radius:10px;
    background:#fff;
    box-shadow:0 2px 8px rgba(24,54,91,.05);
}

.monitor-matrix-title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.monitor-matrix-title h3{
    margin:0;
    font-size:20px;
    color:#102f55;
}

.monitor-matrix-title span{
    color:#64748b;
    font-size:12px;
    font-weight:700;
}

.monitor-matrix-scroll{
    width:100%;
    overflow:auto;
}

.monitor-variable-matrix{
    width:max-content;
    min-width:100%;
    border-collapse:separate;
    border-spacing:0;
    table-layout:fixed;
}

.monitor-variable-matrix th,
.monitor-variable-matrix td{
    min-width:112px;
    height:48px;
    padding:6px 8px;
    border-right:2px solid #fff;
    border-bottom:2px solid #fff;
    text-align:center;
    vertical-align:middle;
}

.monitor-variable-matrix thead th,
.monitor-variable-matrix tfoot th{
    background:#e8eef5;
    color:#18385e;
    font-size:12px;
}

.monitor-variable-matrix .monitor-matrix-variable-column,
.monitor-variable-matrix .monitor-matrix-row-label,
.monitor-variable-matrix .monitor-matrix-axis-title{
    position:sticky;
    left:0;
    z-index:3;
    min-width:190px;
    max-width:190px;
    text-align:left;
    background:#f8fafc;
    box-shadow:2px 0 0 #dce5ef;
}

.monitor-variable-matrix thead .monitor-matrix-variable-column{
    z-index:5;
    background:#e8eef5;
}

.monitor-matrix-row-label strong{
    display:block;
    color:#17365d;
    font-size:13px;
}

.monitor-matrix-row-label small{
    display:block;
    margin-top:2px;
    color:#65758a;
    font-size:11px;
}

.monitor-matrix-cell{
    transition:filter .12s ease,transform .12s ease;
}

.monitor-matrix-cell:hover{
    filter:brightness(.96);
}

.monitor-matrix-cell a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.monitor-matrix-cell strong{
    font-size:14px;
    font-variant-numeric:tabular-nums;
}

.monitor-matrix-cell.normal{
    background:#5dbb63;
    color:#092f12;
}

.monitor-matrix-cell.warning{
    background:#ffd45c;
    color:#4b3500;
}

.monitor-matrix-cell.alarm{
    background:#e53935;
    color:#fff;
}

.monitor-matrix-cell.nodata{
    background:#d7dee7;
    color:#475569;
}

.monitor-matrix-column-top,
.monitor-matrix-equipment-id{
    display:block;
    max-width:140px;
    margin:auto;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:800;
}

.monitor-variable-matrix tfoot small{
    display:block;
    margin-top:2px;
    color:#617086;
    font-size:10px;
}

.monitor-matrix-axis-title{
    font-size:12px;
}

@media (max-width:900px){
    .monitor-matrix-header{
        flex-direction:column;
    }

    .monitor-variable-matrix .monitor-matrix-variable-column,
    .monitor-variable-matrix .monitor-matrix-row-label,
    .monitor-variable-matrix .monitor-matrix-axis-title{
        min-width:150px;
        max-width:150px;
    }

    .monitor-variable-matrix th,
    .monitor-variable-matrix td{
        min-width:96px;
    }
}


/* Smartcell V4.12 - identificadores compactos en matriz */
.monitor-variable-matrix th,
.monitor-variable-matrix td{
    min-width:92px;
}

.monitor-matrix-column-top,
.monitor-matrix-equipment-id{
    max-width:110px;
}

.monitor-matrix-title h3{
    font-size:18px;
}

@media (max-width:900px){
    .monitor-variable-matrix th,
    .monitor-variable-matrix td{
        min-width:82px;
    }
}


/* Smartcell V4.13 - estados visibles en las celdas de la matriz */
.monitor-matrix-legend{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
}

.monitor-matrix-legend span{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:4px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.monitor-matrix-legend .normal{
    background:#e3f7e8;
    color:#08752b;
}

.monitor-matrix-legend .warning{
    background:#fff1c7;
    color:#9a5b00;
}

.monitor-matrix-legend .alarm{
    background:#fde3e3;
    color:#b42318;
}

.monitor-matrix-legend .nodata{
    background:#e9eef5;
    color:#536277;
}

/*
 * Se usa !important porque el estilo histórico general de Smartcell
 * aplica background a todas las celdas td con !important.
 */
.monitor-variable-matrix td.monitor-matrix-cell.normal{
    background:#5dbb63 !important;
    color:#062d12 !important;
    border-color:#ffffff !important;
}

.monitor-variable-matrix td.monitor-matrix-cell.warning{
    background:#ffd45c !important;
    color:#4c3400 !important;
    border-color:#ffffff !important;
}

.monitor-variable-matrix td.monitor-matrix-cell.alarm{
    background:#e53935 !important;
    color:#ffffff !important;
    border-color:#ffffff !important;
}

.monitor-variable-matrix td.monitor-matrix-cell.nodata{
    background:#d7dee7 !important;
    color:#475569 !important;
    border-color:#ffffff !important;
}

.monitor-variable-matrix td.monitor-matrix-cell a{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-height:42px;
    color:inherit !important;
}

.monitor-variable-matrix td.monitor-matrix-cell strong{
    color:inherit !important;
    font-size:14px;
    font-weight:900;
}

.monitor-matrix-status-label{
    display:block;
    color:inherit !important;
    font-size:9px;
    font-weight:800;
    line-height:1.05;
    opacity:.88;
    text-transform:uppercase;
    letter-spacing:.02em;
}

.monitor-variable-matrix td.monitor-matrix-cell{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}


/* Smartcell V4.14 - colores forzados en Matriz de variables */
.monitor-variable-matrix td.monitor-matrix-cell{
    background-image:none !important;
    opacity:1 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="normal"]{
    background-color:#5DBB63 !important;
    color:#062D12 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="warning"]{
    background-color:#FFD45C !important;
    color:#4C3400 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="alarm"]{
    background-color:#E53935 !important;
    color:#FFFFFF !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="nodata"]{
    background-color:#D7DEE7 !important;
    color:#475569 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell a,
.monitor-variable-matrix td.monitor-matrix-cell strong,
.monitor-variable-matrix td.monitor-matrix-cell small{
    color:inherit !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="normal"]{
    border-left:5px solid #08752B !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="warning"]{
    border-left:5px solid #C77A00 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="alarm"]{
    border-left:5px solid #A71916 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="nodata"]{
    border-left:5px solid #7A8798 !important;
}


/* Smartcell V4.15 - colores suaves y celdas sin texto de estado */
.monitor-variable-matrix td.monitor-matrix-cell[data-status="normal"]{
    background-color:#E3F7E8 !important;
    color:#08752B !important;
    border-left:4px solid #72C98A !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="warning"]{
    background-color:#FFF1C7 !important;
    color:#9A5B00 !important;
    border-left:4px solid #E5B84B !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="alarm"]{
    background-color:#FDE3E3 !important;
    color:#B42318 !important;
    border-left:4px solid #E58A86 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell[data-status="nodata"]{
    background-color:#E9EEF5 !important;
    color:#536277 !important;
    border-left:4px solid #AAB5C4 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell a{
    gap:0 !important;
}

.monitor-variable-matrix td.monitor-matrix-cell strong{
    font-size:14px;
    font-weight:900;
}

.monitor-matrix-status-label{
    display:none !important;
}


/* Smartcell V4.16 - página de Configuración */
.settings-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:18px;
    align-items:start;
}

.settings-section-heading{
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.settings-section-heading h2,
.settings-help-card h2{
    margin:0 0 5px;
}

.settings-section-heading p,
.settings-help-card p{
    margin:0;
    color:#66758a;
}

.status-color-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.status-color-setting-card{
    display:grid;
    grid-template-columns:132px minmax(0,1fr);
    min-height:150px;
    overflow:hidden;
    border:1px solid #dce5ef;
    border-radius:10px;
    background:#fff;
}

.status-color-preview{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:15px;
    border-left:5px solid currentColor;
    text-align:center;
}

.status-color-preview strong{
    font-size:17px;
}

.status-color-preview span{
    font-size:11px;
    font-weight:700;
    opacity:.8;
}

.status-color-setting-content{
    padding:15px;
}

.status-color-setting-content h3{
    margin:0 0 5px;
}

.status-color-setting-content p{
    min-height:42px;
    margin:0 0 13px;
    color:#66758a;
    font-size:12px;
}

.status-color-picker{
    display:grid;
    grid-template-columns:auto 48px 1fr;
    align-items:center;
    gap:9px;
}

.status-color-picker input[type="color"]{
    width:48px;
    height:36px;
    padding:2px;
    border:1px solid #bac7d8;
    border-radius:6px;
    background:#fff;
    cursor:pointer;
}

.status-color-picker output{
    font-family:Consolas,monospace;
    font-size:12px;
    font-weight:800;
}

.settings-actions{
    display:flex;
    gap:10px;
    margin-top:18px;
}

.settings-reset-form{
    margin-top:10px;
}

.settings-future-list{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:16px;
}

.settings-future-list span{
    padding:9px 11px;
    border:1px solid #dce5ef;
    border-radius:7px;
    background:#f8fafc;
    color:#38506d;
    font-size:12px;
    font-weight:700;
}

@media(max-width:980px){
    .settings-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:720px){
    .status-color-settings-grid{
        grid-template-columns:1fr;
    }

    .status-color-setting-card{
        grid-template-columns:105px minmax(0,1fr);
    }
}


/* Smartcell V4.17 - intervalos y tiempo Online/Offline */
.settings-subsection-divider{
    height:1px;
    margin:26px 0;
    background:#dce5ef;
}

.interval-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.interval-setting-card{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:15px;
    border:1px solid #dce5ef;
    border-radius:10px;
    background:#f8fafc;
}

.interval-setting-card>span{
    color:#17365d;
    font-size:14px;
    font-weight:800;
}

.interval-setting-card>small{
    min-height:34px;
    color:#66758a;
    font-size:11px;
    line-height:1.35;
}

.interval-input-row{
    display:grid;
    grid-template-columns:minmax(90px,140px) auto;
    align-items:center;
    gap:9px;
    margin-top:6px;
}

.interval-input-row input{
    width:100%;
    min-height:39px;
    font-size:15px;
    font-weight:800;
}

.interval-input-row strong{
    color:#536277;
    font-size:12px;
}

.offline-time-card{
    grid-column:1/-1;
    border-color:#c8d8e9;
    background:#eef5fc;
}

.settings-technical-note{
    margin:12px 0 0;
    color:#66758a;
    font-size:11px;
}

.settings-future-list span.available{
    border-color:#b8dfc5;
    background:#edf9f1;
    color:#176c37;
}

@media(max-width:720px){
    .interval-settings-grid{
        grid-template-columns:1fr;
    }

    .offline-time-card{
        grid-column:auto;
    }
}


/* Smartcell V4.18 - cliente opcional al registrar iButton */
.register-unknown-form .row{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    align-items:start;
}

.register-client-help{
    display:block;
    margin-top:5px;
    color:#66758a;
    font-size:10px;
    line-height:1.3;
}

@media(max-width:900px){
    .register-unknown-form .row{
        grid-template-columns:1fr;
    }
}


/* Smartcell V4.20 - equipos pendientes disponibles en asignación */
#deviceSelect optgroup{
    font-weight:800;
    color:#17365d;
}

#deviceSelect option{
    font-weight:500;
    color:#172033;
}

.assignment-unavailable{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#e9eef5;
    color:#607086;
    font-size:11px;
    font-weight:700;
}


/* Smartcell V4.21 - recuperación de registros huérfanos */
.orphan-assignment-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
}

.orphan-assignment-actions form{
    margin:0;
}

.orphan-assignment-actions .btn{
    white-space:nowrap;
}


/* Smartcell V4.23 - todos los gráficos de variables visibles */
.monitor-chart-no-data{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:250px;
    padding:20px;
    border:1px dashed #c8d4e2;
    border-radius:7px;
    background:#f8fafc;
    color:#718096;
    font-size:12px;
    font-weight:700;
    text-align:center;
}


/* Smartcell V4.24 - menú lateral sin pestañeo al refrescar */
html.smartcell-sidebar-persisted-collapsed .smartcell-app-shell{
    grid-template-columns:0 minmax(0,1fr);
}

html.smartcell-sidebar-persisted-collapsed .smartcell-global-sidebar{
    transform:translateX(-100%);
}

html.smartcell-sidebar-persisted-collapsed .smartcell-sidebar-toggle{
    left:14px;
}

/*
 * Antes de que JavaScript termine de sincronizar el estado se desactivan
 * transiciones. Así el menú no se desliza brevemente al cargar o refrescar.
 */
html:not(.smartcell-sidebar-state-ready) .smartcell-global-sidebar,
html:not(.smartcell-sidebar-state-ready) .smartcell-sidebar-toggle,
html:not(.smartcell-sidebar-state-ready) .smartcell-app-shell{
    transition:none !important;
}

@media(max-width:900px){
    html.smartcell-sidebar-persisted-collapsed .smartcell-global-sidebar{
        transform:translateX(-100%);
    }

    html.smartcell-sidebar-persisted-collapsed .smartcell-sidebar-toggle{
        left:14px;
    }
}


/* Smartcell V4.25 - gráficos en Resumen de todas las variables */
.monitor-summary-charts{
    margin-top:14px;
    padding:14px;
    border:1px solid #dce5ef;
    border-radius:10px;
    background:#fff;
}

.monitor-summary-charts-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:12px;
}

.monitor-summary-charts-heading h2{
    margin:0 0 4px;
}

.monitor-summary-charts-heading p{
    margin:0;
    color:#66758a;
}

.monitor-summary-chart-count{
    display:flex;
    align-items:center;
    gap:5px;
    flex-shrink:0;
    padding:7px 11px;
    border:1px solid #cddbeb;
    border-radius:8px;
    background:#f4f8fc;
    color:#17365d;
}

.monitor-summary-chart-count strong{
    font-size:18px;
}

.monitor-summary-chart-count span{
    font-size:11px;
    font-weight:700;
}

.monitor-summary-range-buttons{
    margin-bottom:12px;
}

@media(max-width:700px){
    .monitor-summary-charts-heading{
        flex-direction:column;
    }
}


/* Smartcell V4.26 - Consola de tráfico */
.color-dark-blue{
    border-color:#315a87!important;
    background:#edf4fb!important;
    color:#17365d!important;
}

.traffic-console-page-header{
    align-items:center;
}

.traffic-console-live{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 11px;
    border:1px solid #a9dbba;
    border-radius:999px;
    background:#edf9f1;
    color:#176c37;
    font-size:12px;
    font-weight:800;
}

.traffic-console-live span{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#22a447;
    box-shadow:0 0 0 4px rgba(34,164,71,.12);
}

.traffic-console-stats{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.traffic-console-last-time{
    font-size:14px!important;
}

.traffic-console-filters{
    grid-template-columns:minmax(250px,2fr) repeat(3,minmax(130px,1fr)) auto auto;
    align-items:end;
}

.traffic-console-card{
    padding:0;
    overflow:hidden;
}

.traffic-console-card-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px;
    border-bottom:1px solid #dce5ef;
}

.traffic-console-card-heading h2{
    margin:0 0 3px;
}

.traffic-console-card-heading p{
    margin:0;
    color:#66758a;
}

.traffic-console-scroll{
    width:100%;
    overflow:auto;
}

.traffic-console-table{
    min-width:1250px;
}

.traffic-console-table td{
    vertical-align:top;
}

.traffic-console-table small{
    display:block;
    margin-top:3px;
    color:#66758a;
    font-size:10px;
}

.traffic-console-date strong{
    white-space:nowrap;
}

.traffic-http-method,
.traffic-json-badge,
.traffic-result-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:22px;
    padding:3px 7px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}

.traffic-http-method{
    border:1px solid #b8cbe0;
    background:#eef5fc;
    color:#174f88;
}

.traffic-json-badge.valid,
.traffic-result-badge.success{
    background:#e3f7e8;
    color:#08752b;
}

.traffic-json-badge.invalid,
.traffic-result-badge.error{
    background:#fde3e3;
    color:#b42318;
}

.traffic-result-badge.warning{
    background:#fff1c7;
    color:#9a5b00;
}

.traffic-result-badge.pending{
    background:#e9eef5;
    color:#536277;
}

.traffic-console-detail-row td{
    padding:0!important;
    background:#f4f7fb!important;
}

.traffic-console-detail-grid{
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr) minmax(360px,1.2fr);
    gap:12px;
    padding:14px;
}

.traffic-console-detail-grid section{
    min-width:0;
    padding:12px;
    border:1px solid #d7e1ed;
    border-radius:8px;
    background:#fff;
}

.traffic-console-detail-grid h3{
    margin:0 0 8px;
    color:#17365d;
    font-size:13px;
}

.traffic-console-detail-grid pre{
    max-height:430px;
    margin:0;
    padding:11px;
    overflow:auto;
    border:1px solid #dbe4ee;
    border-radius:6px;
    background:#111827;
    color:#e5edf6;
    font:11px/1.5 Consolas,Monaco,monospace;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.traffic-console-metadata{
    display:grid;
    gap:6px;
    margin:0 0 14px;
}

.traffic-console-metadata div{
    display:grid;
    grid-template-columns:90px minmax(0,1fr);
    gap:8px;
    padding-bottom:5px;
    border-bottom:1px solid #edf1f5;
}

.traffic-console-metadata dt{
    color:#66758a;
    font-size:10px;
    font-weight:800;
}

.traffic-console-metadata dd{
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
    color:#172033;
    font-size:11px;
}

@media(max-width:1050px){
    .traffic-console-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .traffic-console-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .traffic-console-detail-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .traffic-console-stats,
    .traffic-console-filters{
        grid-template-columns:1fr;
    }

    .traffic-console-card-heading{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* Smartcell V4.27 - consola sin recarga automática */
.traffic-console-new-records{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
    padding:12px 14px;
    border:1px solid #b9d5ef;
    border-radius:9px;
    background:#eef6fd;
    color:#17365d;
    box-shadow:0 2px 8px rgba(24,54,91,.05);
}

.traffic-console-new-records[hidden]{
    display:none!important;
}

.traffic-console-new-records>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.traffic-console-new-records strong{
    font-size:14px;
}

.traffic-console-new-records span{
    color:#5e7087;
    font-size:11px;
}

@media(max-width:700px){
    .traffic-console-new-records{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* Smartcell V4.28 - acceso a Gráficos de variables */
.monitor-view-switch{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.monitor-variable-charts-button{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-height:36px;
    margin-left:auto;
    padding:7px 14px!important;
    border:1px solid #0d67c7!important;
    border-radius:7px!important;
    background:#0d67c7!important;
    color:#fff!important;
    font-size:12px;
    font-weight:800;
    text-decoration:none!important;
    white-space:nowrap;
    box-shadow:0 2px 5px rgba(13,103,199,.16);
}

.monitor-variable-charts-button:hover{
    background:#0a58ad!important;
    border-color:#0a58ad!important;
    color:#fff!important;
}

@media(max-width:900px){
    .monitor-variable-charts-button{
        margin-left:0;
    }
}


/* Smartcell V4.29 - administración de comandos remotos */
.remote-command-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
}

.remote-command-section-heading h2{
    margin:0 0 4px;
}

.remote-command-section-heading p{
    margin:0;
    color:#66758a;
}

.remote-command-program-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.remote-command-program-grid label{
    min-width:0;
}

.remote-command-program-grid label small{
    display:block;
    min-height:16px;
    margin-top:4px;
    color:#66758a;
    font-size:10px;
}

.remote-command-confirmation-field{
    grid-column:1/-1;
}

.remote-command-confirmation-field input{
    background:#f8fafc;
}

.remote-command-confirmation-field.requires-confirmation input{
    border-color:#d97706;
    background:#fff8e8;
}

.remote-command-count{
    flex-shrink:0;
    padding:6px 10px;
    border:1px solid #cddbeb;
    border-radius:999px;
    background:#f4f8fc;
    color:#17365d;
    font-size:11px;
    font-weight:800;
}

.remote-command-create{
    margin-bottom:15px;
    border:1px solid #bfd3e7;
    border-radius:9px;
    background:#f7fbff;
}

.remote-command-create>summary{
    padding:12px 14px;
    color:#0d67c7;
    font-weight:900;
    cursor:pointer;
}

.remote-command-create>form{
    padding:0 14px 14px;
}

.remote-command-definition-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:12px;
}

.remote-command-description-field{
    grid-column:1/-1;
}

.remote-command-description-field textarea{
    width:100%;
    resize:vertical;
}

.remote-command-active-check{
    align-self:end;
    min-height:40px;
}

.remote-command-definition-list{
    display:flex;
    flex-direction:column;
    gap:9px;
}

.remote-command-definition-card{
    overflow:hidden;
    border:1px solid #dce5ef;
    border-radius:9px;
    background:#fff;
}

.remote-command-definition-card>summary{
    display:grid;
    grid-template-columns:90px minmax(180px,1fr) auto auto;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    cursor:pointer;
    list-style:none;
}

.remote-command-definition-card>summary::-webkit-details-marker{
    display:none;
}

.remote-command-definition-card[open]>summary{
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.remote-command-definition-code{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    border:1px solid #bdd0e4;
    border-radius:6px;
    background:#eef5fc;
    color:#174f88;
    font-weight:900;
}

.remote-command-definition-name{
    color:#172033;
    font-weight:800;
}

.remote-command-definition-status{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}

.remote-command-definition-status.active{
    background:#e3f7e8;
    color:#08752b;
}

.remote-command-definition-status.inactive{
    background:#e9eef5;
    color:#536277;
}

.remote-command-edit-label{
    color:#0d67c7;
    font-size:11px;
    font-weight:800;
}

.remote-command-definition-body{
    padding:14px;
}

.remote-command-definition-actions,
.remote-command-secondary-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.remote-command-secondary-actions{
    margin-top:9px;
    padding-top:10px;
    border-top:1px solid #edf1f5;
}

.remote-command-secondary-actions form{
    margin:0;
}

.remote-command-history{
    margin-top:16px;
}

.remote-command-history table small{
    display:block;
    margin-top:2px;
    color:#66758a;
    font-size:10px;
}

@media(max-width:800px){
    .remote-command-program-grid,
    .remote-command-definition-grid{
        grid-template-columns:1fr;
    }

    .remote-command-confirmation-field,
    .remote-command-description-field{
        grid-column:auto;
    }

    .remote-command-definition-card>summary{
        grid-template-columns:70px minmax(130px,1fr) auto;
    }

    .remote-command-edit-label{
        display:none;
    }
}

@media(max-width:560px){
    .remote-command-section-heading{
        flex-direction:column;
    }

    .remote-command-definition-card>summary{
        grid-template-columns:65px minmax(0,1fr);
    }

    .remote-command-definition-status{
        justify-self:start;
    }
}


/* Smartcell V4.30 - búsqueda y programación avanzada de comandos */
.remote-command-heading-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.remote-equipment-search{
    margin-bottom:16px;
    padding:14px;
    border:1px solid #c9d8e8;
    border-radius:10px;
    background:#f5f9fd;
}

.remote-equipment-search-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    margin-bottom:12px;
}

.remote-equipment-search-heading h3{
    margin:0 0 3px;
    color:#17365d;
}

.remote-equipment-search-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.remote-equipment-search-heading>span{
    flex-shrink:0;
    padding:5px 9px;
    border:1px solid #bdd0e4;
    border-radius:999px;
    background:#fff;
    color:#174f88;
    font-size:11px;
    font-weight:900;
}

.remote-equipment-filter-grid{
    display:grid;
    grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);
    gap:12px;
}

.remote-equipment-filter-grid label,
.remote-command-repeat-grid label{
    min-width:0;
}

#selectedEquipmentDetails{
    display:block;
    min-height:16px;
    margin-top:4px;
    color:#536b84;
    font-size:10px;
}

.remote-command-schedule-options{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px;
    margin-top:18px;
}

.remote-command-schedule-option{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-width:0;
    padding:15px;
    border:1px solid #d3deea;
    border-radius:10px;
    background:#fff;
}

.remote-command-schedule-option.immediate{
    border-color:#ecc1be;
    background:#fff8f7;
}

.remote-command-schedule-option.scheduled{
    border-color:#bcd6ee;
    background:#f7fbff;
}

.remote-command-schedule-option.recurring{
    border-color:#c8d9bd;
    background:#f8fcf5;
}

.remote-command-schedule-option h3{
    margin:0 0 4px;
    color:#17365d;
    font-size:16px;
}

.remote-command-schedule-option p{
    min-height:34px;
    margin:0;
    color:#66758a;
    font-size:11px;
    line-height:1.4;
}

.remote-command-schedule-option .btn{
    width:100%;
    margin-top:auto;
}

.remote-command-repeat-grid{
    display:grid;
    grid-template-columns:1fr .65fr .8fr;
    gap:8px;
}

.remote-command-delivery-note{
    margin:12px 0 0;
    padding:9px 11px;
    border-left:4px solid #7ba8d3;
    border-radius:5px;
    background:#eef5fc;
    color:#4d6680;
    font-size:11px;
}

.remote-command-schedules{
    margin-top:16px;
}

.remote-command-schedules table small{
    display:block;
    margin-top:2px;
    color:#66758a;
    font-size:10px;
}

.remote-command-schedules .remote-command-secondary-actions{
    margin:0;
    padding:0;
    border:0;
    flex-wrap:nowrap;
}

.remote-command-schedules .btn{
    padding:5px 8px;
    font-size:10px;
    white-space:nowrap;
}

.remote-command-history{
    margin-bottom:18px;
}

@media(max-width:1050px){
    .remote-command-schedule-options{
        grid-template-columns:1fr;
    }

    .remote-command-schedule-option p{
        min-height:0;
    }
}

@media(max-width:800px){
    .remote-equipment-filter-grid{
        grid-template-columns:1fr;
    }

    .remote-command-repeat-grid{
        grid-template-columns:1fr;
    }

    .remote-command-heading-actions{
        width:100%;
    }
}

@media(max-width:600px){
    .remote-equipment-search-heading{
        flex-direction:column;
    }

    .remote-command-heading-actions .btn{
        width:100%;
    }
}


/* Smartcell V4.31 - botones de filtro en Programar comandos */
.remote-equipment-filter-actions{
    display:flex;
    align-items:flex-end;
    gap:8px;
    min-height:40px;
}

.remote-equipment-filter-actions .btn{
    min-height:39px;
    white-space:nowrap;
}

@media(max-width:800px){
    .remote-equipment-filter-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .remote-equipment-filter-actions .btn{
        width:100%;
    }
}


/* Smartcell V4.32 - rediseño ordenado de Equipos */
.devices-page-header{
    align-items:center;
}

.devices-summary-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.devices-summary-card{
    padding:13px 15px;
    border:1px solid #d7e2ee;
    border-radius:9px;
    background:#fff;
    box-shadow:0 2px 7px rgba(23,54,93,.04);
}

.devices-summary-card span{
    display:block;
    margin-bottom:3px;
    color:#607086;
    font-size:11px;
    font-weight:700;
}

.devices-summary-card strong{
    color:#17365d;
    font-size:24px;
    line-height:1;
}

.devices-summary-card.online{
    border-left:4px solid #2aa45a;
}

.devices-summary-card.assigned{
    border-left:4px solid #1686d9;
}

.devices-summary-card.unassigned{
    border-left:4px solid #e09a21;
}

.devices-summary-card.gps{
    border-left:4px solid #8a63d2;
}

.devices-register-card{
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
    gap:22px;
    margin-bottom:14px;
}

.devices-register-intro{
    padding-right:20px;
    border-right:1px solid #e2e8f0;
}

.devices-section-kicker{
    display:inline-block;
    margin-bottom:5px;
    color:#0d67c7;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.devices-register-intro h2{
    margin:0 0 7px;
}

.devices-register-intro p{
    margin:0;
    color:#66758a;
    font-size:12px;
    line-height:1.45;
}

.devices-register-steps{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:15px;
}

.devices-register-steps span{
    padding:7px 9px;
    border:1px solid #dce6f0;
    border-radius:6px;
    background:#f8fafc;
    color:#38506d;
    font-size:11px;
    font-weight:700;
}

.devices-register-form{
    min-width:0;
}

.devices-register-fields{
    display:grid;
    grid-template-columns:minmax(270px,1.4fr) minmax(180px,1fr) minmax(160px,.8fr);
    gap:13px;
    align-items:start;
}

.devices-register-fields label{
    min-width:0;
}

.devices-register-fields small{
    display:block;
    margin-top:4px;
    color:#66758a;
    font-size:10px;
}

.devices-register-actions{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:13px;
}

.devices-register-actions span{
    color:#66758a;
    font-size:10px;
}

.ibutton-crc-result{
    margin-top:7px;
    padding:7px 9px;
    border-radius:7px;
    background:rgba(0,0,0,.05);
    font-size:11px;
}

.ibutton-crc-valid{
    border-left:4px solid #16a34a;
    background:rgba(22,163,74,.08);
}

.ibutton-crc-invalid{
    border-left:4px solid #dc2626;
    background:rgba(220,38,38,.08);
}

.devices-list-card{
    padding:0;
    overflow:hidden;
}

.devices-list-heading{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:16px 16px 10px;
}

.devices-list-heading h2{
    margin:0 0 3px;
}

.devices-list-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.devices-filter-grid{
    display:grid;
    grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(140px,.7fr)) auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.devices-filter-grid label{
    min-width:0;
}

.devices-filter-actions{
    display:flex;
    gap:7px;
}

.devices-filter-actions .btn{
    min-height:39px;
}

.devices-table-wrap{
    width:100%;
    overflow:auto;
}

.devices-table{
    min-width:1120px;
}

.devices-table th{
    white-space:nowrap;
}

.devices-table td{
    vertical-align:middle;
}

.devices-equipment-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:235px;
}

.devices-equipment-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:9px;
    background:#132840;
    color:#fff;
    font-size:12px;
    font-weight:900;
}

.devices-equipment-cell>div:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
}

.devices-equipment-link{
    color:#0b65c2;
    font-family:Consolas,monospace;
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}

.devices-equipment-link:hover{
    text-decoration:underline;
}

.devices-equipment-cell span,
.devices-equipment-cell small,
.devices-assignment-cell span,
.devices-activity-cell small{
    color:#66758a;
    font-size:10px;
}

.devices-assignment-cell{
    display:flex;
    min-width:160px;
    flex-direction:column;
    gap:2px;
}

.devices-assignment-cell strong{
    color:#17365d;
    font-size:12px;
}

.devices-source-badge,
.devices-unassigned-badge,
.devices-gps-badge,
.devices-online-badge,
.devices-status-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    min-height:22px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}

.devices-source-badge.manual{
    background:#e8f1ff;
    color:#145ca8;
}

.devices-source-badge.tag{
    background:#e9f7ed;
    color:#18723a;
}

.devices-unassigned-badge{
    background:#fff1c7;
    color:#925900;
}

.devices-gps-badge.none{
    background:#e9eef5;
    color:#536277;
}

.devices-gps-badge.fixed{
    background:#e8f1ff;
    color:#145ca8;
}

.devices-gps-badge.mobile{
    background:#eee8fb;
    color:#6642a2;
}

.devices-activity-cell{
    display:flex;
    min-width:175px;
    flex-direction:column;
    gap:3px;
}

.devices-activity-cell strong{
    color:#17365d;
    font-size:11px;
}

.devices-online-badge.online{
    background:#e3f7e8;
    color:#08752b;
}

.devices-online-badge.offline{
    background:#fde3e3;
    color:#a72b22;
}

.devices-status-badge.active{
    background:#e3f7e8;
    color:#08752b;
}

.devices-status-badge.wipe_pending{
    background:#fff1c7;
    color:#925900;
}

.devices-status-badge.stolen,
.devices-status-badge.wiped{
    background:#fde3e3;
    color:#a72b22;
}

.devices-status-badge.inactive{
    background:#e9eef5;
    color:#536277;
}

.devices-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    min-width:190px;
}

.devices-delete-menu{
    position:relative;
}

.devices-delete-menu>summary{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 9px;
    border:1px solid #e3b2ae;
    border-radius:6px;
    background:#fff7f6;
    color:#b42318;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
    list-style:none;
}

.devices-delete-menu>summary::-webkit-details-marker{
    display:none;
}

.devices-delete-menu[open]{
    width:100%;
}

.devices-delete-menu[open]>summary{
    margin-bottom:7px;
}

.devices-delete-menu form{
    display:grid;
    gap:7px;
    width:260px;
    padding:9px;
    border:1px solid #efc8c5;
    border-radius:7px;
    background:#fffafa;
}

.devices-delete-menu label{
    font-size:10px;
}

.devices-delete-menu input{
    min-height:34px;
}

.devices-empty-state{
    margin:16px;
}

@media(max-width:1150px){
    .devices-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .devices-register-card{
        grid-template-columns:1fr;
    }

    .devices-register-intro{
        padding-right:0;
        padding-bottom:15px;
        border-right:0;
        border-bottom:1px solid #e2e8f0;
    }

    .devices-register-steps{
        flex-direction:row;
        flex-wrap:wrap;
    }

    .devices-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .devices-filter-actions{
        grid-column:1/-1;
    }
}

@media(max-width:760px){
    .devices-page-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .devices-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .devices-register-fields,
    .devices-filter-grid{
        grid-template-columns:1fr;
    }

    .devices-register-actions{
        align-items:flex-start;
        flex-direction:column;
    }

    .devices-filter-actions{
        grid-column:auto;
        flex-direction:column;
    }

    .devices-filter-actions .btn{
        width:100%;
    }
}

@media(max-width:460px){
    .devices-summary-grid{
        grid-template-columns:1fr;
    }
}


/* Smartcell V4.33 - rediseño de Asignación por iButton */
.assignments-page-header{
    align-items:center;
}

.assignments-summary-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.assignments-summary-card{
    padding:13px 15px;
    border:1px solid #d7e2ee;
    border-radius:9px;
    background:#fff;
    box-shadow:0 2px 7px rgba(23,54,93,.04);
}

.assignments-summary-card span{
    display:block;
    margin-bottom:3px;
    color:#607086;
    font-size:11px;
    font-weight:700;
}

.assignments-summary-card strong{
    color:#17365d;
    font-size:24px;
    line-height:1;
}

.assignments-summary-card.manual{
    border-left:4px solid #1686d9;
}

.assignments-summary-card.tag{
    border-left:4px solid #2aa45a;
}

.assignments-summary-card.unassigned,
.assignments-summary-card.pending{
    border-left:4px solid #e09a21;
}

.assignments-editor-card{
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
    gap:22px;
    margin-bottom:14px;
}

.assignments-editor-intro{
    padding-right:20px;
    border-right:1px solid #e2e8f0;
}

.assignments-section-kicker{
    display:inline-block;
    margin-bottom:5px;
    color:#0d67c7;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.assignments-editor-intro h2{
    margin:0 0 7px;
}

.assignments-editor-intro p{
    margin:0;
    color:#66758a;
    font-size:12px;
    line-height:1.45;
}

.assignments-editor-steps{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:15px;
}

.assignments-editor-steps span{
    padding:7px 9px;
    border:1px solid #dce6f0;
    border-radius:6px;
    background:#f8fafc;
    color:#38506d;
    font-size:11px;
    font-weight:700;
}

.assignments-editor-form{
    min-width:0;
}

.assignment-equipment-search{
    margin-bottom:14px;
    padding:13px;
    border:1px solid #c9d8e8;
    border-radius:9px;
    background:#f5f9fd;
}

.assignment-equipment-search-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:11px;
}

.assignment-equipment-search-heading h3{
    margin:0 0 3px;
    color:#17365d;
    font-size:14px;
}

.assignment-equipment-search-heading p{
    margin:0;
    color:#66758a;
    font-size:10px;
}

.assignment-equipment-search-heading>span{
    flex-shrink:0;
    padding:5px 9px;
    border:1px solid #bdd0e4;
    border-radius:999px;
    background:#fff;
    color:#174f88;
    font-size:10px;
    font-weight:900;
}

.assignment-equipment-filter-grid{
    display:grid;
    grid-template-columns:minmax(170px,.75fr) minmax(240px,1.25fr) auto;
    gap:10px;
    align-items:end;
}

.assignment-equipment-filter-actions,
.assignments-filter-actions{
    display:flex;
    gap:7px;
}

.assignment-equipment-filter-actions .btn,
.assignments-filter-actions .btn{
    min-height:39px;
    white-space:nowrap;
}

.assignments-editor-fields{
    display:grid;
    grid-template-columns:minmax(260px,1.4fr) minmax(170px,.8fr) minmax(190px,1fr);
    gap:12px;
    align-items:start;
}

.assignments-editor-fields label{
    min-width:0;
}

.assignments-device-field small{
    display:block;
    min-height:15px;
    margin-top:4px;
    color:#66758a;
    font-size:10px;
}

.assignments-editor-actions{
    display:flex;
    align-items:center;
    gap:11px;
    margin-top:13px;
}

.assignments-editor-actions span{
    color:#66758a;
    font-size:10px;
}

.assignments-pending-card,
.assignments-registered-card{
    padding:0;
    overflow:hidden;
    margin-bottom:14px;
}

.assignments-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:16px;
}

.assignments-section-heading h2{
    margin:0 0 3px;
}

.assignments-section-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.assignments-count-badge{
    flex-shrink:0;
    padding:6px 10px;
    border:1px solid #cddbeb;
    border-radius:999px;
    background:#f4f8fc;
    color:#17365d;
    font-size:10px;
    font-weight:900;
}

.assignments-count-badge.warning{
    border-color:#ecd59e;
    background:#fff8e7;
    color:#8d5b00;
}

.assignments-pending-filter{
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.assignments-list-filter-grid{
    display:grid;
    grid-template-columns:minmax(260px,1.4fr) minmax(160px,.7fr) minmax(170px,.7fr) auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.assignments-table-wrap{
    width:100%;
    overflow:auto;
}

.assignments-pending-table{
    min-width:930px;
}

.assignments-registered-table{
    min-width:1040px;
}

.assignments-pending-table td,
.assignments-registered-table td{
    vertical-align:middle;
}

.assignments-equipment-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:220px;
}

.assignments-equipment-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex:0 0 36px;
    border-radius:8px;
    background:#132840;
    color:#fff;
    font-size:11px;
    font-weight:900;
}

.assignments-equipment-cell>div:last-child{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
}

.assignments-equipment-cell strong{
    color:#17365d;
    font-family:Consolas,monospace;
    font-size:11px;
}

.assignments-equipment-cell span,
.assignments-equipment-cell small{
    color:#66758a;
    font-size:10px;
}

.assignments-state-badge,
.assignments-origin-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    min-height:22px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}

.assignments-state-badge.registered,
.assignments-origin-badge.tag{
    background:#e3f7e8;
    color:#08752b;
}

.assignments-state-badge.pending,
.assignments-origin-badge.unassigned{
    background:#fff1c7;
    color:#925900;
}

.assignments-state-badge.orphan{
    background:#fde3e3;
    color:#a72b22;
}

.assignments-origin-badge.manual{
    background:#e8f1ff;
    color:#145ca8;
}

.assignments-client-cell{
    display:flex;
    min-width:170px;
    flex-direction:column;
    gap:2px;
}

.assignments-client-cell strong{
    color:#17365d;
    font-size:11px;
}

.assignments-client-cell span{
    color:#66758a;
    font-size:10px;
}

.assignments-row-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
}

.assignments-row-actions form{
    margin:0;
}

.assignments-empty-state{
    margin:16px;
}

@media(max-width:1150px){
    .assignments-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .assignments-editor-card{
        grid-template-columns:1fr;
    }

    .assignments-editor-intro{
        padding-right:0;
        padding-bottom:15px;
        border-right:0;
        border-bottom:1px solid #e2e8f0;
    }

    .assignments-editor-steps{
        flex-direction:row;
        flex-wrap:wrap;
    }

    .assignment-equipment-filter-grid,
    .assignments-list-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .assignment-equipment-filter-actions,
    .assignments-list-filter-grid .assignments-filter-actions{
        grid-column:1/-1;
    }
}

@media(max-width:800px){
    .assignments-page-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .assignments-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .assignments-editor-fields,
    .assignment-equipment-filter-grid,
    .assignments-pending-filter,
    .assignments-list-filter-grid{
        grid-template-columns:1fr;
    }

    .assignment-equipment-filter-actions,
    .assignments-filter-actions{
        grid-column:auto!important;
        align-items:stretch;
        flex-direction:column;
    }

    .assignment-equipment-filter-actions .btn,
    .assignments-filter-actions .btn{
        width:100%;
    }

    .assignments-editor-actions{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:460px){
    .assignments-summary-grid{
        grid-template-columns:1fr;
    }

    .assignment-equipment-search-heading,
    .assignments-section-heading{
        flex-direction:column;
    }
}


/* Smartcell V4.34 - Fallos de asignación TAG */
.tag-failures-page-header{
    align-items:center;
}

.tag-failures-header-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.tag-failures-summary-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.tag-failures-summary-card{
    padding:13px 15px;
    border:1px solid #d7e2ee;
    border-radius:9px;
    background:#fff;
    box-shadow:0 2px 7px rgba(23,54,93,.04);
}

.tag-failures-summary-card span{
    display:block;
    margin-bottom:3px;
    color:#607086;
    font-size:11px;
    font-weight:700;
}

.tag-failures-summary-card strong{
    color:#17365d;
    font-size:24px;
    line-height:1;
}

.tag-failures-summary-card.pending{
    border-left:4px solid #e09a21;
}

.tag-failures-summary-card.devices{
    border-left:4px solid #1686d9;
}

.tag-failures-summary-card.attempts{
    border-left:4px solid #8a63d2;
}

.tag-failures-summary-card.resolved{
    border-left:4px solid #2aa45a;
}

.tag-failures-summary-card.ignored{
    border-left:4px solid #7b8798;
}

.tag-failures-filter-card{
    padding:0;
    overflow:hidden;
    margin-bottom:14px;
}

.tag-failures-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:16px;
}

.tag-failures-section-heading h2{
    margin:0 0 3px;
}

.tag-failures-section-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.tag-failures-result-count,
.tag-failures-count-badge{
    flex-shrink:0;
    padding:6px 10px;
    border:1px solid #cddbeb;
    border-radius:999px;
    background:#f4f8fc;
    color:#17365d;
    font-size:10px;
    font-weight:900;
}

.tag-failures-count-badge.pending{
    border-color:#ecd59e;
    background:#fff8e7;
    color:#8d5b00;
}

.tag-failures-filter-grid{
    display:grid;
    grid-template-columns:minmax(250px,1.5fr) minmax(150px,.7fr)
        minmax(145px,.65fr) minmax(135px,.55fr)
        minmax(135px,.55fr) auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    background:#f8fafc;
}

.tag-failures-filter-grid label{
    min-width:0;
}

.tag-failures-filter-actions{
    display:flex;
    gap:7px;
}

.tag-failures-filter-actions .btn{
    min-height:39px;
    white-space:nowrap;
}

.tag-failures-list-card{
    padding:0;
    overflow:hidden;
    margin-bottom:14px;
}

.tag-failures-table-wrap{
    width:100%;
    overflow:auto;
    border-top:1px solid #dce5ef;
}

.tag-failures-table.pending-table{
    min-width:1250px;
}

.tag-failures-table.history-table{
    min-width:1050px;
}

.tag-failures-table td{
    vertical-align:middle;
}

.tag-failures-equipment-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:225px;
}

.tag-failures-equipment-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex:0 0 36px;
    border-radius:8px;
    background:#132840;
    color:#fff;
    font-size:11px;
    font-weight:900;
}

.tag-failures-equipment-cell>div:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
}

.tag-failures-equipment-cell strong{
    color:#17365d;
    font-family:Consolas,monospace;
    font-size:11px;
}

.tag-failures-equipment-cell span,
.tag-failures-equipment-cell small{
    color:#66758a;
    font-size:10px;
}

.tag-failures-tag-code{
    display:inline-flex;
    padding:5px 8px;
    border:1px solid #e7cf9a;
    border-radius:6px;
    background:#fff8e7;
    color:#855500;
    font-weight:800;
}

.tag-failures-assignment-cell,
.tag-failures-activity-cell,
.tag-failures-resolution-cell{
    display:flex;
    min-width:165px;
    flex-direction:column;
    gap:2px;
}

.tag-failures-assignment-cell strong,
.tag-failures-activity-cell strong,
.tag-failures-resolution-cell strong{
    color:#17365d;
    font-size:11px;
}

.tag-failures-assignment-cell span,
.tag-failures-activity-cell span,
.tag-failures-activity-cell small,
.tag-failures-resolution-cell span{
    color:#66758a;
    font-size:10px;
}

.tag-failures-source-badge,
.tag-failures-status-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    min-height:22px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}

.tag-failures-source-badge.manual{
    background:#e8f1ff;
    color:#145ca8;
}

.tag-failures-source-badge.tag,
.tag-failures-status-badge.resolved{
    background:#e3f7e8;
    color:#08752b;
}

.tag-failures-status-badge.ignored{
    background:#e9eef5;
    color:#536277;
}

.tag-failures-status-badge.pending{
    background:#fff1c7;
    color:#925900;
}

.tag-failures-row-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    min-width:255px;
}

.tag-failures-row-actions form{
    margin:0;
}

.tag-failures-json-detail td{
    padding:0!important;
    background:#f4f7fb!important;
}

.tag-failures-json-panel{
    display:grid;
    grid-template-columns:190px minmax(0,1fr);
    gap:12px;
    padding:13px;
}

.tag-failures-json-panel>div{
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:9px;
    border:1px solid #d7e1ed;
    border-radius:7px;
    background:#fff;
}

.tag-failures-json-panel>div strong{
    color:#17365d;
    font-size:11px;
}

.tag-failures-json-panel>div span{
    color:#66758a;
    font-size:10px;
}

.tag-failures-json-panel pre{
    max-height:420px;
    margin:0;
    padding:11px;
    overflow:auto;
    border:1px solid #dbe4ee;
    border-radius:7px;
    background:#111827;
    color:#e5edf6;
    font:11px/1.5 Consolas,Monaco,monospace;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.tag-failures-empty-state{
    margin:16px;
}

@media(max-width:1180px){
    .tag-failures-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .tag-failures-filter-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .tag-failures-search-field{
        grid-column:1/-1;
    }

    .tag-failures-filter-actions{
        grid-column:1/-1;
    }
}

@media(max-width:800px){
    .tag-failures-page-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .tag-failures-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .tag-failures-filter-grid{
        grid-template-columns:1fr;
    }

    .tag-failures-search-field,
    .tag-failures-filter-actions{
        grid-column:auto;
    }

    .tag-failures-filter-actions,
    .tag-failures-header-actions{
        width:100%;
        align-items:stretch;
        flex-direction:column;
    }

    .tag-failures-filter-actions .btn,
    .tag-failures-header-actions .btn{
        width:100%;
    }

    .tag-failures-json-panel{
        grid-template-columns:1fr;
    }
}

@media(max-width:460px){
    .tag-failures-summary-grid{
        grid-template-columns:1fr;
    }

    .tag-failures-section-heading{
        flex-direction:column;
    }
}


/* Smartcell V4.35 - Equipos no registrados */
.unregistered-page-header{
    align-items:center;
}

.unregistered-header-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.unregistered-summary-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.unregistered-summary-card{
    padding:13px 15px;
    border:1px solid #d7e2ee;
    border-radius:9px;
    background:#fff;
    box-shadow:0 2px 7px rgba(23,54,93,.04);
}

.unregistered-summary-card span{
    display:block;
    margin-bottom:3px;
    color:#607086;
    font-size:11px;
    font-weight:700;
}

.unregistered-summary-card strong{
    color:#17365d;
    font-size:24px;
    line-height:1;
}

.unregistered-summary-card.pending{
    border-left:4px solid #e09a21;
}

.unregistered-summary-card.recent{
    border-left:4px solid #1686d9;
}

.unregistered-summary-card.tag{
    border-left:4px solid #8a63d2;
}

.unregistered-summary-card.location{
    border-left:4px solid #2aa45a;
}

.unregistered-summary-card.registered{
    border-left:4px solid #0d8c6f;
}

.unregistered-summary-card.ignored{
    border-left:4px solid #7b8798;
}

.unregistered-filter-card,
.unregistered-list-card{
    padding:0;
    overflow:hidden;
    margin-bottom:14px;
}

.unregistered-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:16px;
}

.unregistered-section-heading h2{
    margin:0 0 3px;
}

.unregistered-section-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.unregistered-result-count,
.unregistered-count-badge{
    flex-shrink:0;
    padding:6px 10px;
    border:1px solid #cddbeb;
    border-radius:999px;
    background:#f4f8fc;
    color:#17365d;
    font-size:10px;
    font-weight:900;
}

.unregistered-count-badge.pending{
    border-color:#ecd59e;
    background:#fff8e7;
    color:#8d5b00;
}

.unregistered-filter-grid{
    display:grid;
    grid-template-columns:minmax(250px,1.5fr)
        minmax(160px,.8fr)
        minmax(140px,.65fr)
        minmax(145px,.65fr)
        minmax(135px,.55fr)
        minmax(135px,.55fr)
        auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    background:#f8fafc;
}

.unregistered-filter-grid label{
    min-width:0;
}

.unregistered-filter-actions{
    display:flex;
    gap:7px;
}

.unregistered-filter-actions .btn{
    min-height:39px;
    white-space:nowrap;
}

.unregistered-table-wrap{
    width:100%;
    overflow:auto;
    border-top:1px solid #dce5ef;
}

.unregistered-table.redesigned{
    min-width:1220px;
}

.unregistered-history-table{
    min-width:980px;
}

.unregistered-table.redesigned td,
.unregistered-history-table td{
    vertical-align:middle;
}

.unregistered-summary-row{
    cursor:default;
}

.unregistered-summary-row:hover{
    background:#f8fafc;
}

.unregistered-equipment-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:220px;
}

.unregistered-equipment-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex:0 0 36px;
    border-radius:8px;
    background:#132840;
    color:#fff;
    font-size:11px;
    font-weight:900;
}

.unregistered-equipment-cell>div:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
}

.unregistered-equipment-cell strong{
    color:#17365d;
    font-family:Consolas,monospace;
    font-size:11px;
}

.unregistered-equipment-cell span,
.unregistered-equipment-cell small{
    color:#66758a;
    font-size:10px;
}

.unregistered-identification-cell,
.unregistered-communication-cell,
.unregistered-assignment-cell{
    display:flex;
    min-width:175px;
    flex-direction:column;
    gap:2px;
}

.unregistered-identification-cell strong,
.unregistered-communication-cell strong,
.unregistered-assignment-cell strong{
    color:#17365d;
    font-size:11px;
}

.unregistered-identification-cell span,
.unregistered-identification-cell small,
.unregistered-communication-cell span,
.unregistered-communication-cell small,
.unregistered-assignment-cell span{
    color:#66758a;
    font-size:10px;
}

.unregistered-assignment-cell code{
    display:inline-flex;
    width:max-content;
    max-width:210px;
    margin-bottom:3px;
    padding:3px 7px;
    overflow:hidden;
    border:1px solid #e7cf9a;
    border-radius:6px;
    background:#fff8e7;
    color:#855500;
    font-size:10px;
    font-weight:800;
    text-overflow:ellipsis;
}

.unregistered-status-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    min-height:22px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}

.unregistered-status-badge.pending,
.unregistered-status-badge.pending_approval,
.unregistered-status-badge.new,
.unregistered-status-badge.unregistered,
.unregistered-status-badge.waiting{
    background:#fff1c7;
    color:#925900;
}

.unregistered-status-badge.registered{
    background:#e3f7e8;
    color:#08752b;
}

.unregistered-status-badge.ignored{
    background:#e9eef5;
    color:#536277;
}

.unregistered-detail-row td{
    padding:0!important;
    background:#f4f7fb!important;
}

.unregistered-detail-panel.redesigned{
    padding:14px;
    border-left:4px solid #d97706;
}

.unregistered-detail-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.unregistered-detail-header>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.unregistered-detail-header strong{
    color:#17365d;
}

.unregistered-detail-header span{
    color:#66758a;
    font-size:10px;
}

.unregistered-detail-grid{
    display:grid;
    grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);
    gap:12px;
    margin-top:12px;
}

.unregistered-detail-grid>section{
    min-width:0;
    padding:12px;
    border:1px solid #d7e1ed;
    border-radius:8px;
    background:#fff;
}

.unregistered-detail-grid h3,
.unregistered-register-section h3{
    margin:0 0 8px;
    color:#17365d;
    font-size:13px;
}

.unregistered-register-section{
    display:grid;
    grid-template-columns:190px minmax(0,1fr) auto;
    gap:14px;
    align-items:start;
    margin-top:13px;
    padding:13px;
    border:1px solid #d7e1ed;
    border-radius:8px;
    background:#fff;
}

.unregistered-register-section>div p{
    margin:0;
    color:#66758a;
    font-size:10px;
    line-height:1.4;
}

.unregistered-register-fields{
    display:grid;
    grid-template-columns:repeat(3,minmax(150px,1fr));
    gap:10px;
}

.unregistered-register-fields label{
    min-width:0;
}

.unregistered-action-buttons{
    margin-top:9px;
}

.ignore-device-form{
    margin:24px 0 0;
}

.unknown-variable-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
    gap:8px;
}

.unknown-variable-item{
    display:flex;
    gap:7px;
    align-items:flex-start;
    border:1px solid #dce5ef;
    border-radius:7px;
    padding:8px;
    background:#f8fafc;
    cursor:pointer;
}

.unknown-variable-item small,
.unknown-variable-item strong{
    display:block;
    overflow-wrap:anywhere;
}

.unknown-variable-item small{
    color:#66758a;
}

.unknown-variable-actions{
    display:flex;
    align-items:end;
    gap:10px;
    flex-wrap:wrap;
    margin-top:12px;
}

.unknown-variable-actions label{
    min-width:240px;
}

.unregistered-history-table small{
    display:block;
    margin-top:2px;
    color:#66758a;
    font-size:10px;
}

.unregistered-empty-state{
    margin:16px;
}

@media(max-width:1250px){
    .unregistered-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .unregistered-filter-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .unregistered-search-field{
        grid-column:1/-1;
    }

    .unregistered-filter-actions{
        grid-column:1/-1;
    }
}

@media(max-width:1000px){
    .unregistered-detail-grid{
        grid-template-columns:1fr;
    }

    .unregistered-register-section{
        grid-template-columns:1fr;
    }

    .ignore-device-form{
        margin-top:0;
    }
}

@media(max-width:800px){
    .unregistered-page-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .unregistered-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .unregistered-filter-grid,
    .unregistered-register-fields{
        grid-template-columns:1fr;
    }

    .unregistered-search-field,
    .unregistered-filter-actions{
        grid-column:auto;
    }

    .unregistered-header-actions,
    .unregistered-filter-actions{
        width:100%;
        align-items:stretch;
        flex-direction:column;
    }

    .unregistered-header-actions .btn,
    .unregistered-filter-actions .btn{
        width:100%;
    }
}

@media(max-width:460px){
    .unregistered-summary-grid{
        grid-template-columns:1fr;
    }

    .unregistered-section-heading,
    .unregistered-detail-header{
        flex-direction:column;
    }
}


/* Smartcell V4.36 - rediseño profesional de Clientes */
.clients-page-header{
    align-items:center;
}

.clients-header-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.clients-summary-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.clients-summary-card{
    padding:13px 15px;
    border:1px solid #d7e2ee;
    border-radius:9px;
    background:#fff;
    box-shadow:0 2px 7px rgba(23,54,93,.04);
}

.clients-summary-card span{
    display:block;
    margin-bottom:3px;
    color:#607086;
    font-size:11px;
    font-weight:700;
}

.clients-summary-card strong{
    color:#17365d;
    font-size:24px;
    line-height:1;
}

.clients-summary-card.active{
    border-left:4px solid #2aa45a;
}

.clients-summary-card.inactive{
    border-left:4px solid #7b8798;
}

.clients-summary-card.variables{
    border-left:4px solid #1686d9;
}

.clients-summary-card.identifiers{
    border-left:4px solid #8a63d2;
}

.clients-summary-card.locations{
    border-left:4px solid #0d8c6f;
}

.clients-create-card{
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
    gap:22px;
    margin-bottom:14px;
}

.clients-create-intro{
    padding-right:20px;
    border-right:1px solid #e2e8f0;
}

.clients-section-kicker{
    display:inline-block;
    margin-bottom:5px;
    color:#0d67c7;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.clients-create-intro h2{
    margin:0 0 7px;
}

.clients-create-intro p{
    margin:0;
    color:#66758a;
    font-size:12px;
    line-height:1.45;
}

.clients-create-steps{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:15px;
}

.clients-create-steps span{
    padding:7px 9px;
    border:1px solid #dce6f0;
    border-radius:6px;
    background:#f8fafc;
    color:#38506d;
    font-size:11px;
    font-weight:700;
}

.clients-create-form{
    min-width:0;
}

.clients-create-fields{
    display:grid;
    grid-template-columns:minmax(260px,1.35fr) minmax(180px,.65fr);
    gap:13px;
    align-items:start;
}

.clients-create-actions{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:13px;
}

.clients-create-actions span{
    color:#66758a;
    font-size:10px;
}

.clients-list-card{
    padding:0;
    overflow:hidden;
    margin-bottom:14px;
}

.clients-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    padding:16px;
}

.clients-section-heading h2{
    margin:0 0 3px;
}

.clients-section-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.clients-filter-grid{
    display:grid;
    grid-template-columns:minmax(270px,1.5fr) minmax(170px,.6fr) auto;
    gap:10px;
    align-items:end;
    padding:12px 16px;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #dce5ef;
    background:#f8fafc;
}

.clients-filter-grid label{
    min-width:0;
}

.clients-filter-actions{
    display:flex;
    gap:7px;
}

.clients-filter-actions .btn{
    min-height:39px;
    white-space:nowrap;
}

.clients-table-wrap.redesigned{
    width:100%;
    overflow:auto;
}

.clients-table.redesigned{
    min-width:1050px;
}

.clients-table.redesigned th,
.clients-table.redesigned td{
    vertical-align:middle;
}

.clients-table.redesigned tr.selected-table-row td{
    background:#eef6fd;
}

.clients-client-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:220px;
}

.clients-client-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:9px;
    background:#132840;
    color:#fff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.03em;
}

.clients-client-icon.large{
    width:48px;
    height:48px;
    flex-basis:48px;
    font-size:14px;
}

.clients-client-cell>div:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
}

.clients-client-cell strong{
    color:#17365d;
    font-size:12px;
}

.clients-client-cell span{
    color:#66758a;
    font-size:10px;
}

.clients-status-badge,
.clients-location-count{
    display:inline-flex;
    align-items:center;
    width:max-content;
    min-height:22px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}

.clients-status-badge.active{
    background:#e3f7e8;
    color:#08752b;
}

.clients-status-badge.inactive{
    background:#e9eef5;
    color:#536277;
}

.clients-location-count{
    background:#edf4fb;
    color:#175d99;
}

.clients-metrics-cell{
    display:flex;
    min-width:150px;
    flex-direction:column;
    gap:3px;
}

.clients-metrics-cell span{
    color:#66758a;
    font-size:10px;
}

.clients-metrics-cell strong{
    color:#17365d;
    font-size:11px;
}

.clients-empty-state{
    margin:16px;
}

.clients-config-card{
    padding:0;
    overflow:hidden;
    margin-bottom:16px;
}

.clients-config-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:17px;
    border-bottom:1px solid #dce5ef;
    background:linear-gradient(135deg,#f8fbff,#eef5fc);
}

.clients-config-title{
    display:flex;
    align-items:center;
    gap:12px;
}

.clients-config-title h2{
    margin:1px 0 3px;
}

.clients-config-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    color:#66758a;
    font-size:10px;
}

.clients-config-navigation{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
}

.clients-config-navigation a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:5px 10px;
    border:1px solid #bfd1e4;
    border-radius:6px;
    background:#fff;
    color:#175d99;
    font-size:10px;
    font-weight:800;
    text-decoration:none;
}

.clients-config-navigation a:hover{
    background:#eaf3fc;
}

.clients-config-summary{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:9px;
    padding:13px 16px;
    border-bottom:1px solid #e5ebf2;
    background:#fff;
}

.clients-config-summary article{
    padding:10px 11px;
    border:1px solid #dce5ef;
    border-radius:7px;
    background:#f8fafc;
}

.clients-config-summary span{
    display:block;
    color:#66758a;
    font-size:9px;
    font-weight:700;
}

.clients-config-summary strong{
    display:block;
    margin-top:2px;
    color:#17365d;
    font-size:20px;
    line-height:1;
}

.clients-variable-proposal{
    margin:16px;
    padding:14px;
    border:1px solid #b9d5ef;
    border-left:4px solid #1686d9;
    border-radius:8px;
    background:#f4f9fe;
}

.clients-variable-proposal h3{
    margin:0 0 5px;
    color:#17365d;
}

.clients-variable-proposal p{
    margin:0 0 10px;
    color:#66758a;
    font-size:11px;
}

.proposal-table-wrap{
    width:100%;
    margin:10px 0;
    overflow:auto;
}

.proposal-table{
    min-width:1050px;
}

.proposal-table input,
.proposal-table select{
    min-width:105px;
}

.proposal-table code{
    white-space:nowrap;
}

.clients-config-section{
    padding:16px;
    border-top:1px solid #e5ebf2;
    scroll-margin-top:80px;
}

.clients-config-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    margin-bottom:13px;
}

.clients-config-section-heading h3{
    margin:0 0 3px;
    color:#17365d;
    font-size:16px;
}

.clients-config-section-heading p{
    margin:0;
    color:#66758a;
    font-size:11px;
}

.clients-config-count{
    flex-shrink:0;
    padding:6px 10px;
    border:1px solid #cddbeb;
    border-radius:999px;
    background:#f4f8fc;
    color:#17365d;
    font-size:10px;
    font-weight:900;
}

.clients-config-subtitle{
    margin:0 0 8px;
    color:#38506d;
    font-size:11px;
}

.clients-config-section>form:first-of-type{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
    padding:11px;
    border:1px solid #dce5ef;
    border-radius:8px;
    background:#f8fafc;
}

.clients-config-section>form:first-of-type .row{
    margin:0;
}

.variable-editor-list{
    display:flex;
    flex-direction:column;
    gap:9px;
    margin-top:12px;
}

.variable-editor-row{
    padding:11px;
    border:1px solid #dce5ef;
    border-radius:8px;
    background:#fff;
}

.variable-editor-row:hover{
    border-color:#bdd0e4;
    box-shadow:0 2px 7px rgba(23,54,93,.05);
}

.variable-editor-row-actions{
    display:flex;
    align-items:flex-end;
    gap:8px;
    flex-wrap:wrap;
}

.variable-main-line{
    display:flex;
    align-items:flex-end;
    gap:8px;
    flex:1 1 760px;
    flex-wrap:wrap;
}

.variable-update-form{
    display:grid;
    grid-template-columns:minmax(145px,1fr)
        minmax(180px,1.25fr)
        minmax(110px,.65fr)
        minmax(75px,.4fr)
        auto;
    align-items:end;
    gap:8px;
    flex:1 1 690px;
}

.variable-update-form label{
    min-width:0;
}

.variable-order-field{
    min-width:75px;
}

.variable-limits-form{
    margin-top:10px;
    padding:11px;
    border:1px solid #bfd1e4;
    border-radius:7px;
    background:#f5f9fd;
}

.variable-limits-heading{
    margin-bottom:9px;
}

.variable-limits-heading strong{
    display:block;
    color:#17365d;
    font-size:11px;
}

.variable-limits-heading span{
    color:#66758a;
    font-size:10px;
}

.variable-limits-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(130px,1fr));
    gap:8px;
}

.variable-limits-actions{
    margin-top:9px;
}

.config-chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:13px;
}

.config-chip{
    display:grid;
    grid-template-columns:minmax(110px,1fr) auto;
    gap:3px 8px;
    min-width:190px;
    padding:9px 10px;
    border:1px solid #d5e0eb;
    border-radius:8px;
    background:#f8fafc;
}

.config-chip strong{
    color:#17365d;
    font-size:11px;
}

.config-chip span{
    grid-column:1;
    color:#66758a;
    font-size:9px;
}

.config-chip form{
    grid-column:2;
    grid-row:1/3;
    align-self:center;
}

.clients-danger-zone{
    margin:0 16px 16px;
    padding:14px;
    border:1px solid #efc8c5;
    border-left:4px solid #c9372c;
    border-radius:8px;
    background:#fff8f7;
}

.clients-danger-zone h3{
    margin:0 0 8px;
    color:#9d251c;
}

.clients-danger-zone form{
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto;
    gap:10px;
    align-items:end;
}

.clients-danger-zone label{
    min-width:0;
}

@media(max-width:1250px){
    .clients-summary-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .clients-create-card{
        grid-template-columns:1fr;
    }

    .clients-create-intro{
        padding-right:0;
        padding-bottom:15px;
        border-right:0;
        border-bottom:1px solid #e2e8f0;
    }

    .clients-create-steps{
        flex-direction:row;
        flex-wrap:wrap;
    }

    .clients-config-summary{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .variable-update-form{
        grid-template-columns:repeat(2,minmax(150px,1fr));
    }
}

@media(max-width:850px){
    .clients-page-header,
    .clients-config-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .clients-header-actions,
    .clients-config-navigation{
        width:100%;
    }

    .clients-create-fields,
    .clients-filter-grid{
        grid-template-columns:1fr;
    }

    .clients-filter-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .clients-filter-actions .btn,
    .clients-header-actions .btn{
        width:100%;
    }

    .clients-config-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .variable-limits-grid{
        grid-template-columns:repeat(2,minmax(130px,1fr));
    }

    .clients-danger-zone form{
        grid-template-columns:1fr;
    }
}

@media(max-width:560px){
    .clients-summary-grid,
    .clients-config-summary{
        grid-template-columns:1fr;
    }

    .clients-create-actions{
        align-items:flex-start;
        flex-direction:column;
    }

    .clients-config-title{
        align-items:flex-start;
    }

    .clients-config-navigation{
        flex-direction:column;
        align-items:stretch;
    }

    .clients-config-navigation a{
        width:100%;
    }

    .clients-config-section-heading{
        flex-direction:column;
    }

    .variable-update-form,
    .variable-limits-grid{
        grid-template-columns:1fr;
    }
}


/* Smartcell V4.38 - eliminación segura de cuentas de usuario */
.user-management-actions{
    display:flex;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:7px;
    min-width:180px;
}

.user-delete-account{
    min-width:0;
}

.user-delete-account>summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:5px 9px;
    border:1px solid #e3b2ae;
    border-radius:6px;
    background:#fff7f6;
    color:#b42318;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
    list-style:none;
    white-space:nowrap;
}

.user-delete-account>summary::-webkit-details-marker{
    display:none;
}

.user-delete-account[open]{
    width:100%;
}

.user-delete-account[open]>summary{
    margin-bottom:7px;
}

.user-delete-account-panel{
    display:grid;
    gap:8px;
    width:300px;
    padding:10px;
    border:1px solid #efc8c5;
    border-radius:7px;
    background:#fffafa;
}

.user-delete-account-panel p{
    margin:0;
    color:#7d4743;
    font-size:10px;
    line-height:1.4;
}

.user-delete-account-panel label{
    font-size:10px;
}

.user-delete-account-panel label strong{
    display:block;
    margin:3px 0 5px;
    color:#9d251c;
    font-family:Consolas,monospace;
    font-size:10px;
    overflow-wrap:anywhere;
}

.user-delete-account-panel input{
    min-height:34px;
}

@media(max-width:760px){
    .user-management-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .user-management-actions>.btn,
    .user-delete-account>summary{
        width:100%;
    }

    .user-delete-account-panel{
        width:100%;
    }
}


/* Smartcell V4.40 - configuración SMTP */
.smtp-settings-section{
    scroll-margin-top:80px;
}

.smtp-configuration-badge{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:5px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}

.smtp-configuration-badge.ready{
    border:1px solid #a8d9b5;
    background:#e3f7e8;
    color:#08752b;
}

.smtp-configuration-badge.pending{
    border:1px solid #ecd59e;
    background:#fff8e7;
    color:#8d5b00;
}

.smtp-settings-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.smtp-settings-toggle-row{
    display:grid;
    grid-template-columns:minmax(270px,1fr) minmax(230px,.65fr);
    gap:12px;
}

.smtp-switch-card{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px;
    border:1px solid #c8d8e8;
    border-radius:8px;
    background:#f5f9fd;
    cursor:pointer;
}

.smtp-switch-card input{
    width:18px;
    height:18px;
    margin-top:1px;
    flex:0 0 18px;
}

.smtp-switch-card>span{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.smtp-switch-card strong{
    color:#17365d;
    font-size:12px;
}

.smtp-switch-card small{
    color:#66758a;
    font-size:10px;
    line-height:1.4;
}

.smtp-password-state{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    padding:12px;
    border-radius:8px;
}

.smtp-password-state.ready{
    border:1px solid #b8ddc1;
    background:#f0faf3;
}

.smtp-password-state.pending{
    border:1px solid #ecd59e;
    background:#fff9eb;
}

.smtp-password-state strong{
    color:#17365d;
    font-size:11px;
}

.smtp-password-state span{
    color:#66758a;
    font-size:10px;
}

.smtp-settings-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
}

.smtp-settings-grid label{
    min-width:0;
}

.smtp-settings-grid label>small{
    display:block;
    margin-top:4px;
    color:#66758a;
    font-size:9px;
    line-height:1.35;
}

.smtp-wide-field{
    grid-column:span 2;
}

.smtp-input-unit{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
}

.smtp-input-unit span{
    color:#66758a;
    font-size:10px;
    font-weight:700;
}

.smtp-advanced-options{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px 18px;
    padding:11px 12px;
    border:1px solid #dce5ef;
    border-radius:8px;
    background:#f8fafc;
}

.smtp-advanced-options label{
    display:flex;
    align-items:center;
    gap:7px;
    margin:0;
    color:#38506d;
    font-size:10px;
    font-weight:700;
    cursor:pointer;
}

.smtp-advanced-options input{
    width:16px;
    height:16px;
    margin:0;
}

.smtp-test-panel{
    display:grid;
    grid-template-columns:minmax(240px,.75fr) minmax(350px,1.25fr);
    gap:12px;
    align-items:end;
    padding:13px;
    border:1px solid #bdd0e4;
    border-radius:8px;
    background:#f4f9fe;
}

.smtp-settings-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.smtp-help-note{
    padding:10px 12px;
    border-left:4px solid #1686d9;
    border-radius:6px;
    background:#eef6fd;
    color:#40556f;
    font-size:10px;
    line-height:1.5;
}

.smtp-help-note strong{
    color:#17365d;
}

@media(max-width:1150px){
    .smtp-settings-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:800px){
    .smtp-settings-toggle-row,
    .smtp-test-panel{
        grid-template-columns:1fr;
    }

    .smtp-settings-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .smtp-settings-actions .btn{
        width:100%;
    }
}

@media(max-width:560px){
    .smtp-settings-grid{
        grid-template-columns:1fr;
    }

    .smtp-wide-field{
        grid-column:auto;
    }

    .smtp-advanced-options{
        align-items:flex-start;
        flex-direction:column;
    }
}
