:root{--bg:#f4f6f8;--ink:#1f2933;--muted:#637381;--line:#ccd6df;--blue:#dcebf8;--green:#dff3e8;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px system-ui,-apple-system,Segoe UI,sans-serif}.shell{max-width:1500px;margin:auto;padding:28px 24px 48px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}header a{color:#2563a8;text-decoration:none;font-weight:700}.eyebrow,.label{display:block;color:#2563a8;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.eyebrow{margin:0 0 6px}h1{margin:0;font-size:28px}h2{font-size:18px;margin:0 0 14px}header p:last-child{color:var(--muted);margin:6px 0}.filters,.product-card,.metrics,.panel{background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 16px #1f29330b}.filters{display:flex;align-items:end;gap:14px;padding:14px;margin-bottom:16px}.filters label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.filters input,.filters select{min-width:250px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}button{padding:10px 14px;border:0;border-radius:6px;background:#2563a8;color:#fff;font-weight:700;cursor:pointer}.product-card{display:grid;grid-template-columns:180px minmax(280px,1fr) 180px 180px;gap:18px;padding:18px;margin-bottom:16px}.product-card>div{padding:6px 12px;border-right:1px solid var(--line)}.product-card>div:last-child{border:0}.product-card strong{display:block;margin-top:8px;font-size:20px}.product-name strong{font-size:17px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);overflow:hidden;margin-bottom:16px}.metrics article{background:#fff;padding:16px}.metrics span{color:var(--muted);font-size:12px}.metrics strong{display:block;margin-top:6px;font-size:24px}.panel{padding:16px;margin-bottom:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1100px}th,td{padding:9px 8px;border:1px solid var(--line);text-align:left;white-space:nowrap}th{background:var(--blue);font-weight:800}td.num,th.num{text-align:right}.empty{text-align:center;color:var(--muted);padding:22px}@media(max-width:800px){.filters,.product-card{display:grid;grid-template-columns:1fr}.filters input,.filters select{min-width:0}.metrics{grid-template-columns:repeat(2,1fr)}header{display:block}.product-card>div{border-right:0;border-bottom:1px solid var(--line)}}

/* --- cobertura por SKU (A, B, B-A) ------------------------------------ */
.coverage{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);overflow:hidden;border:1px solid var(--line)}
.coverage-panel h2 small{font-weight:700;color:var(--ink)}
.coverage-panel .hint{margin:10px 0 0}
.coverage article{background:#fff;padding:16px}
.coverage span{color:var(--muted);font-size:12px;display:block}
.coverage span b{color:var(--ink);font-weight:800}
.coverage strong{display:block;margin-top:6px;font-size:26px;line-height:1.1}
.coverage em{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-style:normal}
.coverage .highlight{background:#fbfcfd;box-shadow:inset 3px 0 0 #2563a8}
.coverage .falta{color:#b3261e}
.coverage .sobra{color:#1c6b45}
.coverage-hint{margin:0 0 16px;padding:0 16px;color:var(--muted);font-size:12px}

/* --- totales, truncado y orden ---------------------------------------- */
tfoot td{padding:9px 8px;border:1px solid var(--line);background:var(--blue);font-weight:800;white-space:nowrap}
tfoot td.num{text-align:right}
th[data-sort]{cursor:pointer;user-select:none}
th[data-sort]:hover{background:#cfe3f5}
th[data-sort].asc::after{content:" ▲";font-size:10px}
th[data-sort].desc::after{content:" ▼";font-size:10px}
h2 small{font-weight:400;color:var(--muted);font-size:12px;margin-left:8px}
h2 small.truncado{color:#b3261e;font-weight:700}
tbody tr{cursor:pointer}
tbody tr:hover{background:var(--blue)}
tbody tr.sel{background:var(--green)}
@media(max-width:800px){.coverage{grid-template-columns:repeat(2,1fr)}}

/* --- filtro de fecha --------------------------------------------------- */
.filters-note{flex-basis:100%;margin:4px 0 0;color:var(--muted);font-size:12px}
.filters-note b{color:var(--ink)}
.filters select:disabled{background:#eef1f4;color:var(--muted);cursor:not-allowed}
.sin-filtro{margin:12px 0 0;padding:10px 12px;background:#fff8e6;border:1px solid #e8d59a;font-size:13px}
.sin-filtro b{white-space:nowrap}
