:root{--red: #e10600;--red-dark: #b00000;--ink: #1a1a1a;--muted: #6b7280;--line: #e5e7eb;--soft: #fdecea;--bg: #f6f7f9;--card: #ffffff;--amber: #9a6a00;font-family:Segoe UI,system-ui,-apple-system,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--red);text-decoration:none}h1,h2,h3{margin:0 0 .4rem}.app-header{background:var(--red);color:#fff;padding:.7rem 1.2rem;display:flex;align-items:center;gap:1.4rem;box-shadow:0 2px 6px #0000001f}.app-header .brand{font-weight:800;font-size:1.1rem;letter-spacing:.3px}.app-header nav{display:flex;gap:1rem}.app-header nav a{color:#fff;opacity:.85;font-weight:600;padding:.2rem 0;border-bottom:2px solid transparent}.app-header nav a.active{opacity:1;border-bottom-color:#fff}.app-header .spacer{flex:1}.app-header button{background:#ffffff26;color:#fff;border:0;padding:.35rem .8rem;border-radius:6px;cursor:pointer;font-weight:600}.container{max-width:1100px;margin:1.4rem auto;padding:0 1.2rem}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.2rem;margin-bottom:1.2rem}.card h2{color:var(--red);font-size:1.05rem}.muted{color:var(--muted)}.row{display:flex;gap:1rem;flex-wrap:wrap}.grid{display:grid;gap:1rem}button.primary{background:var(--red);color:#fff;border:0;padding:.55rem 1.1rem;border-radius:8px;font-weight:700;cursor:pointer}button.primary:disabled{opacity:.5;cursor:default}button.ghost{background:#fff;color:var(--red);border:1px solid var(--red);padding:.5rem 1rem;border-radius:8px;font-weight:700;cursor:pointer}input,select{padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;font:inherit}label{font-weight:600;font-size:.9rem;display:block;margin-bottom:.25rem}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--line)}th{background:var(--red);color:#fff;position:sticky;top:0}tbody tr:nth-child(2n){background:#faf9f9}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.dropzone{border:2px dashed var(--red);border-radius:12px;padding:2.2rem;text-align:center;background:var(--soft);cursor:pointer}.dropzone.drag{background:#fbd9d5}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700}.badge.full{background:#e6f4ea;color:#1a7f37}.badge.partial{background:#fdecea;color:var(--red-dark)}.warn{background:#fff7e6;border:1px solid #f0c36d;color:var(--amber);padding:.6rem .8rem;border-radius:8px;font-size:.9rem}.kpi{display:flex;gap:1.4rem;flex-wrap:wrap}.kpi .k{background:var(--soft);border-radius:10px;padding:.7rem 1rem;min-width:130px}.kpi .k .v{font-size:1.4rem;font-weight:800;color:var(--red)}.kpi .k .l{font-size:.8rem;color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center}.login-card{width:340px}.cov{display:grid;gap:3px}.cov .cell{width:100%;height:22px;border-radius:4px;font-size:.68rem;color:#fff;display:grid;place-items:center}.cov .full{background:#1a7f37}.cov .partial{background:var(--amber)}.cov .missing{background:#d1d5db;color:#6b7280}
