:root{
  --ov-ink:#17212b;
  --ov-muted:#66737d;
  --ov-line:#dce5e4;
  --ov-surface:#ffffff;
  --ov-soft:#eaf8f3;
  --ov-brand:#00a878;
  --ov-brand-dark:#006b50;
  --ov-gold:#d4a72c;
  --ov-coral:#e46161;
  --ov-shadow:0 12px 30px rgba(20,52,49,.11);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f7faf9;color:var(--ov-ink);font-family:Arial,Helvetica,sans-serif}
button,input,select,textarea{font:inherit}
button{letter-spacing:0}
[hidden]{display:none!important}
.overlay-open{overflow:hidden}
.public-headbar,.main-headbar{
  position:sticky;top:0;z-index:120;display:flex;align-items:center;gap:12px;
  min-height:58px;padding:7px max(12px,env(safe-area-inset-left));
  border-bottom:1px solid var(--ov-line);background:#fff
}
.public-headbar-actions,.headbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.ovotus-text-logo{display:inline-flex;align-items:center;color:var(--ov-brand-dark);font-weight:900;font-size:25px;text-decoration:none}
.ovotus-text-logo span{color:inherit}
.header-auth-button{min-height:39px;padding:8px 14px;border:1px solid var(--ov-brand);border-radius:5px;font-weight:800;cursor:pointer}
.header-auth-button.primary{background:var(--ov-brand);color:#fff}
.header-auth-button.secondary{background:#fff;color:var(--ov-brand-dark)}
.main-headbar .headbar-icon-button,.account-trigger{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;flex:0 0 38px;padding:0;border:1px solid var(--ov-line);
  border-radius:50%;background:#fff;color:var(--ov-brand-dark);cursor:pointer
}
.headbar-badge{position:absolute;top:-5px;right:-5px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--ov-coral);color:#fff;font-size:10px;font-weight:900}
.catalog-main{width:100%;padding:0 0 64px}
.catalog-intro{padding:34px max(18px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--ov-line);background:#fff}
.catalog-intro p{margin:0 0 7px;color:var(--ov-brand);font-size:12px;font-weight:900}
.catalog-intro h1{margin:0 0 8px;font-size:clamp(27px,4vw,42px);letter-spacing:0}
.catalog-intro span{color:var(--ov-muted);line-height:1.6}
.catalog-category{padding:28px max(18px,calc((100vw - 1180px)/2)) 5px}
.category-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.category-heading h2{margin:0;color:var(--ov-ink);font-size:22px}
.category-arrows{display:flex;gap:6px}
.category-arrows button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--ov-line);border-radius:50%;background:#fff;color:var(--ov-brand-dark);cursor:pointer}
.book-row{display:grid;grid-auto-flow:column;grid-auto-columns:180px;gap:16px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x proximity;scrollbar-width:thin}
.book-card{display:grid;grid-template-rows:1fr auto;min-width:0;scroll-snap-align:start}
.book-card-open{display:grid;grid-template-rows:240px auto auto auto;gap:7px;width:100%;padding:0 0 10px;border:1px solid var(--ov-line);border-radius:6px 6px 0 0;background:#fff;color:var(--ov-ink);text-align:left;cursor:pointer;overflow:hidden}
.book-card-open>strong,.book-card-open>small,.book-rating{padding:0 10px}
.book-card-open>strong{min-height:38px;line-height:1.35}
.book-card-open>small{overflow:hidden;color:var(--ov-muted);text-overflow:ellipsis;white-space:nowrap}
.book-cover{display:grid;place-items:center;width:100%;height:240px;overflow:hidden;background:var(--ov-soft)}
.book-cover img{width:100%;height:100%;object-fit:cover}
.book-cover i{color:var(--ov-brand);font-size:46px}
.book-rating{display:flex;align-items:center;gap:4px;color:var(--ov-gold);font-size:12px}
.book-rating small{color:var(--ov-muted)}
.book-read-command{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:0;border-radius:0 0 6px 6px;background:var(--ov-brand);color:#fff;font-weight:800;cursor:pointer}
.catalog-empty{padding:55px 18px;color:var(--ov-muted);text-align:center}
.app-overlay,.app-menu-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:16px;background:rgba(13,24,26,.58)}
.app-menu-overlay{place-items:stretch start;padding:0}
.app-menu-panel{width:min(330px,88vw);height:100%;padding:18px;background:#fff;box-shadow:var(--ov-shadow)}
.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--ov-line)}
.menu-user{display:flex;align-items:center;gap:10px;min-width:0}
.menu-user img{width:46px;height:46px;border:2px solid var(--ov-brand);border-radius:50%;object-fit:cover}
.menu-user-avatar{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border:2px solid var(--ov-brand);border-radius:50%;background:var(--ov-soft);color:var(--ov-brand);font-size:21px}
.menu-user strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-links{display:grid;gap:5px;padding-top:14px}
.menu-link{display:flex;align-items:center;gap:12px;min-height:46px;padding:9px 11px;border-radius:5px;color:var(--ov-ink);text-decoration:none;font-weight:600;text-transform:none}
.menu-link>span:not(.menu-icon){font-weight:600}
.menu-link:hover,.menu-link.active{background:var(--ov-soft);color:var(--ov-brand-dark)}
.menu-icon{display:grid;place-items:center;width:28px;color:var(--ov-brand)}
.overlay-close{display:grid;place-items:center;width:36px;height:36px;border:0;background:transparent;color:var(--ov-muted);cursor:pointer;font-size:28px}
.app-popup{position:relative;width:min(720px,100%);max-height:calc(100vh - 32px);overflow:auto;border-radius:8px;background:#fff;box-shadow:var(--ov-shadow)}
.compact-popup{width:min(520px,100%);padding:18px}
.popup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.popup-header h2{margin:0;font-size:21px}
.catalog-search-field{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;padding:0 12px;border:1px solid var(--ov-line);border-radius:5px}
.catalog-search-field i{color:var(--ov-brand)}
.catalog-search-field input{width:100%;min-height:45px;border:0;outline:0;background:transparent}
.account-popover{position:fixed;z-index:250;top:60px;right:12px;padding:8px;border:1px solid var(--ov-line);background:#fff;box-shadow:var(--ov-shadow)}
.logout-button{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 13px;border:0;background:#fff;color:var(--ov-ink);cursor:pointer}
.book-detail-overlay{z-index:330}
.book-detail-popup{width:min(820px,100%);padding:24px}
.floating-close{position:absolute;top:8px;right:8px;z-index:2}
.book-detail-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:25px}
.book-detail-cover{display:grid;place-items:center;width:230px;aspect-ratio:2/3;overflow:hidden;background:var(--ov-soft)}
.book-detail-cover img{width:100%;height:100%;object-fit:cover}
.book-detail-cover i{color:var(--ov-brand);font-size:60px}
.book-detail-copy{display:grid;align-content:start;gap:10px;padding-top:4px}
.book-detail-copy h2{margin:0 40px 0 0;font-size:28px}
.book-detail-subtitle,.book-detail-author,.book-detail-description{margin:0}
.book-detail-subtitle{color:var(--ov-muted);font-style:italic}
.book-detail-author{color:var(--ov-brand-dark);font-weight:800}
.book-detail-description{color:#3d4b52;line-height:1.65;white-space:pre-line}
.book-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.book-detail-meta span{display:grid;gap:3px;padding:8px;background:var(--ov-soft);font-size:13px}
.book-detail-meta b{font-size:11px;text-transform:uppercase;color:var(--ov-muted)}
.book-detail-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:5px}
.primary-command,.secondary-command{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:9px 15px;border:1px solid var(--ov-brand);border-radius:5px;font-weight:800;cursor:pointer}
.primary-command{background:var(--ov-brand);color:#fff}
.secondary-command{background:#fff;color:var(--ov-brand-dark)}
.secondary-command.is-complete{background:var(--ov-soft)}
.rating-control{display:flex;align-items:center;gap:10px}
.rating-control>span{font-size:13px;font-weight:800}
.rating-control button{border:0;background:transparent;color:#c5c9ca;cursor:pointer;padding:2px}
.rating-control button.active{color:var(--ov-gold)}
.catalog-action-message{min-height:20px;margin:0;color:var(--ov-brand-dark);font-size:13px}
.catalog-action-message.is-error{color:#a43f3f}
.app-footer{display:grid;justify-items:center;gap:12px;padding:28px 16px;border-top:1px solid var(--ov-line);background:#fff;text-align:center}
.ovotus-footer-brand{color:var(--ov-brand-dark);font-size:22px;font-weight:900;text-decoration:none}
.app-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}
.app-footer nav a{color:var(--ov-muted);text-decoration:none}
.app-footer nav span{color:#a9b4b4}
.app-footer small{color:var(--ov-muted)}
@media(max-width:680px){
  .public-headbar,.main-headbar{min-height:54px;padding:6px 9px}
  .ovotus-text-logo{font-size:20px}
  .header-auth-button{min-height:36px;padding:7px 10px;font-size:12px}
  .main-headbar .headbar-icon-button,.account-trigger{width:34px;height:34px;flex-basis:34px}
  .catalog-intro{padding:25px 14px}
  .catalog-category{padding:23px 12px 4px}
  .category-heading h2{font-size:19px}
  .book-row{grid-auto-columns:150px;gap:11px}
  .book-card-open{grid-template-rows:205px auto auto auto}
  .book-cover{height:205px}
  .book-detail-popup{padding:20px 14px}
  .book-detail-layout{grid-template-columns:1fr}
  .book-detail-cover{width:min(210px,65vw);margin:auto}
  .book-detail-copy h2{text-align:center;margin:0 35px}
  .book-detail-subtitle,.book-detail-author{text-align:center}
  .book-detail-actions{justify-content:center}
}
@media(max-width:380px){
  .public-headbar-actions{gap:5px}
  .header-auth-button{padding-inline:7px}
  .book-row{grid-auto-columns:142px}
  .book-card-open{grid-template-rows:195px auto auto auto}
  .book-cover{height:195px}
  .book-detail-meta{grid-template-columns:1fr}
}


.page-heading{width:min(1120px,100%);margin:0 auto;padding:30px 18px 18px;text-align:center}.page-heading p{margin:0 0 5px;color:var(--ov-brand);font-size:12px;font-weight:900}.page-heading h1{margin:0;font-size:31px}
.library-main{min-height:65vh;padding-bottom:60px}.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,520px));justify-content:center;gap:16px;width:min(1120px,100%);margin:auto;padding:10px 18px}
.library-card{display:grid;grid-template-columns:125px minmax(0,1fr);gap:16px;padding:14px;border:1px solid var(--ov-line);border-radius:7px;background:#fff}
.library-cover{display:grid;place-items:center;width:125px;aspect-ratio:2/3;overflow:hidden;background:var(--ov-soft);color:var(--ov-brand);text-decoration:none}
.library-cover img{width:100%;height:100%;object-fit:cover}.library-cover i{font-size:38px}
.library-copy{display:grid;align-content:start;gap:7px;min-width:0}.library-copy h2,.library-copy p{margin:0}.library-copy h2{font-size:19px}.library-copy p,.library-copy small{color:var(--ov-muted)}
.progress-track{height:6px;overflow:hidden;border-radius:3px;background:#e7eeee}.progress-track span{display:block;height:100%;background:var(--ov-brand)}
.library-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}.library-actions a{font-size:12px;text-decoration:none}
.reader-body{background:#e9efee;color:#17212b}.reader-headbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px;min-height:58px;padding:7px max(10px,env(safe-area-inset-left));border-bottom:1px solid #ccd9d7;background:#fff}
.reader-headbar>div{display:grid;min-width:0;text-align:center}.reader-headbar strong,.reader-headbar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-headbar small{color:var(--ov-muted)}
.reader-icon-button{display:grid;place-items:center;box-sizing:border-box;width:38px;min-width:38px;height:38px;padding:0;border:1px solid var(--ov-line);border-radius:50%;background:#fff;color:var(--ov-brand-dark);line-height:0;text-decoration:none;cursor:pointer}
.reader-back-icon{display:block;width:20px;height:20px;margin:0;overflow:visible;flex:none}
.reader-controls{position:sticky;top:58px;z-index:15;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:min(860px,100%);margin:auto;padding:9px 12px;border-bottom:1px solid #d5dfde;background:rgba(255,255,255,.96)}
.reader-controls-bottom{position:static;margin-top:12px;border:1px solid #d5dfde}.reader-controls button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 11px;border:1px solid var(--ov-line);border-radius:5px;background:#fff;color:var(--ov-brand-dark);cursor:pointer}.reader-controls button:last-child{justify-self:end}.reader-controls button:disabled{opacity:.4;cursor:default}.reader-controls strong{font-size:13px;text-align:center}
.reader-pages{display:grid;gap:22px;width:min(800px,100%);margin:20px auto;padding:0 14px}.reader-page{min-height:calc(100vh - 155px);padding:50px clamp(22px,7vw,70px) 28px;border:1px solid #d1dcda;background:#fff;box-shadow:0 8px 24px rgba(25,48,46,.08);scroll-margin-top:115px}
.reader-page>header{text-align:center;margin-bottom:30px}.reader-page>header span{display:block;color:var(--ov-brand);font-size:12px;font-weight:900;text-transform:uppercase}.reader-page>header h2{margin:8px 0 0;font-family:Georgia,serif;font-size:25px}.reader-content{font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.78}.reader-content img{display:block;max-width:100%;height:auto;margin:18px auto}.reader-page>footer{margin-top:36px;color:var(--ov-muted);font-size:12px;text-align:center}
.reader-footer-actions{display:grid;justify-items:center;gap:8px;padding:20px}.reader-footer-actions>a{display:inline-flex;align-items:center;gap:8px;color:var(--ov-brand-dark);font-weight:800;text-decoration:none}.reader-footer-actions p{min-height:20px;margin:0;color:var(--ov-muted);font-size:13px}.reader-footer-actions p a{color:var(--ov-brand)}
.offline-reader-body .reader-pages{margin-top:18px}
@media(max-width:600px){.library-grid{padding-inline:10px}.library-card{grid-template-columns:92px minmax(0,1fr);gap:11px;padding:10px}.library-cover{width:92px}.library-actions{flex-direction:column}.library-actions a{width:100%}.reader-controls button span{display:none}.reader-controls{gap:6px}.reader-page{padding:34px 20px 24px}.reader-content{font-size:17px}.page-heading h1{font-size:26px}}


.subscription-main,.downloads-main{min-height:65vh;padding-bottom:60px}.subscription-status{display:flex;align-items:center;gap:12px;width:min(680px,calc(100% - 28px));margin:0 auto 14px;padding:15px;border:1px solid #e2c7c7;background:#fff;color:#9a4343}.subscription-status.is-active{border-color:#b9ded8;background:#f4fbfa;color:var(--ov-brand-dark)}.subscription-status>i{font-size:24px}.subscription-status>div{display:grid;gap:3px}.subscription-status span{font-size:13px}
.subscription-plan{display:grid;justify-items:center;gap:16px;width:min(680px,calc(100% - 28px));margin:auto;padding:27px;border:1px solid var(--ov-line);background:#fff;text-align:center}.subscription-plan h2,.subscription-plan p{margin:5px 0}.subscription-plan>strong{color:var(--ov-brand-dark);font-size:31px}.subscription-plan ul{display:grid;gap:8px;margin:0;padding:0;list-style:none;text-align:left}.subscription-plan li{display:flex;align-items:center;gap:8px}.subscription-plan li i{color:var(--ov-brand)}.subscription-note{color:var(--ov-muted);font-size:13px}
.download-offer{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;width:min(760px,calc(100% - 28px));margin:0 auto 22px;padding:18px;border:1px solid var(--ov-line);background:#fff}.download-offer-cover{display:grid;place-items:center;width:150px;aspect-ratio:2/3;overflow:hidden;background:var(--ov-soft)}.download-offer-cover img{width:100%;height:100%;object-fit:cover}.download-offer-cover i{color:var(--ov-brand);font-size:42px}.download-offer h2{margin:0 0 8px}.format-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.purchased-downloads{display:grid;gap:10px;width:min(760px,calc(100% - 28px));margin:auto}.purchased-downloads article{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--ov-line);background:#fff}.purchased-downloads article>div{display:grid;gap:4px}.purchased-downloads small{color:var(--ov-muted)}.purchased-downloads a{text-decoration:none}
@media(max-width:560px){.subscription-plan{padding:22px 14px}.download-offer{grid-template-columns:1fr;text-align:center}.download-offer-cover{width:min(170px,60vw);margin:auto}.format-options{justify-content:center}.purchased-downloads article{align-items:flex-start;flex-direction:column}}

/* Notifications and generated book downloads */
.notification-popup {
  width: min(92vw, 430px);
}
.notification-clear-button {
  display: block;
  width: fit-content;
  max-width: calc(100% - 32px);
  margin: 0 auto 10px;
  padding: 7px 0;
  border: 0;
  background: transparent;
  color: #527c24;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  text-align: center;
  cursor: pointer;
}
.notification-list {
  display: grid;
  max-height: min(62vh, 520px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.notification-item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 11px;
  width: 100%;
  min-height: 68px;
  padding: 10px 16px;
  border: 0;
  border-top: 1px solid #e7eee2;
  background: #fff;
  color: #263428;
  text-align: left;
  cursor: pointer;
}
.notification-item:hover,
.notification-item.is-unread {
  background: #f3faeb;
}
.notification-visual {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  overflow: hidden;
  border-radius: 6px;
  background: #eaf6dc;
  color: #00a878;
  font-size: 1.1rem;
}
.notification-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.notification-copy {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
}
.notification-copy strong {
  overflow-wrap: anywhere;
  font-size: 0.88rem;
  line-height: 1.35;
}
.notification-copy small {
  color: #728072;
  font-size: 0.72rem;
}
.download-offer-price {
  display: block;
  margin: 6px 0;
  color: #5e9420;
  font-size: 1.2rem;
}
.purchased-download-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}
.purchased-download-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.purchased-download-copy strong {
  overflow-wrap: anywhere;
}
.book-export-progress {
  grid-column: 1 / -1;
  position: relative;
  height: 24px;
  overflow: hidden;
  border-radius: 4px;
  background: #e8eee4;
}
.book-export-progress > span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: #8dca3c;
  transition: width 180ms ease;
}
.book-export-progress > strong {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  height: 100%;
  padding: 0 8px;
  color: #20321d;
  font-size: 0.73rem;
}
.book-export-progress.is-error > span {
  background: #e78585;
}
@media (max-width: 560px) {
  .purchased-download-card {
    grid-template-columns: 1fr;
  }
  .purchased-download-card .primary-command {
    width: fit-content;
    max-width: 100%;
  }
}
.library-payment-options {
  display: grid;
  gap: 10px;
  width: min(100%, 430px);
  margin: 18px auto 0;
}
.payment-provider-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-height: 44px;
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.payment-provider-button.fedapay {
  background: #178a49;
  color: #fff;
}
.payment-option-label {
  color: #5e6d5d;
  font-size: 0.78rem;
  font-weight: 800;
  text-align: center;
}
.payment-unavailable {
  margin: 0;
  color: #8c4f4f;
  text-align: center;
}
.format-options [data-select-format].is-selected {
  box-shadow: 0 0 0 3px rgba(141, 202, 60, 0.24);
}
.download-payment-options {
  margin-inline: 0;
}
/* Public catalogue viewport guards. */
.public-headbar{width:100%;max-width:100vw;min-width:0;overflow:hidden}
.public-headbar>.ovotus-text-logo{min-width:0;flex:0 1 auto}
.public-headbar-actions{min-width:0;flex:0 1 auto}
.header-auth-button{min-width:0;white-space:nowrap}
.catalog-intro,.catalog-category{max-width:100vw;overflow:hidden}
.catalog-intro h1{max-width:100%;overflow-wrap:anywhere}
@media(max-width:680px){
  .public-headbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .public-headbar-actions{margin-left:0;justify-self:end}
  .public-headbar>.ovotus-text-logo{font-size:18px}
}
@media(max-width:360px){
  .public-headbar>.ovotus-text-logo{font-size:16px}
  .header-auth-button{padding-inline:6px;font-size:11px}
}
/* Official Ovotus brand assets. */
.ovotus-public-brand,
.ovotus-headbar-brand,
.ovotus-footer-brand {
  text-decoration: none;
}
.ovotus-public-brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 174px;
  max-width: min(174px, 34vw);
  height: 48px;
  flex: 0 1 174px;
  overflow: hidden;
}
.ovotus-public-brand img.brand-wordmark {
  display: block;
  width: 100%;
  height: auto;
  max-height: 47px;
  object-fit: contain;
  object-position: left center;
}
.main-headbar .ovotus-headbar-brand {
  width: 132px;
  max-width: 132px;
  height: 44px;
  flex: 0 0 132px;
}
.main-headbar .ovotus-headbar-brand img.brand-wordmark {
  display: block;
  width: 128px;
  height: auto;
  max-height: 43px;
  object-fit: contain;
  object-position: left center;
}
.app-footer .ovotus-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
}
.app-footer .ovotus-footer-brand img.brand-symbol { display: block; width: 44px; height: 44px; object-fit: contain; }
.app-footer .ovotus-footer-brand img.brand-wordmark { display: block; width: 118px; height: auto; max-height: 40px; object-fit: contain; }
@media(max-width:600px){.ovotus-public-brand{width:142px;max-width:min(142px,34vw);height:42px;flex-basis:142px}.ovotus-public-brand img.brand-wordmark{max-height:41px}.main-headbar .ovotus-headbar-brand{width:112px;max-width:112px;height:40px;flex-basis:112px}.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:108px;max-height:38px}.app-footer .ovotus-footer-brand img.brand-symbol{width:40px;height:40px}.app-footer .ovotus-footer-brand img.brand-wordmark{width:108px;max-height:37px}}
@media(max-width:360px){.ovotus-public-brand{width:108px;max-width:30vw;height:38px;flex-basis:108px}.ovotus-public-brand img.brand-wordmark{max-height:36px}.main-headbar .ovotus-headbar-brand{width:94px;max-width:94px;height:36px;flex-basis:94px}.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:90px;max-height:33px}}

/* Ovotus compact footer identity 20260819. */
.app-footer{width:100%;padding:0;border-top:1px solid var(--line,#d6e8e2);background:#fff;color:var(--muted,#66737d);font-size:12px;text-align:center}
.app-footer-inner{width:min(980px,100%);margin:0 auto;padding:16px 10px 14px}
.app-footer-auth{display:flex;justify-content:center;gap:18px;margin:0 0 9px}
.app-footer-auth a{color:var(--brand-dark,#006b50);font-size:12px;font-weight:900;text-decoration:none;text-transform:uppercase}
.app-footer-brand-line{margin:0 0 8px;line-height:1.45}
.app-footer-brand-line strong{color:var(--ink,#17212b)}
.app-footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:0}
.app-footer-links a{color:var(--muted,#66737d);font-weight:400;text-decoration:none}
.app-footer-links a:hover,.app-footer-links a:focus-visible,.app-footer-auth a:hover,.app-footer-auth a:focus-visible{color:var(--brand,#00a878)}
.app-footer-logo{margin:10px 0 0}
.app-footer .ovotus-footer-brand{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none}
.app-footer .ovotus-footer-brand img.brand-symbol{display:block;width:30px;height:30px;max-height:none;object-fit:contain}
.app-footer .ovotus-footer-brand img.brand-wordmark{display:block;width:82px;height:auto;max-height:27px;object-fit:contain}
@media(max-width:600px){.app-footer-inner{padding-inline:8px}.app-footer-auth{gap:14px}.app-footer-links{gap:6px 5px}.app-footer .ovotus-footer-brand img.brand-symbol{width:27px;height:27px}.app-footer .ovotus-footer-brand img.brand-wordmark{width:74px;max-height:25px}}
/* Compact official Ovotus public identity 20260819. */
.catalog-intro{padding:20px max(18px,calc((100vw - 1180px)/2))}
.catalog-intro p{margin-bottom:5px;font-size:10px}
.catalog-intro h1{margin-bottom:5px;font-size:clamp(22px,3vw,31px)}
.catalog-intro span{font-size:14px;line-height:1.45}
.ovotus-public-brand{width:122px;max-width:min(122px,30vw);height:39px;flex:0 1 122px}
.ovotus-public-brand img.brand-wordmark{max-height:37px}
.main-headbar .ovotus-headbar-brand{width:98px;max-width:98px;height:38px;flex:0 0 98px}
.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:94px;max-height:35px}
@media(max-width:600px){.catalog-intro{padding-top:16px;padding-bottom:16px}.catalog-intro h1{font-size:21px}.catalog-intro span{font-size:13px}.ovotus-public-brand{width:104px;max-width:min(104px,28vw);height:37px;flex-basis:104px}.ovotus-public-brand img.brand-wordmark{max-height:34px}.main-headbar .ovotus-headbar-brand{width:84px;max-width:84px;height:36px;flex-basis:84px}.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:80px;max-height:32px}}
@media(max-width:360px){.ovotus-public-brand{width:88px;max-width:27vw;height:34px;flex-basis:88px}.ovotus-public-brand img.brand-wordmark{max-height:31px}.main-headbar .ovotus-headbar-brand{width:76px;max-width:76px;height:34px;flex-basis:76px}.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:72px;max-height:29px}}
/* Small-screen catalogue text guard 20260819. */
@media(max-width:600px){
  .catalog-intro{min-width:0}
  .catalog-intro h1,.catalog-intro span{display:block;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal}
  .catalog-intro h1{font-size:18px;line-height:1.25}
  .catalog-intro span{width:min(100%,52ch);max-width:52ch;font-size:12px;line-height:1.4}
}
/* Compact public headbar and account menu 20260819. */
.public-headbar{min-height:46px;padding-block:4px;overflow:visible}
.ovotus-public-brand{width:88px;max-width:min(88px,25vw);height:34px;flex:0 1 88px}
.ovotus-public-brand img.brand-wordmark{max-height:31px}
.main-headbar .ovotus-headbar-brand{width:78px;max-width:78px;height:34px;flex:0 0 78px}
.main-headbar .ovotus-headbar-brand img.brand-wordmark{width:74px;max-height:30px}
.public-auth-menu-wrap{position:relative;margin-left:auto;display:flex;align-items:center}
.public-auth-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--ov-brand);border-radius:50%;background:#fff;color:var(--ov-brand-dark);font-size:15px;cursor:pointer}
.public-auth-menu-trigger:hover,.public-auth-menu-trigger:focus-visible,.public-auth-menu-trigger[aria-expanded="true"]{border-color:var(--ov-brand-dark);background:#e9fbf5;outline:none}
.public-auth-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:180;display:grid;width:190px;padding:6px;border:1px solid var(--ov-line);border-radius:6px;background:#fff;box-shadow:0 12px 30px rgba(0,58,43,.16)}
.public-auth-menu-item{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:4px;background:#fff;color:var(--ov-ink);font-size:13px;font-weight:800;text-align:left;text-decoration:none;cursor:pointer}
.public-auth-menu-item i{color:var(--ov-brand-dark);text-align:center}
.public-auth-menu-item:hover,.public-auth-menu-item:focus-visible{background:#e9fbf5;outline:none}
.catalog-intro{height:8px;min-height:8px;padding:0;border:0;background:var(--ov-brand)}
@media(max-width:600px){
  .public-headbar{min-height:44px;padding-block:4px}
  .ovotus-public-brand{width:76px;max-width:min(76px,24vw);height:32px;flex-basis:76px}
  .ovotus-public-brand img.brand-wordmark{max-height:28px}
  .main-headbar .ovotus-headbar-brand{width:70px;max-width:70px;height:32px;flex-basis:70px}
  .main-headbar .ovotus-headbar-brand img.brand-wordmark{width:66px;max-height:28px}
  .catalog-intro{height:7px;min-height:7px;padding:0}
}
@media(max-width:360px){
  .ovotus-public-brand{width:68px;max-width:23vw;height:30px;flex-basis:68px}
  .ovotus-public-brand img.brand-wordmark{max-height:26px}
  .main-headbar .ovotus-headbar-brand{width:64px;max-width:64px;height:30px;flex-basis:64px}
  .main-headbar .ovotus-headbar-brand img.brand-wordmark{width:60px;max-height:26px}
  .public-auth-menu{width:min(180px,calc(100vw - 18px))}
}
/* Public account trigger viewport anchor 20260819. */
.public-auth-menu-wrap{position:absolute;top:50%;right:max(9px,env(safe-area-inset-right));margin:0;transform:translateY(-50%);z-index:181}
[dir="rtl"] .public-auth-menu-wrap{right:auto;left:max(9px,env(safe-area-inset-left))}

/* Ovotus catalogue banner and footer auth band 20260819. */
.catalog-banner{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;background:var(--ov-brand);color:#fff;text-align:center}
.catalog-banner h1{max-width:100%;margin:0;color:#fff;font-size:15px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.app-footer-auth{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:0;padding:9px 12px;background:var(--ov-brand,#00a878)}
.app-footer-auth a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 15px;border:1px solid rgba(255,255,255,.8);border-radius:4px;background:transparent;color:#fff;font-size:12px;font-weight:900;text-decoration:none;text-transform:uppercase}
.app-footer-auth a:hover,.app-footer-auth a:focus-visible{border-color:#fff;background:#fff;color:var(--ov-brand-dark,#006b50);outline:none}
@media(max-width:600px){.catalog-banner{min-height:36px;padding:7px 10px}.catalog-banner h1{font-size:13px}.app-footer-auth{gap:8px;padding:8px}.app-footer-auth a{min-height:32px;padding:5px 11px;font-size:11px}}
/* Ovotus dark separator above catalogue banner 20260819. */
.catalog-intro{background:var(--ov-brand-dark,#006b50)}

/* Short catalogue banner and white footer buttons 20260820. */
.catalog-banner{width:min(390px,calc(100% - 24px));min-height:34px;margin:0 auto;padding:6px 12px}
.catalog-banner h1{font-size:13px;line-height:1.3}
.app-footer-auth a{border-color:#fff;background:#fff;color:var(--ov-brand-dark,#006b50)}
.app-footer-auth a:hover,.app-footer-auth a:focus-visible{border-color:#fff;background:#f1fffa;color:var(--ov-brand-dark,#006b50)}
@media(max-width:600px){.catalog-banner{width:min(360px,calc(100% - 20px));min-height:32px;padding:6px 10px}.catalog-banner h1{font-size:12px}}
/* Rounded catalogue banner bottom corners 20260820. */
.catalog-banner{border-radius:0 0 8px 8px}

/* Ovotus password visibility icons 20260820. */
.password-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;padding:0;border-color:#cceee4;background:#fff;color:var(--ov-brand,#00a878);font-size:16px;line-height:1}
.password-toggle i{display:block;color:inherit;font-size:16px;line-height:1}
.password-toggle:hover,.password-toggle:focus-visible{background:#e9fbf5;color:var(--ov-brand-dark,#006b50);outline:none}
/* Ovotus elevated utility popups and unified page headings 20260820. */
#search-overlay,
#notification-overlay {
  place-items: start center;
  padding: max(66px, calc(env(safe-area-inset-top) + 56px)) 16px 16px;
}
#search-overlay .app-popup,
#notification-overlay .app-popup {
  max-height: calc(100vh - 82px);
  max-height: calc(100dvh - 82px);
  margin-top: 0;
}
.public-headbar .headbar-icon-button {
  position: absolute;
  top: 50%;
  right: max(52px, calc(env(safe-area-inset-right) + 52px));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--ov-line);
  border-radius: 50%;
  background: #fff;
  color: var(--ov-brand-dark);
  cursor: pointer;
  transform: translateY(-50%);
}
.public-headbar .headbar-icon-button:hover,
.public-headbar .headbar-icon-button:focus-visible,
.public-headbar .headbar-icon-button[aria-expanded="true"] {
  border-color: var(--ov-brand);
  background: var(--ov-soft);
  outline: none;
}
[dir="rtl"] .public-headbar .headbar-icon-button {
  right: auto;
  left: max(52px, calc(env(safe-area-inset-left) + 52px));
}
.page-heading {
  padding: 24px 18px 16px;
}
.page-heading p {
  display: none;
}
.page-heading h1,
.settings-page > h1 {
  margin: 0 0 20px;
  color: var(--ov-brand-dark, #006b50);
  font-size: 24px;
  line-height: 1.25;
  text-align: center;
}
.page-heading h1 {
  margin-bottom: 0;
}
@media (max-width: 600px) {
  #search-overlay,
  #notification-overlay {
    padding: max(58px, calc(env(safe-area-inset-top) + 50px)) 10px 10px;
  }
  #search-overlay .app-popup,
  #notification-overlay .app-popup {
    max-height: calc(100vh - 68px);
    max-height: calc(100dvh - 68px);
  }
  .page-heading {
    padding: 20px 12px 14px;
  }
  .page-heading h1,
  .settings-page > h1 {
    font-size: 22px;
  }
}

/* Secure paginated reader and explicit offline access, 2026-09-01. */
.reader-headbar {
  grid-template-columns: 42px minmax(0, 1fr) 42px;
}
.reader-secure-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--ov-brand);
  font-size: 17px;
}
.reader-controls {
  grid-template-columns: 116px minmax(88px, 1fr) 116px;
}
.reader-controls button {
  width: 116px;
  min-width: 116px;
  max-width: 116px;
  padding-inline: 9px;
}
.reader-controls button:first-child { justify-self: start; }
.reader-controls button:last-child { justify-self: end; }
.reader-offline-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  width: min(800px, calc(100% - 28px));
  margin: 14px auto 0;
  padding: 12px 14px;
  border: 1px solid #cfe4df;
  border-left: 4px solid var(--ov-brand);
  background: #fff;
}
.reader-offline-panel > div {
  display: grid;
  flex: 1 1 280px;
  gap: 4px;
  min-width: 0;
}
.reader-offline-panel strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ov-brand-dark);
}
.reader-offline-panel small { color: var(--ov-muted); line-height: 1.4; }
.reader-offline-command {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--ov-brand);
  border-radius: 5px;
  background: var(--ov-brand);
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.reader-offline-command.is-open { background: #fff; color: var(--ov-brand-dark); }
.reader-offline-command[hidden] { display: none; }
.reader-status {
  min-height: 20px;
  margin: 7px auto 0;
  padding: 0 14px;
  color: var(--ov-brand-dark);
  font-size: 13px;
  text-align: center;
}
.reader-page.is-loading,
.reader-page.is-error {
  display: grid;
  place-items: center;
}
.reader-page-loader,
.reader-page-error {
  display: grid;
  justify-items: center;
  gap: 10px;
  color: var(--ov-muted);
  text-align: center;
}
.reader-page-loader i { color: var(--ov-brand); font-size: 24px; }
.reader-page,
.reader-content {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.reader-content img { -webkit-user-drag: none; user-drag: none; }
.library-offline-read-command[hidden] { display: none !important; }
.library-offline-read-command {
  border-color: #b7d9cf !important;
  color: var(--ov-brand-dark) !important;
  text-decoration: none !important;
}
@media (max-width: 600px) {
  .reader-controls { grid-template-columns: 42px minmax(92px, 1fr) 42px; }
  .reader-controls button { width: 42px; min-width: 42px; max-width: 42px; padding: 6px; }
  .reader-offline-panel { align-items: stretch; }
  .reader-offline-command { flex: 1 1 145px; }
}
@media print {
  .reader-body * { visibility: hidden !important; }
  .reader-body::after {
    content: "Protected Ovotus reading";
    visibility: visible;
    display: block;
    padding: 40px;
    text-align: center;
  }
}

/* Reader interaction protection. */
.reader-body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.reader-page{position:relative;z-index:1}.reader-content,.reader-content *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}.reader-content img{pointer-events:none;-webkit-user-drag:none;user-drag:none}.reader-body ::selection{background:transparent;color:inherit}.reader-privacy-shield{position:fixed;inset:0;z-index:10000;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;background:#f4faf7;color:#087353;text-align:center}.reader-privacy-shield[hidden]{display:none!important}.reader-privacy-shield i,.reader-shield-symbol{color:#00a86b;font-size:44px}.reader-privacy-shield strong{font-size:17px}.reader-purchase-command[hidden]{display:none!important}.reader-privacy-active .reader-headbar,.reader-privacy-active .reader-controls,.reader-privacy-active .reader-offline-panel,.reader-privacy-active .reader-status,.reader-privacy-active .reader-pages,.reader-privacy-active .reader-footer-actions{visibility:hidden!important;filter:blur(18px)!important}

.purchased-downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),480px));justify-content:center;gap:18px;width:min(1040px,100%);margin:20px auto;padding:0 14px}
.purchased-download-card{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px;padding:16px;border:1px solid var(--ov-line);border-radius:6px;background:#fff;min-width:0}
.purchased-download-cover img{display:block;width:80px;height:112px;object-fit:contain}.purchased-download-cover{display:grid;place-items:center;color:var(--ov-brand);font-size:36px}
.purchased-download-copy{display:grid;align-content:start;gap:7px;min-width:0}.purchased-download-copy h2{margin:0;color:var(--ov-brand-dark);font-size:16px;line-height:1.4;overflow-wrap:anywhere}.purchased-download-copy p{margin:0;font-size:13px}.purchased-download-copy small{color:var(--ov-muted);font-size:12px;line-height:1.5}
.purchased-download-formats{grid-column:1/-1;display:flex;justify-content:center;gap:10px}.purchased-download-formats button{min-width:100px}
.purchased-download-card .book-export-progress{grid-column:1/-1;position:relative;min-height:38px;background:var(--ov-soft);overflow:hidden;border-radius:4px}.book-export-progress>span{position:absolute;inset:0 auto 0 0;background:#c4edde}.book-export-progress>strong{position:relative;display:block;padding:10px;font-size:12px;text-align:center}.book-export-progress.is-error>strong{color:#a63c3c}
.download-notice{text-align:center;color:var(--ov-brand-dark);padding:0 14px}.checkout-back{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--ov-brand-dark);text-decoration:none;font-size:14px}
.library-offline-save-command{font-size:12px}.library-action-message.is-error{color:#a63c3c}
@media(max-width:600px){.library-actions button{width:100%}.purchased-download-card{padding:12px;gap:10px}.purchased-downloads{padding-inline:10px}}

.purchased-downloads .purchased-download-card{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:start;padding:16px;gap:14px}
.purchased-downloads .purchased-download-card>.purchased-download-formats{display:flex;justify-content:center;gap:10px}
.downloads-main .secondary-command{text-decoration:none;font-weight:600}
.purchased-downloads .book-export-progress[hidden],.library-offline-save-command[hidden]{display:none!important}
.category-heading h2.category-title-link{display:block;max-width:100%;margin:0;padding:0;border:0!important;background:transparent;color:var(--ov-ink);font:inherit;font-size:22px;font-weight:800;text-align:left;text-decoration:none!important;box-shadow:none!important;outline:0!important;cursor:pointer!important;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.category-title-link span{overflow:hidden;border:0!important;text-overflow:ellipsis;text-decoration:none!important;white-space:nowrap;cursor:pointer!important;user-select:none;-webkit-user-select:none}
.category-title-link:hover,.category-title-link:active,.category-title-link:focus,.category-title-link:focus-visible{border:0!important;color:var(--ov-ink);text-decoration:none!important;box-shadow:none!important;outline:0!important}
@media(max-width:600px){.category-heading h2.category-title-link{font-size:19px}}
