/* ActiNexo v0.8 | Diseño fluido, móvil/tableta/escritorio y armonía claro/oscuro.
   No modifica lógica de negocio ni contiene valores de configuración. */
:root { --ax-touch: 42px; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { min-width: 0; }
#app, #admin-app, .shell, .admin-shell { min-width: 0; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
img, svg { max-width: 100%; }
:where(.topbar, .content, .main, .panel, .settings-card, .pagehead, .head-actions, .toolbar, .form-grid, .report-grid, .report-tile, .card, .modal, .drawer, .admin-shell, .admin-shell .content) { min-width: 0; }

/* Barra de filtros: mismo acabado que el resto del panel, en ambos temas. */
#app .toolbar { background: var(--paper, #fff); border:1px solid var(--line, #e8edf4); }
#app .toolbar-search { min-width: 0; flex: 1 1 230px; }
#app .toolbar-search input { min-width: 0; background: transparent; }
#app .columns-selector { background: var(--paper, #fff); border: 1px solid var(--line, #e8edf4); }
#app .column-choice { min-width:0; padding: 10px 11px; border: 1px solid var(--line, #e8edf4); border-radius: 9px; background: var(--light, #f8faff); line-height: 1.35; }
#app .column-choice input { min-height: 16px; margin:0; }
#app .column-choice span { overflow-wrap:anywhere; }
#app .report-tile, #app .settings-card { min-width: 0; }
#app .form-grid > *, #app .report-grid > *, #app .stats-grid > * { min-width:0; }
#app .notice, #app .alert-card, #app .field-row, #app .reading-entry { overflow-wrap: anywhere; }
#app .chart-area { min-width:0; }
#app .panel-header { flex-wrap:wrap; }
#app .table-wrap { max-width:100%; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
#app .data-table th, #app .data-table td { vertical-align:middle; }
#app .operational-table input, #app .operational-table select { max-width:100%; }
#app .operational-table .reading-field { min-width:0; }
#app .operational-table .reading-field input { min-width:0; }
#app .closure-meta { min-width:0; }
#app .drawer { max-width:100vw; }
#app .detail-row { min-width:0; }
#app .detail-row span { min-width:0; overflow-wrap:anywhere; }

/* Equilibrio entre la columna principal y los controles antes de llegar a móvil. */
@media (max-width: 1450px) and (min-width: 761px) {
 #app .content { padding-inline:clamp(17px,2vw,33px); }
 #app .topbar { padding-inline:clamp(15px,2vw,28px); gap:12px; }
 #app .top-right { gap:clamp(6px,.7vw,13px); }
 #app .topbar .top-tenant { max-width:170px; }
 #app .search-global { width:clamp(120px,13vw,208px); }
 #app .donut-layout { flex-wrap:wrap; justify-content:center; }
}
@media (min-width: 761px) and (max-width: 1180px) {
 #app .topbar .user-block .name, #app .topbar .user-block .role { display:none; }
 #app .topbar .top-tenant { display:none; }
 #app .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 #app .panels-row, #app .lower-row { grid-template-columns:minmax(0,1fr); }
 #app .report-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 #app .report-grid .report-tile:last-child { grid-column:1 / -1; }
 #app .data-table { min-width:650px; }
 #app .operational-table { min-width:920px; }
 #app .columns-selector { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
 /* Navegación: menú lateral de acceso temporal y barra inferior de acceso rápido. */
 #app .shell { display:block; }
 #app .sidebar { padding-top:20px; padding-bottom:calc(18px + env(safe-area-inset-bottom)); max-width:calc(100vw - 48px); }
 #app .sidebar.open { z-index:82; }
 #app .mobile-bottom { gap:4px; }
 #app .mobile-bottom button { min-width:0; flex:1; min-height:48px; }
 #app .main { width:100%; margin:0; }
 #app .content { width:100%; padding:20px clamp(12px,4vw,21px) calc(107px + env(safe-area-inset-bottom)); }
 #app .topbar { padding-inline:clamp(9px,3vw,16px); gap:8px; width:100%; }
 #app .top-left { min-width:0; gap:5px; flex:1; }
 #app .top-right { flex:0 0 auto; gap:3px; }
 #app .breadcrumbs { max-width:150px; font-size:10px; }
 #app .topbar .top-tenant, #app .topbar .search-global, #app .topbar .top-divider { display:none; }
 #app .icon-btn { width:32px; min-width:32px; height:36px; }
 #app .user-block .avatar { width:30px; height:30px; }
 #app .pagehead { gap:14px; }
 #app .head-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr)); gap:9px; }
 #app .head-actions .button { padding-inline:8px; width:100%; white-space:normal; }
 #app .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 #app .stat-card { padding:13px; }
 #app .stat-top { gap:5px; }
 #app .stat-change { max-width:74%; font-size:10px; text-align:right; line-height:1.2; }
 #app .stat-value { font-size:clamp(22px,5.5vw,28px); margin-top:11px; }
 #app .stat-label { line-height:1.3; font-size:11px; }
 #app .panels-row, #app .lower-row, #app .report-grid, #app .feature-grid { grid-template-columns:minmax(0,1fr); }
 #app .panel-header { padding:15px 14px; }
 #app .panel-header .head-actions { width:100%; }
 #app .donut-layout { flex-wrap:wrap; gap:17px; justify-content:center; }
 #app .donut { width:145px;height:145px; }
 #app .donut-hole { width:101px;height:101px; }
 #app .legend-list { min-width:180px; flex:1; }
 #app .chart-area { padding-left:35px; padding-right:9px; }
 #app .chart-grid { left:35px; right:9px; }
 #app .chart-bar-col label { max-width:52px; font-size:9px; }
 #app .toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; padding:10px; }
 #app .toolbar-search { min-width:0; grid-column:1 / -1; width:100%; padding:5px 6px 9px; margin:0; border-bottom:1px solid var(--line, #e8edf4); }
 #app .toolbar-search input { width:100%; }
 #app .toolbar .select { width:100%; max-width:none; min-width:0; font-size:12px; }
 #app .settings-card { padding:16px; }
 #app .form-grid { grid-template-columns:minmax(0,1fr); }
 #app .form-field.full { grid-column:auto; }
 #app .columns-selector { display:grid; grid-template-columns:minmax(0,1fr); padding:8px; gap:7px; }
 #app .column-choice { min-height:43px; font-size:12px; }
 #app .report-setting-actions { display:grid; grid-template-columns:minmax(0,1fr); }
 #app .report-setting-actions .button { width:100%; }
 #app .report-tile { padding:16px; }
 #app .report-tile p { min-height:0; }
 #app .modal-overlay { padding:10px; }
 #app .modal { max-width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
 #app .modal-content { max-height:calc(100dvh - 190px); overflow-y:auto; }
 #app .modal-foot { flex-wrap:wrap; gap:8px; }
 #app .modal-foot .button { flex:1 1 135px; }
 #app .drawer { width:min(100vw,460px); }
 #app .drawer-body { padding:15px; }
 #app .drawer-header { padding:21px; }
 #app .drawer-actions { flex-wrap:wrap; }
 #app .drawer-actions .button { flex:1 1 140px; }
 #app .closure-list { padding:0 12px 12px; }
 #app .closure-item { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; }
 #app .closure-icon { width:32px;height:32px; }
 #app .closure-buttons { grid-column:1/-1; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); }
 #app .closure-buttons .button { min-width:0; }
 #app .diff-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
 #app .diff-stats > div { padding:9px 4px; }
 #app .diff-stats strong { font-size:21px; }
 #app .login-wrap { min-height:100dvh; grid-template-columns:minmax(0,1fr); }
 #app .login-cover { min-height:195px; padding:24px 20px 26px; }
 #app .login-logo { max-width:calc(100% - 100px); }
 #app .login-big { font-size:clamp(23px,6vw,28px); }
 #app .login-form-outer { padding:26px 18px 40px; align-items:start; }
 #app .login-form { width:min(420px,100%); }
 #app .login-form input { min-height:43px; }
 .mobile-nav-backdrop { position:fixed; inset:0; background:rgba(2,10,26,.64); z-index:79; border:0; width:100%; height:100%; cursor:pointer; }
 /* Tablas a tarjetas: sin zoom ni desplazamiento horizontal de toda la página. */
 #app .table-wrap:has(>.adaptive-table) { overflow:visible; }
 #app .adaptive-table { display:block; width:100%; min-width:0; }
 #app .adaptive-table thead { display:none; }
 #app .adaptive-table tbody { display:grid; gap:11px; padding:11px; }
 #app .adaptive-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 11px; border:1px solid var(--line, #e8edf4); border-radius:12px; padding:11px; background:var(--paper,#fff); min-width:0; box-shadow:0 2px 8px rgba(12,31,56,.04); }
 #app .adaptive-table tbody tr:hover { background:var(--paper,#fff); }
 #app .adaptive-table tbody td { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; min-width:0; gap:5px; white-space:normal; padding:9px 3px; border:0; background:transparent!important; overflow-wrap:anywhere; font-size:12px; }
 #app .adaptive-table tbody td::before { content:attr(data-label); display:block; color:var(--muted,#78869b); text-transform:uppercase; letter-spacing:.045em; font-size:10px; font-weight:800; line-height:1.4; }
 #app .adaptive-table tbody td:empty::before { display:none; }
 #app .adaptive-table tbody td[colspan] { grid-column:1/-1; }
 #app .adaptive-table:not(.operational-table) tbody td:nth-child(2) { order:-1; grid-column:1/-1; }
 #app .adaptive-table:not(.operational-table) tbody td:last-child { grid-column:1/-1; }
 #app .adaptive-table .asset-name { font-size:14px; line-height:1.35; }
 #app .adaptive-table .asset-sub { font-size:11px; }
 #app .adaptive-table .asset-actions { gap:12px; }
 #app .adaptive-table .action-mini { width:40px; height:40px; border:1px solid var(--line,#e4e9f1); }
 #app .adaptive-table.operational-table tbody td:first-child { grid-column:1/-1; }
 #app .adaptive-table.operational-table tbody td:last-child { grid-column:1/-1; }
 #app .adaptive-table.operational-table input,
 #app .adaptive-table.operational-table select { width:100%; min-width:0; min-height:40px; }
 #app .adaptive-table.operational-table .reading-field { display:flex; align-items:center; gap:5px; }
 #app .adaptive-table.operational-table .reading-field input { flex:1; }
 #app .adaptive-table.operational-table .button { width:100%; min-height:40px; }
 #app .adaptive-table.operational-table .verify-cell { align-items:flex-start; }
 #app .count-note { padding-inline:6px; }
}
@media (max-width:370px) {
 #app .breadcrumbs { max-width:94px; }
 #app .stats-grid { grid-template-columns:minmax(0,1fr); }
 #app .stat-card { display:grid; grid-template-columns:1fr auto; }
 #app .stat-top { grid-column:1/-1; }
 #app .stat-value { font-size:24px; }
 #app .stat-label { align-self:end; text-align:right; }
 #app .adaptive-table tbody { padding:8px; }
}
/* Tablet compacto: navegación de escritorio sin afectar legibilidad. */
@media (min-width:761px) and (max-width:1020px) {
 #app .content { padding:23px 18px 75px; }
 #app .pagehead { flex-wrap:wrap; }
 #app .report-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #app .report-tile { padding:16px; }
 #app .toolbar { gap:8px; }
}

/* Admin global: diseño independiente, igualmente fluido. */
#admin-app .admin-shell { max-width:100%; }
#admin-app .content { max-width:1500px; width:100%; }
#admin-app .topbar { min-width:0; }
#admin-app .head { min-width:0; }
#admin-app .table-wrap { max-width:100%; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
#admin-app .field, #admin-app .field input, #admin-app .field select { min-width:0; }
#admin-app .modal { max-width:calc(100vw - 26px); }
@media (min-width:741px) and (max-width:1180px) {
 #admin-app .admin-shell { grid-template-columns:195px minmax(0,1fr); }
 #admin-app .content { padding:24px 20px; }
 #admin-app .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #admin-app .table-wrap table { min-width:650px; }
}
@media (max-width:740px) {
 #admin-app .admin-shell { display:block; }
 #admin-app .side { display:flex; flex-wrap:wrap; flex-direction:row; gap:8px; align-items:center; padding:12px 13px; }
 #admin-app .side .logo { width:100%; font-size:18px; }
 #admin-app .side .navlink { flex:1 1 145px; margin:0; font-size:11px; text-align:center; }
 #admin-app .side hr,#admin-app .side-bottom,#admin-app .side .navtitle { display:none; }
 #admin-app .topbar { padding:12px 14px; gap:9px; flex-wrap:wrap; }
 #admin-app .topbar .top-right { flex-wrap:wrap; justify-content:flex-end; gap:6px; }
 #admin-app .content { padding:17px clamp(11px,4vw,20px) 75px; }
 #admin-app .head { flex-direction:column; align-items:stretch; gap:11px; }
 #admin-app .head .btn { width:100%; }
 #admin-app .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 #admin-app .metric { padding:13px; min-width:0; }
 #admin-app .metric strong { font-size:24px; }
 #admin-app .card-title { padding:15px; }
 #admin-app .form-grid { grid-template-columns:minmax(0,1fr); }
 #admin-app .field.full { grid-column:1; }
 #admin-app .modal { max-height:calc(100dvh - 22px); }
 #admin-app .modal-body { padding:16px; }
 #admin-app .modal-head,#admin-app .modal-foot { padding:15px; }
 #admin-app .modal-foot { flex-wrap:wrap; }
 #admin-app .modal-foot .btn { flex:1 1 120px; }
 #admin-app .table-wrap { overflow:visible; }
 #admin-app .adaptive-table { display:block; width:100%; min-width:0; }
 #admin-app .adaptive-table thead { display:none; }
 #admin-app .adaptive-table tbody { display:grid; gap:10px; padding:10px; }
 #admin-app .adaptive-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--line,#dce3ed); border-radius:11px; padding:10px; min-width:0; }
 #admin-app .adaptive-table tbody td { display:flex; flex-direction:column; white-space:normal; min-width:0; padding:8px 5px; gap:4px; border:0; font-size:12px; overflow-wrap:anywhere; }
 #admin-app .adaptive-table tbody td::before { content:attr(data-label); color:var(--muted,#8293a9); font-size:10px; letter-spacing:.04em; text-transform:uppercase; font-weight:800; }
 #admin-app .adaptive-table tbody td:first-child { grid-column:1/-1; }
 #admin-app .adaptive-table tbody td:last-child { grid-column:1/-1; }
 #admin-app .adaptive-table tbody td[colspan] { grid-column:1/-1; }
 #admin-app .adaptive-table .btn { align-self:flex-start; }
}
@media (max-width:370px) {
 #admin-app .grid { grid-template-columns:minmax(0,1fr); }
 #admin-app .login-card { padding:20px; }
}

/* Oscuro: cobertura de los contenedores que antes permanecían blancos. */
[data-theme="dark"] #app .toolbar,
[data-theme="dark"] #app .columns-selector,
[data-theme="dark"] #app .settings-card,
[data-theme="dark"] #app .report-tile { background:#172337 !important; border-color:#314057!important; color:#e9effa!important; }
[data-theme="dark"] #app .toolbar-search { background:transparent!important; }
[data-theme="dark"] #app .toolbar-search input { background:transparent!important; border:0!important; }
[data-theme="dark"] #app .columns-selector .column-choice { background:#22334c!important; border-color:#3b4e68!important; color:#dfe9f9!important; }
[data-theme="dark"] #app .column-choice span,
[data-theme="dark"] #app .form-field .status-inline,
[data-theme="dark"] #app .report-tile h3 { color:#e7efff!important; }
[data-theme="dark"] #app .select,
[data-theme="dark"] #app .form-field input,
[data-theme="dark"] #app .form-field select,
[data-theme="dark"] #app .form-field textarea { background:#101d30!important; color:#e8effd!important; border-color:#3b4d68!important; }
[data-theme="dark"] #app .button:disabled { opacity:.55; }
[data-theme="dark"] #app .report-tile p { color:#adbfda!important; }
[data-theme="dark"] #app .toolbar-search .icon { color:#a8b9d4; }
[data-theme="dark"] #app .adaptive-table tbody tr,
[data-theme="dark"] #admin-app .adaptive-table tbody tr { background:#172337!important; border-color:#34455f!important; }
[data-theme="dark"] #app .adaptive-table tbody td,
[data-theme="dark"] #admin-app .adaptive-table tbody td { color:#e1ebf9!important; background:transparent!important; }
[data-theme="dark"] #app .adaptive-table tbody td::before,
[data-theme="dark"] #admin-app .adaptive-table tbody td::before { color:#a8bad3!important; }
[data-theme="dark"] #admin-app .table-wrap { background:transparent!important; }
[data-theme="dark"] #admin-app .table-wrap .btn { background:#24334c; color:#e6efff; border-color:#3d5069; }
/* En móviles el encabezado prioriza acciones y navegación, sin comprimir el título. */
@media (max-width:760px) {
 #app .topbar .user-block .name,
 #app .topbar .user-block .role { display:none!important; }
 #app .topbar .user-block { gap:0; }
}

/* Ubicación destacada dentro de la ficha del activo. */
#app .asset-location-highlight{display:flex;align-items:center;gap:10px;margin-top:16px;padding:11px 13px;border:1px solid rgba(255,255,255,.24);border-radius:11px;background:rgba(255,255,255,.12);color:#fff}
#app .asset-location-highlight .icon{flex-shrink:0;width:19px;height:19px}
#app .asset-location-highlight span{display:block;min-width:0;overflow-wrap:anywhere}
#app .asset-location-highlight strong{display:block;font-size:10px;letter-spacing:.04em;text-transform:uppercase;opacity:.78;margin-bottom:4px}
#app .asset-location-highlight span span{font-size:13px;font-weight:650}
@media (max-width:600px){#app .asset-location-highlight{padding:10px}#app #qr-slot .button{margin:4px 2px}}
