:root{--fondo:#f6efe0;--tarjeta:#fffaf0;--texto:#2a2a24;--suave:#6b665a;--linea:#e0d6bd;--acento:#2f5d46;--acento-texto:#fff;--peligro:#a8322d;--aviso:#b8771a;--serif:Georgia, "Times New Roman", serif;--sans:-apple-system, system-ui, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--fondo:#16201c;--tarjeta:#1f2b26;--texto:#efe8d6;--suave:#a59f8c;--linea:#33423a;--acento:#6fb08a;--acento-texto:#0f1713;--peligro:#e07a72;--aviso:#e0a64d}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--fondo);color:var(--texto);font:16px/1.4 var(--sans);margin:0}h1,h2,h3{font-family:var(--serif);margin:0 0 .5rem}h1{font-size:1.6rem}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--linea);background:var(--tarjeta);border-radius:10px;width:100%;min-height:44px;padding:10px 12px;font-size:16px}textarea{min-height:88px}label{color:var(--suave);margin:10px 0 4px;font-size:.85rem;display:block}button{border:1px solid var(--linea);background:var(--tarjeta);cursor:pointer;border-radius:10px;min-width:44px;min-height:44px;padding:0 16px}button.primario{background:var(--acento);color:var(--acento-texto);border-color:var(--acento);font-weight:600}button.peligro{color:var(--peligro);border-color:var(--peligro)}button:disabled{opacity:.5}.app{max-width:720px;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 110px);margin:0 auto}.barra{align-items:center;gap:8px;margin-bottom:10px;display:flex}.barra h1{flex:1;margin:0}.aviso{background:var(--tarjeta);border:1px solid var(--aviso);border-radius:10px;margin:8px 0;padding:10px 12px}.error{border-color:var(--peligro);color:var(--peligro)}.cuadricula{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px;margin-top:12px;display:grid}.libro{text-align:left;background:0 0;border:0;min-height:0;padding:0;display:block}.portada{aspect-ratio:2/3;object-fit:cover;background:var(--linea);border-radius:6px;width:100%;display:block;box-shadow:0 3px 8px #0000004d}.libro small{color:var(--suave);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:.78rem;line-height:1.2;display:-webkit-box;overflow:hidden}.insignia{background:var(--acento);color:var(--acento-texto);border-radius:99px;padding:0 7px;font-size:.75rem;position:absolute;top:4px;right:4px}.celda{position:relative}.lista{margin-top:12px}.fila{border-bottom:1px solid var(--linea);text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;border-radius:0;gap:12px;width:100%;height:auto;padding:10px 0;display:flex}.fila img{aspect-ratio:2/3;object-fit:cover;border-radius:4px;width:44px}.fila div{flex:1;min-width:0}.fila b{font-family:var(--serif);display:block}.filtros{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.tarjeta{background:var(--tarjeta);border:1px solid var(--linea);border-radius:14px;margin:10px 0;padding:14px}.stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stats b{font:700 1.6rem var(--serif);color:var(--acento);display:block}.dock{padding:8px 16px calc(env(safe-area-inset-bottom) + 8px);background:linear-gradient(transparent, var(--fondo) 35%);pointer-events:none;justify-content:center;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.dock>*{pointer-events:auto}.dock .escanear{border-radius:32px;height:64px;padding:0 32px;font-size:1.1rem;box-shadow:0 4px 14px #0000004d}.dock .tab{height:52px}.dock .tab.activo{border-color:var(--acento);color:var(--acento);font-weight:600}.modal{background:var(--fondo);padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 24px);z-index:10;position:fixed;inset:0;overflow:auto}.modal>div{max-width:720px;margin:0 auto}.visor{aspect-ratio:3/4;background:#000;border-radius:14px;width:100%;position:relative;overflow:hidden}.visor video{object-fit:cover;width:100%;height:100%}.visor:after{content:"";border:2px solid #ffffffd9;border-radius:10px;position:absolute;inset:38% 8%}.ya{text-align:center}.ya h2{color:var(--aviso);font-size:1.8rem}.ya .portada{max-width:180px;margin:0 auto 12px}.acciones{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.acciones>*{flex:1}.detalle .portada{max-width:200px;margin:0 auto 12px}.centro{text-align:center}.mudo{color:var(--suave)}
