:root{--bg:#0f172a;--card:#1e293b;--fg:#e2e8f0;--muted:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--error:#f87171;--border:#334155;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0}.center{place-items:center;min-height:100vh;display:grid}.muted{color:var(--muted)}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.4rem;width:100%;max-width:360px;padding:2rem;display:flex}.login-card h1{margin:0;font-size:1.4rem}.login-card .subtitle{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.login-card label{color:var(--muted);margin-top:.5rem;font-size:.8rem}.login-card input{border:1px solid var(--border);color:var(--fg);background:#0b1220;border-radius:8px;padding:.6rem .7rem;font-size:.95rem}.login-card input:focus{outline:2px solid var(--accent);border-color:#0000}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:1.2rem;padding:.65rem;font-size:.95rem;font-weight:600}.login-card button:hover:not(:disabled){background:var(--accent-hover)}.login-card button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--error);margin-top:.8rem;font-size:.85rem}.topbar{border-bottom:1px solid var(--border);background:var(--card);align-items:center;gap:1rem;padding:.8rem 1.2rem;display:flex}.topbar .brand{font-weight:700}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:.9rem}.topbar .link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.9rem}.content{padding:2rem 1.2rem}.tabs{border-bottom:1px solid var(--border);background:var(--card);gap:.5rem;padding:0 1.2rem;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.7rem .6rem;font-size:.9rem}.tab:hover{color:var(--fg)}.tab.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.listado{max-width:1100px;margin:0 auto}.filtros{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem}.filtros-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;display:grid}.filtros label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.78rem;display:flex}.filtros input,.filtros select{border:1px solid var(--border);color:var(--fg);background:#0b1220;border-radius:8px;padding:.45rem .55rem;font-size:.9rem}.filtros input:focus,.filtros select:focus{outline:2px solid var(--accent);border-color:#0000}.filtros-actions{gap:.6rem;margin-top:.9rem;display:flex}.filtros-actions button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600}.filtros-actions button:hover:not(:disabled){background:var(--accent-hover)}.filtros-actions button.secondary{border:1px solid var(--border);color:var(--fg);background:0 0;font-weight:500}.filtros-actions button.secondary:hover:not(:disabled){border-color:var(--accent)}.filtros-actions button:disabled{opacity:.5;cursor:not-allowed}.tabla-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}.tabla{border-collapse:collapse;width:100%;font-size:.85rem}.tabla th,.tabla td{text-align:left;white-space:nowrap;padding:.55rem .7rem}.tabla thead th{background:var(--card);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:600}.tabla tbody tr{border-bottom:1px solid var(--border)}.tabla tbody tr:last-child{border-bottom:none}.tabla tbody tr:hover{background:#2563eb12}.td-contenido{text-overflow:ellipsis;max-width:340px;overflow:hidden}.tabla td a{color:var(--accent);text-decoration:none}.tabla td a:hover{text-decoration:underline}.search{max-width:760px;margin:0 auto}.search-bar{gap:.5rem;display:flex}.search-bar input{border:1px solid var(--border);color:var(--fg);background:#0b1220;border-radius:8px;flex:1;padding:.6rem .7rem;font-size:.95rem}.search-bar input:focus{outline:2px solid var(--accent);border-color:#0000}.search-bar button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600}.search-bar button:hover:not(:disabled){background:var(--accent-hover)}.search-bar button:disabled{opacity:.5;cursor:not-allowed}.result-count{margin:1.2rem 0 .6rem;font-size:.9rem}.results{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.result{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}.result-head{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.result-head .expediente{font-weight:600}.result-head .tag{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;font-size:.72rem}.snippet{color:var(--muted);margin:.5rem 0 0;font-size:.9rem;line-height:1.45}.result-actions{flex-wrap:wrap;gap:1rem;margin-top:.6rem;display:flex}.result-actions .link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:none}.result-actions .link:hover{text-decoration:underline}.modal-backdrop{z-index:10;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:100%;max-width:800px;max-height:85vh;padding:1.2rem;display:flex}.modal-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.modal-head .link{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem}.modal-meta{flex-wrap:wrap;gap:.6rem;margin-bottom:.8rem;font-size:.85rem;display:flex}.modal-meta a{color:var(--accent);text-decoration:none}.modal-meta a:hover{text-decoration:underline}.norma-texto{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#0b1220;border-radius:8px;margin:0;padding:1rem;font-size:.85rem;line-height:1.5;overflow:auto}.modal-title{align-items:center;gap:.6rem;display:flex}.modal-body{flex:1;min-height:0;overflow-y:auto}.vig-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.1rem .55rem;font-size:.68rem;font-weight:700}.vig-si{color:#4ade80;border:1px solid #4ade80}.vig-no{color:var(--error);border:1px solid var(--error)}.relaciones{border-bottom:1px solid var(--border);margin:0 0 1rem;padding-bottom:.8rem}.rel-title{margin:0 0 .6rem;font-size:1rem}.rel-group{margin-bottom:.8rem}.rel-group h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .4rem;font-size:.72rem;font-weight:600}.rel-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.rel-row{border:1px solid var(--border);background:#0b1220;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.85rem;display:flex}.rel-row.estado-descartado{opacity:.55}.rel-main{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.rel-tipo{text-transform:uppercase;letter-spacing:.03em;color:var(--accent);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;font-size:.68rem}.rel-tipo.tipo-deroga,.rel-tipo.tipo-deroga_parcial,.rel-tipo.tipo-suspende{color:var(--error)}.rel-norma{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600}.rel-norma:hover{text-decoration:underline}.rel-flag{text-transform:uppercase;color:#fbbf24;border:1px solid #fbbf24;border-radius:999px;padding:.02rem .45rem;font-size:.66rem}.rel-estado{text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.02rem .45rem;font-size:.66rem}.rel-actions{gap:.7rem;display:flex}.rel-actions .link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem}.rel-actions .link:hover:not(:disabled){text-decoration:underline}.rel-actions .link:disabled{opacity:.5;cursor:not-allowed}.pager{justify-content:center;gap:.6rem;margin:1.4rem 0 0;display:flex}.pager button{border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-size:.9rem}.pager button:hover:not(:disabled){border-color:var(--accent)}.pager button:disabled{opacity:.4;cursor:not-allowed}
