/* Open Library mobile search + registration refinement. Loaded last. */
:root{--olux-red:#DC2626;--olux-red-dark:#B91C1C;--olux-red-soft:#FFF7F7;--olux-border:#D8E0EA;--olux-text:#0F172A;--olux-muted:#64748B;}

/* ===== Site search: keep controls clean on narrow screens ===== */
@media (max-width:767px){
  html body.openlib-site-index .openlib_search_panel--primary{
    padding:10px !important;
    border-radius:12px !important;
  }
  html body.openlib-site-index .openlib_discovery__form{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:8px !important;
    width:100% !important;
  }
  html body.openlib-site-index .openlib_discovery__form > *,
  html body.openlib-site-index .openlib_discovery__query,
  html body.openlib-site-index .openlib_discovery__form select,
  html body.openlib-site-index .openlib_discovery__form button{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }
  html body.openlib-site-index .openlib_discovery__form input[type="search"],
  html body.openlib-site-index .openlib_discovery__form select,
  html body.openlib-site-index .openlib_discovery__form button{
    height:44px !important;
    border-radius:9px !important;
    font-size:13px !important;
  }
  html body.openlib-site-index .openlib_discovery__form button{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    padding:0 16px !important;
  }
  html body.openlib-site-index .openlib_discovery__form button .fa{
    margin:0 !important;
  }
  html body.openlib-site-index .openlib_discovery__meta{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:6px 10px !important;
    margin:8px 2px 0 !important;
    font-size:10.5px !important;
    line-height:1.35 !important;
  }
  html body.openlib-site-index .openlib_discovery__meta > span:last-child{
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }
  html body.openlib-site-index.openlib-search-is-fixed .openlib_search_panel--primary{
    left:12px !important;
    width:calc(100% - 24px) !important;
    max-width:calc(100% - 24px) !important;
    padding:9px !important;
  }
  html body.openlib-site-index.openlib-search-is-fixed .openlib_discovery__meta{
    display:none !important;
  }
}

/* Very small phones: keep the sticky search short and readable. */
@media (max-width:420px){
  html body.openlib-site-index .openlib_discovery__form input[type="search"],
  html body.openlib-site-index .openlib_discovery__form select,
  html body.openlib-site-index .openlib_discovery__form button{
    height:42px !important;
    font-size:12.5px !important;
  }
  html body.openlib-site-index.openlib-search-is-fixed .openlib_discovery__form{
    gap:6px !important;
  }
}

/* ===== Search results page: mobile form should not squeeze controls ===== */
@media (max-width:767px){
  html body .openlib_search_page{
    padding-left:0 !important;
    padding-right:0 !important;
  }
  html body .openlib_search_form{
    padding:12px !important;
    border-radius:12px !important;
  }
  html body .openlib_search_form__primary,
  html body .openlib_search_form__primary.has_journal_filter{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:8px !important;
    grid-template-columns:none !important;
  }
  html body .openlib_search_form__query,
  html body .openlib_search_form__journal,
  html body .openlib_search_form__primary select,
  html body .openlib_search_form__submit{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }
  html body .openlib_search_form__primary input,
  html body .openlib_search_form__primary select,
  html body .openlib_search_form__submit{
    height:44px !important;
    font-size:13px !important;
  }
  html body .openlib_search_form__submit{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
  }
  html body .openlib_search_results_header{
    align-items:flex-start !important;
    gap:10px !important;
  }
  html body .openlib_search_results_count{
    flex:0 0 auto !important;
  }
}

/* ===== Registration page ===== */
html body.openlib-site-page .page_register{
  box-sizing:border-box !important;
  width:min(920px,calc(100% - 32px)) !important;
  max-width:920px !important;
  margin:8px auto 36px !important;
  padding:30px 32px 34px !important;
  border:1px solid #E2E8F0 !important;
  border-top:3px solid var(--olux-red) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 12px 34px rgba(15,23,42,.055) !important;
}
html body.openlib-site-page .page_register > h1{
  margin:0 0 8px !important;
  color:var(--olux-text) !important;
  font-size:28px !important;
  font-weight:800 !important;
  letter-spacing:-.03em !important;
}
html body.openlib-site-page .page_register > p,
html body.openlib-site-page .page_register .required_label{
  margin:0 0 22px !important;
  color:var(--olux-muted) !important;
  font-size:12.5px !important;
  line-height:1.55 !important;
}
html body.openlib-site-page .page_register form,
html body.openlib-site-page .page_register .cmp_form{
  width:100% !important;
  margin:0 !important;
}
html body.openlib-site-page .page_register fieldset{
  box-sizing:border-box !important;
  min-width:0 !important;
  margin:0 0 18px !important;
  padding:18px !important;
  border:1px solid #E5EAF0 !important;
  border-radius:12px !important;
  background:#FBFCFE !important;
}
html body.openlib-site-page .page_register fieldset > legend{
  padding:0 7px !important;
  color:var(--olux-text) !important;
  background:#fff !important;
  font-size:13.5px !important;
  font-weight:800 !important;
  line-height:1.3 !important;
}
html body.openlib-site-page .page_register .fields,
html body.openlib-site-page .page_register .identity,
html body.openlib-site-page .page_register .login{
  box-sizing:border-box !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
html body.openlib-site-page .page_register .fields > div,
html body.openlib-site-page .page_register .fields > li,
html body.openlib-site-page .page_register .identity > li,
html body.openlib-site-page .page_register .login > li{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 0 16px !important;
}
html body.openlib-site-page .page_register label{
  color:#334155 !important;
  font-size:12.5px !important;
  line-height:1.45 !important;
}
html body.openlib-site-page .page_register label > .label,
html body.openlib-site-page .page_register .label{
  margin-bottom:7px !important;
  color:#334155 !important;
  font-size:12.5px !important;
  font-weight:750 !important;
  line-height:1.4 !important;
}
html body.openlib-site-page .page_register input:not([type="checkbox"]):not([type="radio"]),
html body.openlib-site-page .page_register select,
html body.openlib-site-page .page_register textarea{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-height:46px !important;
  margin:0 !important;
  padding:10px 14px !important;
  border:1px solid var(--olux-border) !important;
  border-radius:9px !important;
  background:#fff !important;
  color:var(--olux-text) !important;
  font:500 13.5px/1.4 "Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  box-shadow:none !important;
}
html body.openlib-site-page .page_register textarea{min-height:110px !important;resize:vertical !important;}
html body.openlib-site-page .page_register input:focus,
html body.openlib-site-page .page_register select:focus,
html body.openlib-site-page .page_register textarea:focus{
  border-color:var(--olux-red) !important;
  outline:0 !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10) !important;
}
html body.openlib-site-page .page_register input[type="checkbox"],
html body.openlib-site-page .page_register input[type="radio"]{
  flex:0 0 auto !important;
  width:16px !important;
  height:16px !important;
  margin:2px 0 0 !important;
  accent-color:var(--olux-red) !important;
}

/* Journal registration selection: card-like blocks instead of a long raw list. */
html body.openlib-site-page .page_register .context_optin{
  margin-top:4px !important;
}
html body.openlib-site-page .page_register .context_optin .contexts{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
  margin:10px 0 0 !important;
  padding:0 !important;
  list-style:none !important;
}
html body.openlib-site-page .page_register .context_optin .contexts > li{
  box-sizing:border-box !important;
  min-width:0 !important;
  margin:0 !important;
  padding:12px 13px !important;
  border:1px solid #E2E8F0 !important;
  border-radius:10px !important;
  background:#fff !important;
}
html body.openlib-site-page .page_register .context_optin .contexts > li:hover{
  border-color:#FCA5A5 !important;
  background:#FFF9F9 !important;
}
html body.openlib-site-page .page_register .context_optin .contexts > li > label,
html body.openlib-site-page .page_register .context_optin .roles label,
html body.openlib-site-page .page_register .consent label,
html body.openlib-site-page .page_register .optin label{
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  margin:0 !important;
}
html body.openlib-site-page .page_register .context_optin .roles{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px 12px !important;
  margin:10px 0 0 24px !important;
  padding:8px 0 0 !important;
  border-top:1px dashed #E2E8F0 !important;
}
html body.openlib-site-page .page_register .context_optin .roles label{
  font-size:11.5px !important;
}
html body.openlib-site-page .page_register .context_privacy,
html body.openlib-site-page .page_register .context_privacy_visible{
  margin:8px 0 0 24px !important;
  padding:8px 10px !important;
  border-radius:8px !important;
  background:#F8FAFC !important;
  color:var(--olux-muted) !important;
  font-size:11.5px !important;
  line-height:1.55 !important;
}
html body.openlib-site-page .page_register .buttons{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  margin:20px 0 0 !important;
  padding:0 !important;
}
html body.openlib-site-page .page_register .buttons button,
html body.openlib-site-page .page_register .buttons .submit,
html body.openlib-site-page .page_register input[type="submit"]{
  box-sizing:border-box !important;
  min-width:150px !important;
  height:44px !important;
  margin:0 !important;
  padding:0 18px !important;
  border:1px solid var(--olux-red) !important;
  border-radius:9px !important;
  background:var(--olux-red) !important;
  color:#fff !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:none !important;
}
html body.openlib-site-page .page_register .buttons button:hover,
html body.openlib-site-page .page_register .buttons button:focus,
html body.openlib-site-page .page_register input[type="submit"]:hover,
html body.openlib-site-page .page_register input[type="submit"]:focus{
  border-color:var(--olux-red-dark) !important;
  background:var(--olux-red-dark) !important;
  outline:0 !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10) !important;
}

/* Captcha should never overflow narrow registration cards. */
html body.openlib-site-page .page_register .g-recaptcha,
html body.openlib-site-page .page_register iframe{
  max-width:100% !important;
}

@media (max-width:767px){
  html body.openlib-site-page .page_register{
    width:calc(100% - 24px) !important;
    margin:10px auto 28px !important;
    padding:22px 16px 26px !important;
    border-radius:14px !important;
  }
  html body.openlib-site-page .page_register > h1{
    font-size:24px !important;
  }
  html body.openlib-site-page .page_register fieldset{
    padding:14px !important;
    border-radius:10px !important;
  }
  html body.openlib-site-page .page_register .context_optin .contexts{
    grid-template-columns:1fr !important;
  }
  html body.openlib-site-page .page_register .context_optin .roles{
    margin-left:0 !important;
  }
  html body.openlib-site-page .page_register .context_privacy,
  html body.openlib-site-page .page_register .context_privacy_visible{
    margin-left:0 !important;
  }
  html body.openlib-site-page .page_register .buttons{
    flex-direction:column !important;
  }
  html body.openlib-site-page .page_register .buttons button,
  html body.openlib-site-page .page_register .buttons .submit,
  html body.openlib-site-page .page_register input[type="submit"]{
    width:100% !important;
    min-width:0 !important;
  }
}

/* Dark mode */
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register{
  border-color:#334155 !important;
  border-top-color:#DC2626 !important;
  background:#111827 !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register > h1,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register fieldset > legend,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register label,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .label{
  color:#F8FAFC !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register fieldset,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .contexts > li{
  border-color:#334155 !important;
  background:#0F172A !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register input:not([type="checkbox"]):not([type="radio"]),
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register select,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register textarea{
  border-color:#475569 !important;
  background:#0B1220 !important;
  color:#F8FAFC !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_privacy,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_privacy_visible{
  background:#111827 !important;
  color:#94A3B8 !important;
}

/* ===== Registration journal cards: Open Library theme-only cleanup =====
   Keep nested role fieldsets from inheriting the large form-fieldset style. */
html body.openlib-site-page .page_register .context_optin .contexts > li.openlib_register_context{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  min-height:0 !important;
  padding:14px 15px !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context__name{
  min-height:38px !important;
  margin:0 !important;
  color:var(--olux-text) !important;
  font-size:12.75px !important;
  font-weight:800 !important;
  line-height:1.45 !important;
}
html body.openlib-site-page .page_register .context_optin fieldset.openlib_register_context__roles{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:7px 8px !important;
  min-width:0 !important;
  margin:10px 0 0 !important;
  padding:10px 0 0 !important;
  border:0 !important;
  border-top:1px solid #E8EDF3 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
/* The core legend is useful for accessibility but should not become a visual
   pill/card because of the generic registration fieldset rules. */
html body.openlib-site-page .page_register .context_optin fieldset.openlib_register_context__roles > legend{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:-1px !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context__roles label{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:32px !important;
  margin:0 !important;
  padding:6px 9px !important;
  border:1px solid #E2E8F0 !important;
  border-radius:8px !important;
  background:#F8FAFC !important;
  color:#334155 !important;
  font-size:11.5px !important;
  font-weight:650 !important;
  line-height:1.25 !important;
  cursor:pointer !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context__roles label:hover{
  border-color:#FCA5A5 !important;
  background:#FFF7F7 !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context__roles input[type="checkbox"]{
  margin:0 !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy,
html body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy_visible{
  box-sizing:border-box !important;
  width:100% !important;
  margin:9px 0 0 !important;
  padding:9px 10px !important;
  border:1px solid #EEF2F6 !important;
  border-radius:8px !important;
  background:#F8FAFC !important;
}
html body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy label,
html body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy_visible label{
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  margin:0 !important;
}
@media (max-width:767px){
  html body.openlib-site-page .page_register .context_optin .openlib_register_context__name{
    min-height:0 !important;
  }
  html body.openlib-site-page .page_register .context_optin fieldset.openlib_register_context__roles{
    margin-top:9px !important;
  }
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .openlib_register_context__name{
  color:#F8FAFC !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin fieldset.openlib_register_context__roles{
  border-top-color:#334155 !important;
  background:transparent !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .openlib_register_context__roles label{
  border-color:#334155 !important;
  background:#111827 !important;
  color:#E2E8F0 !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .openlib_register_context__roles label:hover{
  border-color:#7F1D1D !important;
  background:#1F1115 !important;
}
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register .context_optin .openlib_register_context .context_privacy_visible{
  border-color:#273449 !important;
  background:#111827 !important;
}

/* ===== Registration field-label spacing v2 =====
   Keep section legends (Profile/Login) visually separate from the first
   field label and normalize label/input alignment across the form. */
html body.openlib-site-page .page_register fieldset.identity > .fields,
html body.openlib-site-page .page_register fieldset.login > .fields{
  box-sizing:border-box !important;
  padding-top:10px !important;
}
html body.openlib-site-page .page_register fieldset.identity > .fields > div,
html body.openlib-site-page .page_register fieldset.login > .fields > div{
  box-sizing:border-box !important;
  margin:0 !important;
  padding:0 0 17px !important;
}
html body.openlib-site-page .page_register fieldset.identity > .fields > div:last-child,
html body.openlib-site-page .page_register fieldset.login > .fields > div:last-child{
  padding-bottom:0 !important;
}
html body.openlib-site-page .page_register fieldset.identity > .fields > div > label,
html body.openlib-site-page .page_register fieldset.login > .fields > div > label{
  display:block !important;
  width:100% !important;
  margin:0 !important;
}
html body.openlib-site-page .page_register fieldset.identity > .fields > div > label > .label,
html body.openlib-site-page .page_register fieldset.login > .fields > div > label > .label{
  display:block !important;
  margin:0 0 7px !important;
  padding:0 !important;
  color:#334155 !important;
  font-size:12.5px !important;
  font-weight:750 !important;
  line-height:1.35 !important;
}
html body.openlib-site-page .page_register fieldset.identity > legend,
html body.openlib-site-page .page_register fieldset.login > legend{
  margin:0 !important;
  padding:0 8px !important;
  line-height:1.35 !important;
}

@media (max-width:767px){
  html body.openlib-site-page .page_register fieldset.identity > .fields,
  html body.openlib-site-page .page_register fieldset.login > .fields{
    padding-top:9px !important;
  }
}

html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register fieldset.identity > .fields > div > label > .label,
html[data-openlib-color-mode="dark"] body.openlib-site-page .page_register fieldset.login > .fields > div > label > .label{
  color:#F8FAFC !important;
}
