@font-face {
    font-family: 'Nexa';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: local('Nexa'), local('Nexa Light'), url('https://fonts.cdnfonts.com/s/16221/NexaLight.woff') format('woff');
}
@font-face {
    font-family: 'Nexa';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: local('Nexa'), local('Nexa Bold'), url('https://fonts.cdnfonts.com/s/16221/NexaBold.woff') format('woff');
}

:root {
    --clouding-primary: #0F4474;
    --clouding-secondary: #33A6DD;
    --bg: #f5f7fb;
    --text: #1f2937;
    --muted: #6b7280;
    --panel: #ffffff;
    --border: #e5e7eb;
}
* { box-sizing: border-box; }
button,input,select,textarea{font-family:'Nexa',Arial,sans-serif;}
body { margin:0; font-family:'Nexa', Arial, sans-serif; font-weight:300; background: var(--bg); color: var(--text); }
a { color: var(--clouding-secondary); text-decoration: none; }
.guest-body { min-height:100vh; display:flex; align-items:center; justify-content:center; background: radial-gradient(circle at top left, #33A6DD 0, #0F4474 40%, #071d33 100%); }
.login-card { width: 420px; max-width: calc(100vw - 32px); background: #fff; border-radius: 24px; padding: 36px; box-shadow: 0 25px 70px rgba(0,0,0,.30); }
.login-logo img { width: 180px; display:block; margin-bottom:24px; }
.login-card h1 { margin:0 0 8px; color: var(--clouding-primary); }
.login-card p { color: var(--muted); margin:0 0 24px; }
label { display:block; font-weight:700; color:#334155; margin: 12px 0 6px; }
input, select { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:12px; font-size:14px; }
button { border:0; background: var(--clouding-primary); color:white; padding:12px 18px; border-radius:12px; font-weight:800; cursor:pointer; margin-top:18px; }
button.secondary { background: var(--clouding-secondary); }
small { display:block; margin-top:20px; color: var(--muted); }
.alert { padding:12px 14px; border-radius:12px; margin:12px 0; font-weight:700; }
.alert-error { background:#fee2e2; color:#991b1b; }
.alert-success { background:#dcfce7; color:#166534; }
.alert-warning { background:#fef3c7; color:#92400e; }
.app-shell { display:flex; min-height:100vh; }
.sidebar { width:260px; background:linear-gradient(180deg,#0F4474,#092b4a); color:white; padding:24px; }
.brand img { width:180px; margin-bottom:34px; }
.sidebar nav a { display:block; color:white; padding:12px 14px; border-radius:12px; margin-bottom:8px; font-weight:700; }
.sidebar nav a:hover { background: rgba(255,255,255,.12); }
.main { flex:1; min-width:0; }
.topbar { height:72px; background:#fff; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; padding:0 28px; }
.user-menu { color: var(--muted); }
.user-menu a { margin-left:16px; font-weight:800; }
.content { padding:28px; }
h1 { margin:0 0 6px; color: var(--clouding-primary); }
.muted { color: var(--muted); }
.grid-cards { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:16px; margin:24px 0; }
.metric-card, .panel { background: var(--panel); border:1px solid var(--border); border-radius:18px; padding:20px; box-shadow:0 10px 30px rgba(15,68,116,.05); }
.metric-card span { display:block; color: var(--muted); font-weight:700; }
.metric-card strong { display:block; color: var(--clouding-primary); font-size:34px; margin-top:8px; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px 18px; }
.form-grid .checkbox, .form-actions { grid-column:1 / -1; }
.checkbox { display:flex; gap:10px; align-items:center; }
.checkbox input { width:auto; }
.log-box { background:#0f172a; color:#d1e7ff; padding:14px; border-radius:12px; overflow:auto; max-height:320px; }
@media (max-width: 900px) { .sidebar { display:none; } .grid-cards, .form-grid { grid-template-columns:1fr; } }

textarea { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:12px; font-size:14px; font-family:inherit; resize:vertical; }
.btn { display:inline-block; border:0; background: var(--clouding-primary); color:white; padding:12px 18px; border-radius:12px; font-weight:800; cursor:pointer; margin-top:0; }
.btn.secondary, button.secondary { background: var(--clouding-secondary); color:#fff; }
.btn.secondary-link { background:#eef2f7; color:var(--clouding-primary); }
.nav-section { margin:22px 0 8px; padding:0 14px; color:rgba(255,255,255,.62); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.grid-two { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:18px; margin:20px 0; }
.grid-two.compact { margin:0; }
.form-grid.single { grid-template-columns:1fr; }
.form-grid .span-2 { grid-column:1 / -1; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:20px 0; }
.search-form { display:flex; gap:10px; flex:1; max-width:720px; }
.search-form button { margin-top:0; white-space:nowrap; }
.page-actions { display:flex; gap:12px; align-items:center; margin:22px 0; }
.quick-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.table-panel { overflow:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:760px; }
.data-table th { text-align:left; color:#475569; font-size:13px; border-bottom:1px solid var(--border); padding:12px; }
.data-table td { border-bottom:1px solid var(--border); padding:13px 12px; vertical-align:top; }
.data-table tr:last-child td { border-bottom:0; }
.actions { white-space:nowrap; text-align:right; }
.badge { display:inline-block; border-radius:999px; padding:5px 10px; font-size:12px; font-weight:800; background:#e5e7eb; color:#374151; }
.badge-active { background:#dcfce7; color:#166534; }
.badge-blocked { background:#fef3c7; color:#92400e; }
.badge-disabled { background:#e5e7eb; color:#4b5563; }
.details { display:grid; grid-template-columns:180px 1fr; gap:8px 14px; margin:0; }
.details dt { color:#64748b; font-weight:800; }
.details dd { margin:0; word-break:break-word; }
@media (max-width: 900px) { .grid-two { grid-template-columns:1fr; } .toolbar, .search-form { flex-direction:column; align-items:stretch; } .details { grid-template-columns:1fr; } }

.integration-table { min-width: 980px; }
.integration-table input { min-width: 150px; }
.integration-table input[type="radio"] { min-width: auto; width: auto; }
button.tiny, .btn.tiny { padding: 8px 10px; border-radius: 10px; font-size: 12px; margin-top: 0; }
.compact-checkbox { margin: 10px 0 18px; }
.integration-table-wrap { margin-top: 12px; }
h3 { color: var(--clouding-primary); margin: 20px 0 6px; }

.conditional-section { border: 1px dashed var(--border); border-radius: 16px; padding: 16px; margin: 14px 0; background: #fbfdff; }
code { background: #eef2f7; color: var(--clouding-primary); padding: 2px 6px; border-radius: 6px; font-weight: 800; }

/* Integraciones técnicas - pestañas y preview real */
.integration-tabs { display:flex; gap:10px; flex-wrap:wrap; margin:22px 0; padding:10px; background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 10px 30px rgba(15,68,116,.04); }
.integration-tab { display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:14px; font-weight:800; color:var(--clouding-primary); background:#eef2f7; }
.integration-tab:hover { background:#dceaf7; }
.integration-tab.active { color:#fff; background:linear-gradient(135deg,var(--clouding-primary),var(--clouding-secondary)); box-shadow:0 10px 22px rgba(15,68,116,.20); }
.inline-form { display:inline-block; margin:6px 4px 0 0; }
.inline-form button { margin-top:0; }
.graph-preview-box { width:100%; overflow:auto; border:1px solid var(--border); border-radius:18px; background:#f8fafc; padding:16px; margin-top:18px; }
.graph-preview-box img { display:block; max-width:100%; height:auto; border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(15,68,116,.08); }

/* V1.7 - Integraciones: tabs corporativas y explorador PDF */
.integration-tabs {
    display:flex;
    gap:0;
    flex-wrap:wrap;
    margin:24px 0;
    padding:0;
    background:#1f2937;
    border:1px solid rgba(15,68,116,.18);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 16px 36px rgba(15,68,116,.13);
}
.integration-tab {
    min-width:190px;
    min-height:74px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 24px;
    border-radius:0;
    font-weight:900;
    font-size:17px;
    color:#ffffff;
    background:#26313f;
    border-right:1px solid rgba(255,255,255,.10);
    transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.integration-tab:hover {
    background:#334155;
    color:#ffffff;
}
.integration-tab.active {
    color:#ffffff;
    background:linear-gradient(135deg,var(--clouding-primary),var(--clouding-secondary));
    box-shadow: inset 0 -4px 0 rgba(255,255,255,.20), 0 10px 24px rgba(15,68,116,.24);
}
.integration-tab .tab-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    font-size:24px;
    line-height:1;
    color:#ffffff;
}
.report-breadcrumb { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:14px 0 18px; }
.compact-report-stats { grid-template-columns: repeat(4, minmax(0,1fr)); margin:16px 0; }
.report-browser-table { min-width: 850px; }
.pdf-preview-frame { width:100%; height:720px; border:1px solid var(--border); border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(15,68,116,.08); }
.report-ssh-fields, .report-local-fields { background:#fbfdff; }
@media (max-width: 900px) {
    .integration-tab { min-width:50%; font-size:15px; min-height:60px; }
    .compact-report-stats { grid-template-columns:1fr; }
    .pdf-preview-frame { height:520px; }
}

/* V1.8 - ajustes Clouding: pestañas más claras, acciones destructivas y formularios por pestañas */
.integration-tabs {
    background: linear-gradient(135deg, #0F4474 0%, #176391 100%) !important;
    border: 1px solid rgba(51,166,221,.35) !important;
    box-shadow: 0 14px 34px rgba(15,68,116,.16) !important;
}
.integration-tab {
    background: rgba(255,255,255,.09) !important;
    color: #fff !important;
    border-right: 1px solid rgba(255,255,255,.18) !important;
}
.integration-tab:hover {
    background: rgba(51,166,221,.35) !important;
}
.integration-tab.active {
    background: linear-gradient(135deg, #33A6DD 0%, #1f83bd 100%) !important;
    box-shadow: inset 0 -4px 0 rgba(255,255,255,.32), 0 10px 24px rgba(15,68,116,.20) !important;
}
button.danger, .btn.danger {
    background: #dc2626;
    color: #fff;
}
button.danger:hover, .btn.danger:hover {
    background: #b91c1c;
}
.status-form { margin:0; }
.status-form select { min-width:150px; padding:8px 10px; border-radius:10px; }
.module-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:0;
    margin:22px 0;
    background:#e8f3fb;
    border:1px solid rgba(15,68,116,.18);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(15,68,116,.08);
}
.module-tab {
    margin:0;
    min-width:160px;
    border-radius:0;
    background:#eef7fc;
    color:var(--clouding-primary);
    border-right:1px solid rgba(15,68,116,.12);
    padding:16px 22px;
}
.module-tab:hover { background:#d9edf9; }
.module-tab.active {
    color:#fff;
    background:linear-gradient(135deg,var(--clouding-primary),var(--clouding-secondary));
}
.module-tab-panel { display:none; }
.module-tab-panel.active { display:block; }
@media (max-width:900px) {
    .module-tab { min-width:50%; }
}

/* V1.9 - inventario Nubibus, contratos y catálogo de gráficas */
.row-title-link { color: var(--clouding-primary); font-weight:900; }
.row-title-link:hover { color: var(--clouding-secondary); text-decoration:underline; }
.contract-active { color: var(--clouding-primary); font-weight:900; }
.contract-warning { color:#b7791f; font-weight:900; }
.contract-danger { color:#dc2626; font-weight:900; }
.contract-muted { color: var(--muted); font-weight:900; }
.compact-config-card { margin-top:18px; padding:16px; border:1px solid var(--border); background:#fbfdff; border-radius:16px; }
.sync-panel { margin:18px 0; padding:16px; border:1px solid rgba(51,166,221,.28); border-radius:18px; background:#f0f8fc; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.vm-table { min-width:1100px; }
.graph-link-list { display:flex; flex-wrap:wrap; gap:6px; }
.compact-inline-form { display:grid; grid-template-columns: 1fr 1fr 120px auto auto; gap:10px; align-items:end; margin:14px 0 18px; }
.compact-inline-form input { min-width:0; }
.inline-checkbox { margin:0; white-space:nowrap; }
.graph-type-pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.graph-type-pill { display:flex; gap:12px; align-items:center; justify-content:space-between; min-width:240px; max-width:340px; padding:12px 14px; border:1px solid rgba(15,68,116,.14); background:#ffffff; border-radius:16px; box-shadow:0 8px 22px rgba(15,68,116,.06); }
.graph-type-pill.is-disabled { opacity:.55; }
@media (max-width:900px) {
    .compact-inline-form { grid-template-columns:1fr; }
    .sync-panel { align-items:stretch; }
}

/* V1.10 - Login, tabs, SLA/DC y seguridad */
.text-center { text-align:center; }
.login-logo.centered img { margin:0 auto 22px; width:190px; }
.login-card h1 { text-align:center; }
.login-card .login-form { text-align:left; }
.login-actions { display:flex; justify-content:center; margin-top:14px; }
.login-actions button { min-width:130px; }
.login-link { display:block; margin:16px 0 8px; font-weight:800; color:var(--clouding-primary); }
.login-country { font-weight:800; color:var(--clouding-primary); margin-top:6px; }
.turnstile-wrap { display:flex; justify-content:center; margin:16px 0 4px; }
.breakable { word-break:break-all; white-space:normal; }
.details-wide { grid-template-columns:140px 1fr; }
.slim-tabs { margin:18px 0; }
.inline-metric { display:inline-block; min-width:220px; margin-bottom:16px; }
.sla-checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sla-option { align-items:flex-start; padding:12px; border:1px solid var(--border); border-radius:14px; background:#fbfdff; }
.sla-option input { margin-top:4px; }
.contract-active { color: var(--clouding-primary); font-weight:900; }
.contract-warning { color:#b45309; font-weight:900; }
.contract-danger { color:#b91c1c; font-weight:900; }
.contract-muted { color: var(--muted); font-weight:900; }
@media (max-width:900px){ .sla-checkbox-grid { grid-template-columns:1fr; } }

/* V1.11 - mejoras UI seguridad/catálogos */
.alert-info { background:#e8f3fb; color:var(--clouding-primary); border:1px solid rgba(51,166,221,.35); }
.qr-card { display:flex; gap:22px; align-items:center; flex-wrap:wrap; padding:18px; border:1px solid rgba(15,68,116,.16); border-radius:18px; background:#f8fbfe; margin:16px 0; }
#totp_qr { padding:12px; background:#fff; border-radius:14px; border:1px solid #dbe3ee; }
.catalog-header { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.catalog-empty { padding:18px; border:1px dashed rgba(15,68,116,.25); border-radius:16px; background:#fbfdff; color:var(--muted); font-weight:700; }
.form-panel-muted { background:#fbfdff; border:1px solid rgba(51,166,221,.25); }
.email-preview-note { font-size:13px; color:var(--muted); }
.security-help { background:#f8fbfe; border:1px solid rgba(15,68,116,.12); border-radius:16px; padding:16px; margin-bottom:16px; }
.security-help ol { margin:10px 0 0 20px; color:var(--muted); }
.security-help code { color:var(--clouding-primary); font-weight:800; }

/* V1.12 - catálogos limpios y edición de graph types */
.pill-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.graph-type-pill small { color: var(--muted); font-weight:700; }

/* V1.13 */
.contract-card-list { display: grid; gap: 16px; }
.contract-rows { display: grid; gap: 16px; }
.catalog-header.small-header { margin-bottom: 14px; }
.catalog-header.small-header h3 { margin: 0; }

/* V1.15 - Portal cliente: monitoreo y reportes */
.monitoring-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 16px;
    align-items: end;
}
.monitoring-selector .form-actions { align-self: end; }
.monitoring-graph-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
    gap: 18px;
    margin-top: 16px;
}
.graph-card {
    background: #fff;
    border: 1px solid #dfe6ef;
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 10px 26px rgba(15, 68, 116, 0.06);
}
.graph-card h4 {
    margin: 0 0 12px 0;
    color: #0F4474;
}
.graph-card img {
    width: 100%;
    min-height: 120px;
    border: 1px solid #eef3f8;
    border-radius: 12px;
    background: #f7fbff;
}
.dc-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
    margin: 14px 0 20px;
}
.small { font-size: 12px; }
.report-request-simple { grid-template-columns: minmax(260px, 480px) auto; align-items: end; }
@media (max-width: 900px) {
    .monitoring-selector, .report-request-simple { grid-template-columns: 1fr; }
    .monitoring-graph-grid { grid-template-columns: 1fr; }
}

/* V1.16 - reportes limpios para cliente */
.report-filter-bar {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
    margin: 8px 0 12px;
}
.report-filter-bar label {
    max-width: 220px;
    margin: 0;
}
.pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin: 14px 0 24px;
    color: var(--muted);
    font-weight: 700;
    flex-wrap: wrap;
}

.pagination-pages {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: nowrap;
}
.page-number,
.page-ellipsis {
    min-width: 30px;
    height: 30px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1;
}
a.page-number {
    border: 1px solid #d6e1eb;
    background: #fff;
    color: #0F4474;
    text-decoration: none;
    font-weight: 700;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
a.page-number:hover {
    background: #eef8fd;
    border-color: #8dc9e7;
}
.page-number.active {
    background: #0F4474;
    border: 1px solid #0F4474;
    color: #fff;
    font-weight: 700;
}
.page-ellipsis {
    min-width: 20px;
    padding: 0 2px;
    color: var(--muted);
}
@media (max-width: 640px) {
    .pagination { justify-content: center; gap: 7px; }
    .pagination-pages { gap: 2px; }
    .page-number, .page-ellipsis { min-width: 27px; height: 27px; padding: 0 5px; }
}


/* V1.18 - detalles de vista, resumen compacto y zoom de gráficas */
.resource-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
    margin: 16px 0 20px;
}
.metric-card.compact-resource {
    padding: 16px 18px;
    min-height: auto;
}
.metric-card.compact-resource strong {
    font-size: 26px;
    margin-top: 4px;
}
.graph-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.graph-card-header h4 { margin: 0; }
.graph-modal { display:none; position:fixed; inset:0; z-index:9999; }
.graph-modal.is-open { display:block; }
.graph-modal-backdrop { position:absolute; inset:0; background:rgba(5,20,36,.72); backdrop-filter: blur(2px); }
.graph-modal-content {
    position:relative;
    width:min(1180px, calc(100vw - 48px));
    max-height:calc(100vh - 48px);
    margin:24px auto;
    overflow:auto;
    background:#fff;
    border-radius:20px;
    padding:22px;
    box-shadow:0 30px 90px rgba(0,0,0,.35);
}
.graph-modal-content h3 { margin:0 48px 16px 0; color:var(--clouding-primary); }
.graph-modal-content img { display:block; width:100%; height:auto; border-radius:14px; border:1px solid var(--border); background:#f8fbfe; }
.graph-modal-close {
    position:absolute; right:14px; top:12px;
    width:38px; height:38px; padding:0; margin:0; border-radius:999px;
    background:#eef2f7; color:var(--clouding-primary); font-size:24px; line-height:1;
}
@media (max-width:900px){ .resource-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width:560px){ .resource-summary-grid { grid-template-columns: 1fr; } }


/* V1.20 - confirmaciones compactas y mensajes por pestaña */
.password-reset-card {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:16px;
    border:1px solid rgba(51,166,221,.28);
    border-radius:18px;
    background:#f8fbfe;
}
.password-reset-card p { margin:4px 0 0; }
.confirm-modal { display:none; position:fixed; inset:0; z-index:10000; }
.confirm-modal.is-open { display:block; }
.confirm-modal-backdrop { position:absolute; inset:0; background:rgba(5,20,36,.58); backdrop-filter:blur(2px); }
.confirm-modal-content {
    position:relative;
    width:min(520px, calc(100vw - 42px));
    margin:14vh auto;
    padding:24px;
    background:#fff;
    border-radius:22px;
    box-shadow:0 30px 80px rgba(0,0,0,.30);
    border:1px solid var(--border);
}
.confirm-modal-content h3 { margin:0 44px 12px 0; color:var(--clouding-primary); }
.confirm-modal-content p { color:var(--muted); line-height:1.5; }
.confirm-modal-close {
    position:absolute;
    right:12px;
    top:10px;
    width:36px;
    height:36px;
    padding:0;
    border-radius:999px;
    background:#eef2f7;
    color:var(--clouding-primary);
    font-size:24px;
}
.modal-check { margin:18px 0; }
.modal-actions { margin-top:18px; }
@media (max-width:720px){ .password-reset-card { align-items:stretch; flex-direction:column; } }

/* V1.22 - encabezados compactos y refresh de PDFs */
.section-heading-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    margin:0 0 14px;
}
.section-heading-row h2, .section-heading-row h3 { margin:0; }
.icon-refresh-btn {
    width:38px;
    height:38px;
    padding:0;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    line-height:1;
    background:#eaf6fc;
    color:var(--clouding-primary);
    border:1px solid rgba(51,166,221,.35);
    box-shadow:none;
}
.icon-refresh-btn:hover { background:var(--clouding-accent); color:#fff; transform:translateY(-1px); }
.icon-refresh-btn.is-loading { opacity:.65; pointer-events:none; animation:cloudingSpin .8s linear infinite; }
@keyframes cloudingSpin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.pdfs-block { margin-top:18px; }

/* V1.23 - Ticketing */
.ticket-filter-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap:12px; align-items:end; }
.ticket-filter-grid .form-actions { grid-column:auto; }
.ticket-table { min-width:1050px; }
.ticket-thread { display:grid; gap:14px; margin:16px 0; }
.ticket-message { border:1px solid var(--border); border-radius:16px; padding:14px 16px; background:#fbfdff; }
.ticket-message.clouding { border-left:5px solid var(--clouding-secondary); }
.ticket-message.customer { border-left:5px solid var(--clouding-primary); }
.ticket-message p { line-height:1.55; margin:10px 0 0; }
.priority-critica { background:#fee2e2; color:#991b1b; }
.priority-alta { background:#ffedd5; color:#9a3412; }
.priority-media { background:#fef3c7; color:#92400e; }
.priority-baja { background:#dcfce7; color:#166534; }
.compact-table input[type="number"], .compact-table input[type="time"] { max-width:140px; padding:8px 10px; }
.compact-table input[type="checkbox"] { width:auto; }
@media(max-width:900px){ .ticket-filter-grid { grid-template-columns:1fr; } }


/* V1.24 - Ticketing refinado */
.ticket-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:18px 0 22px;}
.ticket-topbar .module-tabs{margin:0;flex:1;min-width:420px;}
.ticket-topbar .btn{white-space:nowrap;}
.ticket-message-signature{margin-top:14px;padding-top:12px;border-top:1px solid rgba(15,68,116,.16);color:var(--clouding-primary);font-size:13px;line-height:1.45;}
.ticket-message-signature strong{display:block;font-size:14px;}
.confirm-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.52);z-index:9999;display:none;align-items:center;justify-content:center;padding:24px;}
.confirm-modal-backdrop.is-open{display:flex;}
.confirm-modal{width:min(560px,100%);background:#fff;border-radius:22px;border:1px solid rgba(15,68,116,.16);box-shadow:0 24px 80px rgba(15,68,116,.28);padding:28px;}
.confirm-modal h3{margin-top:0;color:var(--clouding-primary);}
.confirm-check{background:#eef7fc;border:1px solid rgba(51,166,221,.35);border-radius:14px;padding:14px 16px;margin:18px 0;display:flex;gap:10px;align-items:center;}
.modal-actions{justify-content:flex-start;}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
@media(max-width:900px){.ticket-topbar .module-tabs{min-width:100%;}.ticket-topbar{align-items:stretch}.ticket-topbar .btn{width:max-content}}

/* V1.25 - Ticketing UX refinado */
#confirmModal.confirm-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, .54);
    backdrop-filter: blur(3px);
}
#confirmModal.confirm-modal-backdrop.is-open { display: flex; }
#confirmModal .confirm-modal {
    display: block;
    position: relative;
    inset: auto;
    width: min(560px, 100%);
    margin: 0;
    background: #fff;
    border-radius: 22px;
    border: 1px solid rgba(15,68,116,.16);
    box-shadow: 0 24px 80px rgba(15,68,116,.28);
    padding: 28px;
}
#confirmModal .confirm-modal h3 { margin: 0 0 12px; color: var(--clouding-primary); }
#confirmModal .confirm-check { background:#eef7fc; border:1px solid rgba(51,166,221,.35); border-radius:14px; padding:14px 16px; margin:18px 0; display:flex; gap:10px; align-items:center; }

.compact-select.ticket-status-select { max-width: 280px; min-width: 220px; width: auto; }
.reply-options-row { display:flex; align-items:end; gap:18px; flex-wrap:wrap; }
.reply-options-row label:first-child { max-width:300px; flex:0 0 280px; }
.reply-form input[type="file"] { padding: 12px; background:#fff; }

.chat-thread { display:grid; gap:16px; margin:18px 0; }
.chat-message { display:flex; width:100%; }
.chat-message.own { justify-content:flex-end; }
.chat-message.other { justify-content:flex-start; }
.chat-bubble { width:min(760px, 86%); padding:16px 18px; border-radius:20px; border:1px solid var(--border); background:#fff; box-shadow:0 8px 24px rgba(15,68,116,.06); }
.chat-message.own .chat-bubble { background:#eaf6fc; border-color:rgba(51,166,221,.35); border-bottom-right-radius:8px; }
.chat-message.other .chat-bubble { background:#ffffff; border-left:5px solid var(--clouding-primary); border-bottom-left-radius:8px; }
.chat-message.clouding.other .chat-bubble { border-left-color:var(--clouding-secondary); }
.chat-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin-bottom:8px; }
.chat-meta strong { color:var(--text); font-size:15px; }
.chat-text { line-height:1.58; color:var(--text); }
.message-attachments { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.attachment-chip { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:9px 10px; border-radius:14px; border:1px solid rgba(15,68,116,.14); background:#f8fbfe; }
.attachment-chip a, .attachment-open { display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; color:var(--clouding-primary); font-weight:800; padding:0; box-shadow:none; cursor:pointer; text-decoration:none; }
.attachment-chip span:first-child { display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:24px; padding:0 7px; border-radius:8px; background:#eaf6fc; color:var(--clouding-primary); font-size:11px; font-weight:900; }
.attachment-chip small { color:var(--muted); font-weight:700; }
.attachment-chip form { margin-left:2px; }

.attachment-modal { display:none; position:fixed; inset:0; z-index:9999; }
.attachment-modal.is-open { display:block; }
.attachment-modal-backdrop { position:absolute; inset:0; background:rgba(5,20,36,.72); backdrop-filter:blur(2px); }
.attachment-modal-content { position:relative; width:min(1120px, calc(100vw - 48px)); max-height:calc(100vh - 48px); margin:24px auto; overflow:auto; background:#fff; border-radius:22px; padding:22px; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.attachment-modal-content h3 { margin:0 48px 16px 0; color:var(--clouding-primary); }
.attachment-modal-content img { display:block; max-width:100%; height:auto; margin:0 auto; border-radius:14px; border:1px solid var(--border); }
.attachment-modal-content iframe { width:100%; height:72vh; border:1px solid var(--border); border-radius:14px; background:#f8fbfe; }
.attachment-modal-close { position:absolute; right:14px; top:12px; width:38px; height:38px; padding:0; border-radius:999px; background:#eef2f7; color:var(--clouding-primary); font-size:24px; line-height:1; }

.settings-list-only .data-table td.actions { white-space:nowrap; }
@media(max-width:720px){ .chat-bubble{width:100%;}.chat-message.own,.chat-message.other{justify-content:stretch}.compact-select.ticket-status-select{width:100%;max-width:none}.reply-options-row label:first-child{flex:1 1 100%;max-width:none} }

/* V1.26 - Ticketing UX, tabs compactos y adjuntos */
.module-tabs {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    align-items: stretch;
}
.module-tab {
    min-width: auto !important;
    width: auto !important;
    white-space: nowrap;
    flex: 0 0 auto;
}
.ticket-topbar { justify-content: flex-start; }
.ticket-topbar .module-tabs { flex: 0 1 auto !important; min-width: 0 !important; }
.ticket-topbar > .btn { margin-left: 0; }
.page-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; margin-bottom:12px; }
.page-title-row h1 { margin-bottom:8px; }
.page-title-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.ticket-detail-wide { width:100%; }
.ticket-detail-strip { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; margin-top:10px; }
.ticket-detail-strip > div { padding:12px 14px; border:1px solid rgba(15,68,116,.12); background:#fbfdff; border-radius:14px; }
.ticket-detail-strip span { display:block; color:var(--muted); font-weight:800; font-size:13px; margin-bottom:4px; }
.ticket-detail-strip strong { display:block; color:var(--text); font-size:15px; }
.ticket-management-form { display:grid; grid-template-columns:repeat(2, minmax(220px, 320px)); gap:16px 18px; align-items:end; }
.ticket-management-form label { margin:0; }
.ticket-management-form select.compact-select { width:100%; max-width:320px; min-width:0; }
.ticket-management-form .form-actions { grid-column:1 / -1; }
@media(max-width:900px){ .ticket-management-form { grid-template-columns:1fr; } }
.reply-options-row { align-items:center; }
.reply-options-row label:first-child { flex:0 0 260px; max-width:260px; }
.compact-select.ticket-status-select { max-width:260px; min-width:200px; }
.chat-thread { gap:18px; }
.chat-bubble { width:min(760px, 78%); }
.chat-message.own .chat-bubble { background:#e8f6fc; border-color:rgba(51,166,221,.38); }
.chat-message.other .chat-bubble { background:#fff; }
.chat-meta span { color:var(--muted); }
.ticket-message-signature strong { display:none; }
.ticket-message-signature { color:var(--clouding-primary); }
.chat-pagination { justify-content:center; margin-top:8px; }
#confirmModal.confirm-modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 20000 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    background: rgba(15, 23, 42, .54) !important;
    backdrop-filter: blur(3px);
}
#confirmModal.confirm-modal-backdrop.is-open { display: flex !important; }
#confirmModal .confirm-modal {
    position: relative !important;
    inset: auto !important;
    margin: 0 auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: min(560px, calc(100vw - 48px)) !important;
    max-width: 560px !important;
}
.attachment-modal-content { width:min(1180px, calc(100vw - 48px)); }
.attachment-modal-content img { max-height:72vh; object-fit:contain; }
@media(max-width:720px){
    .chat-bubble { width:100%; }
    .reply-options-row label:first-child { flex:1 1 100%; max-width:none; }
    .page-title-actions { width:100%; }
}

/* V1.27 - ticketing SLA stats and notifications */
.sla-stats-panel { padding:18px 20px; }
.compact-metrics { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.sla-bar { height:10px; background:#e8f2f8; border-radius:999px; overflow:hidden; margin-top:12px; border:1px solid rgba(15,68,116,.10); }
.sla-bar span { display:block; height:100%; background:linear-gradient(90deg,var(--clouding-primary),var(--clouding-secondary)); border-radius:999px; }
.ticket-event-checks { display:flex; flex-wrap:wrap; gap:10px 18px; padding:12px 14px; background:#f8fbfe; border:1px solid rgba(15,68,116,.10); border-radius:16px; }
.ticket-event-checks .checkbox { margin:0; }
.ticket-sla-score { font-weight:800; color:var(--clouding-primary); }

/* V1.28 - ajustes finales de ticketing, SLA y notificaciones */
.ticket-detail-strip {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px;
    margin: 14px 0 0;
}
.ticket-detail-strip > div {
    flex: 0 1 210px;
    min-width: 170px;
    max-width: 240px;
}
.ticket-detail-wide {
    padding: 18px 20px;
}
.ticket-management-panel {
    max-width: 780px;
}
.ticket-management-form {
    grid-template-columns: repeat(2, minmax(180px, 280px)) !important;
    align-items: end;
}
.ticket-management-form select.compact-select {
    max-width: 280px !important;
}
.sla-stats-panel .compact-metrics,
.metric-row.compact-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
}
.sla-stats-panel .metric-card {
    min-height: auto;
    padding: 14px 16px;
}
.sla-stats-panel .metric-card strong {
    font-size: 28px;
}
.dashboard-sla-panel { margin: 22px 0; }
.sla-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(140px, .8fr));
    gap: 12px;
    align-items: stretch;
}
.sla-score-card {
    background: #fbfdff;
    border: 1px solid rgba(15,68,116,.12);
    border-radius: 18px;
    padding: 16px 18px;
}
.sla-score-card span { display:block; color:var(--muted); font-weight:800; }
.sla-score-card strong { display:block; margin:6px 0 8px; font-size:34px; color:var(--clouding-primary); }
.email-repeat-list { display:grid; gap:10px; max-width: 560px; }
.email-repeat-row { display:flex; align-items:center; gap:10px; }
.email-repeat-row input { flex:1; }
.notify-table th, .notify-table td { text-align:center; }
.notify-table th:first-child, .notify-table td:first-child { text-align:left; }
.compact-check { justify-content:center; margin:0; }
@media(max-width:900px){
    .sla-stats-panel .compact-metrics,
    .metric-row.compact-metrics,
    .sla-dashboard-grid { grid-template-columns: 1fr 1fr; }
    .ticket-management-form { grid-template-columns:1fr !important; }
}
@media(max-width:560px){
    .sla-stats-panel .compact-metrics,
    .metric-row.compact-metrics,
    .sla-dashboard-grid { grid-template-columns: 1fr; }
    .ticket-detail-strip > div { max-width: none; flex:1 1 100%; }
}

/* V1.29 - refinamiento ticketing: SLA, notificaciones y dashboard */
.compact-control-row {
    display:flex;
    align-items:flex-end;
    gap:16px;
    flex-wrap:wrap;
    margin: 8px 0 4px;
}
.compact-control-row label {
    flex: 0 1 340px;
    max-width: 360px;
    margin:0;
}
.sla-policy-form > label:first-of-type {
    max-width: 720px;
}
.sla-policy-form select.compact-select,
.sla-policy-form .compact-select {
    width:100%;
    max-width:360px;
    min-width:220px;
}
.sla-policy-form textarea { max-width: 900px; }
.sla-policy-form .data-table { width:100%; }
.extra-email-title { margin-top:26px; }
.extra-email-grid { display:grid; gap:14px; max-width:980px; }
.extra-email-card {
    border:1px solid rgba(15,68,116,.12);
    background:#fbfdff;
    border-radius:18px;
    padding:14px 16px;
}
.extra-email-head { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.extra-email-head label { flex:0 1 360px; margin:0; }
.extra-email-head input { width:100%; }
.extra-email-card .ticket-event-checks { background:#fff; }
.notify-table { min-width:900px; }
.ticket-detail-grid {
    display:grid;
    grid-template-columns: minmax(520px, 1fr) minmax(380px, 520px);
    gap:18px;
    align-items:start;
}
.ticket-detail-grid .panel { margin:0; }
.ticket-detail-grid .details { display:grid; grid-template-columns: 170px 1fr; gap:8px 14px; }
.ticket-management-form { grid-template-columns: repeat(2, minmax(170px, 260px)) !important; }
.ticket-management-form select.compact-select { max-width:260px !important; }
.dashboard-sla-visual { display:grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr); gap:14px; align-items:center; }
.sla-chart-box { border:1px solid rgba(15,68,116,.12); background:#fbfdff; border-radius:18px; padding:18px; }
.sla-chart-track { height:18px; border-radius:999px; overflow:hidden; background:#e7eef5; border:1px solid rgba(15,68,116,.10); }
.sla-chart-track span { display:block; height:100%; background:linear-gradient(90deg,var(--clouding-primary),var(--clouding-secondary)); border-radius:999px; }
.sla-chart-label { display:flex; justify-content:space-between; gap:10px; margin-top:10px; color:var(--muted); font-weight:800; }
@media(max-width:1000px){
    .ticket-detail-grid { grid-template-columns:1fr; }
    .dashboard-sla-visual { grid-template-columns:1fr; }
}
@media(max-width:720px){
    .compact-control-row label,
    .extra-email-head label { flex:1 1 100%; max-width:none; }
    .sla-policy-form select.compact-select,
    .sla-policy-form .compact-select { max-width:none; }
}

/* V1.31 - timezone, menú usuario y refinamientos ticketing */
.top-user-menu { position: relative; display:flex; align-items:center; gap:10px; }
.hamburger-btn { margin:0; padding:8px 10px; min-width:38px; height:38px; border-radius:12px; background:#eef2f7; color:var(--clouding-primary); font-size:18px; line-height:1; }
.hamburger-btn:hover { background:#dceaf7; }
.user-dropdown { display:none; position:absolute; top:48px; right:0; min-width:170px; background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:0 18px 42px rgba(15,68,116,.18); padding:8px; z-index:999; }
.user-dropdown.is-open { display:block; }
.user-dropdown a { display:block; margin:0; padding:10px 12px; border-radius:10px; color:var(--clouding-primary); font-weight:800; }
.user-dropdown a:hover { background:#eef7fc; }
.ticket-detail-grid { grid-template-columns:minmax(520px, 1fr) minmax(360px, 520px); }
.ticket-detail-grid .panel#detalle .details { grid-template-columns:repeat(2, minmax(160px, auto)); gap:12px; }
.ticket-detail-grid .panel#detalle .details dt { margin-top:0; }
.ticket-detail-grid .panel#detalle .details dd { margin:0 0 10px; font-weight:700; }
.ticket-management-form { grid-template-columns:repeat(2, minmax(170px, 260px)) !important; }
.ticket-management-form label { max-width:280px; }
.ticket-management-form select.compact-select { max-width:260px !important; }
.sla-policy-form .compact-control-row { align-items:flex-end; }
.sla-policy-form .compact-control-row label { flex:0 0 300px; max-width:320px; }
.sla-policy-form select.compact-select { max-width:320px !important; }
.btn-add-email { padding:10px 14px; border-radius:12px; white-space:nowrap; }
.extra-email-title { align-items:center; justify-content:flex-start; gap:14px; }
.extra-email-card { max-width:980px; }
.extra-email-head label { max-width:360px; }
.extra-email-head .email-remove { margin-top:0; }
.js-local-time { white-space: nowrap; }
@media(max-width:1000px){ .ticket-detail-grid .panel#detalle .details { grid-template-columns:1fr; } }

/* V1.32 - logos de cliente, editor enriquecido y refinamientos */
.company-title-row { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.company-title-row h1 { margin:0; }
.company-title-logo { width:44px; height:44px; object-fit:contain; border-radius:10px; background:#fff; border:1px solid var(--border); padding:4px; }
.company-data-logo { width:72px; height:44px; object-fit:contain; border-radius:12px; background:#fff; border:1px solid var(--border); padding:5px; }
.company-logo-form { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-top:18px; padding-top:16px; border-top:1px solid var(--border); }
.company-logo-form label { max-width:320px; margin:0; }
.company-logo-uploader { display:flex; align-items:flex-end; gap:14px; flex-wrap:wrap; }
.logo-preview-box { width:90px; min-height:54px; display:flex; align-items:center; justify-content:center; border:1px dashed rgba(15,68,116,.20); border-radius:14px; background:#fbfdff; }
.logo-preview-box img { max-width:80px; max-height:48px; object-fit:contain; }
.rich-editor { border:1px solid var(--border); border-radius:16px; overflow:hidden; background:#fff; }
.rich-editor-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:8px; background:#f8fafc; border-bottom:1px solid var(--border); }
.rich-editor-toolbar button,
.rich-editor-toolbar select { width:auto; min-width:0; height:34px; padding:6px 9px; border-radius:10px; border:1px solid transparent; background:#eef3f8; color:var(--clouding-primary); font-weight:800; }
.rich-editor-toolbar button:hover { background:#dceaf7; }
.rich-editor-toolbar .toolbar-sep { width:1px; height:22px; background:#d8e4ef; margin:0 3px; }
.rich-editor-body { min-height:150px; padding:14px; outline:none; line-height:1.55; color:var(--text); }
.rich-editor-body:empty:before { content:attr(data-placeholder); color:var(--muted); }
.rich-editor-source.rich-ready { display:none; }
.chat-text p { margin:0 0 8px; }
.chat-text ul, .chat-text ol { margin:8px 0 8px 22px; }
.chat-text table { border-collapse:collapse; width:auto; max-width:100%; margin:10px 0; }
.chat-text td, .chat-text th { border:1px solid var(--border); padding:6px 8px; }
.chat-text blockquote { margin:10px 0; padding:8px 12px; border-left:4px solid var(--clouding-secondary); background:#f6fbff; border-radius:10px; }
.sla-policy-form .compact-control-row label { flex:0 0 auto; min-width:240px; max-width:320px; }
.sla-policy-form .compact-control-row input.compact-input { max-width:260px; }
@media(max-width:720px){ .company-title-logo{width:38px;height:38px}.company-logo-form,.company-logo-uploader{align-items:flex-start}.rich-editor-toolbar{gap:4px}.rich-editor-toolbar button{padding:6px 8px} }

/* V1.33 - confirmaciones, logos e identidad de usuario */
#confirmModal .confirm-feedback {
    min-height: 20px;
    margin: -4px 0 12px;
    color: #991b1b;
    font-weight: 800;
    font-size: 14px;
}
.user-initials {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: var(--clouding-primary);
    border: 2px solid rgba(15,68,116,.22);
    font-weight: 900;
    font-size: 13px;
    letter-spacing: .02em;
}
.top-user-menu .user-name-label { white-space: nowrap; }
.company-title-logo { display:none !important; }
.company-data-layout {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.company-data-main { flex: 1 1 auto; min-width: 260px; }
.company-data-main h2 { margin: 0 0 18px; }
.company-data-logo-wrap {
    width: 150px;
    height: 150px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    flex: 0 0 auto;
    box-shadow: 0 8px 24px rgba(15,68,116,.06);
}
.company-data-logo {
    width: 100%;
    height: 100%;
    max-width: 126px;
    max-height: 126px;
    object-fit: contain;
    border: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
}
.logo-preview-box {
    width: 112px;
    min-height: 82px;
}
.logo-preview-box img {
    max-width: 96px;
    max-height: 70px;
}
@media (max-width: 720px) {
    .company-data-layout { flex-direction: column; }
    .company-data-logo-wrap { width: 120px; height: 120px; }
    .top-user-menu .user-name-label { display:none; }
}

/* V1.34 - menú con iconografía, campana de notificaciones y control de infraestructura */
.sidebar { padding:24px 18px; }
.sidebar nav a {
    display:flex;
    align-items:center;
    gap:12px;
    color:white;
    padding:12px 14px;
    border-radius:12px;
    margin-bottom:8px;
    font-weight:800;
    transition: background .16s ease, transform .16s ease;
}
.sidebar nav a:hover { background: rgba(51,166,221,.25); transform: translateX(2px); }
.nav-icon {
    width:24px;
    height:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 24px;
    border-radius:8px;
    background:rgba(255,255,255,.10);
    font-size:15px;
    line-height:1;
}
.module-tab .tab-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    margin-right:6px;
}
.infrastructure-check {
    width:max-content;
    max-width:100%;
    padding:10px 12px;
    border:1px solid rgba(15,68,116,.14);
    border-radius:14px;
    background:#fbfdff;
}
.topbar-actions { display:flex; align-items:center; gap:16px; }
.notification-menu { position:relative; }
.notification-btn {
    margin:0;
    width:40px;
    height:40px;
    padding:0;
    border-radius:999px;
    background:#eef7fc;
    color:var(--clouding-primary);
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
}
.notification-btn span {
    position:absolute;
    top:-5px;
    right:-5px;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    background:#dc2626;
    color:#fff;
    font-size:11px;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center;
    border:2px solid #fff;
}
.notification-dropdown {
    display:none;
    position:absolute;
    top:50px;
    right:0;
    width:360px;
    max-width:calc(100vw - 32px);
    background:#fff;
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:0 20px 50px rgba(15,68,116,.20);
    padding:10px;
    z-index:1000;
}
.notification-dropdown.is-open { display:block; }
.notification-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 8px 10px; border-bottom:1px solid var(--border); }
.notification-head form { margin:0; }
.notification-item { display:block; padding:12px; border-radius:14px; color:var(--text); margin-top:6px; }
.notification-item:hover { background:#eef7fc; }
.notification-item.unread { background:#f0f9ff; border-left:4px solid var(--clouding-secondary); }
.notification-item strong { display:block; color:var(--clouding-primary); font-size:14px; margin-bottom:3px; }
.notification-item span { display:block; color:#475569; font-size:13px; line-height:1.35; }
.notification-item small { margin-top:6px; font-size:11px; }
.notification-empty { padding:12px; margin:0; }
@media (max-width:720px){
    .topbar-actions { gap:8px; }
    .notification-dropdown { right:-70px; }
}

/* V1.35 - refinamiento visual general, notificaciones y detalle de cliente/tickets */
body {
    font-family:'Nexa', Arial, sans-serif;
    font-weight:300;
    background:#f5f7fb;
}
h1 { font-weight:700; letter-spacing:-.02em; }
h2, h3 { font-weight:700; letter-spacing:-.01em; }
button, .btn { font-weight:700; }

/* Sidebar más limpio y similar a referencia */
.sidebar {
    width:260px;
    padding:28px 20px;
    background:linear-gradient(180deg,#0F4474 0%,#09355e 62%,#082944 100%);
    box-shadow:inset -1px 0 rgba(255,255,255,.08);
}
.brand { text-align:center; }
.brand img { width:178px; max-width:88%; margin:0 auto 34px; display:block; }
.sidebar nav a {
    display:flex;
    align-items:center;
    gap:14px;
    color:#ffffff;
    padding:12px 14px;
    border-radius:12px;
    margin-bottom:7px;
    font-weight:600;
    font-size:15px;
    line-height:1.25;
    background:transparent;
    transition:background .16s ease, transform .16s ease, color .16s ease;
}
.sidebar nav a:hover {
    background:rgba(51,166,221,.18);
    transform:translateX(2px);
}
.nav-section {
    margin:24px 0 10px;
    padding:0 10px;
    color:rgba(255,255,255,.62);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.nav-icon {
    width:23px;
    height:23px;
    flex:0 0 23px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    background:rgba(255,255,255,.10);
    color:#ffffff;
}
.nav-icon svg {
    width:17px;
    height:17px;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.topbar { height:72px; padding:0 28px; }
.topbar strong { font-weight:700; color:#111827; }
.user-initials {
    width:38px;
    height:38px;
    background:#0F4474;
    color:#ffffff;
    border:2px solid #dbeafe;
    font-weight:700;
}
.hamburger-btn { width:40px; height:40px; border-radius:12px; font-size:18px; background:#eef4fa; }
.notification-btn svg {
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.notification-btn { background:#eef7fc; color:var(--clouding-primary); }
.notification-head button { margin-top:0; }

/* Tabs unificados: blancos, compactos, con subrayado azul */
.module-tabs,
.integration-tabs {
    display:inline-flex !important;
    align-items:stretch;
    flex-wrap:wrap;
    gap:0 !important;
    width:auto !important;
    max-width:100%;
    margin:24px 0 !important;
    padding:0 !important;
    background:#ffffff !important;
    border:1px solid rgba(15,68,116,.16) !important;
    border-radius:18px !important;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(15,68,116,.06) !important;
}
.module-tab,
.integration-tab {
    min-width:0 !important;
    min-height:0 !important;
    width:auto !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 34px !important;
    border-radius:0 !important;
    border:0 !important;
    border-right:1px solid rgba(15,68,116,.12) !important;
    background:#ffffff !important;
    color:#0F4474 !important;
    font-weight:600 !important;
    font-size:15px !important;
    box-shadow:none !important;
    position:relative;
}
.module-tab:last-child,
.integration-tab:last-child { border-right:0 !important; }
.module-tab:hover,
.integration-tab:hover { background:#f4faff !important; color:#0F4474 !important; }
.module-tab.active,
.integration-tab.active {
    background:#ffffff !important;
    color:#0F4474 !important;
    box-shadow:inset 0 -4px 0 #1f75ff !important;
}
.module-tab .tab-icon,
.integration-tab .tab-icon {
    width:22px;
    height:22px;
    margin:0;
    color:#0F4474;
    font-size:20px;
    line-height:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.slim-tabs { margin-top:22px !important; }

/* Encabezado de cliente como tarjeta horizontal */
.company-hero {
    display:flex;
    align-items:center;
    gap:26px;
    margin:4px 0 22px;
}
.company-hero-logo {
    width:122px;
    height:122px;
    border-radius:16px;
    border:1px solid rgba(15,68,116,.16);
    background:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px;
    box-shadow:0 10px 30px rgba(15,68,116,.08);
    flex:0 0 auto;
}
.company-hero-logo img { max-width:100%; max-height:100%; object-fit:contain; border-radius:12px; }
.company-hero-main { flex:1 1 auto; min-width:200px; }
.company-hero-main h1 { margin:0 0 10px; font-size:34px; color:#0F4474; }
.company-hero-meta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; color:#334155; }
.client-since { display:inline-flex; align-items:center; gap:8px; color:#475569; font-weight:500; }
.meta-icon { color:#0F4474; font-size:16px; }
.company-hero-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }

.company-data-grid {
    display:grid;
    grid-template-columns:minmax(420px, 1fr) minmax(320px, 520px);
    gap:22px;
    align-items:stretch;
}
.company-data-card,
.company-logo-card { min-height:330px; }
.company-details-two {
    grid-template-columns:190px 1fr;
    gap:16px 28px;
    margin-top:28px;
}
.company-details-two dt { color:#0f2441; font-weight:700; }
.company-details-two dd { color:#475569; }
.company-logo-card { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
.company-logo-card h2 { align-self:flex-start; }
.company-logo-display {
    width:190px;
    height:190px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:14px;
    margin:20px auto 18px;
    background:#fff;
}
.company-logo-display img { max-width:100%; max-height:100%; object-fit:contain; border-radius:14px; box-shadow:0 10px 26px rgba(15,68,116,.10); }
.minimal-logo-form {
    width:100%;
    max-width:460px;
    border:0;
    padding:0;
    margin:0 auto;
    justify-content:center;
}
.minimal-logo-form label { max-width:280px; }
.company-title-logo { display:none !important; }

/* Ticket detalle y gestión en formato compacto */
.ticket-detail-wide { margin-bottom:18px; }
.ticket-detail-strip {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
    gap:12px;
    align-items:stretch;
}
.ticket-detail-strip > div {
    min-height:64px;
    border:1px solid #dbe4ef;
    border-radius:14px;
    background:#fbfdff;
    padding:12px 14px;
}
.ticket-detail-strip span {
    display:block;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    margin-bottom:4px;
}
.ticket-detail-strip strong {
    display:block;
    color:#1f2937;
    font-size:15px;
    line-height:1.25;
    font-weight:700;
}
.ticket-management-inline {
    display:flex !important;
    grid-template-columns:none !important;
    flex-wrap:wrap;
    gap:14px;
    align-items:flex-end;
}
.ticket-management-inline label {
    flex:0 1 230px;
    max-width:260px;
    margin:0;
}
.ticket-management-inline .form-actions { flex:0 0 auto; grid-column:auto; }
.ticket-management-inline .compact-select { max-width:260px !important; }
.ticket-management-panel { margin-bottom:18px; }

/* Dashboard SLA compacto */
.dashboard-sla-visual { grid-template-columns:minmax(320px, 1fr) minmax(320px, 1fr); }
.sla-dashboard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.sla-score-card { padding:18px; border:1px solid rgba(15,68,116,.12); border-radius:18px; background:#fbfdff; }
.sla-score-card span { display:block; color:#64748b; font-weight:700; }
.sla-score-card strong { display:block; margin:8px 0 14px; color:#0F4474; font-size:34px; }

/* Selectores SLA más compactos */
.sla-policy-form label { max-width:520px; }
.sla-policy-form select,
.sla-policy-form input.compact-input { max-width:360px !important; }
.sla-policy-form .compact-control-row { display:flex; gap:18px; flex-wrap:wrap; align-items:flex-end; }
.sla-policy-form .compact-control-row label { flex:0 1 340px; min-width:260px; }

@media(max-width:1100px){
    .company-data-grid { grid-template-columns:1fr; }
    .company-hero { align-items:flex-start; flex-wrap:wrap; }
    .company-hero-actions { width:100%; }
    .dashboard-sla-visual { grid-template-columns:1fr; }
    .sla-dashboard-grid { grid-template-columns:1fr; }
}
@media(max-width:760px){
    .module-tab,.integration-tab { padding:14px 18px !important; }
    .company-hero-logo { width:92px; height:92px; }
    .company-hero-main h1 { font-size:28px; }
    .company-logo-display { width:150px; height:150px; }
}

/* V1.36 - iconografía consistente, mensajes compactos, encabezado cliente y SLA por cliente */
.module-tab .tab-icon,
.integration-tab .tab-icon {
    width:22px !important;
    height:22px !important;
    flex:0 0 22px;
    color:#0F4474 !important;
}
.module-tab .tab-icon svg,
.integration-tab .tab-icon svg {
    width:20px;
    height:20px;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.module-tab,
.integration-tab {
    font-weight:600 !important;
    letter-spacing:0 !important;
}

.company-hero-meta {
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:8px !important;
}
.client-since {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:0;
}
.calendar-icon {
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.calendar-icon svg {
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.user-name-label {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    color:#1f2937;
    line-height:1.15;
    min-width:0;
}
.user-name-label strong {
    font-size:14px;
    font-weight:650;
    color:#1f2937;
    white-space:nowrap;
}
.user-name-label small {
    margin:0;
    display:block;
    font-size:12px;
    font-weight:500;
    color:#64748b;
    white-space:nowrap;
}
.top-user-menu { gap:10px; }

.alert {
    display:inline-flex !important;
    align-items:center;
    gap:12px;
    width:auto !important;
    max-width:min(100%, 1100px);
    padding:11px 14px !important;
    line-height:1.35;
    box-shadow:0 8px 22px rgba(15,68,116,.06);
}
.alert + .alert { margin-left:8px; }
.alert-close {
    width:24px;
    height:24px;
    min-width:24px;
    padding:0 !important;
    margin:0 0 0 4px !important;
    border-radius:999px !important;
    background:rgba(15,68,116,.10) !important;
    color:currentColor !important;
    font-size:18px !important;
    line-height:1 !important;
    font-weight:700 !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
}
.alert-close:hover { background:rgba(15,68,116,.18) !important; }

.sla-client-panel { margin-top:18px; }
.sla-client-list { display:flex; flex-direction:column; gap:10px; }
.sla-client-row {
    display:grid;
    grid-template-columns:minmax(260px, 1fr) minmax(240px, 380px) auto;
    gap:16px;
    align-items:center;
    border:1px solid var(--border);
    border-radius:16px;
    padding:14px 16px;
    background:#fbfdff;
}
.sla-client-name strong { display:block; color:#0F4474; font-size:16px; }
.sla-client-name small { margin-top:4px; }
.sla-client-score { display:flex; align-items:center; gap:12px; }
.sla-client-score strong { color:#0F4474; min-width:92px; text-align:right; }
.sla-client-track { flex:1; height:10px; border-radius:999px; background:#e8eef6; overflow:hidden; }
.sla-client-track span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#0F4474,#33A6DD); }
@media(max-width:900px){
    .sla-client-row { grid-template-columns:1fr; }
    .sla-client-score strong { text-align:left; }
}

/* V1.37 - refinamientos de mensajes, filtros, notificaciones, infraestructura y editor */
.infra-hidden { display:none !important; }
.alert {
    display:flex !important;
    width:max-content !important;
    max-width:min(100%, 1100px) !important;
    align-items:center !important;
    margin:12px 0 16px !important;
    clear:both;
}
.alert + .module-tabs,
.alert + .ticket-topbar { margin-top:18px !important; }
.ticket-topbar-simple { justify-content:flex-start; margin:12px 0 22px; }
.ticket-topbar-simple .btn { margin-left:0; }
.js-filter-submit { display:none !important; }
.search-form.js-autofilter,
.ticket-filter-grid.js-autofilter { align-items:end; }
.ticket-management-panel { width:100% !important; max-width:none !important; }
.ticket-management-inline {
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-end !important;
    gap:14px !important;
}
.ticket-management-inline label {
    flex:0 1 230px !important;
    max-width:250px !important;
    min-width:190px !important;
}
.ticket-management-inline .form-actions {
    flex:0 0 100% !important;
    width:100% !important;
    margin-top:2px;
}
.ticket-management-inline .form-actions button { margin-top:0; }
.rich-editor-toolbar { gap:5px !important; padding:8px 10px !important; }
.rich-editor-toolbar select {
    height:34px !important;
    padding:6px 26px 6px 10px !important;
    font-weight:600 !important;
    background:#eef3f8 !important;
}
.rich-editor-toolbar button.rich-icon-btn {
    width:34px !important;
    min-width:34px !important;
    height:34px !important;
    padding:0 !important;
    margin:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
}
.rich-editor-toolbar button.rich-icon-btn svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.rich-editor-body {
    font-weight:400 !important;
    min-height:150px;
}
.rich-editor-body * { font-weight:inherit; }
.rich-editor-body b,
.rich-editor-body strong { font-weight:700 !important; }
.rich-editor-body:empty:before { font-weight:600 !important; color:#7b8794 !important; }
.emoji-wrap { position:relative; display:inline-flex; }
.emoji-picker {
    display:none;
    position:absolute;
    top:40px;
    left:0;
    z-index:3000;
    width:304px;
    max-height:260px;
    overflow:auto;
    padding:10px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    box-shadow:0 18px 48px rgba(15,68,116,.22);
    grid-template-columns:repeat(6, 1fr);
    gap:6px;
}
.emoji-picker.is-open { display:grid; }
.emoji-picker button {
    margin:0 !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    padding:0 !important;
    border-radius:10px !important;
    background:#f8fafc !important;
    color:#111827 !important;
    font-size:21px !important;
    font-weight:400 !important;
}
.emoji-picker button:hover { background:#eaf6fc !important; }
.notification-dropdown small .js-local-time { display:inline; }
@media(max-width:900px){
    .ticket-management-inline label { flex:1 1 100% !important; max-width:none !important; }
    .alert { width:auto !important; }
}

/* V1.38 - Dashboard, notificaciones, reapertura y días no laborables */
.notification-dropdown {
    width:390px;
    max-height:560px;
}
#notificationList {
    max-height:430px;
    overflow-y:auto;
    padding-right:4px;
}
.notification-item { min-height:78px; }
.notification-item small { margin-top:6px; }
.confirm-modal .confirm-feedback {
    min-height:18px;
    margin-top:8px;
    color:#b91c1c;
    font-weight:800;
}
.holiday-edit-grid { grid-template-columns:minmax(180px, 240px) minmax(260px, 420px) auto !important; align-items:end; }
.holiday-list { max-width:720px; margin:12px 0 0; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.holiday-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 12px; border-bottom:1px solid var(--border); }
.holiday-row:last-child { border-bottom:0; }
.holiday-actions { display:inline-flex; align-items:center; gap:8px; }
.icon-action { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:#eef5fb; color:var(--clouding-primary); font-weight:800; border:0; padding:0; margin:0; cursor:pointer; }
.icon-action:hover { background:#dff2fb; }
.danger-icon { background:#fee2e2 !important; color:#dc2626 !important; }
.mini-actions { grid-column:auto !important; margin:0; }

.dashboard-v2 { display:flex; flex-direction:column; gap:18px; margin-top:24px; }
.dash-top-cards { display:grid; grid-template-columns:1.15fr repeat(5, 1fr); gap:14px; }
.dash-card { position:relative; min-height:150px; background:#fff; border:1px solid var(--border); border-radius:18px; padding:20px; box-shadow:0 10px 30px rgba(15,68,116,.05); color:var(--text); overflow:hidden; }
.dash-card:hover { transform:translateY(-1px); box-shadow:0 16px 38px rgba(15,68,116,.09); }
.dash-card-label { display:block; color:#0f2440; font-size:13px; font-weight:800; line-height:1.25; margin-bottom:8px; }
.dash-card strong { display:block; color:var(--clouding-primary); font-size:26px; line-height:1.1; margin:8px 0 16px; }
.dash-card small { display:flex; align-items:center; justify-content:space-between; margin-top:auto; color:#0b63d9; font-size:12px; font-weight:800; }
.dash-card-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:13px; background:#eaf4ff; color:#0b63d9; margin-bottom:12px; }
.dash-card-icon .tab-icon { margin:0; }
.dash-card-icon svg, .quick-tile svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sla-main { padding-right:80px; }
.sla-main strong { color:#16a34a; font-size:27px; }
.sla-ring { position:absolute; right:20px; top:52px; width:62px; height:62px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:conic-gradient(#22c55e calc(var(--score)*1%), #e8eef6 0); }
.sla-ring span { width:48px; height:48px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:#16a34a; font-size:30px; font-weight:900; }
.sla-state { display:inline-flex !important; width:max-content; padding:5px 10px; border-radius:999px; background:#dcfce7; color:#166534 !important; }
.sla-state.warn { background:#fef3c7; color:#92400e !important; }
.dash-main-grid { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(340px, .9fr); gap:18px; }
.dash-chart-panel, .recent-panel, .quick-panel { border-radius:18px; }
.dash-period-form select { width:auto; min-width:150px; height:40px; padding:8px 14px; }
.sla-line-chart { width:100%; height:310px; margin-top:6px; }
.chart-grid { stroke:#e7edf5; stroke-width:1; }
.chart-label { fill:#64748b; font-size:12px; font-weight:700; }
.chart-line { fill:none; stroke:#2563ff; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.chart-dot { fill:#2563ff; stroke:#fff; stroke-width:2; }
.recent-ticket-list { display:flex; flex-direction:column; gap:0; }
.recent-ticket-item { display:grid; grid-template-columns:16px minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--border); color:var(--text); }
.recent-ticket-item:last-child { border-bottom:0; }
.recent-dot { width:8px; height:8px; border-radius:50%; background:#2563ff; }
.recent-main strong { display:block; color:#0F4474; font-size:14px; }
.recent-main small { margin:3px 0 0; color:#64748b; font-size:12px; }
.recent-date { white-space:nowrap; color:#64748b; font-size:12px; margin:0; }
.dash-status { display:inline-block; border-radius:999px; padding:5px 10px; font-size:12px; font-weight:800; }
.status-open { background:#eaf4ff; color:#0F4474; }
.status-progress { background:#fef3c7; color:#92400e; }
.status-solved { background:#dcfce7; color:#166534; }
.status-closed { background:#f3e8ff; color:#7e22ce; }
.status-canceled { background:#fee2e2; color:#b91c1c; }
.quick-tile-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:12px; margin-top:14px; }
.quick-tile { min-height:86px; border:1px solid var(--border); border-radius:16px; background:#fff; padding:14px; display:grid; grid-template-columns:32px 1fr; gap:4px 12px; align-items:center; color:var(--text); }
.quick-tile span { grid-row:1 / span 2; width:34px; height:34px; display:flex; align-items:center; justify-content:center; border:1px solid #d5e8fb; border-radius:12px; color:#2563ff; }
.quick-tile strong { font-size:13px; color:#0F4474; }
.quick-tile small { font-size:11px; color:#64748b; margin:0; }
.tiny-link { font-size:12px; font-weight:800; color:#0b63d9; }
@media(max-width:1200px){ .dash-top-cards { grid-template-columns:repeat(3, 1fr); } .dash-main-grid { grid-template-columns:1fr; } }
@media(max-width:760px){ .dash-top-cards { grid-template-columns:1fr; } .recent-ticket-item { grid-template-columns:12px 1fr; } .recent-ticket-item .dash-status,.recent-date { grid-column:2; } .holiday-edit-grid { grid-template-columns:1fr !important; } }


/* V1.39 - Dashboard refinado y responsive */
.dashboard-period-select { width:auto !important; min-width:150px; height:40px; padding:8px 14px !important; }
.chart-label { fill:#64748b; font-size:12px; font-weight:650; }
.chart-label.x-label { font-size:12px; }
.recent-ticket-item { grid-template-columns:16px minmax(0,1fr) 138px 154px !important; }
.recent-ticket-item .dash-status { justify-self:center; text-align:center; min-width:96px; }
.recent-ticket-item .recent-date { justify-self:end; text-align:right; }
.dash-card-icon { background:#eaf4ff; color:#2563ff; }
.card-total .dash-card-icon { background:#eaf4ff; color:#2563ff; }
.card-open .dash-card-icon { background:#fff1dd; color:#f59e0b; }
.card-solved .dash-card-icon { background:#dcfce7; color:#16a34a; }
.card-closed .dash-card-icon { background:#f3e8ff; color:#7e22ce; }
.card-canceled .dash-card-icon { background:#fee2e2; color:#ef4444; }
.quick-tile span { background:#f4f9ff; color:#2563ff; }
.quick-tile:hover { transform:translateY(-1px); box-shadow:0 12px 30px rgba(15,68,116,.08); }
.quick-tile svg { stroke-width:2.1; }

@media (max-width: 1180px) {
    .dash-top-cards { grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
    .dash-main-grid { grid-template-columns:1fr !important; }
    .recent-ticket-item { grid-template-columns:16px minmax(0,1fr) 120px 142px !important; }
}
@media (max-width: 900px) {
    .app-shell { display:block !important; }
    .sidebar { display:block !important; width:100% !important; min-height:auto !important; padding:16px !important; position:relative !important; }
    .brand img { width:150px !important; margin:0 0 14px !important; }
    .sidebar nav { display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; }
    .sidebar nav a { flex:0 0 auto; margin:0; white-space:nowrap; padding:10px 12px; }
    .nav-section { flex:0 0 100%; margin:14px 0 4px; }
    .topbar { height:auto !important; min-height:64px; padding:12px 16px !important; gap:12px; }
    .topbar-actions { gap:8px !important; }
    .user-name-label strong, .user-name-label small { max-width:120px; overflow:hidden; text-overflow:ellipsis; }
    .content { padding:18px !important; }
    .dashboard-v2 { margin-top:18px; }
    .dash-top-cards { grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
    .sla-main { grid-column:1 / -1; }
    .recent-ticket-item { grid-template-columns:12px 1fr 112px !important; gap:10px; }
    .recent-ticket-item .dash-status { grid-column:3; grid-row:1 / span 2; justify-self:end; min-width:auto; }
    .recent-date { grid-column:2 !important; justify-self:start !important; text-align:left !important; }
    .sla-line-chart { height:260px !important; }
    .quick-tile-grid { grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
    .module-tabs, .integration-tabs { max-width:100%; overflow-x:auto; flex-wrap:nowrap !important; }
    .module-tab, .integration-tab { flex:0 0 auto; min-width:auto !important; }
}
@media (max-width: 620px) {
    .dash-top-cards { grid-template-columns:1fr !important; }
    .section-heading-row { flex-direction:column; align-items:flex-start !important; gap:10px; }
    .dashboard-period-select { width:100% !important; }
    .quick-tile-grid { grid-template-columns:1fr !important; }
    .recent-ticket-item { grid-template-columns:12px 1fr !important; }
    .recent-ticket-item .dash-status { grid-column:2; grid-row:auto; justify-self:start; margin-top:6px; }
    .recent-date { grid-column:2 !important; }
    .notification-dropdown { position:fixed !important; right:12px !important; left:12px !important; width:auto !important; max-height:70vh; }
    #notificationList { max-height:55vh; }
    .data-table { min-width:720px; }
    .table-panel { overflow-x:auto; }
}

/* V1.40 - Notificaciones, PDF modal y responsive refinado */
.nav-icon svg, .tab-icon svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sidebar nav a { font-weight:600; }
.sidebar .nav-icon { color:#fff !important; opacity:.92; }
.global-pdf-modal, .email-preview-modal { position:fixed; inset:0; display:none; z-index:1100; align-items:center; justify-content:center; padding:24px; }
.global-pdf-modal.is-open, .email-preview-modal.is-open { display:flex; }
.global-pdf-content, .email-preview-content { position:relative; width:min(1080px, calc(100vw - 40px)); height:min(82vh, 900px); background:#fff; border-radius:18px; box-shadow:0 28px 90px rgba(15,68,116,.26); padding:18px; z-index:2; display:flex; flex-direction:column; }
.global-pdf-content h3, .email-preview-content h3 { margin:0 44px 12px 0; }
.global-pdf-content iframe, .email-preview-content iframe { flex:1; width:100%; border:1px solid var(--border); border-radius:14px; background:#fff; }
.notification-template-grid { grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr); }
.notification-compose-form .compact-control-row { display:flex; flex-wrap:wrap; gap:14px; align-items:end; }
.notification-compose-form .compact-control-row label { flex:1 1 260px; max-width:520px; }
.notification-target-box { display:flex; gap:14px; flex-wrap:wrap; align-items:flex-start; padding:14px; border:1px solid var(--border); border-radius:16px; background:#fbfdff; }
.notification-target-box label { flex:1 1 260px; max-width:460px; }
.notification-target-box select[multiple] { height:auto; min-height:130px; }
.dynamic-email-list { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.dynamic-email-list input { width:260px; max-width:100%; }
.checkbox-stack { display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; }
.notification-history-body { border:1px solid var(--border); border-radius:16px; background:#fbfdff; padding:16px; margin-top:10px; }
.alert { display:inline-flex; width:auto; max-width:min(100%, 980px); align-items:center; gap:12px; padding-right:38px; position:relative; }
.alert-close { position:absolute; right:8px; top:50%; transform:translateY(-50%); margin:0; padding:2px; width:24px; height:24px; border-radius:999px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.45); color:inherit; }
.sla-policy-form .compact-control-row { display:flex; flex-wrap:wrap; gap:14px; align-items:end; }
.sla-policy-form .compact-control-row label { flex:0 1 320px; max-width:380px; }
.sla-policy-form .compact-select, .sla-policy-form .compact-input { width:100% !important; max-width:380px; }
@media (max-width: 900px) {
    .notification-template-grid { grid-template-columns:1fr; }
    .global-pdf-content, .email-preview-content { width:calc(100vw - 24px); height:86vh; padding:12px; border-radius:14px; }
    .sidebar { background:linear-gradient(180deg,#0F4474,#0b355c) !important; }
    .sidebar nav { scroll-snap-type:x proximity; }
    .sidebar nav a { scroll-snap-align:start; font-size:14px; }
    .topbar { position:sticky; top:0; z-index:500; }
    .company-hero { align-items:flex-start; gap:14px; }
    .company-hero-actions { width:100%; justify-content:flex-start; }
    .company-data-grid { grid-template-columns:1fr !important; }
    .ticket-management-inline { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 640px) {
    .content { padding:14px !important; }
    h1 { font-size:28px; }
    .module-tabs { border-radius:14px; }
    .module-tab { padding:12px 14px; font-size:13px; }
    .ticket-management-inline { grid-template-columns:1fr !important; }
    .notification-target-box label, .notification-compose-form .compact-control-row label { flex-basis:100%; max-width:100%; }
    .dynamic-email-list { align-items:stretch; flex-direction:column; }
    .dynamic-email-list input { width:100%; }
    .topbar-actions { flex-wrap:wrap; justify-content:flex-end; }
    .sidebar nav { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible !important; }
    .nav-section { grid-column:1 / -1; }
    .sidebar nav a { white-space:normal !important; }
    .brand img { width:130px !important; }
}

/* V1.41 - Notificaciones UX refinada */
.notification-delivery-grid {
    display:grid;
    grid-template-columns:minmax(320px, 1fr) minmax(320px, 1fr);
    gap:18px;
    align-items:start;
}
.notification-card {
    border:1px solid var(--border);
    border-radius:18px;
    background:#fbfdff;
    padding:16px;
}
.notification-card h3 {
    margin:0 0 12px;
    color:var(--clouding-primary);
    font-size:18px;
}
.email-chip-field {
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:6px;
}
.email-chip-row {
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.email-chip-row input {
    width:260px;
    max-width:100%;
}
.email-chip-row button {
    margin-top:0;
}
.email-chip-values {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    min-height:0;
}
.email-chip {
    display:inline-flex;
    align-items:center;
    gap:8px;
    max-width:100%;
    border:1px solid #cfe5f6;
    background:#eef8ff;
    color:#0F4474;
    border-radius:999px;
    padding:6px 8px 6px 12px;
    font-size:13px;
    font-weight:700;
}
.email-chip span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:260px;
}
.email-chip button {
    margin:0 !important;
    padding:0 !important;
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    border-radius:999px !important;
    background:#d9eefc !important;
    color:#0F4474 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:16px !important;
    line-height:1 !important;
}
.notification-template-list-panel,
.notification-template-editor-panel,
.notification-compose-panel {
    max-width:1280px;
}
.notification-template-list-panel .data-table {
    min-width:720px;
}
.rich-editor-body img,
.chat-text img,
.notification-history-body img {
    max-width:100% !important;
    height:auto !important;
    border-radius:10px;
}
.rich-editor-body img {
    display:block;
    margin:12px auto;
}
.notification-history-body {
    overflow:auto;
    word-break:break-word;
}
.notification-history-body img {
    display:block;
    margin:14px auto;
}
.alert {
    padding-right:48px !important;
}
.alert .alert-close {
    flex:0 0 auto;
}
@media (max-width:900px) {
    .notification-delivery-grid { grid-template-columns:1fr; }
    .email-chip-row { align-items:stretch; }
    .email-chip-row input { width:100%; }
    .email-chip-row button { width:max-content; }
}

/* V1.42 - Ajustes de UX, formularios y notificaciones */
.notification-dropdown #notificationList {
    max-height: 430px;
    overflow-y: auto;
    padding-right: 6px;
}
.emoji-picker {
    max-height: 260px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.delivery-mode-switch {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:8px 0 4px;
}
.delivery-option {
    display:flex;
    align-items:flex-start;
    gap:10px;
    border:1px solid #dbe3ee;
    background:#fff;
    border-radius:16px;
    padding:14px 16px;
    cursor:pointer;
    max-width:420px;
}
.delivery-option.active {
    border-color:#33A6DD;
    background:#eef8ff;
    box-shadow:0 8px 20px rgba(51,166,221,.10);
}
.delivery-option input { margin-top:3px; }
.delivery-option span { display:grid; gap:4px; }
.delivery-option small { color:#6b7280; font-size:13px; font-weight:400; }
.checkbox-stack.horizontal { flex-direction:row; flex-wrap:wrap; gap:18px; }
.notification-card .small-note { margin-top:-4px; margin-bottom:12px; }
.required-missing input,
.required-missing select,
.required-missing textarea,
input.required-missing,
select.required-missing,
textarea.required-missing,
.rich-editor-source.required-missing + .rich-editor {
    border-color:#dc2626 !important;
    box-shadow:0 0 0 3px rgba(220,38,38,.10) !important;
}
.field-error-message {
    display:block;
    margin-top:6px;
    color:#b91c1c;
    font-size:13px;
    font-weight:700;
}
.profile-panel .form-grid,
.profile-panel form.form-grid,
body:has(h1:first-child) .profile-panel .form-grid {
    max-width:760px;
}
.profile-panel input,
.profile-panel select {
    max-width:520px;
}
.ticket-management-inline {
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:14px;
}
.ticket-management-inline label {
    width:auto;
    min-width:180px;
    max-width:260px;
}
.ticket-management-inline .compact-select { width:100%; }
.ticket-management-inline .form-actions { width:100%; margin-top:2px; }
.ticket-management-inline .form-actions button { width:max-content; }
.alert {
    display:inline-flex !important;
    align-items:center;
    gap:12px;
    max-width:min(100%, 980px);
    width:auto !important;
    padding:12px 44px 12px 16px !important;
    position:relative;
}
.alert .alert-close {
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
}
@media (max-width: 720px) {
    .delivery-option { max-width:100%; width:100%; }
    .notification-card { padding:18px; }
    .ticket-management-inline { display:grid; grid-template-columns:1fr; }
    .ticket-management-inline label { max-width:none; width:100%; }
    .notification-dropdown { width:min(92vw, 380px); right:-54px; }
}

/* V1.42 - refinamientos finales solicitados */
.rich-editor { overflow: visible !important; }
.emoji-picker {
    max-height: 280px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin;
}
.notification-compose-form [data-delivery-panel][style*="display: none"] select,
.notification-compose-form [data-delivery-panel][style*="display: none"] input,
.notification-compose-form [data-delivery-panel][style*="display: none"] textarea {
    pointer-events:none;
}
.profile-panel.panel { max-width: 1100px; }
.profile-panel .form-grid.single { max-width: 720px; }
.profile-panel .form-grid.single label { max-width: 560px; }
.profile-panel .form-actions { justify-content:flex-start; }
.ticket-management-panel { max-width: 1040px; }
.ticket-management-inline { align-items:end !important; }
.ticket-management-inline label { min-width: 170px !important; max-width: 240px !important; }
.ticket-management-inline label:has(select[name="category_id"]) { max-width: 280px !important; }
@media (max-width: 760px) {
    .profile-panel .form-grid.single,
    .profile-panel .form-grid.single label,
    .ticket-management-inline label { max-width: none !important; width:100% !important; }
}

/* V1.43 - Correcciones de mensajes, modales, editor, paginación y visualización */
.alert {
    display:flex !important;
    width:fit-content !important;
    max-width:min(100%, 1100px) !important;
    align-items:center !important;
    gap:12px !important;
    margin:12px 0 18px !important;
    clear:both !important;
    padding:12px 46px 12px 16px !important;
    position:relative !important;
    white-space:normal !important;
}
.alert .alert-close {
    position:absolute !important;
    right:10px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    height:24px !important;
    min-width:24px !important;
}
#confirmModal.confirm-modal-backdrop {
    position:fixed !important;
    inset:0 !important;
    display:none !important;
    align-items:center !important;
    justify-content:center !important;
    padding:24px !important;
    z-index:30000 !important;
}
#confirmModal.confirm-modal-backdrop.is-open { display:flex !important; }
#confirmModal .confirm-modal {
    position:relative !important;
    inset:auto !important;
    margin:auto !important;
    transform:none !important;
}
.confirm-feedback { color:#b91c1c; font-weight:800; margin:8px 0 0; min-height:18px; }
.chat-text img,
.rich-editor-body img {
    display:block;
    max-width:100%;
    height:auto;
    border-radius:12px;
    margin:12px 0;
    cursor:zoom-in;
    border:1px solid rgba(15,68,116,.10);
}
.rich-editor-body { font-weight:400 !important; }
.rich-editor-body * { font-weight:inherit; }
.rich-editor-body strong,
.rich-editor-body b { font-weight:800 !important; }
.image-zoom-modal { position:fixed; inset:0; z-index:31000; display:none; align-items:center; justify-content:center; padding:28px; }
.image-zoom-modal.is-open { display:flex; }
.image-zoom-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.66); backdrop-filter:blur(3px); }
.image-zoom-content { position:relative; z-index:1; width:min(1100px, calc(100vw - 44px)); height:min(86vh, 900px); background:#fff; border-radius:20px; padding:16px; display:flex; flex-direction:column; box-shadow:0 28px 90px rgba(0,0,0,.30); }
.image-zoom-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin-bottom:10px; }
.image-zoom-toolbar button { margin:0; padding:8px 12px; border-radius:10px; }
.image-zoom-stage { flex:1; overflow:auto; border:1px solid var(--border); border-radius:14px; background:#f8fafc; display:flex; align-items:flex-start; justify-content:center; padding:12px; }
.image-zoom-stage img { max-width:none; height:auto; transform-origin:top center; border-radius:10px; box-shadow:0 8px 24px rgba(15,68,116,.10); }
.ticket-actor-note { display:block; margin-top:4px; color:#64748b; font-size:12px; font-weight:700; }
#ticket-list-block.loading,
#pdfs-block.loading,
[data-ajax-section].loading { opacity:.55; pointer-events:none; }
.global-pdf-modal.is-open { display:flex !important; }
#globalPdfModal.global-pdf-modal { position:fixed; inset:0; z-index:30000; display:none; align-items:center; justify-content:center; padding:24px; }
.notification-compose-form .notification-card h3 { margin-bottom:12px; }
.notification-compose-form .notification-card .checkbox-stack { margin-top:0; }
.ticket-management-inline { width:100%; }
.ticket-management-inline .form-actions { flex-basis:100%; }
.sla-stats-panel .sla-bar { max-width:100%; margin-top:14px; }
@media(max-width:900px){
    .alert { width:auto !important; max-width:100% !important; }
    .chat-bubble { width:100% !important; }
    .image-zoom-content { width:calc(100vw - 20px); height:88vh; padding:10px; }
}


/* V1.44 - Reset modal aislado, expiración de liga y gráfica de SLA hoy cada 2 horas */
.password-reset-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 32000 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
}
.password-reset-modal.is-open { display: flex !important; }
.password-reset-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(15,23,42,.48) !important;
    backdrop-filter: blur(2px) !important;
}
.password-reset-modal-content {
    position: relative !important;
    z-index: 1 !important;
    width: min(520px, calc(100vw - 42px)) !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid var(--border) !important;
    border-radius: 22px !important;
    padding: 24px !important;
    box-shadow: 0 30px 90px rgba(15,68,116,.28) !important;
}
.password-reset-modal-content h3 { margin: 0 44px 12px 0 !important; color: var(--clouding-primary) !important; }
.password-reset-modal-content p { margin: 0 0 14px !important; color: var(--muted) !important; line-height: 1.5 !important; }
.password-reset-modal-close {
    position: absolute !important;
    right: 12px !important;
    top: 10px !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 999px !important;
    background: #eef5fb !important;
    color: var(--clouding-primary) !important;
    font-size: 22px !important;
    line-height: 1 !important;
}
.password-reset-modal .modal-actions { justify-content: flex-start !important; }
.password-reset-modal .confirm-feedback { color:#b91c1c; font-weight:800; min-height:18px; margin:8px 0 0; }
.reset-expired-text { max-width: 420px; margin: 0 auto 20px !important; line-height: 1.55; }
.sla-line-chart .chart-label.x-label { font-size: 10.5px; }
@media (max-width: 640px) {
    .password-reset-modal { padding: 16px !important; }
    .password-reset-modal-content { width: 100% !important; padding: 20px !important; }
    .sla-line-chart .chart-label.x-label { font-size: 9px; }
}

/* V1.46 - Navegación móvil, exportación de monitoreo y reporte de disponibilidad */
.mobile-sidebar-backdrop,
.mobile-nav-toggle { display:none; }
.topbar-brand { display:flex; align-items:center; gap:12px; }
.mobile-nav-toggle {
    width:42px; height:42px; border-radius:12px; border:1px solid rgba(15,68,116,.14);
    background:#fff; color:var(--clouding-primary); font-size:22px; font-weight:800; box-shadow:0 8px 20px rgba(15,68,116,.08);
}
.mobile-sidebar-backdrop {
    position:fixed; inset:0; background:rgba(5,17,34,.45); backdrop-filter:blur(3px); z-index:820;
    opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.mobile-sidebar-backdrop.is-open { opacity:1; pointer-events:auto; }
body.mobile-nav-open { overflow:hidden; }
.monitoring-export-modal { position:fixed; inset:0; display:none; z-index:1150; align-items:center; justify-content:center; padding:22px; }
.monitoring-export-modal.is-open { display:flex; }
.monitoring-export-backdrop { position:absolute; inset:0; background:rgba(6,17,33,.52); }
.monitoring-export-content {
    position:relative; z-index:2; width:min(960px, calc(100vw - 28px)); max-height:min(86vh, 940px); overflow:auto;
    background:#fff; border-radius:24px; box-shadow:0 30px 90px rgba(15,68,116,.28); padding:24px;
}
.monitoring-export-grid { display:grid; grid-template-columns:minmax(300px,1.1fr) minmax(250px,.9fr); gap:18px; align-items:start; }
.monitoring-export-vms { border:1px solid var(--border); border-radius:18px; background:#fbfdff; padding:16px; }
.monitoring-export-checklist { max-height:340px; overflow:auto; margin-top:12px; display:grid; gap:10px; }
.export-vm-check { display:flex; gap:12px; align-items:flex-start; border:1px solid var(--border); border-radius:14px; padding:10px 12px; background:#fff; }
.export-vm-check input { margin-top:5px; }
.export-vm-check span { display:flex; flex-direction:column; gap:4px; }
.export-vm-check small { color:#64748b; }
.vm-export-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.export-custom-range { display:none; }
.report-type-pill { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; background:#eaf4ff; color:#0F4474; font-weight:800; font-size:13px; }
.report-watermark { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; opacity:.08; }
.report-watermark img { width:58%; max-width:420px; }
.report-page { position:relative; min-height:100%; page-break-after:always; break-after:page; }
.report-page:last-child { page-break-after:auto; break-after:auto; }
.report-keep-together, .graph-report-card { page-break-inside:avoid; break-inside:avoid; }
.report-intro-list { list-style:none; padding:0; margin:18px 0 0; display:grid; gap:10px; }
.report-intro-list li { display:grid; grid-template-columns:18px 1fr; gap:12px; align-items:start; }
.report-intro-list img { width:18px; height:18px; object-fit:contain; margin-top:2px; }
.report-server-table { width:100%; border-collapse:collapse; margin-top:18px; font-size:13px; }
.report-server-table th, .report-server-table td { border-bottom:1px solid #d9e4ef; padding:10px 8px; text-align:left; }
.report-server-table th { color:#0F4474; font-size:12px; text-transform:uppercase; letter-spacing:.02em; }
.report-hero-image { width:100%; max-width:620px; display:block; margin:18px auto 0; }
.report-graph-image { width:100%; border:1px solid #d5e0ea; border-radius:14px; background:#fff; }
.report-subtitle { color:#567; font-size:15px; margin:6px 0 0; }
.report-vm-meta { display:flex; flex-wrap:wrap; gap:12px 20px; margin:8px 0 14px; color:#42526b; font-size:14px; }
.report-vm-meta strong { color:#0F4474; }
@media (max-width: 900px) {
    .mobile-nav-toggle, .mobile-sidebar-backdrop { display:block; }
    .app-shell { display:block !important; }
    .sidebar {
        position:fixed !important; top:0; left:0; bottom:0; width:min(86vw, 340px) !important; min-height:100vh !important; z-index:860;
        transform:translateX(-108%); transition:transform .24s ease; overflow-y:auto; padding:20px 18px 28px !important; border-radius:0 22px 22px 0;
        box-shadow:0 20px 65px rgba(4,20,39,.32);
    }
    .sidebar.is-mobile-open { transform:translateX(0); }
    .sidebar nav { display:block !important; overflow:visible !important; padding:0 !important; }
    .sidebar nav a { width:100%; margin:0 0 6px; white-space:normal !important; }
    .nav-section { margin:16px 0 8px !important; }
    .topbar { position:sticky; top:0; z-index:520; background:rgba(248,250,252,.96); backdrop-filter:blur(12px); }
    .topbar-actions { flex-wrap:nowrap !important; }
    .main { width:100% !important; }
    .content { padding:16px !important; }
    .dashboard-v2 { gap:14px; }
    .dash-top-cards { display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:10px !important; }
    .dash-card { min-height:118px !important; padding:16px !important; border-radius:16px !important; }
    .dash-card-label { font-size:12px !important; }
    .dash-card strong { font-size:22px !important; margin:6px 0 12px !important; }
    .dash-card small { font-size:11px !important; }
    .dash-card-icon { width:36px !important; height:36px !important; border-radius:12px !important; margin-bottom:10px !important; }
    .sla-main { grid-column:1 / -1; padding-right:74px !important; min-height:132px !important; }
    .sla-ring { right:16px !important; top:42px !important; width:56px !important; height:56px !important; }
    .sla-ring span { width:42px !important; height:42px !important; font-size:24px !important; }
    .dash-main-grid { gap:14px !important; }
    .panel, .dash-chart-panel, .recent-panel, .quick-panel { border-radius:18px !important; }
    .recent-ticket-item { grid-template-columns:12px minmax(0,1fr) !important; gap:8px !important; padding:12px 0 !important; }
    .recent-ticket-item .dash-status, .recent-date { grid-column:2 !important; justify-self:start !important; text-align:left !important; }
    .quick-tile-grid { grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:10px !important; }
    .quick-tile { min-height:74px !important; border-radius:14px !important; padding:12px !important; }
    .quick-tile strong { font-size:12px !important; }
    .quick-tile small { font-size:10px !important; }
    .monitoring-export-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .topbar { padding:12px 14px !important; }
    .topbar-brand strong { font-size:14px; line-height:1.2; }
    .user-name-label { display:none !important; }
    .dash-top-cards { grid-template-columns:1fr !important; }
    .dash-card { min-height:110px !important; }
    .notification-dropdown { top:58px !important; }
    .quick-tile-grid { grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
    .module-tabs, .integration-tabs { padding:6px !important; gap:6px !important; }
    .module-tab, .integration-tab { padding:10px 12px !important; font-size:12px !important; border-radius:12px !important; }
    .monitoring-export-content { padding:18px; border-radius:18px; }
    .report-server-table { font-size:12px; }
}
@media (max-width: 420px) {
    .quick-tile-grid { grid-template-columns:1fr !important; }
    .topbar-actions { gap:6px !important; }
    .mobile-nav-toggle { width:40px; height:40px; }
    .notification-btn, .hamburger-btn { width:40px; height:40px; }
}

/* v1.47 - Exportación de reportes de disponibilidad: modal compacto y progreso inline */
.monitoring-export-content { width:min(900px, calc(100vw - 28px)); padding:24px 26px; }
.monitoring-export-grid { grid-template-columns:minmax(320px,.95fr) minmax(250px,.8fr); gap:22px; }
.monitoring-export-vms { padding:12px 14px; border-radius:16px; }
.monitoring-export-checklist { max-height:300px; gap:8px; padding-right:4px; }
.export-vm-check { min-height:auto; align-items:center; gap:10px; padding:9px 10px; border-radius:12px; }
.export-vm-check span { gap:2px; }
.export-vm-check span strong { font-size:14px; line-height:1.2; color:var(--brand-dark); }
.export-vm-check small { font-size:12px; color:#64748b; font-weight:600; }
.monitoring-export-options label { max-width:100%; }
.monitoring-export-options select,
.monitoring-export-options input[type="datetime-local"] { max-width:100%; }
.export-custom-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.monitoring-export-actions { justify-content:flex-start; gap:10px; margin-top:14px; }
.pdf-progress-modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:1300; background:rgba(5,17,34,.42); backdrop-filter:blur(3px); padding:22px; }
.pdf-progress-modal.is-open { display:flex; }
.pdf-progress-card { width:min(520px, calc(100vw - 42px)); background:#fff; border-radius:18px; box-shadow:0 28px 80px rgba(15,68,116,.24); padding:28px 32px; text-align:center; }
.pdf-progress-card h3 { margin:0 0 10px; color:#1797ff; font-size:22px; font-weight:700; }
.pdf-progress-lines { display:grid; gap:8px; justify-content:center; margin:8px 0 18px; }
.pdf-progress-lines span { display:block; height:5px; border-radius:999px; background:#b9edf8; }
.pdf-progress-lines span:first-child { width:105px; }
.pdf-progress-lines span:last-child { width:56px; justify-self:center; }
.pdf-progress-track { height:20px; border-radius:999px; background:#d8f4f8; overflow:hidden; text-align:left; }
.pdf-progress-bar { width:0%; height:100%; min-width:38px; background:#1da1f2; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; transition:width .28s ease; }
.pdf-progress-card p { margin:14px 0 0; color:#64748b; font-size:13px; }
@media (max-width: 760px){
  .monitoring-export-content { padding:18px; }
  .monitoring-export-grid { grid-template-columns:1fr; gap:14px; }
  .export-custom-row { grid-template-columns:1fr; }
  .monitoring-export-checklist { max-height:260px; }
  .monitoring-export-actions { flex-wrap:wrap; }
}

/* v1.50 - Alineación de acciones del modal de exportación */
.monitoring-export-actions {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:14px;
    margin:14px 0 0;
}
.monitoring-export-actions .btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    min-width:118px;
    margin:0;
    white-space:nowrap;
}
.monitoring-export-actions .monitoring-export-cancel {
    margin:0;
}
@media (max-width:760px) {
    .monitoring-export-actions { gap:10px; flex-wrap:wrap; }
}

/* V1.59 - Proyectos, permisos cliente, onboarding y selección de destinatarios */
.project-filter-card{margin:0 0 18px;padding:14px 16px;border:1px solid #d9e5ef;border-radius:12px;background:#f8fbfe}.project-filter-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.project-chip-list,.project-chip-grid,.permission-check-row,.recipient-chip-list{display:flex;flex-wrap:wrap;gap:8px}.project-chip,.permission-chip,.project-permission-chip{display:inline-flex!important;align-items:center;gap:7px;margin:0!important;padding:7px 11px;border:1px solid #cfe0ed;border-radius:999px;background:#fff;cursor:pointer;font-size:.9rem}.project-chip:has(input:checked),.permission-chip:has(input:checked),.project-permission-chip:has(input:checked){border-color:#33A6DD;background:#eef9fe;color:#0F4474}.project-chip input,.permission-chip input,.project-permission-chip input{margin:0!important;width:auto!important}.resource-section-title{margin:18px 0 10px}.contracted-title{margin-top:22px}.contracted-resource-grid .metric-card small{display:block;margin-top:5px}.resource-mini-progress,.resource-general-progress{height:6px;background:#e5edf4;border-radius:999px;overflow:hidden;margin-top:8px}.resource-mini-progress span,.resource-general-progress span{display:block;height:100%;background:#33A6DD;border-radius:inherit}.resource-general-progress{height:9px}.overall-resource{border-color:#b8dff3}.ticket-copy-card{border:1px solid #d8e4ee;border-radius:12px;padding:14px;background:#fbfdff}.ticket-recipient-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin:10px 0 12px}.recipient-check{display:flex!important;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid #dbe7ef;border-radius:10px;background:#fff;margin:0!important}.recipient-check input{width:auto!important;margin-top:3px!important}.recipient-check span{display:flex;flex-direction:column}.recipient-check small{color:#66788b}.manual-email-entry{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.manual-email-entry label{min-width:260px;margin:0}.recipient-chip{display:inline-flex;align-items:center;gap:4px;background:#eaf7fd;color:#0F4474;border:1px solid #bfe3f5;border-radius:999px;padding:6px 9px;font-size:.88rem}.recipient-chip button{background:transparent!important;border:0!important;color:#0F4474!important;padding:0 2px!important;margin:0!important;font-size:1.1rem;line-height:1}.onboarding-shell{max-width:980px;margin:24px auto}.onboarding-card{padding:28px}.onboarding-progress{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto 22px;max-width:300px}.onboarding-progress span{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e7eef5;color:#64748b;font-weight:700}.onboarding-progress span.active{background:#0F4474;color:#fff}.onboarding-progress i{height:2px;flex:1;background:#d9e5ef}.onboarding-created-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.onboarding-navigation{justify-content:flex-end;margin-top:20px}.disabled-link{opacity:.45;pointer-events:none}.cover-project{font-size:.78em;margin-top:2mm;color:#0F4474;font-weight:700}
.bulk-toolbar{display:none;align-items:center;gap:10px;margin:0 0 12px;padding:9px 12px;border:1px solid #cfe0ed;background:#f6fbfe;border-radius:10px}.bulk-toolbar.is-visible{display:flex}.bulk-select-cell{width:38px;text-align:center}.bulk-select-cell input{width:auto!important;margin:0!important}.bulk-count{font-weight:700;color:#0F4474}.bulk-select-all-label{display:inline-flex;gap:6px;align-items:center;margin:0!important}

.bulk-pill-select{display:inline-flex!important;align-items:center;margin:0 6px 0 0!important}.bulk-pill-select input{width:auto!important;margin:0!important}.bulk-toolbar{flex-wrap:wrap}

/* V1.60 - Wizard reutilizable y formularios de alta por pasos */
.onboarding-existing-users{display:grid;gap:12px;margin:16px 0 20px}.onboarding-existing-user{margin:0}.onboarding-existing-user .catalog-header{align-items:center}.onboarding-add-user-card{margin-top:18px}.onboarding-summary{margin-top:14px;padding:10px 12px;border-radius:10px;background:#f6fbfe;border:1px solid #d8e7f1}.nested-card{margin-top:12px;background:#fbfdff}.wizard-reset-control{margin-top:14px}.wizard-reset-control .checkbox{font-weight:700;color:#0F4474}.create-sla-actions{gap:10px;flex-wrap:wrap}

/* V1.61 - Wizard transaccional y selección vacía de proyectos */
.onboarding-progress-three{max-width:390px}.wizard-step[hidden]{display:none!important}.wizard-step-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.wizard-kicker{display:block;color:#33A6DD;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.onboarding-intro{font-size:1rem;line-height:1.65;color:#526173;max-width:820px}.wizard-draft-list{display:grid;gap:12px;margin-top:16px}.wizard-add-button{margin-top:14px}.wizard-person-card{position:relative}.wizard-person-card.will-promote{border-color:#8bcff0;background:#f5fbff}.wizard-promotion-note{margin-top:12px;padding:9px 11px;border-radius:9px;background:#eaf7fd;border:1px solid #b9e1f4;color:#0F4474;font-weight:700}.wizard-permission-help{margin:14px 0 8px;font-weight:700;color:#42556b}.wizard-live-summary{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.wizard-final-summary{display:grid;gap:14px;margin-top:18px}.wizard-summary-group{border:1px solid #d9e5ef;background:#fbfdff;border-radius:14px;padding:16px}.wizard-summary-group h3{margin:0 0 10px}.wizard-summary-person{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #e5edf4}.wizard-summary-person:last-child{border-bottom:0}.wizard-summary-person>div{display:flex;flex-direction:column;gap:3px}.wizard-summary-person>div:last-child{align-items:flex-end}.wizard-summary-person span:not(.badge),.wizard-summary-person small{color:#64748b}.wizard-summary-ready{padding:12px 14px;border-radius:10px;background:#eef9fe;border:1px solid #bfe3f5;color:#0F4474}.project-selection-empty{margin:18px 0 4px;padding:14px 16px;border:1px dashed #b8d8e9;border-radius:12px;background:#f9fcfe;color:#526173}.project-selection-empty strong{color:#0F4474}.section-heading-row .nubibus-export-hidden{display:none!important}
@media(max-width:680px){.wizard-summary-person{align-items:flex-start;flex-direction:column}.wizard-summary-person>div:last-child{align-items:flex-start}}


/* V1.62 - Alineación de segmentación por proyectos */
.project-scoping-check{display:grid!important;grid-template-columns:auto 1fr;column-gap:10px;row-gap:3px;align-items:center;margin:0!important;padding:0!important;}
.project-scoping-check>input{grid-column:1;grid-row:1;margin:0!important;width:auto!important;align-self:center;}
.project-scoping-label{grid-column:2;grid-row:1;display:block;font-weight:700;line-height:1.25;}
.project-scoping-help{grid-column:2;grid-row:2;display:block;margin:0!important;line-height:1.35;max-width:760px;}


/* V1.63 - reportes multitenant y nombres de archivo compactos */
.availability-reports-table{width:100%;table-layout:fixed;}
.availability-reports-table .report-name-cell{min-width:0;max-width:0;}
.report-file-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);}
.report-projects-note{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere;}
.availability-reports-table .report-col{width:48%;}
.availability-reports-table .report-date-col{width:16%;}
.availability-reports-table .report-creator-col{width:10%;}
.availability-reports-table .report-size-col{width:7%;}
.availability-reports-table .report-actions-col{width:130px;}
.availability-reports-table .bulk-select-cell{width:42px;}
@media(max-width:1100px){.availability-reports-table{min-width:980px;}.availability-reports-table .report-col{width:44%;}}


/* V1.66 - Wizard, proyecto único de tickets y página 404 */
.onboarding-navigation-with-hint{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.onboarding-navigation-with-hint .wizard-nav-hint{color:#6b7280;max-width:620px;line-height:1.45;}
.onboarding-navigation-with-hint .btn{margin-left:auto;}
.wizard-nav-between{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;}
.ticket-project-readonly{grid-column:span 1;padding:12px 14px;border:1px solid #cfe0ed;border-radius:12px;background:#f7fbfe;color:#526173;display:flex;flex-direction:column;gap:4px;}
.ticket-project-readonly[hidden]{display:none!important;}
.ticket-project-readonly strong{color:#0F4474;font-size:1.02rem;}
.error-page-shell{min-height:calc(100vh - 190px);display:flex;align-items:center;justify-content:center;padding:34px 18px;}
.error-page-card{width:min(620px,100%);text-align:center;padding:46px 38px;position:relative;overflow:hidden;}
.error-page-code{position:absolute;inset:auto -12px -50px auto;font-size:190px;line-height:1;font-weight:700;color:#eef6fb;z-index:0;user-select:none;}
.error-page-icon,.error-page-card h1,.error-page-card p,.error-page-actions{position:relative;z-index:1;}
.error-page-icon{width:66px;height:66px;border-radius:20px;margin:0 auto 18px;background:#eef9fe;color:#0F4474;display:flex;align-items:center;justify-content:center;}
.error-page-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.error-page-card h1{margin:0 0 10px;color:#0F4474;}
.error-page-card p{max-width:480px;margin:0 auto;color:#64748b;line-height:1.65;}
.error-page-actions{justify-content:center;margin-top:24px;}
@media(max-width:700px){.wizard-nav-between,.onboarding-navigation-with-hint{align-items:stretch}.wizard-nav-between .btn,.onboarding-navigation-with-hint .btn{width:100%;margin-left:0}.error-page-card{padding:36px 22px}.error-page-code{font-size:130px}}

/* V1.67 - soporte rápido en sidebar y guía del wizard */
.sidebar{display:flex;flex-direction:column;min-height:100vh;}
.sidebar nav{flex:1;}
.sidebar-help-card{margin-top:22px;padding:18px 16px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:linear-gradient(180deg,rgba(33,103,162,.30),rgba(20,72,120,.34));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 8px 28px rgba(3,23,43,.12);}
.sidebar-help-head{display:flex;align-items:flex-start;gap:12px;color:#fff;}
.sidebar-help-icon{width:32px;height:32px;flex:0 0 32px;display:flex;align-items:center;justify-content:center;color:#fff;}
.sidebar-help-icon svg,.sidebar-help-action svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.sidebar-help-head strong{display:block;font-size:16px;line-height:1.25;margin:1px 0 5px;color:#fff;}
.sidebar-help-head span:not(.sidebar-help-icon){display:block;font-size:14px;color:rgba(255,255,255,.78);line-height:1.3;}
.sidebar-help-action{display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;margin:16px 0 0!important;padding:11px 13px!important;border:1px solid rgba(255,255,255,.38)!important;border-radius:11px!important;background:rgba(10,47,82,.18)!important;color:#fff!important;font-weight:700!important;text-align:center;box-shadow:inset 0 0 0 1px rgba(51,166,221,.09);}
.sidebar-help-action:hover{transform:none!important;background:rgba(51,166,221,.23)!important;border-color:rgba(255,255,255,.55)!important;}
.sidebar-help-action>span{display:flex;align-items:center;justify-content:center;}
.sidebar-help-action svg{width:18px;height:18px;}
.wizard-nav-warning{margin:0!important;color:#b42318!important;background:#fff2f0;border:1px solid #f4c7c3;border-left:4px solid #d92d20;border-radius:10px;padding:10px 12px;max-width:680px!important;font-weight:700;}
.wizard-nav-ready{margin:0!important;color:#166534!important;background:#f0fdf4;border:1px solid #bbf7d0;border-left:4px solid #22c55e;border-radius:10px;padding:10px 12px;max-width:680px!important;font-weight:700;}
.wizard-disabled-control{position:relative;display:inline-flex;margin-left:auto;}
.wizard-disabled-control .btn{margin-left:0!important;}
.wizard-disabled-control.is-disabled{cursor:not-allowed;}
.wizard-disabled-control.is-disabled .btn{opacity:.5;cursor:not-allowed;pointer-events:none;}
.wizard-button-tooltip{position:absolute;right:0;bottom:calc(100% + 10px);width:290px;padding:10px 12px;border-radius:10px;background:#1f2937;color:#fff;font-size:.82rem;line-height:1.35;box-shadow:0 10px 28px rgba(15,23,42,.22);opacity:0;visibility:hidden;transform:translateY(4px);transition:.15s ease;z-index:20;pointer-events:none;}
.wizard-button-tooltip:after{content:"";position:absolute;right:24px;top:100%;border:7px solid transparent;border-top-color:#1f2937;}
.wizard-disabled-control.is-disabled:hover .wizard-button-tooltip,.wizard-disabled-control.is-disabled:focus-within .wizard-button-tooltip{opacity:1;visibility:visible;transform:translateY(0);}
.wizard-card-error{margin-top:12px;padding:9px 11px;border-radius:9px;background:#fff1f0;border:1px solid #f2c4bf;color:#b42318;font-weight:700;font-size:.88rem;}
.wizard-card-incomplete{border-color:#e9a8a0!important;box-shadow:0 0 0 2px rgba(217,45,32,.05);}
@media(max-width:900px){.sidebar{min-height:100vh}.sidebar-help-card{margin-top:18px}.wizard-disabled-control{width:100%;margin-left:0}.wizard-disabled-control .btn{width:100%}.wizard-button-tooltip{right:8px;left:8px;width:auto}.wizard-button-tooltip:after{right:28px}}

/* V1.67 - cálculo automático de prioridad de tickets */
.ticket-priority-assessment{border:1px solid #cfe0ed;border-radius:16px;background:#f8fbfe;padding:18px;margin-top:4px;}
.ticket-assessment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;}
.ticket-assessment-head>div:first-child{min-width:0;}
.ticket-assessment-head strong{color:#0F4474;font-size:1.04rem;}
.ticket-assessment-head p{margin:5px 0 0;line-height:1.45;}
.ticket-priority-result{flex:0 0 180px;border:1px solid #bcdced;border-radius:13px;background:#fff;padding:11px 13px;text-align:center;}
.ticket-priority-result span{display:block;color:#64748b;font-size:.78rem;font-weight:700;margin-bottom:4px;}
.ticket-priority-result strong{display:block;font-size:1.15rem;color:#0F4474;}
.ticket-priority-result strong[data-priority="baja"]{color:#2e7d32}.ticket-priority-result strong[data-priority="media"]{color:#b26a00}.ticket-priority-result strong[data-priority="critica"]{color:#b42318}
.ticket-assessment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.ticket-assessment-question{border:0;padding:0;margin:0;min-width:0;}
.ticket-assessment-question legend{font-weight:700;color:#334155;margin-bottom:9px;font-size:.96rem;}
.assessment-option{display:flex!important;align-items:flex-start;gap:9px;margin:0 0 8px!important;padding:10px 11px;border:1px solid #d9e5ef;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;}
.assessment-option:hover{border-color:#94cce8;background:#fbfeff;}
.assessment-option:has(input:checked){border-color:#33A6DD;background:#eef9fe;box-shadow:0 0 0 2px rgba(51,166,221,.07);}
.assessment-option input{width:auto!important;margin:3px 0 0!important;flex:0 0 auto;}
.assessment-option span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.assessment-option strong{font-size:.93rem;color:#25364b;}
.assessment-option small{margin:0!important;color:#6b7280;font-weight:300;line-height:1.35;}
.report-timezone-note{margin-top:3px!important;font-size:.72rem;white-space:nowrap;}
@media(max-width:760px){.ticket-assessment-head{flex-direction:column}.ticket-priority-result{width:100%;flex-basis:auto;text-align:left}.ticket-assessment-grid{grid-template-columns:1fr}}


/* V1.68 - modo nocturno, sidebar adaptable y refinamientos de Ticketing */
.theme-toggle-btn{
    margin:0;width:40px;height:40px;padding:0;border-radius:999px;border:1px solid rgba(15,68,116,.10);
    background:#eef7fc;color:var(--clouding-primary);display:inline-flex;align-items:center;justify-content:center;
    box-shadow:none;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.theme-toggle-btn:hover{background:#dff2fb;transform:translateY(-1px)}
.theme-toggle-btn .theme-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-icon-sun{display:none}
html[data-theme="dark"] .theme-icon-moon{display:none}
html[data-theme="dark"] .theme-icon-sun{display:block}

@media(min-width:901px){
    .sidebar{position:sticky!important;top:0;height:100vh!important;min-height:100vh!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.20) transparent}
    .sidebar nav{flex:0 0 auto!important}
    .sidebar-help-card{margin-top:auto!important}
}

html[data-theme="dark"]{
    color-scheme:dark;
    --clouding-primary:#63c7f2;
    --clouding-secondary:#33A6DD;
    --bg:#101923;
    --text:#e8f1f8;
    --muted:#94a8bb;
    --panel:#172432;
    --border:#2b4154;
}
html[data-theme="dark"] body{background:#101923!important;color:#e8f1f8!important}
html[data-theme="dark"] .main,html[data-theme="dark"] .content{background:#101923!important}
html[data-theme="dark"] .topbar{background:rgba(18,30,42,.96)!important;border-color:#2b4154!important;box-shadow:0 6px 24px rgba(0,0,0,.16)}
html[data-theme="dark"] .topbar-brand,html[data-theme="dark"] .user-menu,html[data-theme="dark"] .top-user-menu,html[data-theme="dark"] .user-name-label strong{color:#e8f1f8!important}
html[data-theme="dark"] .user-name-label small{color:#94a8bb!important}
html[data-theme="dark"] .theme-toggle-btn,html[data-theme="dark"] .notification-btn,html[data-theme="dark"] .hamburger-btn,html[data-theme="dark"] .mobile-nav-toggle{background:#1b2c3d!important;color:#73cef3!important;border-color:#304a60!important}
html[data-theme="dark"] .theme-toggle-btn:hover,html[data-theme="dark"] .notification-btn:hover,html[data-theme="dark"] .hamburger-btn:hover{background:#22394d!important}
html[data-theme="dark"] .notification-btn span{border-color:#172432!important}
html[data-theme="dark"] .panel,html[data-theme="dark"] .metric-card,html[data-theme="dark"] .dash-card,html[data-theme="dark"] .dash-chart-panel,html[data-theme="dark"] .recent-panel,html[data-theme="dark"] .quick-panel,
html[data-theme="dark"] .ticket-copy-card,html[data-theme="dark"] .ticket-priority-assessment,html[data-theme="dark"] .conditional-section,html[data-theme="dark"] .nested-card,
html[data-theme="dark"] .onboarding-card,html[data-theme="dark"] .wizard-summary-group,html[data-theme="dark"] .onboarding-summary,html[data-theme="dark"] .project-filter-card,
html[data-theme="dark"] .integration-tabs:not(.integration-tabs),html[data-theme="dark"] .graph-preview-box,html[data-theme="dark"] .monitoring-export-content,
html[data-theme="dark"] .confirm-modal,html[data-theme="dark"] .global-pdf-content,html[data-theme="dark"] .attachment-modal-content,html[data-theme="dark"] .error-page-card{
    background:#172432!important;border-color:#2b4154!important;color:#e8f1f8!important;box-shadow:0 12px 34px rgba(0,0,0,.22)!important;
}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,html[data-theme="dark"] h4{color:#73cef3!important}
html[data-theme="dark"] p,html[data-theme="dark"] .muted,html[data-theme="dark"] small,html[data-theme="dark"] .details dt{color:#94a8bb!important}
html[data-theme="dark"] label{color:#dce8f2!important}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,
html[data-theme="dark"] .compact-input,html[data-theme="dark"] .compact-select{background:#1b2b3b!important;color:#eef6fb!important;border-color:#365168!important;box-shadow:none!important}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#71869a!important}
html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{border-color:#33A6DD!important;box-shadow:0 0 0 3px rgba(51,166,221,.14)!important;outline:none}
html[data-theme="dark"] .data-table th{color:#b9cadd!important;border-color:#2b4154!important;background:#1a2a3a!important}
html[data-theme="dark"] .data-table td{color:#e1ebf3!important;border-color:#2b4154!important;background:#172432!important}
html[data-theme="dark"] .data-table tbody tr:hover td{background:#1b2d3e!important}
html[data-theme="dark"] .table-panel{background:#172432!important}
html[data-theme="dark"] .details dd{color:#e8f1f8!important}
html[data-theme="dark"] .btn.secondary-link,html[data-theme="dark"] button.secondary-link{background:#213548!important;color:#75cef2!important;border-color:#365168!important}
html[data-theme="dark"] .btn.secondary-link:hover,html[data-theme="dark"] button.secondary-link:hover{background:#29435a!important}
html[data-theme="dark"] .module-tabs{background:#152636!important;border-color:#2b4154!important;box-shadow:none!important}
html[data-theme="dark"] .module-tab{background:#1b3042!important;color:#9fdcf5!important;border-color:#304a60!important}
html[data-theme="dark"] .module-tab.active{background:linear-gradient(135deg,#0F4474,#238fc7)!important;color:#fff!important}
html[data-theme="dark"] .notification-dropdown,html[data-theme="dark"] .user-dropdown{background:#172432!important;border-color:#304a60!important;box-shadow:0 22px 55px rgba(0,0,0,.38)!important}
html[data-theme="dark"] .notification-head{border-color:#2b4154!important;color:#e8f1f8!important}
html[data-theme="dark"] .notification-item{color:#dfeaf2!important}
html[data-theme="dark"] .notification-item:hover{background:#203548!important}
html[data-theme="dark"] .notification-item.unread{background:#183349!important;border-left-color:#33A6DD!important}
html[data-theme="dark"] .notification-item strong{color:#77d0f4!important}
html[data-theme="dark"] .notification-item span{color:#bdcbd8!important}
html[data-theme="dark"] .user-dropdown a{color:#dce8f2!important}
html[data-theme="dark"] .user-dropdown a:hover{background:#213548!important;color:#75cef2!important}
html[data-theme="dark"] .assessment-option,html[data-theme="dark"] .recipient-check,html[data-theme="dark"] .project-chip,html[data-theme="dark"] .permission-chip,html[data-theme="dark"] .project-permission-chip,
html[data-theme="dark"] .export-vm-check{background:#1a2a39!important;border-color:#314b61!important;color:#dfeaf2!important}
html[data-theme="dark"] .assessment-option:has(input:checked),html[data-theme="dark"] .project-chip:has(input:checked),html[data-theme="dark"] .permission-chip:has(input:checked),html[data-theme="dark"] .project-permission-chip:has(input:checked){background:#15384c!important;border-color:#33A6DD!important;color:#eef8fc!important}
html[data-theme="dark"] .ticket-priority-result{background:#1b2d3d!important;border-color:#365168!important}
html[data-theme="dark"] .ticket-detail-strip>div{background:#1b2b3b!important;border-color:#304a60!important}
html[data-theme="dark"] .ticket-detail-strip span{color:#91a6b9!important}
html[data-theme="dark"] .ticket-detail-strip strong{color:#eef6fb!important}
html[data-theme="dark"] .chat-bubble{background:#1a2b3b!important;border-color:#304a60!important;color:#e8f1f8!important}
html[data-theme="dark"] .chat-message.clouding .chat-bubble{background:#173247!important;border-color:#28618a!important}
html[data-theme="dark"] .chat-meta span{color:#94a8bb!important}
html[data-theme="dark"] .quick-tile,html[data-theme="dark"] .recent-ticket-item{background:#1a2a39!important;border-color:#2e485e!important;color:#e8f1f8!important}
html[data-theme="dark"] .catalog-card,html[data-theme="dark"] .company-card,html[data-theme="dark"] .sla-card,html[data-theme="dark"] .dc-card{background:#172432!important;border-color:#2b4154!important;color:#e8f1f8!important}
html[data-theme="dark"] .infrastructure-check,html[data-theme="dark"] .report-ssh-fields,html[data-theme="dark"] .report-local-fields{background:#1a2a39!important;border-color:#304a60!important}
html[data-theme="dark"] code{background:#1e3346!important;color:#8ed7f5!important}
html[data-theme="dark"] .graph-preview-box,html[data-theme="dark"] .monitoring-export-vms{background:#142332!important;border-color:#304a60!important}
html[data-theme="dark"] .pagination .page-link{background:#1b2d3e!important;color:#bfe4f5!important;border-color:#304a60!important}
html[data-theme="dark"] .pagination .page-link.active{background:#33A6DD!important;color:#06243a!important;border-color:#33A6DD!important}
html[data-theme="dark"] .alert-success{background:#143b2b!important;color:#8de3b0!important}
html[data-theme="dark"] .alert-warning{background:#403416!important;color:#f4d77f!important}
html[data-theme="dark"] .alert-error{background:#451e25!important;color:#ffb4bb!important}
html[data-theme="dark"] .sidebar{background:linear-gradient(180deg,#0b355d 0%,#092c4d 58%,#071f36 100%)!important}
html[data-theme="dark"] .sidebar-help-card{background:linear-gradient(180deg,rgba(31,111,169,.34),rgba(15,64,105,.44))!important;border-color:rgba(107,196,236,.16)!important}
html[data-theme="dark"] .confirm-modal-backdrop,html[data-theme="dark"] .monitoring-export-backdrop,html[data-theme="dark"] .mobile-sidebar-backdrop{background:rgba(3,10,18,.68)!important}
@media(max-width:900px){html[data-theme="dark"] .topbar{background:rgba(18,30,42,.97)!important}}

/* V1.69 - pulido integral del modo nocturno */
html[data-theme="dark"]{
    --clouding-primary:#63cef5;
    --clouding-secondary:#33A6DD;
    --bg:#101923;
    --text:#f3f8fc;
    --muted:#b7c6d4;
    --panel:#172432;
    --border:#334c61;
}
html[data-theme="dark"] body,
html[data-theme="dark"] .content,
html[data-theme="dark"] .main{color:#f3f8fc!important;}
html[data-theme="dark"] p,
html[data-theme="dark"] .muted,
html[data-theme="dark"] small,
html[data-theme="dark"] .details dt,
html[data-theme="dark"] .recent-date,
html[data-theme="dark"] .ticket-actor-note{color:#b7c6d4!important;}
html[data-theme="dark"] label,
html[data-theme="dark"] .details dd,
html[data-theme="dark"] .data-table td,
html[data-theme="dark"] .ticket-message,
html[data-theme="dark"] .notification-history-body{color:#edf5fa!important;}
html[data-theme="dark"] .content a:not(.btn):not(.module-tab):not(.integration-tab):not(.quick-tile):not(.recent-ticket-item),
html[data-theme="dark"] .tiny-link,
html[data-theme="dark"] .row-title-link{color:#58c8f5!important;}
html[data-theme="dark"] .content a:not(.btn):hover{color:#86dcfa!important;}

/* Dashboard: enlaces y textos que perdían contraste */
html[data-theme="dark"] .recent-main strong,
html[data-theme="dark"] .quick-tile strong{color:#58c8f5!important;}
html[data-theme="dark"] .recent-main small,
html[data-theme="dark"] .quick-tile small,
html[data-theme="dark"] .dash-card-label{color:#c5d3df!important;}
html[data-theme="dark"] .quick-tile span,
html[data-theme="dark"] .dash-card-icon{background:#20364a!important;border-color:#3c5870!important;color:#69cff5!important;}
html[data-theme="dark"] .quick-tile:hover{background:#203447!important;border-color:#41627c!important;box-shadow:0 12px 30px rgba(0,0,0,.22)!important;}
html[data-theme="dark"] .chart-grid{stroke:#3b5368!important;}
html[data-theme="dark"] .chart-label{fill:#aebfce!important;}
html[data-theme="dark"] .chart-dot{stroke:#eef7fb!important;}
html[data-theme="dark"] .sla-ring span{background:#172432!important;}

/* Contenedores claros históricos: todos pasan a superficies nocturnas */
html[data-theme="dark"] .compact-config-card,
html[data-theme="dark"] .sync-panel,
html[data-theme="dark"] .sla-option,
html[data-theme="dark"] .qr-card,
html[data-theme="dark"] .catalog-empty,
html[data-theme="dark"] .form-panel-muted,
html[data-theme="dark"] .security-help,
html[data-theme="dark"] .ticket-message,
html[data-theme="dark"] .ticket-event-checks,
html[data-theme="dark"] .extra-email-card .ticket-event-checks,
html[data-theme="dark"] .attachment-chip,
html[data-theme="dark"] .notification-target-box,
html[data-theme="dark"] .notification-history-body,
html[data-theme="dark"] .sla-chart-box,
html[data-theme="dark"] .sla-score-card,
html[data-theme="dark"] .logo-preview-box,
html[data-theme="dark"] .project-selection-empty,
html[data-theme="dark"] .onboarding-summary,
html[data-theme="dark"] .nested-card,
html[data-theme="dark"] .wizard-summary-group,
html[data-theme="dark"] .wizard-summary-ready,
html[data-theme="dark"] .ticket-project-readonly,
html[data-theme="dark"] .bulk-toolbar,
html[data-theme="dark"] .pdf-progress-card,
html[data-theme="dark"] .image-zoom-content,
html[data-theme="dark"] .image-zoom-stage{
    background:#192a3a!important;
    border-color:#334f66!important;
    color:#edf5fa!important;
    box-shadow:none!important;
}
html[data-theme="dark"] .catalog-empty,
html[data-theme="dark"] .project-selection-empty{border-style:dashed!important;}
html[data-theme="dark"] .security-help ol,
html[data-theme="dark"] .security-help li{color:#c3d1dc!important;}
html[data-theme="dark"] .security-help strong,
html[data-theme="dark"] .security-help b{color:#f5f9fc!important;}
html[data-theme="dark"] #totp_qr{background:#eaf1f6!important;border-color:#7890a3!important;}

/* SLA de clientes: elimina las franjas blancas */
html[data-theme="dark"] .sla-client-row{
    background:#1b2d3e!important;
    border-color:#38546b!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.015)!important;
}
html[data-theme="dark"] .sla-client-row:hover{background:#203447!important;border-color:#41647e!important;}
html[data-theme="dark"] .sla-client-name strong,
html[data-theme="dark"] .sla-client-score strong{color:#63cef5!important;}
html[data-theme="dark"] .sla-client-name small{color:#b8c8d6!important;}
html[data-theme="dark"] .sla-client-track{background:#2b3d4f!important;}

/* Notificaciones y editor enriquecido */
html[data-theme="dark"] .notification-card,
html[data-theme="dark"] .delivery-option,
html[data-theme="dark"] .rich-editor{
    background:#192a3a!important;
    border-color:#365269!important;
    color:#f2f7fb!important;
}
html[data-theme="dark"] .delivery-option.active{
    background:#16394e!important;
    border-color:#45b9ec!important;
    box-shadow:0 8px 20px rgba(0,0,0,.18)!important;
}
html[data-theme="dark"] .delivery-option strong,
html[data-theme="dark"] .notification-card h3{color:#63cef5!important;}
html[data-theme="dark"] .delivery-option small,
html[data-theme="dark"] .notification-card .small-note{color:#b9c8d5!important;}
html[data-theme="dark"] .rich-editor-toolbar{
    background:#1c3143!important;
    border-color:#3b566d!important;
}
html[data-theme="dark"] .rich-editor-toolbar button,
html[data-theme="dark"] .rich-editor-toolbar select,
html[data-theme="dark"] .rich-editor-toolbar button.rich-icon-btn{
    background:#223b50!important;
    color:#65cff6!important;
    border-color:#36566f!important;
}
html[data-theme="dark"] .rich-editor-toolbar button:hover,
html[data-theme="dark"] .rich-editor-toolbar button.rich-icon-btn:hover{background:#294861!important;color:#9ce5ff!important;}
html[data-theme="dark"] .rich-editor-toolbar .toolbar-sep{background:#405b70!important;}
html[data-theme="dark"] .rich-editor-body{
    background:#152536!important;
    color:#f2f7fb!important;
}
html[data-theme="dark"] .rich-editor-body:empty:before{color:#9fb1c1!important;}
html[data-theme="dark"] .email-chip{background:#183c52!important;color:#80d8f8!important;border-color:#32627d!important;}
html[data-theme="dark"] .email-chip button{background:#244c64!important;color:#8ee0fb!important;}
html[data-theme="dark"] .notification-target-box label,
html[data-theme="dark"] .notification-card label{color:#eaf3f9!important;}

/* Contratos y formularios de clientes */
html[data-theme="dark"] .contract-card-list .compact-config-card,
html[data-theme="dark"] .contract-rows .compact-config-card{background:#1a2c3c!important;border-color:#365269!important;}
html[data-theme="dark"] .contract-card-list .details dt{color:#9fb4c5!important;}
html[data-theme="dark"] .contract-card-list .details dd{color:#edf5fa!important;}
html[data-theme="dark"] .company-title-logo,
html[data-theme="dark"] .company-data-logo{background:#203244!important;border-color:#405d73!important;}

/* Monitoreo: paneles oscuros; la imagen de Observium conserva fondo claro por legibilidad */
html[data-theme="dark"] .monitoring-selector,
html[data-theme="dark"] .graph-card{
    background:#192b3b!important;
    border-color:#365269!important;
    box-shadow:0 10px 26px rgba(0,0,0,.20)!important;
}
html[data-theme="dark"] .graph-card h4{color:#63cef5!important;}
html[data-theme="dark"] .graph-card img,
html[data-theme="dark"] .graph-preview-box img,
html[data-theme="dark"] .report-graph-image{
    background:#fff!important;
    border:2px solid rgba(245,250,253,.92)!important;
    box-shadow:0 0 0 1px rgba(51,166,221,.22),0 8px 24px rgba(0,0,0,.25)!important;
}

/* Ticketing: respuesta, descripción y bloques auxiliares */
html[data-theme="dark"] .reply-form,
html[data-theme="dark"] .ticket-copy-card{color:#edf5fa!important;}
html[data-theme="dark"] .chat-text blockquote{background:#1b3448!important;border-left-color:#4fc1ef!important;color:#dce9f2!important;}
html[data-theme="dark"] .attachment-modal-close{background:#223a4e!important;color:#72d0f4!important;}
html[data-theme="dark"] .attachment-modal-content{background:#172432!important;border:1px solid #365269!important;}
html[data-theme="dark"] .attachment-modal-content iframe{background:#182838!important;border-color:#365269!important;}

/* Integraciones: pestañas y tarjetas internas coherentes con tema nocturno */
html[data-theme="dark"] .integration-tabs{
    background:linear-gradient(135deg,#13283a 0%,#17354b 100%)!important;
    border-color:#365a72!important;
    box-shadow:0 14px 34px rgba(0,0,0,.24)!important;
}
html[data-theme="dark"] .integration-tab{
    background:#1a3246!important;
    color:#cbe9f7!important;
    border-color:#34536a!important;
}
html[data-theme="dark"] .integration-tab:hover{background:#24465f!important;color:#f4fbff!important;}
html[data-theme="dark"] .integration-tab.active{
    background:linear-gradient(135deg,#0f5d8f 0%,#2a9dd3 100%)!important;
    color:#fff!important;
    box-shadow:inset 0 -3px 0 rgba(255,255,255,.18)!important;
}
html[data-theme="dark"] .graph-type-pill{
    background:#1b2d3d!important;
    border-color:#365269!important;
    color:#eef6fb!important;
    box-shadow:none!important;
}
html[data-theme="dark"] .graph-type-pill strong{color:#65cff6!important;}
html[data-theme="dark"] .graph-type-pill small{color:#b7c6d4!important;}
html[data-theme="dark"] .graph-preview-box{background:#142332!important;border-color:#365269!important;}

/* Modales y utilidades que todavía podían quedar blancos */
html[data-theme="dark"] .confirm-check{background:#18364a!important;border-color:#35627e!important;color:#edf5fa!important;}
html[data-theme="dark"] .global-pdf-content,
html[data-theme="dark"] .email-preview-content{background:#172432!important;border:1px solid #365269!important;}
html[data-theme="dark"] .global-pdf-content iframe,
html[data-theme="dark"] .email-preview-content iframe{border-color:#365269!important;}
html[data-theme="dark"] .icon-action{background:#21384b!important;color:#72d1f5!important;}
html[data-theme="dark"] .icon-action:hover{background:#294860!important;}

/* Alertas informativas y wizard, sin fondos blancos agresivos */
html[data-theme="dark"] .alert-info{background:#15384c!important;color:#9ce3fb!important;border-color:#2f6480!important;}
html[data-theme="dark"] .wizard-nav-warning,
html[data-theme="dark"] .wizard-card-error{background:#3c2228!important;color:#ffc1c6!important;border-color:#7a3d47!important;}
html[data-theme="dark"] .wizard-nav-ready{background:#183b2d!important;color:#a5e9be!important;border-color:#347657!important;}
html[data-theme="dark"] .wizard-person-card.will-promote,
html[data-theme="dark"] .wizard-promotion-note{background:#183b50!important;border-color:#377898!important;color:#b8e9fb!important;}

/* Campos disabled/read-only y autocompletado deben seguir siendo legibles */
html[data-theme="dark"] input:disabled,
html[data-theme="dark"] select:disabled,
html[data-theme="dark"] textarea:disabled,
html[data-theme="dark"] input[readonly],
html[data-theme="dark"] textarea[readonly]{background:#162738!important;color:#bac9d6!important;opacity:1!important;}
html[data-theme="dark"] select option{background:#1b2b3b!important;color:#eef6fb!important;}
/* V1.69 - ajuste final de contraste de lectura */
html[data-theme="dark"] p{color:#c7d4df!important;}
html[data-theme="dark"] .muted,
html[data-theme="dark"] small{color:#b9c8d5!important;}
html[data-theme="dark"] .data-table th{color:#d4e2ec!important;}

/* V1.70 - cuestionarios de prioridad, estados de VM y refinamientos finales de dark mode */
.ticket-priority-visibility-check{
    align-items:flex-start!important;
    flex-wrap:wrap;
    gap:8px 10px!important;
    padding:13px 14px;
    border:1px solid rgba(51,166,221,.20);
    border-radius:14px;
    background:#f8fbfe;
}
.ticket-priority-visibility-check>input{margin-top:3px!important;flex:0 0 auto;width:auto!important;}
.ticket-priority-visibility-label{font-weight:700;color:#26384d;}
.ticket-priority-visibility-help{flex-basis:100%;padding-left:28px;line-height:1.4;}

.category-priority-config{
    border:1px solid #d8e5ef;border-radius:15px;padding:15px;background:#f8fbfe;
}
.classification-mode-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0;}
.classification-mode-option{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border:1px solid #d5e3ed;border-radius:12px;background:#fff;cursor:pointer;margin:0!important;}
.classification-mode-option input{width:auto!important;margin-top:3px!important;}
.classification-mode-option span{display:flex;flex-direction:column;gap:3px;}
.classification-mode-option strong{color:#173b5d;}.classification-mode-option small{color:#6e7e8d;line-height:1.35;}
.classification-mode-option:has(input:checked){border-color:#33A6DD;background:#eef9fe;box-shadow:0 0 0 2px rgba(51,166,221,.06);}
.category-mode-detail{max-width:520px;margin-top:10px;}
.questionnaire-editor-panel .catalog-header{align-items:flex-start;}
.questionnaire-builder{display:grid;gap:14px;}
.questionnaire-question-card{border:1px solid #d8e5ef;border-radius:15px;padding:14px;background:#f9fcfe;}
.questionnaire-question-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;}
.questionnaire-option-list{display:grid;gap:8px;margin-top:10px;}
.questionnaire-option-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:end;}
.questionnaire-matrix{overflow:auto;border:1px solid #d8e5ef;border-radius:14px;background:#fff;}
.questionnaire-matrix table{margin:0;min-width:760px;}
.questionnaire-matrix td:first-child{min-width:380px;}
.questionnaire-matrix .matrix-priority{min-width:150px;}
.questionnaire-matrix-empty{padding:16px;color:#6b7b8a;}

.vm-state-badge{display:inline-flex;align-items:center;justify-content:center;min-width:78px;border-radius:999px;padding:5px 10px;font-weight:700;font-size:.82rem;line-height:1;}
.vm-state-running{background:#d8f5e3!important;color:#17733d!important;}
.vm-state-poweroff{background:#fff0d6!important;color:#aa5c00!important;}
.vm-state-unknown{background:#eee4ff!important;color:#6e36b5!important;}
.vm-state-failed{background:#ffe0e0!important;color:#b42318!important;}

@media(max-width:760px){
    .classification-mode-row{grid-template-columns:1fr;}
    .questionnaire-option-row{grid-template-columns:1fr;}
    .ticket-priority-visibility-help{padding-left:0;}
}

/* El bloque de restablecimiento no debe conservar fondo claro en tema nocturno. */
html[data-theme="dark"] .password-reset-card{
    background:#1a2c3c!important;
    border-color:#365269!important;
    color:#f2f7fb!important;
    box-shadow:none!important;
}
html[data-theme="dark"] .password-reset-card strong,
html[data-theme="dark"] .password-reset-card b{color:#f5f9fc!important;}
html[data-theme="dark"] .password-reset-card p,
html[data-theme="dark"] .password-reset-card small{color:#bdccd8!important;}

/* Cuestionario del nuevo ticket: contraste completo en modo nocturno. */
html[data-theme="dark"] .ticket-priority-assessment{
    background:#192b3b!important;border-color:#365269!important;color:#f2f7fb!important;
}
html[data-theme="dark"] .ticket-assessment-head strong,
html[data-theme="dark"] .ticket-assessment-question legend,
html[data-theme="dark"] .assessment-option strong{color:#f4f9fc!important;}
html[data-theme="dark"] .ticket-assessment-head p,
html[data-theme="dark"] .assessment-option small{color:#bdccd8!important;}
html[data-theme="dark"] .assessment-option{
    background:#1d3041!important;border-color:#3b566d!important;color:#eef6fb!important;
}
html[data-theme="dark"] .assessment-option:hover{background:#22394d!important;border-color:#4d718d!important;}
html[data-theme="dark"] .assessment-option:has(input:checked){background:#153a50!important;border-color:#46bced!important;box-shadow:0 0 0 2px rgba(70,188,237,.08)!important;}
html[data-theme="dark"] .ticket-priority-result{background:#162838!important;border-color:#3c5970!important;}
html[data-theme="dark"] .ticket-priority-result span{color:#aebfcd!important;}
html[data-theme="dark"] .ticket-priority-result strong{color:#70d2f7!important;}

/* Administrador de cuestionarios y clasificación de categorías. */
html[data-theme="dark"] .category-priority-config,
html[data-theme="dark"] .questionnaire-question-card,
html[data-theme="dark"] .questionnaire-matrix,
html[data-theme="dark"] .ticket-priority-visibility-check{
    background:#192b3b!important;border-color:#365269!important;color:#eef6fb!important;
}
html[data-theme="dark"] .classification-mode-option{background:#1d3041!important;border-color:#3b566d!important;color:#eef6fb!important;}
html[data-theme="dark"] .classification-mode-option:has(input:checked){background:#153a50!important;border-color:#46bced!important;}
html[data-theme="dark"] .classification-mode-option strong,
html[data-theme="dark"] .ticket-priority-visibility-label{color:#f3f8fc!important;}
html[data-theme="dark"] .classification-mode-option small,
html[data-theme="dark"] .ticket-priority-visibility-help,
html[data-theme="dark"] .questionnaire-matrix-empty{color:#bdccd8!important;}
html[data-theme="dark"] .questionnaire-matrix .data-table td{background:#192b3b!important;}

/* Estados VM conservan diferenciación semántica también en tema nocturno. */
html[data-theme="dark"] .vm-state-running{background:#163b2b!important;color:#91e1b2!important;}
html[data-theme="dark"] .vm-state-poweroff{background:#463318!important;color:#ffd08b!important;}
html[data-theme="dark"] .vm-state-unknown{background:#342448!important;color:#d4b3ff!important;}
html[data-theme="dark"] .vm-state-failed{background:#472127!important;color:#ffb0b7!important;}
