@font-face{font-family:Literata;src:url(/fonts/Literata-Variable.ttf)format("truetype-variations");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/Literata-Italic-Variable.ttf)format("truetype-variations");font-weight:200 900;font-style:italic;font-display:swap}:root{--font-ui:"Literata", Georgia, "Times New Roman", serif;--font-reading:"Literata", Georgia, "Times New Roman", serif;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--duration-fast:.16s;--duration-base:.26s;--ease-standard:cubic-bezier(.22, .61, .36, 1)}[data-theme=claro]{--color-bg:#f4ead9;--color-surface:#fffcf6;--color-surface-raised:#fff;--color-text:#2b241c;--color-text-on-bg:#2b241c;--color-muted:#5c5245;--color-muted-on-bg:#5c5245;--color-accent:#9c5631;--color-accent-contrast:#fff8ef;--color-border:#e4d7c1;--shadow-soft:0 2px 16px #4830141a}[data-theme=oscuro]{--color-bg:#18181a;--color-surface:#222224;--color-surface-raised:#2a2a2d;--color-text:#ece8e1;--color-text-on-bg:#ece8e1;--color-muted:#9b958b;--color-muted-on-bg:#9b958b;--color-accent:#d6a768;--color-accent-contrast:#1c1a14;--color-border:#343437;--shadow-soft:0 4px 20px #00000080}[data-theme=papel]{--color-bg:#ece0c8;--color-surface:#f6ecd9;--color-surface-raised:#faf3e4;--color-text:#3a2f1f;--color-text-on-bg:#3a2f1f;--color-muted:#6c5c44;--color-muted-on-bg:#6c5c44;--color-accent:#935628;--color-accent-contrast:#fff8ef;--color-border:#ddc9a3;--shadow-soft:0 3px 16px #3c280a2e}@media (prefers-reduced-motion:reduce){:root{--duration-fast:1ms;--duration-base:1ms}}*{box-sizing:border-box}html,body{margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--color-bg);color:var(--color-text-on-bg);font-family:var(--font-ui);min-height:100vh;transition:background-color var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard)}#root{min-height:100vh}a{color:inherit}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sidebar{border-right:1px solid var(--color-border);background:var(--color-bg);flex-direction:column;flex-shrink:0;width:232px;min-height:100vh;padding:28px 24px;display:none}@media (width>=860px){.sidebar{display:flex}}.sidebar__brand{align-items:baseline;gap:10px;margin-bottom:48px;padding-left:2px;display:flex}.sidebar__brand-mark{font-family:var(--font-reading);color:var(--color-accent);font-size:1.3rem;font-style:italic;font-weight:600}.sidebar__brand-name{font-family:var(--font-reading);color:var(--color-text-on-bg);letter-spacing:.01em;font-size:1rem}.sidebar__links{flex-direction:column;gap:22px;margin:0;padding:0;list-style:none;display:flex}.sidebar__footer{margin-top:auto;padding-top:28px}.sidebar__link{font-family:var(--font-reading);color:var(--color-muted-on-bg);transition:color var(--duration-base) var(--ease-standard);padding-bottom:3px;font-size:.98rem;text-decoration:none;display:inline-block;position:relative}.sidebar__link:hover{color:var(--color-text-on-bg)}.sidebar__link:after{content:"";background:var(--color-accent);transform-origin:0;height:1px;transition:transform var(--duration-base) var(--ease-standard);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.sidebar__link--active{color:var(--color-text-on-bg)}.sidebar__link--active:after{transform:scaleX(1)}.sidebar__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:2px}.bottom-nav{padding:10px 8px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-bg);justify-content:space-around;align-items:center;display:flex}@media (width>=860px){.bottom-nav{display:none}}.bottom-nav__link{font-family:var(--font-reading);color:var(--color-muted-on-bg);transition:color var(--duration-base) var(--ease-standard);padding:4px 10px 7px;font-size:.78rem;text-decoration:none;position:relative}.bottom-nav__link:after{content:"";background:var(--color-accent);transform-origin:50%;height:1px;transition:transform var(--duration-base) var(--ease-standard);position:absolute;bottom:2px;left:10px;right:10px;transform:scaleX(0)}.bottom-nav__link--active{color:var(--color-text-on-bg)}.bottom-nav__link--active:after{transform:scaleX(1)}.bottom-nav__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.app-shell{background:var(--color-bg);min-height:100vh;display:flex}.app-shell__main{flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.app-shell__mobile-topbar{justify-content:space-between;align-items:center;padding:18px 20px;display:flex}@media (width>=860px){.app-shell__mobile-topbar{display:none}}.app-shell__mobile-wordmark{font-family:var(--font-reading);color:var(--color-text-on-bg);font-size:1.05rem}.app-shell__account-link{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-on-bg);font-family:var(--font-reading);border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;text-decoration:none;display:flex}.app-shell__content{flex:1}.login-screen{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--color-surface);width:100%;max-width:360px;color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-align:center;padding:40px 32px}.login-card__brand{font-family:var(--font-reading);letter-spacing:.02em;margin:0;font-size:2rem}.login-card__subtitle{color:var(--color-muted);margin:4px 0 28px;font-size:.9rem}.login-form{text-align:left;flex-direction:column;gap:16px;display:flex}.login-form__field{color:var(--color-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.login-form__field input{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);padding:10px 12px;font-size:1rem}.login-form__error{color:#b4473a;margin:0;font-size:.85rem}.login-form__submit{border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-standard);border:none;margin-top:8px;padding:12px;font-size:1rem}.login-form__submit:disabled{opacity:.6;cursor:default}.login-form__submit:hover:not(:disabled){opacity:.9}.login-form__hint{color:var(--color-muted);margin:0;font-size:.85rem}.login-form__link{color:var(--color-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:2px 0;font-size:.8rem;text-decoration:underline}.login-form__link:disabled{opacity:.5;cursor:default;text-decoration:none}.escritorio-page{padding:48px clamp(20px,5vw,56px) 64px}.escritorio-page__status{color:var(--color-muted-on-bg)}.escritorio-page__empty{color:var(--color-muted-on-bg);font-family:var(--font-reading);flex-direction:column;align-items:flex-start;gap:14px;padding:24px 0;display:flex}.escritorio-page__empty-link{color:var(--color-accent);text-decoration:underline}.escritorio-hero{aspect-ratio:2/3;border-radius:var(--radius-lg);cursor:pointer;background:var(--color-surface);width:100%;max-width:300px;box-shadow:var(--shadow-soft);transition:transform var(--duration-base) var(--ease-standard);border:none;margin:0;padding:0;display:block;position:relative;overflow:hidden}.escritorio-hero:hover{transform:translateY(-3px)}.escritorio-hero__cover{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.escritorio-hero__cover-placeholder{background:linear-gradient(160deg, var(--color-surface), var(--color-border))}.escritorio-hero__scrim{pointer-events:none;background:linear-gradient(#140e0800,#140e089e);height:38%;position:absolute;bottom:0;left:0;right:0}.escritorio-hero__continue{font-family:var(--font-reading);letter-spacing:.02em;color:#fff;font-size:.95rem;font-weight:600;position:absolute;bottom:16px;left:18px}.escritorio-hero:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.book-card{color:inherit;border-radius:var(--radius-md);width:100%;transition:transform var(--duration-base) var(--ease-standard);flex-direction:column;gap:10px;text-decoration:none;display:flex}.book-card:hover,.book-card:focus-visible{transform:translateY(-3px)}.book-card__cover{aspect-ratio:2/3;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-soft);overflow:hidden}.book-card__cover img{object-fit:cover;width:100%;height:100%;display:block}.book-card__cover-placeholder{background:linear-gradient(160deg, var(--color-surface), var(--color-border));width:100%;height:100%}.book-card__meta{flex-direction:column;gap:2px;display:flex}.book-card__title{font-family:var(--font-reading);color:var(--color-text-on-bg);font-size:.98rem;line-height:1.3}.book-card__author{color:var(--color-muted-on-bg);font-size:.8rem}.librero-page{padding:36px clamp(20px,5vw,56px) 64px}.librero-page__status{color:var(--color-muted-on-bg)}.librero-page__empty{color:var(--color-muted-on-bg);font-family:var(--font-reading);flex-direction:column;align-items:flex-start;gap:14px;padding:24px 0;display:flex}.librero-page__empty-link{color:var(--color-accent);text-decoration:underline}.librero-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:28px 20px;display:grid}@media (width<=480px){.librero-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:20px 14px}}.biblioteca-page{padding:36px clamp(20px,5vw,56px) 64px}.biblioteca-page__status{color:var(--color-muted-on-bg)}.biblioteca-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:28px 20px;display:grid}@media (width<=480px){.biblioteca-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:20px 14px}}.theme-switcher{background:color-mix(in srgb, var(--color-text-on-bg) 8%, transparent);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.theme-switcher__option{color:var(--color-muted-on-bg);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:none;padding:6px 14px;font-size:.85rem}.theme-switcher__option:hover{color:var(--color-text-on-bg)}.theme-switcher__option[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-contrast)}.settings-page{max-width:480px;padding:40px clamp(20px,5vw,56px) 64px}.settings-page__title{font-family:var(--font-reading);color:var(--color-text-on-bg);margin:0 0 36px;font-size:1.6rem}.settings-section{margin-bottom:40px}.settings-section__title{font-family:var(--font-reading);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted-on-bg);margin:0 0 14px;font-size:.85rem;font-weight:500}.settings-section__account{font-family:var(--font-reading);color:var(--color-text-on-bg);margin:0 0 2px;font-size:1.1rem}.settings-section__email{color:var(--color-muted-on-bg);margin:0 0 18px;font-size:.85rem}.settings-page__logout{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-on-bg);cursor:pointer;background:0 0;padding:9px 20px;font-size:.9rem}.settings-page__logout:hover{border-color:var(--color-accent)}.settings-page__admin-link{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-on-bg);padding:9px 20px;font-size:.9rem;text-decoration:none;display:inline-block}.settings-page__admin-link:hover{border-color:var(--color-accent)}.book-detail{background:var(--color-bg);min-height:100vh;color:var(--color-text-on-bg);padding:20px clamp(20px,5vw,56px) 64px}.book-detail--empty{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.book-detail__back{color:var(--color-muted-on-bg);margin-bottom:32px;font-size:.9rem;text-decoration:none;display:inline-block}.book-detail__content{flex-wrap:wrap;gap:clamp(24px,5vw,64px);max-width:920px;margin:0 auto;display:flex}.book-detail__cover{aspect-ratio:2/3;border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:var(--color-surface);flex:0 0 240px;overflow:hidden}.book-detail__cover img{object-fit:cover;width:100%;height:100%;display:block}.book-detail__cover-placeholder{background:linear-gradient(160deg, var(--color-surface), var(--color-border));width:100%;height:100%}.book-detail__info{flex:320px;min-width:260px}.book-detail__title{font-family:var(--font-reading);margin:0 0 6px;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.2}.book-detail__author{color:var(--color-muted-on-bg);margin:0 0 24px}.book-detail__synopsis{font-family:var(--font-reading);color:var(--color-text-on-bg);max-width:540px;margin:0 0 32px;line-height:1.7}.book-detail__actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.book-detail__read{border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-standard);border:none;padding:12px 32px;font-size:1rem}.book-detail__read:hover{opacity:.9}.book-detail__download{border-radius:var(--radius-md);border:1px solid var(--color-border);color:var(--color-text-on-bg);padding:11px 24px;font-size:.9rem;text-decoration:none}.book-detail__download:hover{border-color:var(--color-accent)}.administracion-page{max-width:560px;padding:40px clamp(20px,5vw,56px) 64px}.administracion-page__title{font-family:var(--font-reading);color:var(--color-text-on-bg);margin:0 0 36px;font-size:1.6rem}.administracion-section{margin-bottom:44px}.administracion-section__title{font-family:var(--font-reading);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted-on-bg);margin:0 0 16px;font-size:.85rem;font-weight:500}.administracion-section__status{color:var(--color-muted-on-bg);font-size:.92rem}.administracion-section__error{color:var(--color-accent);margin:8px 0;padding:0;font-size:.88rem;list-style:none}.administracion-requests{border-top:1px solid var(--color-border);flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.administracion-requests__item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.administracion-requests__email{color:var(--color-text-on-bg);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.administracion-requests__actions{flex-shrink:0;gap:8px;display:flex}.administracion-requests__actions button{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-on-bg);cursor:pointer;background:0 0;padding:7px 16px;font-size:.85rem}.administracion-requests__approve:hover{border-color:var(--color-accent);color:var(--color-accent)}.administracion-requests__reject:hover{border-color:var(--color-muted-on-bg)}.administracion-requests__actions button:disabled{opacity:.5;cursor:default}.administracion-page__refresh{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-on-bg);cursor:pointer;background:0 0;padding:9px 20px;font-size:.9rem}.administracion-page__refresh:hover{border-color:var(--color-accent)}.administracion-page__refresh:disabled{opacity:.6;cursor:default}.administracion-refresh-result{margin-top:18px}.administracion-refresh-result__summary{color:var(--color-text-on-bg);font-size:.92rem}.administracion-missing{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);margin-top:16px;padding:16px}.administracion-missing p{color:var(--color-text);margin:0 0 10px;font-size:.9rem}.administracion-missing ul{color:var(--color-muted);margin:0 0 14px;padding-left:20px;font-size:.88rem}.administracion-missing button{border-radius:var(--radius-sm);border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:0 0;padding:8px 16px;font-size:.85rem}.administracion-missing button:disabled{opacity:.5;cursor:default}.chapter-panel{background:var(--color-surface);width:0;color:var(--color-text);border-right:1px solid var(--color-border);transition:width var(--duration-base) var(--ease-standard);flex-direction:column;flex:none;display:flex;overflow:hidden}.chapter-panel--open,.chapter-panel__header,.chapter-panel__list{width:min(320px,30vw)}.chapter-panel__header{justify-content:space-between;align-items:center;padding:20px 10px 18px 20px;display:flex}.chapter-panel__title{font-family:var(--font-reading);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);font-size:.85rem;font-weight:500}.chapter-panel__close{color:var(--color-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.4rem;line-height:1}.chapter-panel__close:hover{color:var(--color-text)}.chapter-panel nav{flex:1;min-height:0;padding-bottom:28px;overflow-y:auto}.chapter-panel__list{flex-direction:column;gap:14px;margin:0;padding:0 8px 0 20px;list-style:none;display:flex}.chapter-panel__list .chapter-panel__list{width:auto;margin-top:10px;padding-left:0}.chapter-panel__item{font-family:var(--font-reading);text-align:left;color:var(--color-muted);cursor:pointer;transition:color var(--duration-base) var(--ease-standard);background:0 0;border:none;margin:0;padding:0 0 3px;font-size:.92rem;line-height:1.4;display:inline-block;position:relative}.chapter-panel__item:hover{color:var(--color-text)}.chapter-panel__item:after{content:"";background:var(--color-accent);transform-origin:0;height:1px;transition:transform var(--duration-base) var(--ease-standard);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.chapter-panel__item--active{color:var(--color-text)}.chapter-panel__item--active:after{transform:scaleX(1)}.chapter-panel__item:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}@media (width<=760px){.chapter-panel{width:min(340px,90vw);transition:transform var(--duration-base) var(--ease-standard);z-index:6;box-shadow:var(--shadow-soft);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.chapter-panel--open{width:min(340px,90vw);transform:translate(0)}.chapter-panel__header,.chapter-panel__list{width:auto}.chapter-panel__header{padding-left:64px}}@media (prefers-reduced-motion:reduce){.chapter-panel{transition:none}}.reader{background:var(--color-bg);flex-direction:row;display:flex;position:fixed;inset:0}.reader__main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.reader__viewport{flex:1;position:relative;overflow:hidden}.reader__bar{background:color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2;transition:opacity var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard);align-items:center;gap:16px;padding:14px clamp(16px,4vw,40px) 14px clamp(56px,4vw + 40px,80px);display:flex;position:absolute;left:0;right:0}.reader__bar--top{top:0}.reader__bar--bottom{justify-content:center;padding-left:clamp(16px,4vw,40px);bottom:0}.reader__bar--hidden.reader__bar--top{opacity:0;pointer-events:none;transform:translateY(-12px)}.reader__bar--hidden.reader__bar--bottom{opacity:0;pointer-events:none;transform:translateY(12px)}.reader__back{color:var(--color-text-on-bg);cursor:pointer;background:0 0;border:none;padding:6px 4px;font-size:.9rem}.reader__title{text-align:center;font-family:var(--font-reading);color:var(--color-text-on-bg);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.95rem;overflow:hidden}.reader__chapters-toggle{background:color-mix(in srgb, var(--color-bg) 85%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-on-bg);cursor:pointer;z-index:7;transition:border-color var(--duration-fast) var(--ease-standard);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;left:clamp(16px,4vw,40px)}.reader__chapters-toggle:hover,.reader__chapters-toggle[aria-expanded=true]{border-color:var(--color-accent)}.reader__font-size{white-space:nowrap;gap:4px;display:flex}.reader__font-size button{border:1px solid var(--color-border);color:var(--color-text-on-bg);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:32px;height:32px;font-size:.85rem}.reader__font-size button:disabled{opacity:.4;cursor:default}.reader__bar--bottom button{border:1px solid var(--color-border);color:var(--color-text-on-bg);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:36px;height:36px;font-size:1.1rem}.reader__progress{background:var(--color-border);border-radius:2px;width:min(320px,50vw);height:4px;overflow:hidden}.reader__progress-fill{background:var(--color-accent);height:100%;transition:width var(--duration-fast) var(--ease-standard)}.reader__error{color:var(--color-text-on-bg);z-index:3;background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.reader__link-error{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:min(420px,86vw);box-shadow:var(--shadow-soft);color:var(--color-text);z-index:4;align-items:center;gap:12px;padding:10px 10px 10px 16px;font-size:.88rem;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.reader__link-error p{margin:0}.reader__link-error button{color:var(--color-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:1.2rem;line-height:1}@media (width<=760px){.reader__bar--top{padding-left:clamp(56px,12vw,64px)}}
