@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/DMSerifDisplay-Regular-Latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('../fonts/Inter-Variable-Latin.woff2') format('woff2');
}

html { font-size: 14px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 .1rem white, 0 0 0 .25rem #258cfb;
}

.site-page {
  --site-page-bg: #F6F3EE;
  --site-surface: #FDFCFA;
  --site-text: #1A1A1A;
  --site-muted: #666660;
  --site-border: #E2DDD6;
  --site-primary: #8B0000;
  --site-primary-hover: #5C0000;
  --site-focus: 0 0 0 3px rgba(139, 0, 0, .09);
  min-height: 100vh;
  margin: 0;
  color: var(--site-text);
  background: var(--site-page-bg);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
}
[data-bs-theme='dark'] .site-page {
  --site-page-bg: #212529;
  --site-surface: #2B3035;
  --site-text: #DEE2E6;
  --site-muted: #A7ACB1;
  --site-border: #495057;
  --site-primary: #C41E1E;
  --site-primary-hover: #E24A4A;
  --site-focus: 0 0 0 3px rgba(196, 30, 30, .3);
}
.site-navbar, .site-footer { background: var(--site-surface); border-color: var(--site-border) !important; }
.site-navbar { min-height: 56px; border-bottom: 1px solid var(--site-border); }
.site-topbar { min-height: 56px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.site-topbar-side, .site-topbar-actions { min-width: 0; display: flex; align-items: center; }
.site-topbar-actions { justify-content: flex-end; gap: 12px; }
.site-topbar-logo img { display: block; width: 80px; height: auto; }
[data-bs-theme='dark'] .site-topbar-logo img { filter: invert(1); }
.site-theme-toggle, .site-topbar-action { color: var(--site-muted); background: transparent; border: 0; font: 500 13px/1.2 'Inter', sans-serif; text-decoration: none; }
.site-theme-toggle { padding: 6px; border-radius: 50%; }
.site-topbar-action { padding: 6px 0; cursor: pointer; }
.site-theme-toggle:hover, .site-topbar-action:hover { color: var(--site-text); background: var(--site-page-bg); }
.site-logout-form { margin: 0; }
.site-content { min-height: calc(100vh - 116px); }
.site-main { padding: 40px 0; }
.site-main h1 { color: var(--site-text); font: 400 32px/1.2 'DM Serif Display', Georgia, serif; }
.site-main p, .site-footer { color: var(--site-muted); }
.site-page a:not(.btn) { color: var(--site-primary); }
.site-page a:not(.btn):hover { color: var(--site-primary-hover); }
.site-page .btn-primary { background: var(--site-primary); border-color: var(--site-primary); }
.site-page .btn-primary:hover, .site-page .btn-primary:focus { background: var(--site-primary-hover); border-color: var(--site-primary-hover); }
.site-page :focus-visible { outline: 0; box-shadow: var(--site-focus); }
.site-footer { padding: 18px 0; border-top: 1px solid var(--site-border); font-size: 13px; }
.not-found-page { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.not-found-page h1 { font: 400 32px/1.2 'DM Serif Display', Georgia, serif; }
.processing-feedback[hidden], [data-countdown-action][hidden] { display: none !important; }
.password-toggle { min-width: 3rem; }
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder { color: var(--bs-secondary-color); text-align: end; }
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder { text-align: start; }

.auth-page {
  --auth-page-bg: #F6F3EE;
  --auth-card-bg: #FDFCFA;
  --auth-text: #1A1A1A;
  --auth-muted: #666660;
  --auth-muted-light: #999992;
  --auth-border: #C8C4BC;
  --auth-border-soft: #E2DDD6;
  --auth-border-subtle: #EDE9E3;
  --auth-input-bg: #FFFFFF;
  --auth-primary: #8B0000;
  --auth-primary-hover: #5C0000;
  --auth-accent: #C41E1E;
  --auth-brand-pale: #FDF0F0;
  --auth-error: #C62828;
  --auth-error-bg: #FFF0F0;
  --auth-error-border: #FFBCBC;
  --auth-success: #1B7A4A;
  --auth-success-bg: #E8F5EE;
  --auth-success-border: #A3D4B8;
  --auth-warning: #8A5F00;
  --auth-warning-bg: #FFF8E1;
  --auth-warning-border: #F0D080;
  --auth-focus: 0 0 0 3px rgba(139, 0, 0, .09);
  --auth-transition: 200ms cubic-bezier(.4, 0, .2, 1);
  margin: 0;
  min-height: 100vh;
  color: var(--auth-text);
  background: var(--auth-page-bg);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
}

[data-bs-theme='dark'] .auth-page {
  --auth-page-bg: #212529;
  --auth-card-bg: #2B3035;
  --auth-text: #DEE2E6;
  --auth-muted: #A7ACB1;
  --auth-muted-light: #A7ACB1;
  --auth-border: #495057;
  --auth-border-soft: #41464B;
  --auth-border-subtle: #343A40;
  --auth-input-bg: #212529;
  --auth-primary: #C41E1E;
  --auth-primary-hover: #E24A4A;
  --auth-accent: #E24A4A;
  --auth-brand-pale: #3D0000;
  --auth-error-bg: #3B1616;
  --auth-error-border: #8B3737;
  --auth-success-bg: #123322;
  --auth-success-border: #28754A;
  --auth-warning-bg: #3A2E13;
  --auth-warning-border: #80651B;
  --auth-focus: 0 0 0 3px rgba(196, 30, 30, .3);
}

.auth-topbar {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  height: 56px;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: var(--auth-card-bg);
  border-bottom: 1px solid var(--auth-border-soft);
}

.auth-topbar-side, .auth-topbar-actions { min-width: 0; display: flex; align-items: center; }
.auth-topbar-actions { justify-content: flex-end; gap: 12px; }
.auth-topbar-back, .auth-topbar-help, .auth-theme-toggle {
  color: var(--auth-muted-light); font: 500 13px/1 'Inter', sans-serif; text-decoration: none;
}
.auth-topbar-back { display: inline-flex; align-items: center; gap: 6px; }
.auth-topbar-back span { font-size: 22px; line-height: 10px; }
.auth-topbar-help:hover, .auth-topbar-back:hover { color: var(--auth-text); }
.auth-topbar-logo img { width: 80px; height: auto; display: block; }
[data-bs-theme='dark'] .auth-topbar-logo img { filter: invert(1); }
.auth-theme-toggle { border: 0; padding: 6px; background: transparent; cursor: pointer; border-radius: 50%; }
.auth-theme-toggle:hover { color: var(--auth-text); background: var(--auth-border-subtle); }
.auth-theme-toggle:focus-visible, .auth-topbar a:focus-visible { outline: 0; box-shadow: var(--auth-focus); }

.auth-main { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 96px 24px 60px; }
.auth-card {
  --auth-login-gap: 19px;
  --auth-login-enter-subscriber-gap: 14px;
  --auth-login-validation-reserve: 5px;
  --auth-subscriber-separator-inset: 5px;
  width: 100%; max-width: 460px; padding: 48px 52px 44px; background: var(--auth-card-bg);
  border: 1px solid var(--auth-border-soft); border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .07), 0 1px 3px rgba(0, 0, 0, .05);
  animation: auth-fade-up .4s ease both;
}
.auth-card-top { margin-bottom: 32px; text-align: center; }
.auth-title { margin: 0 0 8px; color: var(--auth-text); font: 400 28px/1.2 'DM Serif Display', Georgia, serif; }
.auth-subtitle { margin: 0; color: var(--auth-muted); font-size: 14px; line-height: 1.6; }
.auth-band { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 18px; }
.auth-band span { width: 22px; height: 1.5px; border-radius: 2px; background: var(--auth-accent); }
.auth-band small { color: var(--auth-primary); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }

.auth-form { position: relative; }
.auth-field { position: relative; margin-bottom: 18px; }
.auth-login-form .auth-field { margin-bottom: calc(var(--auth-login-gap) - var(--auth-login-validation-reserve)); }
.auth-field .form-control {
  width: 100%; height: 56px; padding: 18px 16px 6px; color: var(--auth-text); background: var(--auth-input-bg);
  border: 1.5px solid var(--auth-border); border-radius: 8px; font: 400 15px/1.2 'Inter', sans-serif;
  transition: border-color var(--auth-transition), box-shadow var(--auth-transition), background var(--auth-transition);
}
.auth-password-wrap .form-control { padding-right: 48px; }
.auth-password-wrap .form-control::-ms-reveal, .auth-password-wrap .form-control::-ms-clear { display: none; }
.auth-field .form-control:focus { color: var(--auth-text); background: var(--auth-input-bg); border-color: var(--auth-primary); box-shadow: var(--auth-focus); }
.auth-field > label { position: absolute; top: 50%; left: 16px; transform: translateY(-50%); pointer-events: none; color: var(--auth-muted-light); font: 400 14px/1 'Inter', sans-serif; transition: top var(--auth-transition), font-size var(--auth-transition), color var(--auth-transition), letter-spacing var(--auth-transition); }
.auth-field .form-control:focus + label, .auth-field .form-control:not(:placeholder-shown) + label { top: 10px; color: var(--auth-primary); font-size: 10px; letter-spacing: .04em; }
.auth-password-toggle { position: absolute; top: 50%; right: 14px; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 6px; color: var(--auth-muted-light); background: transparent; border: 0; border-radius: 50%; }
.auth-password-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.auth-password-toggle:hover { color: var(--auth-text); background: var(--auth-border-subtle); }
.auth-password-toggle:focus-visible { outline: 0; box-shadow: var(--auth-focus); }
.auth-field-validation { display: block; padding: 5px 2px 0; color: var(--auth-error); font-size: 12px; }
.auth-field:has(.input-validation-error) .form-control { background: var(--auth-error-bg); border-color: var(--auth-error); }

.auth-alert { display: none; align-items: flex-start; gap: 8px; margin-bottom: 18px; padding: 12px 14px; border: 1px solid var(--auth-error-border); border-left: 3px solid var(--auth-error); border-radius: 8px; color: #8B1A1A; background: var(--auth-error-bg); font-size: 13px; line-height: 1.5; }
.auth-alert-visible, .auth-alert:not(.validation-summary-valid) { display: flex; }
.auth-alert ul { padding-left: 1rem; margin: 0; }
.auth-alert-success { display: flex; color: #0F4D2E; background: var(--auth-success-bg); border-color: var(--auth-success-border); border-left-color: var(--auth-success); }
.auth-form-options { display: flex; justify-content: flex-end; margin: -2px 0 26px; }
.auth-login-form .auth-form-options { margin: 0 0 var(--auth-login-gap); line-height: 1; }
.auth-link { color: var(--auth-primary); font-size: 13px; font-weight: 500; text-decoration: none; }
.auth-link:hover { color: var(--auth-primary-hover); text-decoration: underline; }
.auth-link:focus-visible { outline: 0; box-shadow: var(--auth-focus); }
.auth-link-center { display: block; width: 100%; margin-top: 12px; text-align: center; }
.auth-primary, .auth-secondary { width: 100%; border-radius: 8px; font-family: 'Inter', sans-serif; }
.auth-primary { display: flex; align-items: center; justify-content: center; gap: 8px; height: 52px; color: #fff; background: var(--auth-primary); border: 0; font-size: 14px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; box-shadow: 0 2px 10px rgba(139, 0, 0, .26); transition: background var(--auth-transition), box-shadow var(--auth-transition), transform var(--auth-transition); }
.auth-primary:hover, .auth-primary:focus-visible { color: #fff; background: var(--auth-primary-hover); box-shadow: 0 4px 18px rgba(139, 0, 0, .36), var(--auth-focus); transform: translateY(-1px); }
.auth-primary:active { transform: translateY(0); }
.auth-secondary { height: 46px; color: var(--auth-muted); background: transparent; border: 1.5px solid var(--auth-border-soft); font-size: 13px; font-weight: 500; }
.auth-secondary:hover { color: var(--auth-text); background: var(--auth-page-bg); border-color: var(--auth-muted-light); }
.processing-feedback { display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 0; color: var(--auth-muted); font-size: 13px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; }
.auth-divider span { flex: 1; height: 1px; background: var(--auth-border-soft); }
.auth-subscriber-block { display: flex; flex-direction: column; align-items: stretch; margin-top: var(--auth-login-enter-subscriber-gap); }
.auth-subscriber-prompt { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--auth-muted); font-size: 11px; font-weight: 600; letter-spacing: .1em; line-height: 1; text-transform: uppercase; }
.auth-subscriber-prompt span { flex: 1; height: 1px; background: var(--auth-border-soft); }
.auth-subscriber-prompt strong { font: inherit; white-space: nowrap; }
.auth-subscriber-access { display: flex; align-items: center; justify-content: center; gap: 11px; margin-top: calc(var(--auth-login-gap) - var(--auth-subscriber-separator-inset)); line-height: 1; text-align: center; }
.auth-subscriber-access svg { display: block; flex: 0 0 auto; }
.auth-subscriber-divider { width: 100%; height: 1px; margin: var(--auth-login-gap) 0 0; background: var(--auth-border-soft); }
.auth-footer { margin: 0; text-align: center; color: var(--auth-muted-light); font-size: 11.5px; line-height: 1.7; }
.auth-footer.auth-subscriber-block { margin-top: var(--auth-login-enter-subscriber-gap); }
.auth-footer > a:not(.auth-subscriber-access) { display: inline-block; margin-bottom: 14px; color: var(--auth-primary); font-size: 13px; font-weight: 500; }
.auth-subscriber-block > .auth-link { align-self: center; display: block; margin: var(--auth-login-gap) 0; line-height: 1; }
.auth-footer p { margin: 0; }
.auth-footer p a { color: var(--auth-muted); text-decoration: underline; }
.auth-policy { margin: -2px 2px 20px; color: var(--auth-muted); font-size: 12px; line-height: 1.5; }
.auth-recovery { margin: -2px 0 16px; }
.auth-countdown { margin-top: 20px; text-align: center; color: var(--auth-muted); font-size: 13px; line-height: 1.55; }
.auth-countdown > p { margin: 0 0 12px; }
.auth-status { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 20px; padding: 12px 14px; color: var(--auth-muted); background: var(--auth-border-subtle); border: 1px solid var(--auth-border-soft); border-radius: 8px; font-size: 13px; line-height: 1.55; }
.auth-status p { margin: 0; }
.auth-status > span { flex: 0 0 auto; color: var(--auth-muted-light); font-size: 16px; }
.auth-status-icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 50%; font-size: 28px; font-weight: 600; }
.auth-status-success { color: var(--auth-success); background: var(--auth-success-bg); }
.auth-status-warning { color: var(--auth-warning); background: var(--auth-warning-bg); }

@keyframes auth-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .auth-card { animation: none; } .auth-page *, .auth-page *::before, .auth-page *::after { transition-duration: .01ms !important; } }
@media (max-width: 520px) {
  .site-topbar { padding: 0 20px; }
  .site-topbar-actions { gap: 8px; }
  .site-theme-toggle [data-theme-label] { display: none; }
  .site-topbar-action { font-size: 12px; }
  .auth-topbar { padding: 0 20px; }
  .auth-topbar-help { display: none; }
  .auth-topbar-actions { gap: 0; }
  .auth-theme-toggle [data-theme-label] { display: none; }
  .auth-card { padding: 36px 24px 32px; }
}
/* Biblioteca catalog */
.biblioteca-catalog { max-width: 1120px; margin: 0 auto; }
.biblioteca-catalog-header { margin-bottom: 2.25rem; }
.biblioteca-privacy-notice { margin: 0 0 1.75rem; padding: .8rem 1rem; color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .5rem; font-size: .9375rem; text-align: center; }
.biblioteca-privacy-notice a { color: inherit; font-weight: 600; }
.biblioteca-catalog-header h1 { margin: 0; text-align: center; }
.biblioteca-catalog-subtitle { margin: .4rem 0 0; color: var(--bs-secondary-color); font-size: 1.0625rem; text-align: center; }
.biblioteca-featured { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 220px); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: clamp(1.5rem, 4vw, 2.75rem); margin-bottom: 2.5rem; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .75rem; }
.biblioteca-featured-content h2 { margin: 0; color: var(--bs-secondary-color); font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.biblioteca-featured-separator { width: 42px; height: 1px; margin: .75rem 0 .875rem; background: var(--bs-border-color); }
.biblioteca-featured-content p { margin: 0 0 1.5rem; font: 400 clamp(1.65rem, 3vw, 2.4rem)/1.15 'DM Serif Display', Georgia, serif; }
.biblioteca-featured-cover { width: min(100%, 220px); margin: 0; justify-self: end; }
.biblioteca-featured-cover img { display: block; width: 100%; max-height: 300px; aspect-ratio: 2 / 3; object-fit: contain; }
.biblioteca-open-action { min-width: 144px; }
.biblioteca-section { margin-top: 2.75rem; }
.biblioteca-section-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.biblioteca-section-header h2 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.biblioteca-section-controls, .biblioteca-section-navigation { display: flex; align-items: center; gap: .5rem; }
.biblioteca-section-toggle, .biblioteca-navigation-button { color: var(--site-primary); background: transparent; border: 1px solid var(--bs-border-color); border-radius: .375rem; font: inherit; }
.biblioteca-section-toggle { padding: .4rem .65rem; font-size: .875rem; font-weight: 600; }
.biblioteca-navigation-button { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; font-size: 1.5rem; line-height: 1; }
.biblioteca-section-toggle:hover, .biblioteca-navigation-button:hover:not(:disabled) { color: var(--site-primary-hover); background: var(--bs-tertiary-bg); }
.biblioteca-section-toggle:focus-visible, .biblioteca-navigation-button:focus-visible { outline: 2px solid var(--site-primary); outline-offset: 2px; }
.biblioteca-navigation-button:disabled { opacity: .45; cursor: not-allowed; }
.biblioteca-open-action.btn-outline-primary { --bs-btn-color: var(--site-primary); --bs-btn-border-color: var(--site-primary); --bs-btn-hover-bg: var(--site-primary); --bs-btn-hover-border-color: var(--site-primary); --bs-btn-focus-shadow-rgb: 139, 0, 0; --bs-btn-active-bg: var(--site-primary-hover); --bs-btn-active-border-color: var(--site-primary-hover); --bs-btn-disabled-color: var(--site-primary); --bs-btn-disabled-border-color: var(--site-primary); }
.biblioteca-row-viewport { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scroll-behavior: smooth; margin-bottom: 2rem; }
.biblioteca-grid { display: flex; gap: 1rem; width: max-content; padding: 2px; }
.biblioteca-card { display: flex; flex: 0 0 clamp(136px, 16vw, 160px); flex-direction: column; gap: .75rem; margin-bottom: 2rem; }
.biblioteca-card-cover { width: 100%; }
.biblioteca-card img { display: block; width: 100%; height: auto; max-width: 100%; border-radius: .5rem; }
.biblioteca-card h3 { min-height: 2.9rem; margin: 0; font-size: .85rem; line-height: 1.4; }
.biblioteca-card form { display: flex; margin-top: auto; }
.biblioteca-card .biblioteca-open-action { width: 100%; min-width: 0; }
.biblioteca-row-viewport.is-expanded { overflow-x: visible; }
.biblioteca-row-viewport.is-expanded .biblioteca-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(136px, 160px)); width: 100%; }
@media (prefers-reduced-motion: reduce) { .biblioteca-row-viewport { scroll-behavior: auto; } }
@media (max-width: 576px) {
  .biblioteca-catalog-header { margin-bottom: 1.75rem; }
  .biblioteca-featured { grid-template-columns: 1fr; }
  .biblioteca-featured-cover { justify-self: center; width: min(220px, 100%); }
  .biblioteca-section-header { align-items: flex-start; flex-direction: column; }
  .biblioteca-section-controls { width: 100%; justify-content: space-between; }
  .biblioteca-card { flex-basis: min(68vw, 160px); }
  .biblioteca-row-viewport.is-expanded .biblioteca-grid { grid-template-columns: repeat(auto-fill, minmax(min(136px, 100%), 1fr)); }
}
.reader-page { min-height: 100vh; }
.reader-main { min-height: calc(100vh - 56px); padding-top: clamp(1.5rem, 4vw, 3rem); padding-bottom: clamp(1.5rem, 4vw, 3rem); }
.reader-return-action { white-space: nowrap; }
.protected-publication-reader-launch { min-height: min(65vh, 42rem); display: grid; place-items: center; }
.protected-publication-reader-card { width: min(100%, 48rem); padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--site-surface); border: 1px solid var(--site-border); border-radius: .75rem; box-shadow: 0 .5rem 1.5rem rgba(26, 26, 26, .06); text-align: center; }
.protected-publication-reader-publication { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: clamp(1.25rem, 4vw, 2.5rem); align-items: center; margin-bottom: 2rem; text-align: left; }
.protected-publication-reader-cover { display: block; width: 100%; max-height: 320px; object-fit: contain; border-radius: .5rem; }
.protected-publication-reader-publication h1 { margin: 0; }
.protected-publication-reader-back { display: block; width: fit-content; margin: .9rem auto 0; color: var(--site-primary); font-size: .875rem; font-weight: 500; text-decoration: none; }
.protected-publication-reader-back:hover { color: var(--site-primary-hover); text-decoration: underline; }
.protected-publication-reader-card .alert { margin: 1.25rem 0 0; }
.protected-publication-reader-card .alert p { margin: 0 0 1rem; }
.protected-publication-reader > .alert { width: min(100%, 36rem); margin: 1.5rem auto 0; text-align: center; }
.protected-publication-reader > .alert p { margin: 0 0 1rem; }
@media (max-width: 576px) {
  .reader-return-action { font-size: 0; }
  .reader-return-action span { font-size: 1.5rem; line-height: 1; }
  .protected-publication-reader-publication { grid-template-columns: 1fr; text-align: center; }
  .protected-publication-reader-cover { width: min(190px, 100%); margin: 0 auto; }
}
