:root{
  --bg:#0b1020; --bg2:#111731; --card:#161d38; --card2:#1b2444; --line:#26304f;
  --txt:#e7ecf7; --muted:#9aa6c4; --acc:#f59e0b; --acc2:#38bdf8; --ok:#22c55e; --red:#ef4444;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
h1,h2,h3{line-height:1.2}

/* topbar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(11,16,32,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;gap:18px;height:62px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.1rem}
.brand-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--acc),#f97316);color:#1a1200;font-weight:900}
.brand-name span{color:var(--acc)}
.brand-name small{display:block;font-size:.6rem;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}
.nav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.nav a{padding:8px 12px;border-radius:8px;color:var(--muted);font-weight:600;font-size:.9rem}
.nav a:hover{color:var(--txt);background:var(--card)}
.nav a.on{color:var(--acc)}
.nav-admin{border:1px solid var(--line)}
.menu-btn{display:none;margin-left:auto;background:var(--card);border:1px solid var(--line);color:var(--txt);font-size:1.2rem;border-radius:8px;padding:6px 12px;cursor:pointer}
@media(max-width:900px){.nav{display:none}.menu-open .nav{display:flex;position:absolute;top:62px;left:0;right:0;flex-direction:column;background:var(--bg2);padding:12px;border-bottom:1px solid var(--line)}.menu-btn{display:block}}

/* hero */
.hero{padding:56px 0 32px;text-align:center}
.hero h1{font-size:clamp(1.6rem,4vw,2.6rem);margin:0 0 10px}
.hero h1 span{color:var(--acc)}
.hero p{color:var(--muted);max-width:640px;margin:0 auto 24px}
.hero-search{display:flex;gap:8px;max-width:640px;margin:0 auto}
.hero-search input{flex:1;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--txt);font-size:1rem}
.hero-search button{padding:0 22px;border-radius:12px;border:0;background:var(--acc);color:#1a1200;font-weight:800;cursor:pointer}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:18px}
.hero-tags a{padding:6px 12px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--muted);font-size:.85rem}
.hero-tags a:hover{color:var(--acc);border-color:var(--acc)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.stat b{display:block;font-size:1.8rem;color:var(--acc)}
.stat span{color:var(--muted);font-size:.85rem}

.sec-title{margin:34px 0 14px;font-size:1.25rem}
.sec-title::after{content:"";display:block;width:48px;height:3px;background:var(--acc);border-radius:3px;margin-top:8px}

/* categorias */
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cat-card{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:14px;transition:.15s}
.cat-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.cat-card svg{width:28px;height:28px;color:var(--acc)}
.cat-name{font-weight:700}
.cat-count{color:var(--muted);font-size:.85rem}

/* grid docs */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.doc-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;transition:.15s}
.doc-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.doc-cat{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--acc);font-weight:800}
.doc-title{font-weight:700}
.doc-meta{color:var(--muted);font-size:.85rem}
.doc-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;margin-top:auto}

/* layout buscar */
.layout{display:grid;grid-template-columns:250px 1fr;gap:22px;margin:22px 0}
@media(max-width:800px){.layout{grid-template-columns:1fr}}
.side{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;height:fit-content;position:sticky;top:80px}
.side h3{margin:18px 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.side-search{display:flex;gap:6px}
.side-search input{flex:1;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--txt)}
.side-search button{padding:0 12px;border:0;border-radius:8px;background:var(--acc);color:#1a1200;font-weight:800;cursor:pointer}
.filtro{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:340px;overflow:auto}
.filtro a{display:flex;justify-content:space-between;padding:7px 10px;border-radius:8px;color:var(--muted);font-size:.9rem}
.filtro a:hover{background:var(--bg2);color:var(--txt)}
.filtro a.on{background:var(--acc);color:#1a1200;font-weight:700}
.filtro small{opacity:.7}

.page-head{margin:26px 0 6px}
.page-head h1{margin:0 0 4px}
.page-head p{color:var(--muted);margin:0}

/* visor */
.doc-view{margin:22px 0}
.crumb{color:var(--muted);font-size:.85rem;margin-bottom:14px}
.crumb a:hover{color:var(--acc)}
.view-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}
.view-head h1{margin:0 0 10px}
.view-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pill{padding:4px 10px;border-radius:20px;background:var(--acc);color:#1a1200;font-size:.75rem;font-weight:800}
.pill.ghost{background:var(--card);color:var(--muted);border:1px solid var(--line)}
.muted{color:var(--muted);font-size:.85rem}
.view-actions{display:flex;gap:8px}
.notas{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:10px;padding:14px;margin:16px 0;color:var(--muted)}
.viewer{margin:18px 0;background:#05070f;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.zoom-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--card);border-bottom:1px solid var(--line)}
.zoom-bar button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--txt);cursor:pointer;font-size:1rem}
.zoom-bar button:hover{border-color:var(--acc);color:var(--acc)}
#zlevel{min-width:52px;text-align:center;color:var(--acc);font-weight:700}
.zoom-bar .hint{color:var(--muted);font-size:.75rem;margin-left:8px}
.zoom-stage{height:70vh;overflow:hidden;position:relative;cursor:grab;display:grid;place-items:center}
.zoom-stage.drag{cursor:grabbing}
.zoom-stage img{max-width:none;transform-origin:center center;user-select:none}
.pdf{width:100%;height:78vh;border:0;background:#fff}
.no-preview{padding:50px;text-align:center}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--txt);font-weight:700;cursor:pointer}
.btn:hover{border-color:var(--acc)}
.btn.primary{background:var(--acc);color:#1a1200;border-color:var(--acc)}
.btn.full{width:100%}

/* alertas / empty */
.alert{background:#3b1414;border:1px solid #7f1d1d;color:#fecaca;padding:12px 14px;border-radius:10px;margin:12px 0}
.alert.ok{background:#0f2e1a;border-color:#166534;color:#bbf7d0}
.empty{text-align:center;padding:50px 20px;color:var(--muted)}

/* admin */
.admin-top{display:flex;justify-content:space-between;align-items:center;margin:24px 0;gap:12px;flex-wrap:wrap}
.admin-top h1{margin:0;font-size:1.4rem}
.admin-layout{display:grid;grid-template-columns:380px 1fr;gap:22px}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}}
.admin-form,.admin-list{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
.form-doc{display:flex;flex-direction:column;gap:12px}
.form-doc label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--muted);font-weight:600}
.form-doc input,.form-doc select,.form-doc textarea{padding:10px 12px;border-radius:9px;border:1px solid var(--line);background:var(--bg2);color:var(--txt);font-size:.95rem;font-family:inherit}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-actions{display:flex;gap:8px}
.table{overflow:auto}
.table table{width:100%;border-collapse:collapse;font-size:.88rem}
.table th,.table td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}
.table th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
.table a:hover{color:var(--acc)}
.actions{white-space:nowrap;display:flex;gap:10px}
.actions .del{color:#fca5a5}

/* auth */
.auth-body{display:grid;place-items:center;min-height:100vh}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px;width:min(380px,92vw);text-align:center}
.auth-logo{width:54px;height:54px;margin:0 auto 14px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--acc),#f97316);color:#1a1200;font-weight:900;font-size:1.3rem}
.auth-card h1{font-size:1.2rem;margin:0 0 4px}
.auth-card form{display:flex;flex-direction:column;gap:12px;margin-top:18px;text-align:left}
.auth-card label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--muted);font-weight:600}
.auth-card input{padding:11px 12px;border-radius:9px;border:1px solid var(--line);background:var(--bg2);color:var(--txt)}
.auth-back{margin-top:16px;font-size:.85rem}
.auth-back a:hover{color:var(--acc)}

/* footer */
.footer{margin-top:60px;border-top:1px solid var(--line);background:var(--bg2);padding:30px 0 16px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
@media(max-width:700px){.foot-grid{grid-template-columns:1fr}}
.foot-grid strong{display:block;margin-bottom:8px}
.foot-grid p{color:var(--muted);font-size:.88rem}
.foot-grid a{display:block;color:var(--muted);font-size:.88rem;padding:3px 0}
.foot-grid a:hover{color:var(--acc)}
.foot-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:20px;padding-top:14px;color:var(--muted);font-size:.8rem;flex-wrap:wrap;gap:8px}
