:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1f2937;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}a{color:#2354a5;text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1480px;margin:auto;padding:0 18px}header{background:#111827;color:white}.nav{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:800;color:white;font-size:20px}.nav nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.nav nav a{color:#e5e7eb}.user{color:#9ca3af}main{padding-top:26px;padding-bottom:40px}h1{font-size:28px}h2{margin-top:0}.card{background:white;border:1px solid #e5e7eb;border-radius:12px;padding:18px;margin:14px 0;box-shadow:0 2px 8px rgba(0,0,0,.03)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.metric{font-size:30px;font-weight:800}.muted{color:#6b7280}.ok{color:#087a46}.warn{color:#ad6800}.bad{color:#b42318}.badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2f7}.badge.ok{background:#e7f8ef}.badge.warn{background:#fff4d6}.badge.bad{background:#feeceb}table{width:100%;border-collapse:collapse;background:white;border-radius:10px;overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e5e7eb;vertical-align:top}th{background:#f9fafb;font-size:13px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}label{font-weight:650;font-size:14px;display:block;margin-bottom:5px}input,select,textarea{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:white}textarea{min-height:90px}.btn{display:inline-block;border:0;border-radius:8px;background:#1d4ed8;color:#fff;padding:10px 15px;cursor:pointer;font-weight:700}.btn.secondary{background:#475569}.btn.danger{background:#b42318}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.alertbox{padding:12px;border-radius:8px;margin:10px 0;background:#eff6ff}.alertbox.error{background:#feeceb;color:#7f1d1d}.alertbox.success{background:#e7f8ef;color:#065f46}.token{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;padding:12px;background:#111827;color:#f9fafb;border-radius:8px}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-all;background:#f3f4f6;padding:10px;border-radius:8px}footer{color:#6b7280;padding:25px 0;border-top:1px solid #e5e7eb}@media(max-width:720px){table{display:block;overflow-x:auto}.nav{align-items:flex-start;padding-top:15px;padding-bottom:15px;flex-direction:column}.metric{font-size:24px}}
.summary-card{display:block;color:inherit;transition:transform .12s ease,box-shadow .12s ease}.summary-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.07)}.summary-hint{font-size:12px;color:#6b7280;margin-top:4px}.filterbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filterbar input{min-width:280px;flex:1}.filterbar select{width:auto;min-width:160px}.table-card{padding:0;overflow:hidden}.mini-link{font-size:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.tabs a{padding:9px 13px;border-radius:8px;background:#e9eef6;color:#334155;font-weight:700}.tabs a.active{background:#1d4ed8;color:#fff}.rangebar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.rangebar a{padding:7px 11px;border-radius:999px;background:#e9eef6;font-weight:700}.rangebar a.active{background:#111827;color:white}.history-chart{display:block;width:100%;height:auto;min-height:180px}.history-chart .gridline{stroke:#d9e0ea;stroke-width:1}.history-chart .metricline{fill:none;stroke:#1d4ed8;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.history-chart .warnline{stroke:#d97706;stroke-width:1.5;stroke-dasharray:7 5}.history-chart .critline{stroke:#b42318;stroke-width:1.5;stroke-dasharray:7 5}.history-chart .axis-label{font-size:12px;fill:#64748b}.empty-chart{padding:38px;text-align:center;color:#64748b;background:#f8fafc;border-radius:10px}.timeline-chart{display:grid;gap:9px}.timeline-row{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:12px;align-items:center}.timeline-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.timeline-track{position:relative;height:18px;border-radius:999px;background:#edf2f7;overflow:hidden}.timeline-bar{position:absolute;top:2px;height:14px;border-radius:999px}.timeline-bar.warning{background:#e8a11b}.timeline-bar.critical{background:#d5443d}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{margin:0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.inline-action{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:5px 0}.inline-action input{width:190px;padding:7px}.inline-action select{width:auto;padding:7px}.btn.small{padding:7px 10px;font-size:12px}.ack-note{margin-top:8px;padding:8px;border-left:3px solid #087a46;background:#eefbf4;font-size:12px;color:#365b49}.muted-badge{background:#ede9fe;color:#6d28d9}.quick-history{text-align:left}@media(max-width:720px){.filterbar input{min-width:100%}.timeline-row{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}}
.badge.info{background:#e0f2fe;color:#075985}.copy-id,.linkbtn{border:0;background:#e9eef6;color:#2354a5;border-radius:6px;padding:5px 8px;cursor:pointer;font-size:12px;font-weight:700}.copy-id:hover,.linkbtn:hover{background:#dbe5f4}.linkbtn{background:transparent;padding:0;margin-left:8px}.alertbox.warn{background:#fff4d6;color:#7c4a03}code{word-break:break-word}

/* v0.6.4 - UX dashboard e incidencias */
.search-card{padding:14px 18px}.dashboard-table-card{overflow-x:auto}.dashboard-table{table-layout:fixed;min-width:1120px}.dashboard-table th:nth-child(1){width:14%}.dashboard-table th:nth-child(2){width:13%}.dashboard-table th:nth-child(3){width:10%}.dashboard-table th:nth-child(4),.dashboard-table th:nth-child(5){width:8%}.dashboard-table th:nth-child(6){width:23%}.dashboard-table th:nth-child(7){width:10%}.dashboard-table th:nth-child(8){width:14%}.dashboard-table td{vertical-align:middle;overflow-wrap:anywhere}.server-row{cursor:pointer;transition:background .12s ease}.server-row:hover{background:#f8fbff}.server-name{display:inline-block;font-weight:800;font-size:15px}.server-sub{display:block;color:#64748b;font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-cell,.ip-cell,.state-cell,.last-seen-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.public-ip,.ip-more,.state-ok-note,.last-seen-cell span{color:#64748b;font-size:12px}.state-ok-note{color:#15803d}.last-seen-cell strong{font-size:13px}.last-seen-cell span{white-space:nowrap}.remote-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;max-width:100%}.remote-chip{display:inline-flex;align-items:center;max-width:100%;border:1px solid #d9e2ef;border-radius:7px;background:#f8fafc;overflow:hidden;white-space:nowrap;font-size:11px;line-height:1}.remote-chip-provider{padding:6px 5px;background:#e8eef8;color:#334155;font-weight:800;letter-spacing:.02em}.remote-chip-id{padding:6px 7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden;text-overflow:ellipsis}.metric-compact{display:flex;flex-direction:column;gap:6px;min-width:62px}.metric-compact strong{font-size:13px}.mini-meter{display:block;height:6px;border-radius:999px;background:#e7edf5;overflow:hidden;width:100%}.mini-meter-fill{display:block;height:100%;border-radius:999px;background:#3b82f6}.mini-meter-fill.warning{background:#d97706}.mini-meter-fill.critical{background:#b42318}
.incidents-card{overflow-x:auto}.incidents-table{table-layout:fixed;min-width:1100px}.incidents-table th:nth-child(1){width:12%}.incidents-table th:nth-child(2){width:9%}.incidents-table th:nth-child(3){width:13%}.incidents-table th:nth-child(4){width:28%}.incidents-table th:nth-child(5){width:13%}.incidents-table th:nth-child(6){width:13%}.incidents-table th:nth-child(7){width:12%}.incident-status-sub,.incident-resource{display:block;color:#64748b;font-size:12px;margin-top:5px}.incident-message{font-weight:650;line-height:1.35}.incident-time{display:flex;flex-direction:column;gap:4px;font-size:12px}.incident-time span{color:#64748b}.incident-actions{display:flex;flex-direction:column;align-items:stretch;gap:7px}.incident-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}.incident-form input{min-width:170px;flex:1;padding:7px}.incident-note-edit input{min-width:220px}.incident-form select{width:auto;min-width:120px;padding:7px}.ack-note-text{margin-top:5px;font-size:13px;color:#1f2937}.ack-note{border-radius:0 8px 8px 0}.badge{white-space:nowrap}
@media(max-width:1180px){.wrap{padding-left:14px;padding-right:14px}.dashboard-table-card,.incidents-card{margin-left:0;margin-right:0}.dashboard-table,.incidents-table{min-width:1050px}}
@media(max-width:760px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-table,.incidents-table{min-width:980px}.search-card .filterbar{align-items:stretch}.search-card .btn{width:auto}.nav nav{gap:12px}.incident-note-edit input{min-width:180px}}

/* v0.6.4 - gestión de reconocimiento */
.btn.danger-outline{background:#fff;color:#b42318;border:1px solid #f1b7b0}.btn.danger-outline:hover{background:#fff1f0;color:#8f1d14}


/* v0.7.0 - Centro de Backups */
.backup-center-card{overflow-x:auto}.backup-center-table{min-width:1320px}.backup-center-table th:nth-child(1){min-width:230px}.backup-center-table th:nth-child(7){min-width:260px}.backup-center-table th:nth-child(9){min-width:280px}.backup-validation-item{padding:5px 0}.backup-validation-item+.backup-validation-item{border-top:1px dashed #dbe3ee;margin-top:5px}.backup-validation-item .muted{margin-left:6px;font-size:12px}.backup-center-table code{font-size:11px}

.backup-server-group{margin:0 0 12px;border:1px solid #dbe3ee;border-radius:12px;background:#fff;overflow:hidden}.backup-server-group>summary{display:flex;align-items:center;gap:10px;padding:15px 18px;cursor:pointer;list-style:none;background:#f8fafc}.backup-server-group>summary::-webkit-details-marker{display:none}.backup-server-group>summary:hover{background:#f2f6fb}.backup-plus{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;background:#e5edf8;font-weight:900;color:#334155;transition:transform .15s}.backup-server-group[open] .backup-plus{transform:rotate(45deg)}.backup-server-summary{margin-left:auto;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.backup-group-body{padding:0 12px 12px}.backup-group-body table{margin:0}.artifact-row td{background:#fbfdff;padding:8px 14px}.artifact-details>summary{cursor:pointer;color:#1d4ed8;font-weight:700;padding:4px 0}.artifact-list{padding:10px 0 4px}.artifact-list table{font-size:12px}.artifact-list code{overflow-wrap:anywhere}.receiver-group>summary{background:#f7fbf8}@media(max-width:760px){.backup-server-group>summary{align-items:flex-start;flex-wrap:wrap}.backup-server-summary{width:100%;margin-left:34px}.backup-group-body{padding:0 4px 8px}}
.cobian-history-row td{background:#faf8ff;padding:8px 14px}.cobian-history>summary{cursor:pointer;color:#6b21a8;font-weight:800;padding:4px 0}.cobian-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 0 4px}.cobian-history-item{display:flex;min-width:0;flex-direction:column;gap:8px;padding:12px;border:1px solid #e9d5ff;border-radius:9px;background:#fff}.cobian-history-item>div{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.cobian-history-item strong{font-size:12px;margin-left:auto;white-space:nowrap}.cobian-history-item>.badge{align-self:flex-start}@media(max-width:1180px){.cobian-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.cobian-history-grid{grid-template-columns:1fr}.cobian-history-item>div{align-items:flex-start;flex-direction:column}.cobian-history-item strong{margin-left:0}}
.cobian-history-row[hidden]{display:none!important}

/* v0.7.6: detalles reales de logs en varias líneas */
.incident-message,.alertbox,.synology-detail{white-space:normal;overflow-wrap:anywhere}.synology-detail{line-height:1.4}.incident-message code,.synology-detail code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
/* v0.7.7: acciones visibles de repositorio e integridad por copia */
.info-box{padding:10px 12px;border:1px solid #d8dee9;border-radius:10px;background:#f8fafc;min-height:44px}.backup-validation-item code{overflow-wrap:anywhere}.receiver-group form{margin:2px 3px 2px 0}.receiver-group .btn{white-space:nowrap}

/* v0.7.8: controles Synology Drive directamente en Centro de Backups */
.backup-center-table{min-width:1510px}.backup-center-table th:nth-child(10){min-width:190px}.drive-bulk-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 4px 12px;border-bottom:1px solid #e5e7eb;margin-bottom:8px}.drive-bulk-controls .inline-form,.drive-controls .inline-form{display:inline;margin:0}.drive-bulk-controls .muted{font-size:12px;margin-left:4px}.drive-controls{display:flex;flex-direction:column;gap:8px;min-width:170px}.drive-controls>div{display:flex;align-items:center;justify-content:space-between;gap:7px}.control-state{font-size:12px;white-space:nowrap}.drive-controls .btn.small{padding:5px 8px}.badge.muted-badge{background:#ede9fe;color:#6d28d9}

/* v0.7.9 - Centro de Backups operativo y dinámico */
.backup-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 16px;padding:20px 22px;border:1px solid #dbe6f5;border-radius:16px;background:linear-gradient(135deg,#f7fbff 0%,#ffffff 65%,#f4f9ff 100%);box-shadow:0 8px 28px rgba(31,65,117,.06)}
.backup-hero h1{margin:4px 0 5px;font-size:30px;letter-spacing:-.02em}.backup-hero p{margin:0;color:#64748b}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:#2563eb}.backup-live-indicator{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:800;white-space:nowrap}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.45);animation:backupPulse 1.8s infinite}@keyframes backupPulse{70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.backup-live-summary{grid-template-columns:repeat(6,minmax(150px,1fr));gap:10px;margin-bottom:10px}.backup-stat-card{appearance:none;text-align:left;cursor:pointer;font:inherit;width:100%;margin:0;padding:15px 16px;border-color:#e3eaf3;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.backup-stat-card:hover,.backup-stat-card.is-active{transform:translateY(-2px);border-color:#93b4ea;box-shadow:0 7px 20px rgba(34,74,134,.09)}.backup-stat-card .metric{font-size:27px;line-height:1.1;margin-top:3px}.summary-hint{display:block;font-size:11px;color:#94a3b8;margin-top:4px}
.backup-quickbar{position:sticky;top:8px;z-index:12;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0;padding:9px 12px;border:1px solid #dfe7f1;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 4px 16px rgba(15,23,42,.05);backdrop-filter:blur(8px)}.filter-chip{border:1px solid #d8e1ec;background:#f8fafc;color:#475569;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer}.filter-chip:hover{background:#eef4fb}.filter-chip.is-active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.backup-filter-result{margin-left:auto;font-size:12px;color:#64748b}.backup-search-card{margin-top:10px}
.backup-server-group{border-radius:14px;box-shadow:0 3px 12px rgba(15,23,42,.035)}.backup-server-group>summary{padding:14px 16px;background:#fbfcfe}.backup-server-group[open]>summary{border-bottom:1px solid #e7edf5}.server-health-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.server-health-dot.ok{background:#10b981}.server-health-dot.warn{background:#f59e0b}.server-health-dot.bad{background:#ef4444}.backup-server-title{display:flex;flex-direction:column;gap:2px}.backup-server-title strong{font-size:15px}.backup-server-title .muted{font-size:11px}.backup-server-summary{gap:10px}.backup-server-summary>[hidden]{display:none!important}
.drive-bulk-controls{background:#f8fbff;border:1px solid #dbeafe;border-radius:10px;padding:10px 12px;margin:10px 0 12px}.drive-bulk-title{display:flex;flex-direction:column;margin-right:4px}.drive-bulk-title .muted{font-size:11px}.drive-safety-note{margin-left:auto}.btn.success-soft{background:#e8f7ef;color:#087a46;border:1px solid #bde8cf}.btn.success-soft:hover{background:#dcf3e6}
.backup-table-wrap{border:1px solid #e6ebf2;border-radius:11px;overflow:auto}.backup-center-table-v079{min-width:1120px;table-layout:fixed;border-radius:0}.backup-center-table-v079 thead th{position:sticky;top:0;z-index:2;background:#f7f9fc;color:#475569;font-size:11px;text-transform:uppercase;letter-spacing:.035em}.backup-center-table-v079 th:nth-child(1){width:21%}.backup-center-table-v079 th:nth-child(2){width:12%}.backup-center-table-v079 th:nth-child(3){width:14%}.backup-center-table-v079 th:nth-child(4){width:22%}.backup-center-table-v079 th:nth-child(5){width:9%}.backup-center-table-v079 th:nth-child(6){width:13%}.backup-center-table-v079 th:nth-child(7){width:12%}.backup-center-table-v079 td{vertical-align:middle}.backup-job-row{transition:background .12s ease}.backup-job-row:hover td{background:#fbfdff}.backup-job-row[data-effective-state="error"] td:first-child{box-shadow:inset 3px 0 #dc2626}.backup-job-row[data-effective-state="warning"] td:first-child{box-shadow:inset 3px 0 #f59e0b}.backup-job-row[data-effective-state="warning_muted"] td:first-child{box-shadow:inset 3px 0 #8b5cf6}.backup-job-name>strong{display:block;font-size:14px;margin-bottom:6px}.job-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px}.provider-pill{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef2f7;color:#475569;font-size:10px;font-weight:800}.provider-pill.provider-drive{background:#e0f2fe;color:#075985}.provider-pill.provider-cobian{background:#f3e8ff;color:#6b21a8}.provider-pill.provider-windows{background:#e0e7ff;color:#3730a3}.schedule-text{display:block;margin-top:5px;font-size:11px}.time-stack{display:grid;gap:6px}.time-stack span{font-size:12px}.time-stack small{display:block;color:#94a3b8;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.destination-cell code{display:block;max-width:100%;font-size:10px;line-height:1.45;color:#475569}.control-label{font-size:11px;color:#64748b;font-weight:700}.drive-controls{gap:7px;min-width:142px}.drive-controls>div{min-height:28px}.sm-switch{display:inline-flex;align-items:center;gap:5px;width:62px;height:28px;padding:3px 6px 3px 3px;border:0;border-radius:999px;background:#e2e8f0;color:#64748b;cursor:pointer;font-size:10px;font-weight:900;transition:background .15s ease,color .15s ease}.sm-switch.is-on{background:#dff5e8;color:#087a46}.sm-switch:disabled{opacity:.55;cursor:wait}.sm-switch-knob{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.2);transition:transform .15s ease}.sm-switch.is-on .sm-switch-knob{transform:translateX(28px)}.sm-switch.is-on .sm-toggle-text{transform:translateX(-20px)}.sm-toggle-text{min-width:22px;text-align:center;transition:transform .15s ease}.artifact-row[hidden],.backup-job-row[hidden],.backup-server-group[hidden]{display:none!important}
.empty-state{display:flex;flex-direction:column;gap:5px;text-align:center;padding:34px}.backup-validation-item{font-size:12px}
.backup-receiver-heading{margin:28px 0 10px}.backup-receiver-heading .eyebrow{display:block;margin-bottom:4px}.repo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px;padding-top:12px}.repo-card{border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 3px 12px rgba(15,23,42,.035)}.repo-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid #eef2f7;background:#fbfcfe}.repo-card>header>div{min-width:0}.repo-card>header strong{display:block;margin-bottom:5px}.repo-card>header code{display:block;font-size:10px;color:#64748b;overflow-wrap:anywhere}.repo-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#e8edf4}.repo-metrics>div{display:flex;flex-direction:column;gap:4px;min-height:84px;padding:12px;background:#fff}.repo-metrics small{text-transform:uppercase;letter-spacing:.035em;color:#94a3b8;font-size:9px}.repo-metrics strong{font-size:12px;overflow-wrap:anywhere}.repo-metrics .badge{width:max-content;margin-top:2px}.repo-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 14px;background:#fbfcfe;border-top:1px solid #eef2f7}.repo-actions form{margin:0}.repo-actions .repo-scan-button{min-width:180px}.repo-actions button:disabled{opacity:.68;cursor:default}.ajax-busy{opacity:.65;pointer-events:none}
.backup-toast-region{position:fixed;right:22px;bottom:22px;z-index:1000;display:grid;gap:8px;max-width:380px}.backup-toast{padding:11px 14px;border-radius:10px;background:#0f172a;color:#fff;box-shadow:0 10px 32px rgba(15,23,42,.24);font-size:13px;animation:toastIn .18s ease}.backup-toast.error{background:#991b1b}.backup-toast.success{background:#065f46}@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:1180px){.backup-live-summary{grid-template-columns:repeat(3,minmax(150px,1fr))}.drive-safety-note{width:100%;margin-left:0}.backup-center-table-v079{min-width:1030px}}
@media(max-width:760px){.backup-hero{align-items:flex-start;flex-direction:column}.backup-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-quickbar{position:static}.backup-filter-result{width:100%;margin-left:0}.repo-grid{grid-template-columns:1fr}.repo-metrics{grid-template-columns:1fr}.repo-actions{align-items:stretch}.repo-actions form,.repo-actions .btn{width:100%}.backup-server-title{width:calc(100% - 80px)}.backup-server-summary{margin-left:34px}.backup-live-indicator{align-self:flex-start}}

/* v0.8.0 - acceso directo a resumen y fechas de backup más explícitas */
.summary-control-card .section-heading{align-items:flex-start}.summary-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.summary-control-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #e5eaf1;border-radius:10px;background:#f8fafc;min-width:0}.summary-control-grid small,.validation-timeline small{color:#94a3b8;font-size:9px;text-transform:uppercase;letter-spacing:.045em;font-weight:800}.summary-control-grid strong{font-size:12px;overflow-wrap:anywhere}.summary-control-card .inline-form{margin:0}
.backup-validation-detail{padding:7px 0}.validation-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.validation-count{font-size:11px;color:#64748b;margin-top:4px}.validation-timeline{display:grid;gap:7px;margin-top:8px}.validation-timeline>div{display:flex;flex-direction:column;gap:2px;padding-left:9px;border-left:2px solid #e5eaf1}.validation-timeline strong{font-size:11px;line-height:1.35}.validation-timeline span{font-size:10px;color:#64748b}.validation-timeline code{font-size:10px}.stale-file-badge{width:max-content;margin-top:3px}.stale-file-note{margin-top:7px;padding:7px 8px;border-radius:7px;background:#fff1f0;color:#8f1d14;font-size:10px;line-height:1.4}
@media(max-width:760px){.summary-control-grid{grid-template-columns:1fr}.validation-head{align-items:flex-start;flex-direction:column}}

/* v0.8.0 multicliente + inventario */
.client-switcher{display:inline-flex;align-items:center;margin-left:8px}.client-switcher label{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.client-switcher select{width:auto;min-width:150px;padding:6px 28px 6px 8px;margin:0}.client-chip{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid #d8e1eb;border-radius:999px;background:#f4f7fb;color:#4b6078;font-size:12px;font-weight:700}.hardware-details,.threshold-mini{margin-top:10px}.hardware-details summary,.threshold-mini summary{cursor:pointer;font-weight:700;color:#50657c}.threshold-mini form{margin-top:7px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.threshold-mini input{width:76px;padding:5px}.threshold-mini label{font-size:11px;display:flex;align-items:center;gap:3px}.client-context{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.client-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef4fb;color:#345a83;font-size:12px;font-weight:700}

.server-name-link{color:inherit;text-decoration:none}.server-name-link:hover{text-decoration:underline}.checkbox-list{max-height:190px;overflow:auto;padding:8px 10px;border:1px solid #dce3ec;border-radius:9px;background:#fff}.checkbox-list label{display:block;margin:2px 0}
.drive-binding-detail{margin-top:2px}.drive-binding-detail>summary{cursor:pointer;font-size:11px;font-weight:800;color:#475569;list-style:none}.drive-binding-detail>summary::-webkit-details-marker{display:none}.drive-binding-form{display:grid!important;grid-template-columns:1fr auto;gap:5px;margin-top:6px!important;min-width:250px}.drive-binding-form select{min-width:205px;max-width:290px;padding:5px 7px;font-size:11px}.drive-binding-form .btn.small{white-space:nowrap}

/* v0.8.4.1: el vínculo Drive→NAS queda siempre visible; evita que un <details> sin marcador parezca texto estático. */
.drive-binding-visible{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid #e5e7eb}.drive-binding-label{font-size:10px!important;color:#64748b!important}.drive-binding-visible .drive-binding-form{display:flex!important;flex-direction:column;align-items:stretch;gap:5px;min-width:0;margin-top:0!important}.drive-binding-visible .drive-binding-form select{min-width:210px;max-width:320px;width:100%}.drive-binding-visible .drive-binding-form .btn{width:100%}

/* v0.8.5: vinculación masiva Drive y preparación RC */
.drive-binding-all{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;font-size:10px;color:#64748b;line-height:1.3}.drive-binding-all input{width:auto;margin:2px 0 0;flex:0 0 auto}

/* v0.8.5: eje horario visible en históricos de rendimiento */
.history-chart .time-gridline{stroke:#edf1f6;stroke-width:1;stroke-dasharray:2 4}.history-chart .time-axis-label{font-size:11px}.history-chart .metric-hotspot{fill:transparent;stroke:transparent;pointer-events:all}.history-chart .metric-hotspot:hover{fill:#fff;stroke:#1d4ed8;stroke-width:2}
.audit-detail{display:block;max-width:760px;white-space:normal;overflow-wrap:anywhere;line-height:1.4}


/* v0.8.5.1: silencios de incidencias de backup desde Centro de Backups */
.server-health-dot.silenced{background:#8b5cf6}.backup-action-stack{display:grid;gap:8px;min-width:170px}.backup-alert-form{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0;padding-top:7px;border-top:1px solid #e7edf5}.backup-mute-label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:#64748b;font-weight:700}.backup-mute-label select{width:auto;min-width:78px;padding:4px 20px 4px 6px;margin:0;font-size:10px}.backup-alert-note{display:block;font-size:10px;line-height:1.35}.backup-job-row[data-alert-muted="1"] td:first-child{box-shadow:inset 3px 0 #8b5cf6}.backup-stat-card[data-backup-filter="silenced"] .metric{color:#7c3aed}

/* v0.8.6.17: resumen compacto y detalle plegable por tarea de backup. */
.backup-compact-table{min-width:940px;table-layout:fixed}.backup-compact-table th:nth-child(1){width:27%}.backup-compact-table th:nth-child(2){width:14%}.backup-compact-table th:nth-child(3){width:17%}.backup-compact-table th:nth-child(4){width:17%}.backup-compact-table th:nth-child(5){width:16%}.backup-compact-table th:nth-child(6){width:9%}.backup-compact-table .backup-job-row>td{padding:11px 12px;vertical-align:middle}.backup-compact-table .backup-job-name>strong{margin-bottom:4px}.compact-value{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.compact-date{font-size:12px;line-height:1.35;font-variant-numeric:tabular-nums}.compact-note{display:block;margin-top:4px;font-size:11px}.backup-job-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:34px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:11px;font-weight:800;cursor:pointer}.backup-job-toggle:hover{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.backup-job-chevron{font-size:17px;line-height:1;transition:transform .15s ease}.backup-job-row.is-expanded .backup-job-chevron{transform:rotate(180deg)}.backup-job-row.is-expanded td{background:#f8fbff}.backup-job-detail-row td{padding:0;background:#fbfdff}.backup-job-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#e5eaf1}.backup-job-detail-grid>section{min-width:0;padding:14px;background:#fff}.backup-detail-label{display:block;margin-bottom:8px;color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.backup-job-detail-grid .backup-action-stack{min-width:0}.backup-job-detail-grid .drive-controls{min-width:0}.backup-job-detail-row[hidden],.artifact-row[hidden],.cobian-history-row[hidden]{display:none!important}.agent-bulk-update{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:11px 12px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.agent-bulk-update .muted{font-size:12px}.agent-select-column{width:42px;text-align:center}.agent-update-checkbox{width:18px;height:18px;margin:0;cursor:pointer}.agent-update-selected:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1180px){.backup-job-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-compact-table{min-width:850px}}
@media(max-width:760px){
  .backup-table-wrap{overflow:visible;border:0}.backup-compact-table{display:block;min-width:0!important;width:100%;background:transparent}.backup-compact-table thead{display:none}.backup-compact-table tbody{display:grid;gap:9px}.backup-compact-table tr{width:100%}.backup-compact-table .backup-job-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,.65fr);overflow:hidden;border:1px solid #dfe6ef;border-radius:11px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.backup-compact-table .backup-job-row>td{display:block;width:auto;padding:9px 11px;border:0;border-bottom:1px solid #edf1f5}.backup-compact-table .backup-job-row>td:nth-child(odd){border-right:1px solid #edf1f5}.backup-compact-table .backup-job-row>td:nth-child(1),.backup-compact-table .backup-job-row>td:nth-child(2){background:#fbfdff}.backup-compact-table .backup-job-row>td:nth-child(5),.backup-compact-table .backup-job-row>td:nth-child(6){border-bottom:0}.backup-compact-table .backup-job-row>td:nth-child(3)::before,.backup-compact-table .backup-job-row>td:nth-child(4)::before,.backup-compact-table .backup-job-row>td:nth-child(5)::before{display:block;margin-bottom:5px;color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.backup-compact-table .backup-job-row>td:nth-child(3)::before{content:'Última copia'}.backup-compact-table .backup-job-row>td:nth-child(4)::before{content:'Última validación'}.backup-compact-table .backup-job-row>td:nth-child(5)::before{content:'Última FULL'}.backup-job-toggle{min-height:38px}.backup-job-detail-row,.artifact-row,.cobian-history-row{display:block}.backup-job-detail-row>td,.artifact-row>td,.cobian-history-row>td{display:block;width:100%;border:0}.backup-job-detail-grid{grid-template-columns:1fr;border:1px solid #dfe6ef;border-radius:10px;overflow:hidden}.artifact-list{overflow-x:auto}.agent-bulk-update .btn{width:100%}.admin-servers-table{min-width:980px}
}
.ip-compact{display:inline-block;vertical-align:top}.ip-compact>summary{display:flex;align-items:center;gap:4px;cursor:pointer;list-style:none}.ip-compact>summary::-webkit-details-marker{display:none}.ip-more{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:19px;padding:0 5px;border-radius:999px;background:#e8eef7;color:#334155;font-size:11px;font-weight:800}.ip-compact[open]>summary .ip-more{background:#dbeafe;color:#1d4ed8}.ip-extra{margin-top:4px}.ip-extra .local-ip-item{margin-right:3px}.compact-actions .btn,.btn.small{padding:7px 10px;font-size:12px;line-height:1.2}@media(max-width:760px){.ip-compact{max-width:100%}.ip-extra{max-width:calc(100vw - 70px)}.compact-actions,.actions{gap:5px}.compact-actions .btn,.actions .btn,.repo-actions .btn{padding:6px 8px;font-size:11px}}

/* v0.8.6.19: inventario Hyper-V y sesiones VPN compactos en móvil. */
.problem-row td:first-child{box-shadow:inset 3px 0 #dc2626}.hyperv-alarm-form{margin-top:7px}.hyperv-table,.vpn-history-table{min-width:920px}
@media(max-width:760px){
  .hyperv-table,.vpn-history-table{display:block;min-width:0;overflow:visible;background:transparent}.hyperv-table tbody,.vpn-history-table tbody{display:grid;gap:8px}.hyperv-table tr,.vpn-history-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #dfe6ef;border-radius:10px;background:#fff}.hyperv-table tr:first-child,.vpn-history-table tr:first-child{display:none}.hyperv-table td,.vpn-history-table td{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px 9px;border-bottom:1px solid #edf1f5;overflow-wrap:anywhere}.hyperv-table td::before,.vpn-history-table td::before{content:attr(data-label);color:#64748b;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.hyperv-table td:first-child,.vpn-history-table td:first-child{grid-column:1/-1;background:#f8fafc}.hyperv-table td:last-child,.vpn-history-table td:last-child{grid-column:1/-1;border-bottom:0}.hyperv-table .btn{width:100%}
}

/* v0.8.6.18: todas las IP locales visibles y backups plegados/compactos también en PWA. */
.local-ip-list{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.local-ip-item{display:block;padding:2px 5px;border-radius:5px;background:#f1f5f9;color:#334155;font-size:11px;line-height:1.35;white-space:nowrap;word-break:normal}
@media(max-width:760px){.backup-server-group{margin-bottom:8px}.backup-server-group>summary{padding:10px 11px;gap:7px}.backup-plus{width:22px;height:22px}.backup-server-summary{margin-left:29px;gap:5px}.backup-group-body{padding:0 3px 6px}.backup-compact-table tbody{gap:6px}.backup-compact-table .backup-job-row>td{padding:7px 8px}.backup-compact-table .backup-job-name>strong,.backup-compact-table .compact-date{font-size:11px}.backup-job-toggle{min-height:34px;padding:5px 6px}.local-ip-item{font-size:10px}}

.wsb-summary{margin-top:6px;font-size:11px;line-height:1.35}.wsb-summary>strong{display:inline-block;color:#475569}.wsb-detail{margin-top:5px}.wsb-detail summary{cursor:pointer;color:#4f46e5;font-weight:700}.wsb-detail pre{white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px;font-size:10px;line-height:1.45}.wsb-mode-label{margin-top:4px}.wsb-warning-mode-form{display:grid;gap:6px}.wsb-warning-mode-form select{max-width:170px}

/* v0.8.6.23-R1: acciones compactas en la administración de repositorios. */
.admin-repositories-page .table-scroll table{min-width:1120px}.admin-repositories-page .table-scroll th:last-child{min-width:390px}.admin-repositories-page .table-scroll td:last-child{white-space:normal}.admin-repositories-page .table-scroll td:last-child form{display:inline-flex!important;margin:2px 3px 2px 0;vertical-align:middle}.admin-repositories-page .table-scroll td:last-child .btn{padding:6px 9px;border-radius:7px;font-size:12px;line-height:1.2;white-space:nowrap}.admin-repositories-page .table-scroll td:last-child>a,.admin-repositories-page .table-scroll td:last-child .linkbtn{display:inline-flex;align-items:center;min-height:28px;margin:2px 5px 2px 0;padding:4px 5px;font-size:12px;white-space:nowrap}
@media(max-width:760px){.admin-repositories-page .table-scroll td:last-child .btn{width:auto}.admin-repositories-page .table-scroll th:last-child{min-width:350px}}

.repo-physical-table td:first-child,.repo-physical-table td:nth-child(2){white-space:nowrap}.repo-physical-table td:last-child{min-width:240px}
@media(max-width:760px){
  .repo-physical-table-wrap{overflow:visible}
  .repo-physical-table{display:block;width:100%;background:transparent}
  .repo-physical-table thead{display:none}
  .repo-physical-table tbody{display:grid;gap:9px}
  .repo-physical-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid #dbe3ee;border-radius:10px;background:#fff;overflow:hidden}
  .repo-physical-table td{display:flex;min-width:0!important;gap:8px;align-items:flex-start;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #edf1f6;white-space:normal!important;overflow-wrap:anywhere}
  .repo-physical-table td::before{content:attr(data-label);color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;flex:0 0 auto}
  .repo-physical-table td:nth-child(1),.repo-physical-table td:nth-child(2),.repo-physical-table td:nth-child(3),.repo-physical-table td:nth-child(4),.repo-physical-table td:nth-child(10),.repo-physical-table td:nth-child(11),.repo-physical-table td:nth-child(12){grid-column:1/-1}
  .repo-physical-table td:last-child{display:block;border-bottom:0}
  .repo-physical-table td:last-child::before{display:block;margin-bottom:6px}
  .repo-physical-table td:last-child .inline-form{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
}

/* v0.8.5.9: piloto PWA y navegación móvil. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-toggle,.mobile-bottom-nav{display:none}.nav-logout{display:inline;margin:0}.nav-logout button{border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.nav-logout button:hover{text-decoration:underline}.pwa-install-button{border:1px solid #64748b;border-radius:8px;background:#1e293b;color:#fff;padding:7px 10px;font-weight:750;cursor:pointer}.pwa-install-button:hover{background:#334155}.setting-check{display:flex;align-items:flex-start;gap:8px;font-weight:650}.setting-check input{width:auto;margin-top:2px}.pwa-dialog{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.72)}.pwa-dialog-card{position:relative;width:min(430px,100%);border-radius:15px;background:#fff;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.3)}.pwa-dialog-card h2{padding-right:35px}.pwa-dialog-card li{margin:9px 0}.pwa-dialog-close{position:absolute;top:10px;right:12px;border:0;background:transparent;color:#475569;font-size:30px;line-height:1;cursor:pointer}.pwa-blocked{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:24px;background:#111827;color:#fff;text-align:center}.pwa-blocked>div{max-width:520px}.pwa-blocked strong{font-size:24px}.pwa-blocked p{color:#cbd5e1;line-height:1.6}.totp-layout{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:24px;align-items:start}.totp-qr{display:grid;place-items:center;min-height:268px;border:1px solid #dbe3ee;border-radius:14px;background:#fff;padding:16px}.totp-qr svg{display:block;width:min(240px,100%);height:auto}.totp-steps{margin-top:0}.totp-steps li{margin:8px 0}.totp-secret-row{display:flex;gap:8px;align-items:stretch}.totp-secret-row .token{flex:1}.totp-secret-row .copy-id{flex:0 0 auto}
@media(max-width:760px){
  body{padding-bottom:66px}header{position:sticky;top:0;z-index:900}.nav{min-height:56px;padding-top:10px;padding-bottom:10px;flex-direction:row;align-items:center}.brand{font-size:18px}.nav-toggle{display:grid;width:42px;height:38px;place-content:center;gap:4px;border:1px solid #475569;border-radius:8px;background:#1f2937}.nav-toggle>span:not(.sr-only){display:block;width:20px;height:2px;background:#fff;transition:transform .16s ease,opacity .16s ease}.nav-toggle.is-open>span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle.is-open>span:nth-child(2){opacity:0}.nav-toggle.is-open>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav nav{display:none;position:absolute;top:56px;left:0;right:0;max-height:calc(100vh - 122px);overflow:auto;align-items:stretch;gap:0;padding:8px 14px 16px;background:#111827;border-top:1px solid #334155;box-shadow:0 12px 26px rgba(0,0,0,.25)}.nav nav.is-open{display:flex;flex-direction:column}.nav nav>a,.nav nav>.user,.nav nav>.pwa-install-button{width:100%;padding:11px 8px;border-bottom:1px solid #263244}.nav nav>.pwa-install-button{text-align:left;margin-top:5px}.nav .client-switcher{margin:8px 0}.nav .client-switcher label{align-items:flex-start;flex-direction:column}.nav .client-switcher select{width:100%}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:950;display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #dbe2ec;background:rgba(255,255,255,.97);box-shadow:0 -4px 16px rgba(15,23,42,.08);backdrop-filter:blur(10px)}.mobile-bottom-nav a{padding:13px 4px 11px;text-align:center;color:#64748b;font-size:11px;font-weight:800}.mobile-bottom-nav a.active{color:#1d4ed8;background:#eff6ff}.mobile-bottom-nav a:hover{text-decoration:none}main{padding-top:18px;padding-bottom:22px}main>h1{font-size:23px;margin-top:4px}.card{padding:14px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.totp-layout{grid-template-columns:1fr}.totp-qr{min-height:240px}.totp-secret-row{flex-direction:column}.totp-secret-row .copy-id{padding:10px}
  .dashboard-table-card,.incidents-card{padding:10px;background:transparent;border:0;box-shadow:none;overflow:visible}.dashboard-table,.incidents-table{display:block;min-width:0!important;background:transparent}.dashboard-table thead,.incidents-table thead{display:none}.dashboard-table tbody,.incidents-table tbody{display:grid;gap:10px}.dashboard-table tr,.incidents-table tr{display:block;overflow:hidden;border:1px solid #e1e7ef;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.045)}.dashboard-table td,.incidents-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start;width:100%;padding:10px 12px;border-bottom:1px solid #edf1f5}.dashboard-table td:last-child,.incidents-table td:last-child{border-bottom:0}.dashboard-table td::before,.incidents-table td::before{color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.dashboard-table td:nth-child(1)::before{content:'Servidor'}.dashboard-table td:nth-child(2)::before{content:'IP'}.dashboard-table td:nth-child(3)::before{content:'Estado'}.dashboard-table td:nth-child(4)::before{content:'CPU'}.dashboard-table td:nth-child(5)::before{content:'RAM'}.dashboard-table td:nth-child(6)::before{content:'Remoto'}.dashboard-table td:nth-child(7)::before{content:'Backups'}.dashboard-table td:nth-child(8)::before{content:'Última vez'}.incidents-table td:nth-child(1)::before{content:'Equipo'}.incidents-table td:nth-child(2)::before{content:'Severidad'}.incidents-table td:nth-child(3)::before{content:'Tipo'}.incidents-table td:nth-child(4)::before{content:'Detalle'}.incidents-table td:nth-child(5)::before{content:'Estado'}.incidents-table td:nth-child(6)::before{content:'Última vez'}.incidents-table td:nth-child(7)::before{content:'Acciones'}.dashboard-table .remote-chips,.dashboard-table .metric-compact{min-width:0}.incidents-table details,.incidents-table .incident-actions,.incidents-table form{min-width:0}.incidents-table input,.incidents-table select,.incidents-table button{width:100%}
}

/* v0.8.6.0: columna SoftEther en escritorio y tarjetas PWA. */
.dashboard-table{min-width:1240px}.dashboard-table th:nth-child(1){width:13%}.dashboard-table th:nth-child(2){width:11%}.dashboard-table th:nth-child(3){width:9%}.dashboard-table th:nth-child(4){width:11%}.dashboard-table th:nth-child(5),.dashboard-table th:nth-child(6){width:7%}.dashboard-table th:nth-child(7){width:19%}.dashboard-table th:nth-child(8){width:9%}.dashboard-table th:nth-child(9){width:14%}
@media(max-width:1180px){.dashboard-table{min-width:1180px}}
@media(max-width:760px){.dashboard-table{min-width:0}.dashboard-table td:nth-child(4)::before{content:'SoftEther'}.dashboard-table td:nth-child(5)::before{content:'CPU'}.dashboard-table td:nth-child(6)::before{content:'RAM'}.dashboard-table td:nth-child(7)::before{content:'Remoto'}.dashboard-table td:nth-child(8)::before{content:'Backups'}.dashboard-table td:nth-child(9)::before{content:'Última vez'}}

/* v0.8.6.3: detalle de servidor legible en PWA, sin partir los ID remotos. */
.server-mobile-table-wrap{overflow-x:auto;border:1px solid #e5eaf1;border-radius:10px}.server-mobile-table{min-width:760px;border-radius:0}.server-mobile-table tr:last-child td{border-bottom:0}.remote-access-table{min-width:880px}.remote-access-table th:nth-child(1){width:15%}.remote-access-table th:nth-child(2){width:24%}.remote-access-table th:nth-child(3){width:13%}.remote-access-table th:nth-child(4){width:16%}.remote-access-table th:nth-child(5){width:13%}.remote-access-table th:nth-child(6){width:19%}.remote-id-actions{display:flex;align-items:center;gap:8px;min-width:0}.remote-id-value{display:inline-block;max-width:100%;padding:8px 10px;border-radius:8px;background:#f3f4f6;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;font-variant-numeric:tabular-nums;line-height:1.25;white-space:nowrap;word-break:normal;overflow-wrap:normal}.remote-id-actions .copy-id{flex:0 0 auto}.software-components-table{min-width:720px}
@media(max-width:760px){
  .server-mobile-card{padding:14px;overflow:visible}.server-mobile-card>h2{font-size:24px}.server-mobile-card>.muted{font-size:14px;line-height:1.45}.server-mobile-table-wrap{overflow:visible;border:0;border-radius:0}.server-mobile-table{display:block;min-width:0!important;overflow:visible;background:transparent}.server-mobile-table thead{display:none}.server-mobile-table tbody{display:grid;gap:12px}.server-mobile-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid #dfe6ef;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.045)}.server-mobile-table td{display:flex;flex-direction:column;gap:5px;min-width:0;width:100%;padding:11px 12px;border-bottom:1px solid #edf1f5;overflow-wrap:anywhere}.server-mobile-table td::before{content:attr(data-label);color:#64748b;font-size:10px;font-weight:850;line-height:1.2;text-transform:uppercase;letter-spacing:.04em}.server-mobile-table td:nth-last-child(-n+2){border-bottom:0}.server-mobile-table td[data-label="Versión"],.server-mobile-table .software-name-cell,.server-mobile-table .software-detail-cell,.server-mobile-table .remote-tool-cell,.server-mobile-table .remote-id-cell,.server-mobile-table .remote-detail-cell{grid-column:1/-1}.server-mobile-table .software-name-cell,.server-mobile-table .remote-tool-cell{padding:13px 14px;background:#f8fafc}.server-mobile-table .software-name-cell::before,.server-mobile-table .remote-tool-cell::before{display:none}.server-mobile-table .software-name-cell strong,.server-mobile-table .remote-tool-cell strong{font-size:18px}.remote-id-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:stretch}.remote-id-value{display:flex;align-items:center;min-width:0;overflow-x:auto;padding:10px 11px;font-size:18px;letter-spacing:.035em;-webkit-overflow-scrolling:touch}.remote-id-actions .copy-id{min-width:76px;min-height:44px;padding:10px 12px;font-size:13px}.remote-detail-cell,.software-detail-cell{background:#fbfcfe}
}
/* v0.8.8: controles densos y detalle bajo demanda, también en PWA/móvil. */
.totp-compact{width:7.5rem!important;min-width:7.5rem!important;padding:.42rem .55rem!important}
.compact-policy{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(8rem,1fr) auto;gap:.35rem;align-items:center;min-width:330px}
.compact-policy select,.compact-policy input{padding:.38rem .48rem;min-height:0}
.compact-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.55rem;margin:.65rem 0}
.compact-summary-grid>div{border:1px solid var(--border,#d9e0ea);border-radius:9px;padding:.55rem .65rem;background:#f8fafc}
.compact-summary-grid small,.compact-summary-grid strong{display:block}.compact-summary-grid strong{margin-top:.15rem}
.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.windows-health pre{max-height:18rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9fc;padding:.65rem;border-radius:8px}
.agent-bulk-update{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.update-single-form{display:flex!important;gap:.3rem;align-items:center;flex-wrap:nowrap}
@media(max-width:760px){
  .btn,.button,button.btn{width:auto!important;min-height:34px!important;padding:.42rem .64rem!important;font-size:.86rem!important}
  .agent-bulk-update{align-items:stretch}.agent-bulk-update .muted{flex-basis:100%}.agent-bulk-update .totp-compact{width:7rem!important;min-width:7rem!important}
  .compact-policy{min-width:0;grid-template-columns:1fr}.compact-policy .btn{justify-self:start}
  .compact-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .windows-health details[open] .table-scroll{margin-left:-.5rem;margin-right:-.5rem}
}

/* v0.8.8.6.2: el selector .hardware-details summary no debe apagar el texto del botón de alta. */
.new-server-details>summary.btn{color:#fff!important;background:#1d4ed8!important;list-style:none}.new-server-details>summary.btn::-webkit-details-marker{display:none}.new-server-details>summary.btn:hover,.new-server-details>summary.btn:focus-visible{color:#fff!important;background:#1e40af!important;text-decoration:none;outline:2px solid #93c5fd;outline-offset:2px}

.cobian-history-item.cobian-history-error{border-color:#fecaca;background:#fff7f7}
.retired-servers summary{cursor:pointer}.retired-list{margin:10px 0 0;padding-left:18px}.retired-list li{margin:4px 0}.retired-servers-heading{margin-top:28px}.purge-server-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:520px}.purge-server-form p{flex-basis:100%;margin:4px 0}.purge-server-form input[name=confirm_name]{max-width:240px}
.install-guide .install-step{display:flex;gap:12px;align-items:flex-start;margin:12px 0}.install-guide .install-step>div{min-width:0;flex:1}.install-num{flex:0 0 26px;height:26px;border-radius:50%;background:#1d4ed8;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px}.install-script{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;background:#111827;color:#f9fafb;padding:12px;border-radius:8px;overflow-x:auto;white-space:pre;margin:8px 0}.install-guide .token{margin:8px 0}.install-guide-details>summary{cursor:pointer}.install-guide-details .install-guide{border:0;box-shadow:none;padding:8px 0 0;margin:0}
