:root{--fg:#18181b;--fg-soft:#52525b;--fg-mute:#71717a;--bg:#fafafa;--card:#fff;--border:#e4e4e7;--accent:#1e40af;--accent-soft:#eff6ff;--radius:10px;--maxw:980px}
html.dark{--fg:#e5e5e5;--fg-soft:#a1a1aa;--fg-mute:#71717a;--bg:#09090b;--card:#18181b;--border:#27272a;--accent:#93c5fd;--accent-soft:#172554}
*{box-sizing:border-box}
body{font:15px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:var(--bg);margin:0}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px max(20px,calc((100vw - var(--maxw))/2));border-bottom:1px solid var(--border);background:var(--card);position:sticky;top:0;z-index:10}
.brand{text-decoration:none;color:var(--fg);font-weight:600}
.nav{display:flex;gap:18px;align-items:center}
.nav a{color:var(--fg-soft);text-decoration:none;font-size:14px}
.nav a:hover{color:var(--accent)}
.theme-btn{background:transparent;border:1px solid var(--border);border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit;font-size:12px;color:var(--fg-soft)}
.theme-btn:hover{border-color:var(--accent);color:var(--accent)}
.container{max-width:var(--maxw);margin:0 auto;padding:28px 20px 60px}
.footer{border-top:1px solid var(--border);padding:16px;text-align:center;color:var(--fg-mute);font-size:13px}
.hero{margin-bottom:28px}
.hero h1{font-size:26px;margin:0 0 4px;font-weight:600}
.lead{color:var(--fg-soft);margin:0 0 18px;font-size:14px}
.searchbar{display:flex;gap:8px;flex-wrap:wrap}
.searchbar input,.searchbar select{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--fg);font:inherit}
.searchbar input{flex:1 1 240px}
.searchbar button{padding:9px 16px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;font:inherit}
.count{color:var(--fg-mute);font-size:13px}
.record-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.record-row{border:1px solid var(--border);background:var(--card);border-radius:var(--radius)}
.record-row:hover{border-color:var(--accent)}
.record-link{display:block;padding:14px 16px;text-decoration:none;color:inherit}
.record-title{margin:0 0 4px;font-size:15px;font-weight:500;line-height:1.4}
.record-meta{margin:0 0 6px;color:var(--fg-soft);font-size:13px}
.record-tags{margin:0;display:flex;gap:6px;flex-wrap:wrap}
.empty{color:var(--fg-mute);text-align:center;padding:32px}
.tag{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;margin-right:4px}
.tag-quiet{background:transparent;border:1px solid var(--border);color:var(--fg-mute)}
.breadcrumb{font-size:13px;color:var(--fg-mute);margin-bottom:18px}
.breadcrumb a{color:var(--fg-soft);text-decoration:none}
.item-head{margin-bottom:24px}
.item-head h1{margin:0 0 8px;font-size:22px;font-weight:600;line-height:1.3}
.authors{margin:0 0 6px;color:var(--fg-soft);font-size:14px}
.authors a{color:var(--fg-soft);text-decoration:none;border-bottom:1px dotted var(--border)}
.item-sub{color:var(--fg-mute);font-size:13px;margin:0}
.block{margin:22px 0}
.block h2{font-size:14px;font-weight:600;text-transform:uppercase;color:var(--fg-mute);margin:0 0 10px}
.abstract{color:var(--fg);font-size:15px;line-height:1.6}
.abstract p{margin:0 0 .8em 0}
.abstract p:last-child{margin-bottom:0}
.files{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.files li{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card)}
.files a{color:var(--accent);text-decoration:none}
.file-size{color:var(--fg-mute);font-size:12px;margin-left:auto}
.pdf-viewer{width:100%;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}
.pdf-viewer iframe{display:block;width:100%;height:640px;border:none}
.meta-grid{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0;font-size:14px}
.meta-grid dt{color:var(--fg-mute);font-size:13px}
.meta-grid dd{margin:0}
.meta-grid a{color:var(--accent);text-decoration:none}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.btn-ghost{display:inline-block;padding:8px 14px;border:1px solid var(--border);border-radius:8px;color:var(--fg);text-decoration:none;background:var(--card);font:inherit;cursor:pointer}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-danger{padding:8px 14px;border:1px solid #dc2626;background:transparent;color:#dc2626;border-radius:8px;font:inherit;cursor:pointer}
.btn{background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;font:inherit}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 14px;font-size:14px;background:#dcfce7;color:#166534}
.editor details{border:1px solid var(--border);border-radius:var(--radius);margin:10px 0;background:var(--card)}
.editor summary{padding:12px 16px;cursor:pointer;font-weight:500;list-style:none;font-size:14px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 16px 16px}
.col-2{grid-column:1/-1}
label{display:block;font-size:13px;color:var(--fg-soft)}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit;margin-top:4px}
@media(max-width:640px){.topbar{padding:12px 16px}.container{padding:20px 16px 48px}.hero h1{font-size:22px}.grid{grid-template-columns:1fr}.meta-grid{grid-template-columns:1fr;gap:2px}}


/* Boton alternativo para PDF en moviles */
.pdf-mobile {
  display: none;
  width: 100%;
  padding: 16px;
  background: var(--accent);
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-weight: 600;
  border-radius: 8px;
  font-size: 15px;
}
.pdf-mobile:hover { filter: brightness(1.1); }

@media (max-width: 768px) {
  .pdf-viewer iframe { display: none; }
  .pdf-mobile { display: block; }
}


/* ── Fix: boton Limpiar en searchbar (evita texto ilegible al hover) ── */
.searchbar .btn-ghost {
  background: var(--card);
  color: var(--fg);
  border: 1px solid var(--border);
  text-decoration: none;
}
.searchbar .btn-ghost:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* ── Footer segunda linea ── */
.footer-small {
  font-size: 12px;
  color: var(--fg-mute);
  opacity: .85;
}

/* ── Refinamiento: mejor espaciado del footer ── */
.footer { line-height: 1.8; }
