:root{color-scheme:light;--fondo: #f2f5f8;--panel: #ffffff;--tinta: #1a2733;--tinta-suave: #44586c;--tinta-tenue: #5d7183;--marca: #0f2a44;--marca-texto: #ffffff;--linea: #d9e2ea;--dato: #2a78d6;--dato-riel: #dbe8f7;--ok-txt: #1e6b3a;--ok-bg: #e3f1e7;--ok-bord: #b9dcc4;--rev-txt: #7a5200;--rev-bg: #fcf0d7;--rev-bord: #ecd9a4;--err-txt: #a11d1d;--err-bg: #fbe3e3;--err-bord: #efc0c0;--hover: rgba(15, 42, 68, .05);--sombra: 0 1px 2px rgba(15, 42, 68, .06);--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}:root[data-theme=dark]{color-scheme:dark;--fondo: #0e141b;--panel: #16202b;--tinta: #e6edf5;--tinta-suave: #a9bacb;--tinta-tenue: #8fa2b5;--marca: #0c1926;--marca-texto: #dbe6f2;--linea: #26323f;--dato: #3987e5;--dato-riel: #1d3350;--ok-txt: #7fd39b;--ok-bg: #16301f;--ok-bord: #2c5a3c;--rev-txt: #e5c07b;--rev-bg: #332a12;--rev-bord: #5c4f26;--err-txt: #f1938f;--err-bg: #331616;--err-bord: #5c2626;--hover: rgba(255, 255, 255, .05);--sombra: none}*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--tinta);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}.cargando{display:grid;place-items:center;min-height:60vh;color:var(--tinta-tenue)}header{background:var(--marca);color:var(--marca-texto);border-bottom:3px solid var(--dato);padding:16px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}header .tit h1{margin:0;font-size:17px;font-weight:700;letter-spacing:.2px}header .tit p{margin:2px 0 0;opacity:.72;font-size:12.5px}header .sello{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:5px 9px;opacity:.85}header .usuario{margin-left:auto;text-align:right;line-height:1.3}header .usuario .nombre{display:block;font-size:12.5px;font-weight:600}header .usuario .rol{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;opacity:.72}#tema,header .salir{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.32);border-radius:4px;padding:6px 12px;font:12.5px var(--sans);cursor:pointer}#tema:hover,header .salir:hover{background:#ffffff1a}main{max-width:1440px;margin:0 auto;padding:20px 24px 64px}.eti{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--tinta-tenue);font-weight:700}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--panel);border:1px solid var(--linea);border-radius:6px;padding:12px 16px;box-shadow:var(--sombra)}.kpi .v{font-size:26px;font-weight:600;margin-top:2px;letter-spacing:-.2px}.kpi .s{font-size:12px;color:var(--tinta-suave);margin-top:1px}.kpi .s .chip{display:inline-block;font-size:11px;font-weight:700;border-radius:4px;padding:0 6px;margin-right:4px;background:var(--err-bg);color:var(--err-txt);border:1px solid var(--err-bord)}.bars{background:var(--panel);border:1px solid var(--linea);border-radius:6px;padding:14px 16px 10px;margin-bottom:16px;box-shadow:var(--sombra)}.bars .eti{margin-bottom:8px;display:block}.bar{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:13px}.bar .lbl{width:120px;color:var(--tinta-suave);font-weight:600;text-align:right}.bar .track{flex:1;height:12px;background:var(--dato-riel);border-radius:0 4px 4px 0;overflow:hidden}.bar .fill{height:100%;background:var(--dato);border-radius:0 4px 4px 0}.bar .n{width:44px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.bars .nota{font-size:11.5px;color:var(--tinta-tenue);margin:8px 0 2px 130px}.ctrl{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ctrl input,.ctrl select{background:var(--panel);border:1px solid var(--linea);color:var(--tinta);border-radius:4px;padding:7px 10px;font:13px var(--sans)}.ctrl input[type=search]{flex:1;min-width:240px}.ctrl :focus-visible{outline:2px solid var(--dato);outline-offset:1px}.ctrl .res{align-self:center;font-size:12px;color:var(--tinta-tenue);font-variant-numeric:tabular-nums;margin-left:4px}.twrap{background:var(--panel);border:1px solid var(--linea);border-radius:6px;overflow-x:auto;box-shadow:var(--sombra)}table{width:100%;border-collapse:collapse}th{background:var(--marca);color:var(--marca-texto);font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:9px 10px;text-align:left;position:sticky;top:0;z-index:1}th.num{text-align:right}td{padding:8px 10px;border-top:1px solid var(--linea);font-size:13px;vertical-align:top}tr.row{cursor:pointer}tr.row:hover td{background:var(--hover)}tr.row .flecha{display:inline-block;width:14px;color:var(--tinta-tenue);transition:transform .12s ease}tr.row.abierta .flecha{transform:rotate(90deg)}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12px}.tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:4px;padding:2px 8px;border:1px solid transparent;white-space:nowrap}.tag.ok{background:var(--ok-bg);color:var(--ok-txt);border-color:var(--ok-bord)}.tag.err{background:var(--err-bg);color:var(--err-txt);border-color:var(--err-bord)}.tag.rev{background:var(--rev-bg);color:var(--rev-txt);border-color:var(--rev-bord)}.tag.neutro{background:var(--fondo);color:var(--tinta-suave);border-color:var(--linea)}.det td{background:var(--fondo);font-size:12.5px;padding:12px 14px 14px 32px}.det .eti{display:block;margin:6px 0 2px}.det ul{margin:2px 0 6px 18px;padding:0}.det li{margin:2px 0}.det li.sev-err{color:var(--err-txt)}.det li.sev-adv{color:var(--rev-txt)}.det table{margin-top:2px;border:1px solid var(--linea);border-radius:4px;overflow:hidden}.det table th{background:transparent;color:var(--tinta-tenue);position:static;border-bottom:1px solid var(--linea);font-size:10.5px;padding:6px 8px}.det table td{border-top:1px solid var(--linea);background:var(--panel);padding:6px 8px}footer{color:var(--tinta-tenue);font-size:11.5px;margin-top:14px}.ingreso{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--fondo)}.ingreso .tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:6px;border-top:3px solid var(--marca);box-shadow:var(--sombra);max-width:420px;width:100%;padding:28px 32px 24px}.ingreso .sello{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--tinta-tenue)}.ingreso h1{font-size:19px;margin:6px 0 2px;color:var(--tinta)}.ingreso .sub{font-size:12.5px;color:var(--tinta-suave);margin:0 0 18px}.ingreso label{display:block;font-size:12.5px;font-weight:600;color:var(--tinta-suave);margin:12px 0}.ingreso input{display:block;width:100%;margin-top:4px;background:var(--fondo);border:1px solid var(--linea);color:var(--tinta);border-radius:4px;padding:9px 10px;font:14px var(--sans)}.ingreso input:focus-visible{outline:2px solid var(--dato);outline-offset:1px}.ingreso button:not(.enlace){width:100%;margin-top:14px;background:var(--marca);color:var(--marca-texto);border:0;border-radius:4px;padding:10px;font:600 14px var(--sans);cursor:pointer}.ingreso button:not(.enlace):hover{filter:brightness(1.15)}.ingreso button:disabled{opacity:.6;cursor:default}.ingreso .enlace{display:block;margin:14px auto 0;background:none;border:0;color:var(--dato);font:12.5px var(--sans);cursor:pointer;text-decoration:underline}.ingreso .error{font-size:13px;color:var(--err-txt);background:var(--err-bg);border:1px solid var(--err-bord);border-radius:4px;padding:8px 10px;margin:12px 0 0}.ingreso .nota{font-size:11.5px;color:var(--tinta-tenue);margin:14px 0 0}.ingreso .qr{display:flex;justify-content:center;margin:10px 0}.ingreso .qr svg{width:180px;height:180px;background:#fff;border-radius:4px;border:1px solid var(--linea);padding:6px}.ingreso .secreto{font-size:12px;color:var(--tinta-suave);text-align:center;overflow-wrap:anywhere}.ingreso .secreto code{font-family:var(--mono)}.subida{background:var(--panel);border:1px solid var(--linea);border-radius:6px;padding:14px 16px;margin-bottom:16px;box-shadow:var(--sombra)}.subida .cuerpo{margin-top:6px}.subida p{margin:6px 0}.subida ul{margin:6px 0 10px;padding-left:20px}.subida .fina{font-size:12.5px;color:var(--tinta-suave)}.subida input[type=file]{margin-top:4px;color:var(--tinta-suave)}.subida .acciones{display:flex;gap:8px;margin-top:10px}.subida .acciones button{border:1px solid var(--linea);background:var(--panel);color:var(--tinta);border-radius:4px;padding:6px 14px;font:13px var(--sans);cursor:pointer}.subida .acciones button:hover{background:var(--hover)}.subida .acciones .primario{background:var(--dato);border-color:var(--dato);color:#fff}
