:root{--navy:#1F3A5F;--amber:#F2A900;--bg:#F6F7F9;--line:#E3E6EB;--txt:#1E293B;--muted:#64748B;--ok:#15803D;--warn:#B45309;--bad:#B91C1C}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);background:var(--bg);font-size:14px}
.top{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--navy);color:#fff}
.brand{display:flex;gap:12px;align-items:center}.logo{width:38px;height:38px}.name{font-weight:800;font-size:20px;letter-spacing:.3px}.tag{font-size:12px;opacity:.8}
.top-right{display:flex;gap:16px;align-items:center}.sel{font-size:12px;display:flex;gap:8px;align-items:center}
.sel select{font-size:14px;padding:6px 8px;border-radius:8px;border:0;min-width:240px}
.proto{font-size:11px;background:rgba(255,255,255,.12);padding:4px 8px;border-radius:999px}
.layout{display:flex;height:calc(100% - 64px)}
.panel{width:460px;min-width:460px;background:#fff;border-right:1px solid var(--line);overflow-y:auto}
.mapwrap{flex:1;position:relative}#map{position:absolute;inset:0}
.legend{position:absolute;right:12px;bottom:22px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;z-index:500;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.legend hr{border:0;border-top:1px solid var(--line);margin:6px 0}.sw{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:6px;opacity:.7}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.ficha{padding:16px 18px 10px;border-bottom:1px solid var(--line)}
.ficha h2{margin:0 0 2px;font-size:20px}.ficha .sub{color:var(--muted);font-size:12px}
.kpis{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.kpi{background:var(--bg);border-radius:8px;padding:6px 10px;font-size:12px}.kpi b{display:block;font-size:15px}
.tabs{display:flex;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:5}
.tabs button{flex:1;padding:11px 4px;border:0;background:none;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent}
.tabs button.active{color:var(--navy);border-bottom-color:var(--amber)}
.tab{display:none;padding:14px 18px 40px}.tab.active{display:block}
h3{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:18px 0 8px}
.rule{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:#fff}
.rule .cat{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;display:flex;justify-content:space-between;gap:8px}
.rule .t{margin-top:4px;line-height:1.35}.rule .n{margin-top:4px;font-size:12px;color:var(--muted)}
.rule a{font-size:11px;color:var(--navy)}
.badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap;text-transform:none;letter-spacing:0}
.b-verificado{background:#DCFCE7;color:#166534}.b-secundaria{background:#FEF3C7;color:#92400E}.b-referencia{background:#E5E7EB;color:#374151}.b-inferencia{background:#FFEDD5;color:#9A3412}.b-sin_dato,.b-a_validar{background:#FEE2E2;color:#991B1B}
.scope{font-size:10px;color:#fff;background:var(--navy);border-radius:4px;padding:1px 6px;margin-right:6px}
.scope.muni{background:#475569}.scope.prov{background:#0F766E}.scope.ref{background:#9CA3AF}
details summary{cursor:pointer;color:var(--navy);font-weight:600;margin:12px 0 8px}
.gap{background:#FEF2F2;border:1px dashed #FCA5A5;border-radius:10px;padding:10px 12px;font-size:12.5px}
.gap li{margin:3px 0}
.corr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:grid;grid-template-columns:44px 1fr;gap:10px;cursor:pointer}
.corr:hover{border-color:var(--amber)}.corr .rk{font-weight:800;font-size:18px;color:var(--navy);text-align:center}.corr .km{font-size:11px;color:var(--muted);text-align:center}
.corr .nm{font-weight:700}.corr .meta{font-size:12px;color:var(--muted);margin-top:2px}.chips{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}
.chip{font-size:10.5px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 7px}.chip.y{background:#FEF3C7;border-color:#FDE68A}.chip.g{background:#DCFCE7;border-color:#BBF7D0}
.corr .links{font-size:12px;margin-top:6px}.corr .links a{color:var(--navy);margin-right:10px}
.filters{display:flex;gap:12px;font-size:12px;margin-bottom:10px;flex-wrap:wrap}
.form{display:grid;gap:10px}.form label{font-size:12px;font-weight:600;color:var(--muted)}.form select,.form input[type=number]{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.seg{display:flex;gap:6px}.seg button{flex:1;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:600;font-size:12.5px}
.seg button.on{border-color:var(--navy);background:#EEF2F8;color:var(--navy)}
.toggle{display:flex;gap:8px;align-items:center;font-size:13px}
.cta{background:var(--amber);color:#111;border:0;border-radius:10px;padding:12px;font-weight:800;font-size:14px;cursor:pointer}
.result{margin-top:14px;border-radius:12px;border:1px solid var(--line);overflow:hidden}
.result .hd{background:var(--navy);color:#fff;padding:10px 12px;font-weight:700}
.result .bd{padding:10px 12px}.chk{display:flex;gap:8px;margin:6px 0;font-size:13px;line-height:1.35}.chk .ic{width:18px;flex:none;text-align:center}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.plan{background:#FFFBEB;border:1px solid #FDE68A;border-radius:10px;padding:10px;margin-top:8px}
.plan b{font-size:15px}
table.cmp{width:100%;border-collapse:collapse;font-size:12px}table.cmp th,table.cmp td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:right}
table.cmp th:first-child,table.cmp td:first-child{text-align:left}table.cmp th{font-size:10.5px;color:var(--muted);vertical-align:bottom}
table.cmp tr.tot td{font-weight:800;border-top:2px solid var(--navy)}td.min{background:#DCFCE7;font-weight:700}
.muted{color:var(--muted)}.small{font-size:11.5px}.note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.4}
.leaflet-popup-content{font-size:12.5px;line-height:1.4}.leaflet-popup-content b{font-size:13.5px}
.lbl{background:transparent;border:0;box-shadow:none;font-weight:700;color:#0f172a;font-size:11px;text-shadow:0 0 3px #fff,0 0 3px #fff}
