:root{--negro:#3d3935;--plata:#8a8d8f;--plata2:#b9bbbc;--bg:#efefef;--bg2:#f7f7f7;--panel:#fff;--linea:#e2e3e4;--verde:#1e8e4e;--rojo:#c0392b;--amar:#b7791f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Poppins,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--negro)}a{color:inherit}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}header{background:var(--panel);border-bottom:1px solid var(--linea);padding:10px 22px;gap:20px;flex:0 0 auto}.brand,header{display:flex;align-items:center}.brand{gap:10px;white-space:nowrap}.brand em{font-style:normal;font-weight:500;letter-spacing:.3px;font-size:13px;color:var(--plata)}nav{display:flex;gap:4px;flex:1 1}.navtop{padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--plata);font-weight:500}.navtop.act{background:var(--negro);color:#fff}.navtop:hover:not(.act){background:var(--bg)}.badge{font-size:11px;color:var(--plata);border:1px solid var(--linea);padding:4px 10px;border-radius:99px}.usermenu{display:flex;align-items:center;gap:10px}.usermenu .uemail{font-size:12px;color:var(--negro);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usermenu form{margin:0}.view,main{flex:1 1}.view,aside,main{display:flex;min-height:0}aside{width:300px;flex:0 0 auto;background:var(--panel);border-right:1px solid var(--linea);flex-direction:column}.upload{display:block;margin:12px;padding:12px;text-align:center;background:var(--negro);color:#fff;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer}.upload:hover{opacity:.92}.files{overflow:auto;flex:1 1}.file{padding:10px 14px;border-bottom:1px solid var(--linea);cursor:pointer;font-size:13px}.file:hover{background:var(--bg2)}.file.sel{background:var(--bg);border-left:3px solid var(--negro)}.file small{color:var(--plata);font-size:11px;display:block;margin-top:2px}.file .av{font-weight:700;color:var(--rojo)}.file .av.ok{color:var(--verde)}.file .fecha{font-size:10px}.detalle{padding:20px 24px}.detalle,.pane{flex:1 1;overflow:auto;min-width:0}.pane{padding:22px 26px}.pane h2{font-size:18px;font-weight:600;margin-bottom:14px}h1{font-size:22px;margin-bottom:4px}.sub{color:var(--plata);font-size:13px;margin-bottom:16px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:14px}.card h3{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--plata);margin-bottom:6px}.card .v{font-size:20px;font-weight:600}.bar{height:14px;background:var(--bg);border:1px solid var(--linea);border-radius:8px;overflow:hidden}.bar>div{height:100%;background:var(--plata)}.box{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:18px;margin-bottom:20px;max-width:820px}.box h3{font-size:13px;margin-bottom:12px}label{display:block;font-size:11px;color:var(--plata);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.5px}.f{width:100%;background:var(--bg2);border:1px solid var(--linea);color:var(--negro);padding:8px 10px;border-radius:8px;font-size:13px;font-family:inherit}.ta{font-family:ui-monospace,Consolas,monospace;font-size:12px;min-height:340px;resize:vertical;white-space:pre}.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.msg{font-size:12px;color:var(--plata)}.seg{display:inline-flex;border:1px solid var(--linea);border-radius:8px;overflow:hidden}.seg button{border:0;background:var(--panel);color:var(--plata);padding:7px 14px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.seg button.act{background:var(--negro);color:#fff}.tabs{display:flex;gap:6px;margin:16px 0 12px;border-bottom:1px solid var(--linea);flex-wrap:wrap}.tab{padding:8px 14px;cursor:pointer;font-size:13px;color:var(--plata);border-bottom:2px solid transparent}.tab.act{color:var(--negro);border-bottom-color:var(--negro)}.tblwrap{overflow:auto;max-height:62vh;border:1px solid var(--linea);border-radius:10px;background:var(--panel);margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:12px}.tblwrap table{min-width:max-content}td,th{border-bottom:1px solid var(--linea);padding:6px 9px;text-align:left;white-space:nowrap}th{color:var(--plata);font-size:10px;text-transform:uppercase;position:-webkit-sticky;position:sticky;top:0;background:var(--panel)}td .f{min-width:110px}.pill{padding:2px 8px;border-radius:99px;font-size:10px;font-weight:600}.RECHAZO{background:rgba(192,57,43,.12);color:#a5281c}.OBSERVACION{background:rgba(183,121,31,.14);color:#8a5a14}.AUTOCORRECCION,.est-nuevo{background:rgba(30,142,78,.12);color:#177a41}.est-actualizado{background:rgba(42,111,151,.14);color:#215a7a}.est-sin_cambios{background:var(--bg);color:var(--plata)}.est-error{background:rgba(192,57,43,.12);color:#a5281c}.mano{display:inline-block;min-width:20px;text-align:center;background:var(--bg);border:1px solid var(--linea);border-radius:6px;padding:1px 6px;font-size:11px}.shift-h{font-size:13px;margin:6px 0 8px}.btn,.shift-h{font-weight:600}.btn{background:var(--negro);color:#fff;border:0;padding:8px 12px;border-radius:8px;font-size:12px;cursor:pointer;text-decoration:none;display:inline-block}.btn.sec{background:var(--plata)}.ok{color:var(--verde)}.bad{color:var(--rojo)}.amar{color:var(--amar)}.empty{color:var(--plata);text-align:center;padding:60px 0}.testres{margin-top:14px;padding:10px 12px;border-radius:8px;font-size:13px;background:var(--bg2);border:1px solid var(--linea)}.testres.ok{color:var(--verde)}.testres.bad{color:var(--rojo)}footer{flex:0 0 auto;background:var(--panel);border-top:1px solid var(--linea);padding:7px 22px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--plata)}footer .dev b{color:var(--negro);font-weight:600}footer .dev b span{color:#f23005}.doc{max-width:900px;line-height:1.55;font-size:14px}.doc h1{font-size:24px;margin:6px 0 14px}.doc h2{font-size:18px;margin:26px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--linea)}.doc h3{font-size:15px;margin:18px 0 8px}.doc li,.doc p{color:#4a4640}.doc table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.doc td,.doc th{border:1px solid var(--linea);padding:6px 9px}.doc th{color:var(--negro)}.doc code,.doc th{background:var(--bg2)}.doc code{padding:1px 5px;border-radius:4px;font-size:12px}.doc blockquote{border-left:3px solid var(--plata);margin:12px 0;padding:6px 14px;background:var(--bg2);border-radius:0 8px 8px 0;color:#4a4640}.doc ul{margin:8px 0 8px 20px}