/* Nexo 360 v1.7.5 · Inventario físico con sesiones, escaneo y reportes de activos. */

/* El atributo [hidden] solo trae display:none de la hoja del navegador, que
   cualquier regla de autor con display:grid/block anula. Estos elementos se
   ocultan desde JavaScript, así que la regla debe imponerse. */
.physical-audit-assets article[hidden],.sale-valuation[hidden],.scan-viewport[hidden],[data-inventory-row][hidden]{display:none!important}

/* --- Etiquetas y pestañas --- */
.inventory-tabs .tab-badge{display:inline-block;min-width:17px;margin-left:5px;padding:1px 5px;border-radius:9px;background:var(--cyan);color:#fff;font-size:9px;font-weight:850;text-align:center}
.badge-cancelled{padding:2px 7px;border-radius:7px;background:#f1e2e2;color:#96323b;font-size:9px;font-style:normal;font-weight:850}
.inventory-report-list article.is-cancelled{opacity:.62}

/* --- Apertura de sesión --- */
.inventory-start-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.inventory-start-layout>section{margin-top:0}
.scope-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:12px}
.scope-cards span{display:block;padding:13px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc}
.scope-cards b{display:block;color:var(--navy);font-size:18px;line-height:1.15;overflow-wrap:anywhere}
.scope-cards small{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.scope-cards .success b{color:#18864b}
.scope-cards .danger b{color:#a8323f}
.scope-breakdown{display:grid;gap:6px;margin-top:14px}
.scope-breakdown article{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-size:11px}
.scope-breakdown b{color:var(--ink);font-weight:750}
.scope-breakdown span{color:var(--blue);font-weight:850}

/* --- Barra de la sesión en curso --- */
.inventory-session{margin-top:18px}
.session-bar{position:sticky;top:84px;z-index:6;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,180px) auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--white);box-shadow:0 6px 18px rgba(6,38,92,.07)}
.session-identity b{display:block;color:var(--navy);font-size:14px}
.session-identity small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.session-counters{display:flex;flex-wrap:wrap;gap:14px}
.session-counters span{display:block;min-width:56px}
.session-counters b{display:block;color:var(--navy);font-size:19px;line-height:1.1}
.session-counters small{display:block;color:var(--muted);font-size:9px}
.session-counters .success b{color:#18864b}
.session-counters .danger b{color:#a8323f}
.session-counters .warning b{color:#a5711b}
.progress-track{height:7px;border-radius:6px;background:#e4edf1;overflow:hidden}
.progress-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .3s ease}
.session-progress small{display:block;margin-top:5px;color:var(--muted);font-size:9px}
.session-progress b{color:var(--ink)}
.session-sync{display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:9px;background:#f2f7f9;font-size:10px;color:var(--muted)}
.session-sync .sync-dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.session-sync[data-sync-state="saving"] .sync-dot{background:var(--cyan);animation:nexo-pulse 1s infinite}
.session-sync[data-sync-state="queued"]{background:#fbf1e0;color:#8a5f14}
.session-sync[data-sync-state="queued"] .sync-dot{background:#dc9a20}
@keyframes nexo-pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* --- Escaneo --- */
.scan-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}
.scan-input{display:grid;gap:5px;font-size:11px;font-weight:750}
.scan-input input{width:100%;padding:11px;border:1px solid #cbd9df;border-radius:9px;background:#fff;font-size:14px}
.scan-bar button{padding:11px 14px;border:0;border-radius:9px;background:#5f7480;color:#fff;font-weight:800;font-size:11px}
.scan-viewport{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#0d1a26;text-align:center}
.scan-viewport video{width:100%;max-width:420px;border-radius:10px;background:#000}
.scan-viewport p{margin:9px 0 0;color:#cddbe4;font-size:11px}

/* --- Tablero de conteo --- */
.inventory-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 200px auto;gap:10px;align-items:end;margin-top:14px}
.inventory-toolbar label{display:grid;gap:5px;font-size:11px;font-weight:750}
.inventory-toolbar input,.inventory-toolbar select{width:100%;padding:9px;border:1px solid #cbd9df;border-radius:8px;background:#fff}
.toolbar-count{padding-bottom:9px;color:var(--muted);font-size:10px;font-weight:750}
.physical-audit-assets article[data-inventory-row]{border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.physical-audit-assets article.is-checked{border-color:#b7dcc4;background:#fbfefc}
.physical-audit-assets article.has-error{border-color:#e0b1b7;background:#fffafa}
.physical-audit-assets article.just-scanned{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(8,173,198,.22)}
.row-state{color:var(--muted);font-size:9px;font-style:normal;font-weight:750;text-align:right;white-space:nowrap}
.physical-audit-assets article.is-checked .row-state{color:#18864b}
.physical-audit-assets article.has-error .row-state{color:#a8323f;white-space:normal}
.audit-evidence .photo-count{display:inline-block;min-width:16px;margin-left:5px;padding:1px 5px;border-radius:8px;background:var(--blue);color:#fff;font-size:9px;text-align:center}
.audit-photo-gallery{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.audit-photo-gallery img{width:64px;height:64px;border:1px solid var(--line);border-radius:8px;object-fit:cover}
.audit-evidence-list .trace{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.audit-evidence-list header em.success{color:#18864b}
.audit-evidence-list header em.danger{color:#a8323f}

/* --- Cierre del acta --- */
.inventory-close{margin-top:18px}
.inventory-cancel-form{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.danger-button{padding:10px 14px;border:1px solid #c2515e;border-radius:9px;background:#fff;color:#a8323f;font-weight:800;font-size:11px}

/* --- Venta de activos --- */
.sale-valuation{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0;padding:13px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc}
.sale-valuation span{display:block}
.sale-valuation small{display:block;color:var(--muted);font-size:9px}
.sale-valuation b{display:block;margin-top:3px;color:var(--navy);font-size:14px;overflow-wrap:anywhere}
.sale-valuation b.positive{color:#18864b}
.sale-valuation b.negative{color:#a8323f}
.sale-history .scope-cards{margin-bottom:14px}

/* --- Reportes de activos --- */
.asset-report-filters form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;margin-top:12px}
.report-scope-note{margin:12px 0 0;color:var(--muted);font-size:10px}
.report-scope-note b{color:var(--ink)}
.asset-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:16px;border:0;background:none;padding:0;box-shadow:none}
.asset-report-grid article{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.asset-report-grid b{display:block;color:var(--navy);font-size:13px}
.asset-report-grid p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.report-actions .csv{border-color:#5f7480;background:#5f7480;color:#fff}

/* --- Adaptación a pantallas pequeñas ---
   El conteo se hace caminando por la bodega con el teléfono en la mano, así que
   la lista deja de ser una tabla ancha con desplazamiento horizontal y pasa a
   ser una pila de tarjetas que ocupan todo el ancho disponible. */
@media (max-width:900px){
	.inventory-start-layout{grid-template-columns:1fr}
	.session-bar{grid-template-columns:1fr 1fr;gap:12px;padding:12px}
	.session-identity,.session-sync{grid-column:1/-1}
	.session-counters{justify-content:space-between;gap:8px}
	.session-sync{justify-content:center}
	.scan-bar{grid-template-columns:1fr}
	.scan-bar button{width:100%}
	.inventory-toolbar{grid-template-columns:1fr}
	.toolbar-count{padding-bottom:0}
	.inventory-list-head{display:none}
	.physical-audit-assets{max-height:none!important;overflow:visible!important;padding:0!important;border:0!important;background:none!important}
	.physical-audit-assets article[data-inventory-row]{display:block!important;min-width:0!important;padding:13px!important}
	.physical-audit-assets article header{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:10px;margin:0 0 11px!important;padding:0!important;border:0!important}
	.audit-item-grid{grid-template-columns:1fr!important}
	.audit-item-grid .audit-evidence{grid-column:auto}
	.row-state{text-align:right}
	.asset-report-filters form{grid-template-columns:1fr 1fr}
	.asset-report-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
	.session-counters span{min-width:44px}
	.session-counters b{font-size:16px}
	.sale-valuation{grid-template-columns:1fr 1fr}
	.asset-report-filters form{grid-template-columns:1fr}
	.scan-input input{font-size:16px} /* Evita el zoom automático de iOS al enfocar. */
}
