/* FPPTI Jabar Theme 1.5.0 — compact publisher portal */
:root {
  --ol-red:#004AAC;
  --ol-red-dark:#003F94;
  --ol-red-deep:#00357D;
  --ol-red-soft:#EFF6FF;
  --ol-red-faint:#F8FAFF;
  --ol-navy:#0F172A;
  --ol-slate:#334155;
  --ol-muted:#64748B;
  --ol-line:#E2E8F0;
  --ol-line-strong:#CBD5E1;
  --ol-canvas:#F8FAFC;
  --ol-surface:#FFFFFF;
  --ol-amber:#2C72D4;
  --ol-shell:1120px;
  --ol-radius:12px;
  --ol-shadow:0 8px 28px rgba(15,23,42,.055);
}

html,body,button,input,select,textarea { font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important; }
body { background:var(--ol-canvas) !important; color:var(--ol-navy) !important; }

/* ===== Site header — custom markup, no floating OJS positioning ===== */
.openlib_site_header {
  border-top:3px solid var(--ol-red) !important;
  border-bottom:1px solid var(--ol-line) !important;
  background:#fff !important;
  box-shadow:0 1px 0 rgba(15,23,42,.02) !important;
}
.openlib_site_shell { width:var(--ol-shell); max-width:calc(100% - 32px); margin:0 auto; }
.openlib_site_header__utility { background:#F8FAFC; border-bottom:1px solid #EEF2F6; }
.openlib_site_header__utility_inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.openlib_site_header__institution { display:flex; align-items:center; gap:8px; min-width:0; color:#64748B; font-size:11px; font-weight:600; white-space:nowrap; }
.openlib_site_header__dot { width:7px; height:7px; border-radius:50%; background:var(--ol-red); box-shadow:0 0 0 3px rgba(0,74,172,.08); }
.openlib_site_header__divider { width:1px; height:12px; background:#CBD5E1; }
.openlib_site_header__account .pkp_navigation_user { width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; display:flex; align-items:center; gap:4px; font-size:11px !important; }
.openlib_site_header__account .pkp_navigation_user > li { display:block; }
.openlib_site_header__account .pkp_navigation_user > li > a { margin:0 !important; padding:5px 8px !important; border:0 !important; background:transparent !important; color:#475569 !important; font-weight:700 !important; line-height:1.2 !important; }
.openlib_site_header__account .pkp_navigation_user > li > a:hover,.openlib_site_header__account .pkp_navigation_user > li > a:focus { color:var(--ol-red) !important; }

.openlib_site_header__main { background:#fff; }
.openlib_site_header__main_inner { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:28px; position:relative; }
.openlib_site_brand { min-width:0; }
.openlib_site_brand__text { display:flex; align-items:center; gap:11px; color:var(--ol-navy) !important; text-decoration:none !important; }
.openlib_site_brand__mark { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:var(--ol-red); color:#fff; font-size:16px; box-shadow:0 6px 14px rgba(0,74,172,.16); }
.openlib_site_brand__text strong { display:block; max-width:520px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ol-navy); font-size:16px; font-weight:800; letter-spacing:-.02em; }
.openlib_site_brand__text small { display:block; margin-top:2px; color:#94A3B8; font-size:9.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; }
.openlib_site_brand__logo img { display:block; max-height:46px; width:auto; }
.openlib_site_nav_menu { position:static !important; width:auto !important; margin:0 !important; padding:0 !important; background:transparent !important; }
.openlib_site_nav_menu .pkp_navigation_primary { display:flex; align-items:center; margin:0 !important; padding:0 !important; }
.openlib_site_nav_menu .pkp_navigation_primary > li > a { margin:0 0 0 18px !important; padding:9px 0 !important; border:0 !important; background:transparent !important; color:#475569 !important; font-size:11.5px !important; font-weight:700 !important; }
.openlib_site_nav_menu .pkp_navigation_primary > li > a:hover,.openlib_site_nav_menu .pkp_navigation_primary > li > a:focus { color:var(--ol-red) !important; }
.openlib_site_nav_toggle { display:none; }

/* ===== Compact site shell ===== */
.openlib-site-index .pkp_structure_content { width:var(--ol-shell) !important; max-width:calc(100% - 32px) !important; margin:0 auto !important; padding:0 !important; }
.openlib-site-index .pkp_structure_main { float:none !important; width:100% !important; margin:0 !important; padding:24px 0 60px !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
.openlib-site-index .pkp_structure_sidebar { display:none !important; }
.openlib-site-index .pkp_structure_main:before,.openlib-site-index .pkp_structure_main:after { display:none !important; }
.openlib_portal_home { width:100%; max-width:100%; }

/* ===== Intro: editorial, simple, not a hero card ===== */
.openlib_portal_intro { margin:0 0 12px; padding:4px 2px 12px; border:0; background:transparent; }
.openlib_portal_intro__copy { max-width:780px; }
.openlib_portal_intro__eyebrow { display:flex; align-items:center; gap:8px; margin:0 0 7px; color:var(--ol-red); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.openlib_portal_intro__eyebrow:before { width:24px; height:2px; background:var(--ol-red); content:""; }
.openlib_portal_intro h1 { margin:0 0 7px !important; color:var(--ol-navy); font-size:24px !important; line-height:1.25 !important; font-weight:800 !important; letter-spacing:-.03em; }
.openlib_portal_intro p,.openlib_portal_about { margin:0 !important; color:var(--ol-muted); font-size:12.5px; line-height:1.65; }
.openlib_portal_about { margin-top:6px !important; }
.openlib_portal_about p { margin:.18rem 0 !important; }

/* ===== Cross-journal search ===== */
.openlib_search_panel { margin:0 0 26px; padding:10px; border:1px solid #DBEAFE; border-radius:11px; background:#fff; box-shadow:0 4px 18px rgba(15,23,42,.035); }
.openlib_discovery__form { display:grid; grid-template-columns:minmax(0,1fr) 205px 132px; gap:8px; align-items:center; margin:0 !important; }
.openlib_discovery__query { position:relative; min-width:0; }
.openlib_discovery__query>.fa { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#94A3B8; z-index:2; }
.openlib_discovery__form input[type="search"],.openlib_discovery__form select { width:100% !important; height:40px !important; margin:0 !important; border:1px solid #D7DEE7 !important; border-radius:8px !important; background:#fff !important; color:#0F172A !important; font-size:11.5px !important; box-shadow:none !important; }
.openlib_discovery__form input[type="search"] { padding:0 12px 0 36px !important; }
.openlib_discovery__form select { padding:0 9px !important; }
.openlib_discovery__form input:focus,.openlib_discovery__form select:focus { border-color:#60A5FA !important; outline:3px solid rgba(0,74,172,.075) !important; }
.openlib_discovery__form button { height:40px !important; margin:0 !important; padding:0 12px !important; border:1px solid var(--ol-red) !important; border-radius:8px !important; background:var(--ol-red) !important; color:#fff !important; font-size:10.5px !important; font-weight:800 !important; cursor:pointer; }
.openlib_discovery__form button:hover,.openlib_discovery__form button:focus { background:var(--ol-red-dark) !important; border-color:var(--ol-red-dark) !important; }
.openlib_discovery__meta { display:flex; flex-wrap:wrap; gap:5px 14px; margin-top:8px; padding:0 2px; color:#94A3B8; font-size:9.8px; }
.openlib_discovery__meta strong { color:#334155; }

/* ===== Browse controls ===== */
.openlib_journal_tools { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:0 0 13px; padding-bottom:10px; border-bottom:1px solid var(--ol-line); }
.openlib_journal_tools__eyebrow { display:block; margin-bottom:3px; color:var(--ol-red); font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.openlib_journal_tools h2 { margin:0 !important; color:var(--ol-navy); font-size:18px !important; line-height:1.3 !important; font-weight:800 !important; }
.openlib_journal_count { margin:2px 0 0 !important; color:#94A3B8; font-size:9.8px; }
.openlib_journal_filter { position:relative; width:230px; }
.openlib_journal_filter .fa { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:#94A3B8; z-index:2; }
.openlib_journal_filter input[type="search"] { width:100% !important; height:36px !important; margin:0 !important; padding:0 10px 0 31px !important; border:1px solid #D7DEE7 !important; border-radius:8px !important; background:#fff !important; color:#334155 !important; font-size:10.5px !important; }

/* ===== Journal cards: 3 columns, cover left, info right, dashed footer ===== */
.pkp_page_index .journals > .openlib_journal_grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px !important; margin:0 !important; padding:0 !important; list-style:none !important; }
.pkp_page_index .openlib_journal_card { position:relative; display:flex !important; flex-direction:column; min-width:0; min-height:210px; margin:0 !important; padding:0 !important; overflow:hidden; border:1px solid var(--ol-line) !important; border-radius:10px !important; background:#fff !important; box-shadow:0 2px 10px rgba(15,23,42,.025) !important; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.pkp_page_index .openlib_journal_card:before { position:absolute; top:0; left:0; width:3px; height:100%; background:linear-gradient(180deg,var(--ol-red) 0%,var(--ol-red-deep) 100%); content:""; }
.pkp_page_index .openlib_journal_card:hover { transform:translateY(-2px); border-color:#CBD5E1 !important; box-shadow:var(--ol-shadow) !important; }
.openlib_journal_main { display:grid; grid-template-columns:78px minmax(0,1fr); gap:11px; min-height:158px; padding:13px 12px 11px 14px; }
.openlib_journal_media { display:flex; align-items:flex-start; justify-content:center; }
.openlib_journal_media a { display:flex; align-items:center; justify-content:center; width:78px; height:108px; overflow:hidden; border:1px solid #E2E8F0; border-radius:6px; background:#F8FAFF; }
.openlib_journal_media img { display:block; width:auto !important; max-width:74px !important; height:102px !important; max-height:102px !important; object-fit:contain; }
.openlib_journal_placeholder { color:var(--ol-red); font-size:27px; text-decoration:none; }
.openlib_journal_content { min-width:0; padding-top:1px; }
.openlib_journal_content h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:0 0 6px !important; min-height:35px !important; color:var(--ol-navy); font-size:11.6px !important; line-height:1.5 !important; font-weight:800 !important; letter-spacing:-.012em; }
.openlib_journal_content h3 a { color:var(--ol-navy) !important; text-decoration:none !important; }
.openlib_journal_content h3 a:hover,.openlib_journal_content h3 a:focus { color:var(--ol-red) !important; }
.openlib_journal_slug { display:inline-flex; max-width:100%; margin:0 0 6px; padding:2px 6px; overflow:hidden; border:1px solid #BFDBFE; border-radius:999px; background:var(--ol-red-soft); color:var(--ol-red-deep); font-size:8.7px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.openlib_journal_content .description { display:-webkit-box !important; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:0 !important; color:var(--ol-muted) !important; font-size:9.9px !important; line-height:1.55 !important; }
.openlib_journal_content .description p { margin:0 !important; }
.openlib_journal_footer { min-height:44px; margin-top:auto; padding:7px 10px 9px 14px; border-top:1px dashed #C9D1DC; background:#FCFDFE; }
.openlib_journal_actions { display:grid !important; grid-template-columns:1fr 1fr; gap:6px; width:100%; margin:0 !important; padding:0 !important; list-style:none !important; }
.openlib_journal_actions li { margin:0 !important; }
.openlib_journal_actions a { display:flex !important; align-items:center; justify-content:center; width:100%; min-height:29px; padding:0 6px !important; border-radius:6px; font-size:8.9px !important; font-weight:800 !important; line-height:1 !important; text-decoration:none !important; white-space:nowrap; }
.openlib_journal_actions .current a { border:1px solid #CBD5E1 !important; background:#fff !important; color:#334155 !important; }
.openlib_journal_actions .current a:hover,.openlib_journal_actions .current a:focus { border-color:#93C5FD !important; background:var(--ol-red-soft) !important; color:var(--ol-red-deep) !important; }
.openlib_journal_actions .view a { border:1px solid var(--ol-red) !important; background:var(--ol-red) !important; color:#fff !important; }
.openlib_journal_actions .view a:hover,.openlib_journal_actions .view a:focus { border-color:var(--ol-red-dark) !important; background:var(--ol-red-dark) !important; }
.openlib_journal_empty { padding:18px; border:1px dashed #CBD5E1; border-radius:9px; background:#fff; color:#64748B; text-align:center; }

/* Hide old site-index styling that can leak in from the default theme. */
.openlib-site-index .pkp_page_index .journals>ul>li { margin:0 !important; padding:0 !important; border-top:0 !important; }
.openlib-site-index .pkp_page_index .journals .thumb,.openlib-site-index .pkp_page_index .journals .thumb+.body { float:none !important; width:auto !important; padding:0 !important; }

@media (max-width:1099px) {
  .pkp_page_index .journals > .openlib_journal_grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .openlib_site_shell,.openlib-site-index .pkp_structure_content { max-width:calc(100% - 20px) !important; }
  .openlib_site_header__institution span:last-child,.openlib_site_header__divider { display:none; }
  .openlib_site_header__main_inner { min-height:58px; }
  .openlib_site_brand__text strong { max-width:230px; font-size:14px; }
  .openlib_site_brand__text small { display:none; }
  .openlib_site_nav_toggle { display:block; position:absolute; right:0; left:auto; top:11px; width:36px; height:36px; }
  .openlib_site_nav_menu { display:none; position:absolute !important; top:54px !important; right:0; left:0; width:100% !important; padding:10px !important; border:1px solid var(--ol-line); border-radius:8px; background:#fff !important; box-shadow:var(--ol-shadow); z-index:1000; }
  .openlib_site_nav_menu.pkp_site_nav_menu--isOpen { display:block; }
  .openlib_site_nav_menu .pkp_navigation_primary { display:block; }
  .openlib_site_nav_menu .pkp_navigation_primary>li { display:block; }
  .openlib_site_nav_menu .pkp_navigation_primary>li>a { display:block; margin:0 !important; padding:8px 6px !important; }
  .openlib-site-index .pkp_structure_main { padding-top:18px !important; }
  .openlib_portal_intro h1 { font-size:20px !important; }
  .openlib_search_panel { padding:8px; }
  .openlib_discovery__form { grid-template-columns:1fr; }
  .openlib_journal_tools { align-items:stretch; flex-direction:column; }
  .openlib_journal_filter { width:100%; }
  .pkp_page_index .journals > .openlib_journal_grid { grid-template-columns:1fr; }
}

/* =========================================================
 * FPPTI Jabar Theme 1.5.1 — readability + alignment polish
 * ========================================================= */

/* Accessibility helpers: hidden visually, visible on keyboard focus only. */
.pkp_screen_reader,
.cmp_skip_to_content a {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.cmp_skip_to_content a:focus {
  position:fixed !important;
  top:12px !important;
  left:12px !important;
  z-index:99999 !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:10px 14px !important;
  clip:auto !important;
  overflow:visible !important;
  white-space:normal !important;
  border:2px solid var(--ol-red) !important;
  border-radius:8px !important;
  background:#fff !important;
  color:var(--ol-red) !important;
  font-size:13px !important;
  font-weight:700 !important;
  box-shadow:0 8px 24px rgba(15,23,42,.12) !important;
}

/* Plus Jakarta Sans reads smaller than many UI fonts. Use a proper portal scale. */
.openlib-site-index { font-size:15px; }
.openlib_site_header__institution { font-size:12px; }
.openlib_site_header__account .pkp_navigation_user { font-size:12.5px !important; }
.openlib_site_header__account .pkp_navigation_user > li > a { padding:6px 9px !important; font-size:12.5px !important; }
.openlib_site_brand__text strong { font-size:18px; line-height:1.25; }
.openlib_site_brand__text small { font-size:10.5px; }
.openlib_site_nav_menu .pkp_navigation_primary > li > a { font-size:13.5px !important; }

.openlib-site-index .pkp_structure_main { padding-top:28px !important; }
.openlib_portal_intro { margin-bottom:16px; }
.openlib_portal_intro__copy { max-width:850px; }
.openlib_portal_intro__eyebrow { font-size:11.5px; margin-bottom:8px; }
.openlib_portal_intro h1 { font-size:30px !important; line-height:1.22 !important; margin-bottom:9px !important; }
.openlib_portal_intro p,.openlib_portal_about { font-size:14.5px; line-height:1.7; }

/* Search: one clean row. Hidden accessibility labels no longer break the grid. */
.openlib_search_panel { margin-bottom:30px; padding:14px; border-radius:12px; }
.openlib_discovery__form { grid-template-columns:minmax(0,1fr) 220px 150px; gap:10px; }
.openlib_discovery__form input[type="search"],
.openlib_discovery__form select { height:46px !important; font-size:13.5px !important; border-radius:9px !important; }
.openlib_discovery__form input[type="search"] { padding-left:39px !important; }
.openlib_discovery__query>.fa { left:14px; font-size:14px; }
.openlib_discovery__form button { height:46px !important; padding:0 16px !important; border-radius:9px !important; font-size:12.5px !important; }
.openlib_discovery__meta { margin-top:10px; font-size:11.5px; gap:6px 16px; }

/* Browse controls */
.openlib_journal_tools { margin-bottom:16px; padding-bottom:12px; }
.openlib_journal_tools__eyebrow { font-size:10.5px; }
.openlib_journal_tools h2 { font-size:22px !important; }
.openlib_journal_count { font-size:11.5px; }
.openlib_journal_filter { width:255px; }
.openlib_journal_filter input[type="search"] { height:40px !important; font-size:12.5px !important; padding-left:34px !important; }
.openlib_journal_filter .fa { left:12px; font-size:12px; }

/* Journal cards: larger type, more breathing room, inset actions. */
.pkp_page_index .journals > .openlib_journal_grid { gap:16px !important; }
.pkp_page_index .openlib_journal_card { min-height:244px; border-radius:12px !important; }
.openlib_journal_main { grid-template-columns:88px minmax(0,1fr); gap:14px; min-height:184px; padding:16px 15px 13px 17px; }
.openlib_journal_media a { width:88px; height:124px; border-radius:7px; }
.openlib_journal_media img { max-width:84px !important; height:118px !important; max-height:118px !important; }
.openlib_journal_content h3 { min-height:42px !important; margin-bottom:7px !important; font-size:13.2px !important; line-height:1.55 !important; }
.openlib_journal_slug { margin-bottom:7px; padding:3px 7px; font-size:10px; }
.openlib_journal_content .description { -webkit-line-clamp:4; font-size:11.4px !important; line-height:1.58 !important; }
.openlib_journal_footer { min-height:58px; padding:11px 15px 13px 17px; background:#FAFBFC; }
.openlib_journal_actions { gap:8px; }
.openlib_journal_actions a { min-height:36px; padding:0 10px !important; border-radius:7px; font-size:11.2px !important; }

/* Publisher footer */
.openlib_site_footer {
  margin-top:8px;
  border-top:3px solid var(--ol-red) !important;
  background:#0F172A !important;
  color:#CBD5E1;
}
.openlib_site_footer__inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding:28px 0 22px;
}
.openlib_site_footer__brand { display:flex; align-items:center; gap:13px; min-width:0; }
.openlib_site_footer__mark { display:flex; align-items:center; justify-content:center; width:42px; height:42px; flex:0 0 42px; border-radius:10px; background:var(--ol-red); color:#fff; font-size:18px; }
.openlib_site_footer__brand strong { display:block; color:#fff; font-size:15px; line-height:1.35; font-weight:800; }
.openlib_site_footer__brand span:not(.openlib_site_footer__mark) { display:block; margin-top:3px; color:#94A3B8; font-size:12px; line-height:1.45; }
.openlib_site_footer__meta { display:flex; align-items:center; justify-content:flex-end; gap:18px; color:#94A3B8; font-size:12px; text-align:right; }
.openlib_site_footer__custom { max-width:520px; }
.openlib_site_footer__custom p { margin:0 !important; }
.openlib_site_footer__custom a,
.openlib_site_footer__ojs { color:#E2E8F0 !important; text-decoration:none !important; font-weight:700; }
.openlib_site_footer__custom a:hover,
.openlib_site_footer__ojs:hover { color:#fff !important; }
.openlib_site_footer__bottom { display:flex; justify-content:space-between; gap:20px; padding:14px 0 18px; border-top:1px solid rgba(148,163,184,.18); color:#64748B; font-size:11px; }

/* Journal-context default footer: cleaner even when not on publisher index. */
.pkp_structure_footer_wrapper:not(.openlib_site_footer) { border-top:3px solid var(--ol-red); background:#0F172A !important; color:#CBD5E1; }
.pkp_structure_footer_wrapper:not(.openlib_site_footer) .pkp_footer_content { color:#CBD5E1; font-size:13px; line-height:1.65; }
.pkp_structure_footer_wrapper:not(.openlib_site_footer) .pkp_footer_content a { color:#fff; }
.pkp_structure_footer_wrapper:not(.openlib_site_footer) .pkp_brand_footer { border-top:1px solid rgba(148,163,184,.16); }

@media (max-width:1099px) {
  .openlib_discovery__form { grid-template-columns:minmax(0,1fr) 190px 140px; }
  .openlib_journal_content h3 { font-size:13px !important; }
}
@media (max-width:767px) {
  .openlib-site-index { font-size:14px; }
  .openlib_site_header__institution { font-size:11.5px; }
  .openlib_site_brand__text strong { font-size:16px; }
  .openlib_portal_intro h1 { font-size:24px !important; }
  .openlib_portal_intro p,.openlib_portal_about { font-size:13.5px; }
  .openlib_discovery__form { grid-template-columns:1fr; }
  .openlib_discovery__form input[type="search"],.openlib_discovery__form select,.openlib_discovery__form button { height:44px !important; }
  .openlib_journal_filter { width:100%; }
  .openlib_journal_main { grid-template-columns:82px minmax(0,1fr); gap:12px; padding:14px; }
  .openlib_journal_media a { width:82px; height:114px; }
  .openlib_journal_media img { max-width:78px !important; height:108px !important; max-height:108px !important; }
  .openlib_journal_content h3 { min-height:0 !important; font-size:13px !important; }
  .openlib_journal_footer { padding:10px 14px 12px; }
  .openlib_journal_actions a { min-height:38px; font-size:11.5px !important; }
  .openlib_site_footer__inner,.openlib_site_footer__bottom { align-items:flex-start; flex-direction:column; }
  .openlib_site_footer__meta { align-items:flex-start; flex-direction:column; text-align:left; }
}

/* =========================================================
 * FPPTI Jabar Theme 1.6.0 — refinement release
 * ========================================================= */

/* Site-level pages share the compact publisher shell. */
.openlib-site-page .pkp_structure_content {
  width:var(--ol-shell) !important;
  max-width:calc(100% - 32px) !important;
  margin:0 auto !important;
  padding:0 !important;
}
.openlib-site-page .pkp_structure_main {
  float:none !important;
  width:100% !important;
  margin:0 !important;
  padding:28px 0 56px !important;
  border:0 !important;
  background:transparent !important;
}
.openlib-site-page .pkp_structure_main:before,
.openlib-site-page .pkp_structure_main:after { display:none !important; }
.openlib-site-page .pkp_structure_sidebar { display:none !important; }

/* Utility header: backlink area + account navigation. */
.openlib_site_header__right { display:flex; align-items:center; gap:10px; min-width:0; }
.openlib_site_header__backlinks { display:flex; align-items:center; gap:4px; }
.openlib_site_header__backlinks a {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 8px;
  border-radius:7px;
  color:#64748B !important;
  font-size:11.5px;
  font-weight:700;
  text-decoration:none !important;
}
.openlib_site_header__backlinks a:hover,
.openlib_site_header__backlinks a:focus { background:#EFF6FF; color:var(--ol-red) !important; }
.openlib_site_header__main_inner { min-height:72px; }
.openlib_site_brand__text strong { font-size:19px; }
.openlib_site_brand__text small { font-size:10px; }
.openlib_site_nav_menu .pkp_navigation_primary > li > a { font-size:13px !important; }

/* Homepage begins with search, not a misleading research hero. */
.openlib_search_panel--primary { margin-top:0; }
.openlib_discovery__links { margin-left:auto; display:inline-flex; align-items:center; gap:7px; }
.openlib_discovery__links a { color:#64748B !important; font-weight:700; text-decoration:none !important; }
.openlib_discovery__links a:hover { color:var(--ol-red) !important; }
.openlib_portal_about_panel {
  margin-top:26px;
  padding:18px 20px;
  border:1px solid var(--ol-line);
  border-radius:12px;
  background:#fff;
}
.openlib_portal_about_panel__label { margin-bottom:7px; color:var(--ol-red); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.openlib_portal_about_panel .openlib_portal_about { font-size:13.5px; line-height:1.7; color:#64748B; }

/* Browse publication cards */
.pkp_page_index .journals > .openlib_journal_grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px !important; }
.pkp_page_index .openlib_journal_card {
  min-height:260px;
  border:1px solid #E2E8F0 !important;
  border-radius:14px !important;
  box-shadow:0 4px 18px rgba(15,23,42,.04) !important;
}
.pkp_page_index .openlib_journal_card:before { width:4px; background:var(--ol-red); }
.openlib_journal_main { grid-template-columns:92px minmax(0,1fr); gap:15px; min-height:195px; padding:17px 16px 14px 19px; }
.openlib_journal_media { align-items:flex-start; }
.openlib_journal_media a { width:92px; height:130px; border-radius:9px; }
.openlib_journal_media img { width:88px !important; max-width:88px !important; height:124px !important; max-height:124px !important; object-fit:cover; border-radius:8px; }

/* Better no-cover state: acronym cover, not a generic book icon. */
.openlib_journal_placeholder {
  position:relative;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  overflow:hidden;
  padding:11px !important;
  border:1px solid #DBEAFE !important;
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.30) 0 16px, transparent 17px),
    linear-gradient(145deg,#003F94 0%,#004AAC 62%,#2563EB 100%) !important;
  color:#fff !important;
  text-decoration:none !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.openlib_journal_placeholder:after {
  position:absolute; right:-18px; bottom:-22px; width:72px; height:72px; border:1px solid rgba(255,255,255,.18); border-radius:50%; content:"";
}
.openlib_journal_placeholder__label { position:relative; z-index:1; margin-bottom:auto; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.78; }
.openlib_journal_placeholder strong { position:relative; z-index:1; max-width:100%; overflow:hidden; color:#fff; font-size:18px; line-height:1.05; font-weight:800; letter-spacing:-.03em; text-overflow:ellipsis; white-space:nowrap; }
.openlib_journal_placeholder small { position:relative; z-index:1; margin-top:4px; color:#E6EEFA; font-size:8px; font-weight:700; }

.openlib_journal_acronym { display:inline-block; margin-bottom:5px; color:#94A3B8; font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.openlib_journal_content h3 { min-height:44px !important; margin:0 0 7px !important; font-size:13.5px !important; line-height:1.5 !important; }
.openlib_journal_content h3 a { color:#0F172A !important; }
.openlib_journal_content h3 a:hover { color:var(--ol-red) !important; }
.openlib_journal_slug { margin-bottom:7px; border:1px solid #DBEAFE; background:#F8FAFF; color:#1D4ED8; }
.openlib_journal_content .description { font-size:11.5px !important; line-height:1.6 !important; -webkit-line-clamp:4; color:#64748B !important; }

/* Actions are inset from the card edges and aligned. */
.openlib_journal_footer {
  min-height:64px;
  padding:12px 16px 14px 19px !important;
  border-top:1px dashed #CBD5E1 !important;
  background:#FAFBFC;
}
.openlib_journal_actions {
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:9px !important;
  width:100%;
  margin:0 !important;
  padding:0 !important;
}
.openlib_journal_actions li { display:block !important; min-width:0; margin:0 !important; }
.openlib_journal_actions a {
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:100%;
  min-height:38px;
  margin:0 !important;
  padding:0 10px !important;
  border-radius:8px !important;
  font-size:11.5px !important;
  font-weight:800 !important;
  line-height:1.15;
  text-align:center;
  text-decoration:none !important;
  box-shadow:none !important;
}
.openlib_journal_actions .current a { border:1px solid #D7DEE7 !important; background:#fff !important; color:#334155 !important; }
.openlib_journal_actions .current a:hover { border-color:#93C5FD !important; background:#F8FAFF !important; color:var(--ol-red) !important; }
.openlib_journal_actions .view a { border:1px solid var(--ol-red) !important; background:var(--ol-red) !important; color:#fff !important; }
.openlib_journal_actions .view a:hover { border-color:var(--ol-red-dark) !important; background:var(--ol-red-dark) !important; }

.openlib_journal_empty { margin:18px 0 0; padding:20px; border:1px dashed #CBD5E1; border-radius:10px; background:#fff; color:#64748B; text-align:center; }

/* Text-first footer, deliberately without any logo. */
.openlib_site_footer { background:#111827 !important; }
.openlib_site_footer__inner { align-items:flex-start; padding:24px 0 18px; }
.openlib_site_footer__brand_text strong { display:block; color:#fff; font-size:15px; line-height:1.4; font-weight:800; }
.openlib_site_footer__brand_text span { display:block; margin-top:4px; color:#94A3B8; font-size:12px; }
.openlib_site_footer__links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 18px; }
.openlib_site_footer__links a { color:#CBD5E1 !important; font-size:12px; font-weight:700; text-decoration:none !important; }
.openlib_site_footer__links a:hover { color:#fff !important; }
.openlib_site_footer__custom { padding-bottom:16px; color:#94A3B8; font-size:12px; }
.openlib_site_footer__custom p { margin:0 !important; }
.openlib_site_footer__bottom { padding:13px 0 17px; color:#64748B; }
.openlib_journal_footer_global { border-top:3px solid var(--ol-red) !important; background:#111827 !important; }
.openlib_journal_footer_global .pkp_structure_footer { padding-top:22px; padding-bottom:22px; }
.openlib_journal_footer_global .pkp_footer_content { color:#CBD5E1; font-size:12.5px; }
.openlib_journal_footer_global__meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; color:#64748B; font-size:11.5px; }
.openlib_journal_footer_global__meta a { color:#CBD5E1 !important; text-decoration:none !important; font-weight:700; }
.openlib_journal_footer_global__meta a:hover { color:#fff !important; }

/* ===== Search page ===== */
.openlib_search_page { max-width:920px; margin:0 auto; }
.openlib_search_page__heading { margin:0 0 18px; }
.openlib_search_page__eyebrow { display:block; margin-bottom:5px; color:var(--ol-red); font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.openlib_search_page__heading h1 { margin:0 0 6px !important; font-size:28px !important; line-height:1.25 !important; }
.openlib_search_page__heading p { margin:0 !important; color:#64748B; font-size:13.5px; line-height:1.6; }
.openlib_search_form { margin:0 0 30px !important; padding:14px !important; border:1px solid #E2E8F0; border-radius:14px; background:#fff; box-shadow:0 5px 20px rgba(15,23,42,.04); }
.openlib_search_form__primary { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:9px; align-items:center; }
.openlib_search_form__primary.has_journal_filter { grid-template-columns:minmax(0,1fr) 230px 120px; }
.openlib_search_form__query { position:relative; min-width:0; }
.openlib_search_form__query .fa { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#94A3B8; }
.openlib_search_form__primary input,
.openlib_search_form__primary select,
.openlib_search_advanced input,
.openlib_search_advanced select {
  width:100% !important;
  height:44px !important;
  margin:0 !important;
  border:1px solid #D7DEE7 !important;
  border-radius:9px !important;
  background:#fff !important;
  box-shadow:none !important;
  color:#0F172A !important;
  font-size:13px !important;
}
.openlib_search_form__query input { padding-left:40px !important; }
.openlib_search_form__submit { display:flex !important; align-items:center; justify-content:center; gap:7px; height:44px !important; margin:0 !important; padding:0 15px !important; border:1px solid var(--ol-red) !important; border-radius:9px !important; background:var(--ol-red) !important; color:#fff !important; font-size:12px !important; font-weight:800 !important; }
.openlib_search_form__submit:hover { background:var(--ol-red-dark) !important; }
.openlib_search_advanced { margin-top:12px; padding-top:11px; border-top:1px solid #EEF2F6; }
.openlib_search_advanced summary { width:max-content; cursor:pointer; color:#475569; font-size:12px; font-weight:800; list-style:none; }
.openlib_search_advanced summary::-webkit-details-marker { display:none; }
.openlib_search_advanced summary .fa { margin-right:6px; color:var(--ol-red); }
.openlib_search_advanced__grid { display:grid; grid-template-columns:1fr 1.5fr; gap:16px; margin-top:14px; }
.openlib_search_advanced__field label { display:block; margin-bottom:6px; color:#475569; font-size:11.5px; font-weight:700; }
.openlib_search_advanced__dates { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.openlib_search_advanced__dates fieldset { margin:0 !important; padding:0 !important; border:0 !important; }
.openlib_search_advanced__dates legend { margin:0 0 6px !important; padding:0 !important; color:#475569; font-size:11.5px !important; font-weight:700 !important; }
.openlib_search_advanced__dates select { width:auto !important; min-width:68px; height:38px !important; margin-right:4px !important; padding:0 6px !important; }
.openlib_search_results_header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:12px; padding-bottom:11px; border-bottom:1px solid #E2E8F0; }
.openlib_search_results_header h2 { margin:0 !important; font-size:21px !important; }
.openlib_search_results_count { color:#94A3B8; font-size:11.5px; }
.openlib_search_results { display:grid; gap:11px; margin:0 !important; padding:0 !important; list-style:none !important; }
.openlib_search_results > li { margin:0 !important; padding:0 !important; border:0 !important; }
.openlib_search_results .obj_article_summary { position:relative; margin:0 !important; padding:16px 18px !important; border:1px solid #E2E8F0; border-radius:12px; background:#fff; box-shadow:0 2px 12px rgba(15,23,42,.025); }
.openlib_search_results .obj_article_summary:before { position:absolute; top:15px; bottom:15px; left:0; width:3px; border-radius:0 3px 3px 0; background:var(--ol-red); content:""; }
.openlib_search_results .obj_article_summary .title { margin:0 0 7px !important; font-size:15px !important; line-height:1.5 !important; }
.openlib_search_results .obj_article_summary .title > a { color:#0F172A !important; text-decoration:none !important; }
.openlib_search_results .obj_article_summary .title > a:hover { color:var(--ol-red) !important; }
.openlib_search_results .obj_article_summary .subtitle { display:block; margin-top:6px; color:var(--ol-red); font-size:10.5px; font-weight:800; line-height:1.4; }
.openlib_search_results .obj_article_summary .meta { display:flex; flex-wrap:wrap; gap:6px 14px; color:#64748B; font-size:11.5px; }
.openlib_search_results .obj_article_summary .cover { float:left; width:72px; margin:0 14px 0 0; }
.openlib_search_results .obj_article_summary .cover img { max-height:92px; border-radius:6px; }
.openlib_search_empty { margin-top:12px; }
.openlib_search_pagination { margin-top:18px; padding-top:14px; border-top:1px solid #E2E8F0; }

/* ===== Login & Registration ===== */
.openlib-site-page .page_login { max-width:520px; margin:10px auto 0; padding:30px 32px !important; border:1px solid #E2E8F0; border-radius:16px; background:#fff; box-shadow:0 10px 34px rgba(15,23,42,.055); }
.openlib-site-page .page_login .cmp_breadcrumbs,
.openlib-site-page .page_register .cmp_breadcrumbs { display:none; }
.openlib-site-page .page_login > h1 { margin:0 0 8px !important; font-size:28px !important; text-align:center; }
.openlib-site-page .page_login > p { color:#64748B; font-size:12px; text-align:center; }
.openlib-site-page .page_login .login { max-width:none !important; margin:22px 0 0 !important; }
.openlib-site-page .page_login .fields > div { padding-bottom:18px !important; }
.openlib-site-page .page_login .label,
.openlib-site-page .page_register .label { margin-bottom:6px; color:#334155; font-size:12px !important; font-weight:700 !important; }
.openlib-site-page .page_login input[type="text"],
.openlib-site-page .page_login input[type="password"],
.openlib-site-page .page_register input[type="text"],
.openlib-site-page .page_register input[type="email"],
.openlib-site-page .page_register input[type="password"],
.openlib-site-page .page_register input[type="url"],
.openlib-site-page .page_register select,
.openlib-site-page .page_register textarea {
  width:100% !important;
  max-width:none !important;
  min-height:44px !important;
  border:1px solid #D7DEE7 !important;
  border-radius:9px !important;
  background:#fff !important;
  font-size:13px !important;
  box-shadow:none !important;
}
.openlib-site-page .page_login input:focus,
.openlib-site-page .page_register input:focus,
.openlib-site-page .page_register select:focus,
.openlib-site-page .page_register textarea:focus { border-color:#60A5FA !important; outline:3px solid rgba(0,74,172,.07) !important; }
.openlib-site-page .page_login .password { position:relative; }
.openlib-site-page .page_login .password a { display:block; margin-top:7px; color:var(--ol-red); font-size:11.5px; text-decoration:none; }
.openlib-site-page .page_login .remember { padding-bottom:12px !important; }
.openlib-site-page .page_login .remember label { display:flex; align-items:flex-start; gap:8px; color:#64748B; font-size:11.5px; }
.openlib-site-page .page_login .buttons { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:4px; }
.openlib-site-page .page_login .buttons button,
.openlib-site-page .page_login .buttons a { display:flex !important; align-items:center; justify-content:center; width:100%; height:42px; margin:0 !important; padding:0 12px !important; border-radius:9px !important; font-size:12px !important; font-weight:800 !important; text-decoration:none !important; }
.openlib-site-page .page_login .buttons button { border:1px solid var(--ol-red) !important; background:var(--ol-red) !important; color:#fff !important; }
.openlib-site-page .page_login .buttons a { border:1px solid #D7DEE7; background:#fff; color:#334155; }

.openlib-site-page .page_register { max-width:820px; margin:4px auto 0; padding:28px 30px !important; border:1px solid #E2E8F0; border-radius:16px; background:#fff; box-shadow:0 10px 34px rgba(15,23,42,.045); }
.openlib-site-page .page_register > h1 { margin:0 0 8px !important; font-size:28px !important; }
.openlib-site-page .page_register > p { margin-top:0 !important; color:#64748B; font-size:12px; }
.openlib-site-page .page_register .register { margin-top:22px; }
.openlib-site-page .page_register fieldset { margin:0 0 18px !important; padding:18px !important; border:1px solid #E8EDF3 !important; border-radius:12px; background:#FBFCFD; }
.openlib-site-page .page_register fieldset legend { padding:0 6px; color:#0F172A; font-size:13px !important; font-weight:800 !important; }
.openlib-site-page .page_register .fields > div { padding-bottom:17px !important; }
.openlib-site-page .page_register .buttons { display:flex; justify-content:flex-end; gap:9px; margin-top:16px; }
.openlib-site-page .page_register .buttons button,
.openlib-site-page .page_register .buttons a { display:inline-flex !important; align-items:center; justify-content:center; min-width:130px; height:42px; margin:0 !important; padding:0 16px !important; border-radius:9px !important; font-size:12px !important; font-weight:800 !important; text-decoration:none !important; }
.openlib-site-page .page_register .buttons button { border:1px solid var(--ol-red) !important; background:var(--ol-red) !important; color:#fff !important; }
.openlib-site-page .page_register .buttons a { border:1px solid #D7DEE7; background:#fff; color:#334155; }

@media (max-width:1099px) {
  .pkp_page_index .journals > .openlib_journal_grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .openlib_search_form__primary { grid-template-columns:minmax(0,1fr) 115px; }
  .openlib_search_form__primary.has_journal_filter { grid-template-columns:minmax(0,1fr) 200px 115px; }
}
@media (max-width:767px) {
  .openlib_site_header__backlinks { display:none; }
  .openlib_site_header__right > .openlib_site_header__divider { display:none; }
  .openlib_discovery__links { width:100%; margin-left:0; }
  .pkp_page_index .journals > .openlib_journal_grid { grid-template-columns:1fr; }
  .openlib_journal_main { grid-template-columns:84px minmax(0,1fr); padding:15px; }
  .openlib_journal_media a { width:84px; height:118px; }
  .openlib_journal_media img { width:80px !important; max-width:80px !important; height:112px !important; max-height:112px !important; }
  .openlib_journal_footer { padding:11px 15px 13px !important; }
  .openlib_journal_actions a { min-height:40px; }
  .openlib_site_footer__inner { flex-direction:column; gap:14px; }
  .openlib_site_footer__links { justify-content:flex-start; }
  .openlib_search_form__primary { grid-template-columns:1fr; }
  .openlib_search_advanced__grid,
  .openlib_search_advanced__dates { grid-template-columns:1fr; }
  .openlib-site-page .page_login { padding:24px 20px !important; }
  .openlib-site-page .page_login .buttons { grid-template-columns:1fr; }
  .openlib-site-page .page_register { padding:22px 18px !important; }
  .openlib-site-page .page_register .buttons { flex-direction:column; }
  .openlib-site-page .page_register .buttons button,
  .openlib-site-page .page_register .buttons a { width:100%; }
}

/* =========================================================
 * FPPTI Jabar Theme 1.6.2 — layout + filter + dark/light
 * ========================================================= */
:root { --ol-shell:1240px; }

/* Wider, still compact on very wide displays. */
.openlib_site_shell,
.openlib-site-index .pkp_structure_content,
.openlib-site-page .pkp_structure_content {
  width:var(--ol-shell) !important;
  max-width:calc(100% - 40px) !important;
}

/* Top utility: only FPPTI Jawa Barat is linked here. */
.openlib_site_header__institution a {
  color:inherit !important;
  text-decoration:none !important;
  font-weight:700;
}
.openlib_site_header__institution a:hover,
.openlib_site_header__institution a:focus { color:var(--ol-red) !important; }

/* Light/dark switch. Default is light; JS persists explicit user choice. */
.openlib_color_mode_toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:30px;
  margin:0;
  padding:0 10px;
  border:1px solid #D7DEE7;
  border-radius:8px;
  background:#fff;
  color:#475569;
  font:700 11.5px/1 "Plus Jakarta Sans",sans-serif !important;
  cursor:pointer;
}
.openlib_color_mode_toggle:hover,
.openlib_color_mode_toggle:focus { border-color:#93C5FD; background:#F8FAFF; color:var(--ol-red); }

/* Journal filter must really hide non-matching cards even though cards use display:flex!important. */
.openlib_journal_card[hidden],
.openlib_journal_empty[hidden] { display:none !important; }

/* Card accent moved from the left edge to the top. */
.pkp_page_index .openlib_journal_card:before {
  top:0 !important;
  right:0 !important;
  bottom:auto !important;
  left:0 !important;
  width:100% !important;
  height:3px !important;
  border-radius:12px 12px 0 0;
  background:linear-gradient(90deg,var(--ol-red),#60A5FA) !important;
}
.openlib_journal_main { padding-top:19px !important; }

/* No-cover state v1.6.2: abstract editorial cover, acronym only. */
.openlib_journal_placeholder {
  position:relative !important;
  isolation:isolate;
  overflow:hidden !important;
  align-items:center !important;
  justify-content:center !important;
  padding:10px !important;
  background:
    radial-gradient(circle at 84% 18%,rgba(255,255,255,.20) 0 10%,rgba(255,255,255,.07) 11% 19%,transparent 20%),
    radial-gradient(circle at 15% 86%,rgba(15,23,42,.28) 0 18%,transparent 19%),
    linear-gradient(145deg,#111827 0%,#1E293B 38%,#00357D 39%,#004AAC 74%,#60A5FA 100%) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);
}
.openlib_journal_placeholder:before {
  content:"";
  position:absolute;
  z-index:-1;
  width:108px;
  height:108px;
  top:-48px;
  right:-42px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:50%;
  box-shadow:0 0 0 14px rgba(255,255,255,.035),0 0 0 28px rgba(255,255,255,.022);
}
.openlib_journal_placeholder:after {
  content:"";
  position:absolute;
  z-index:-1;
  width:150%;
  height:24px;
  left:-25%;
  bottom:17px;
  transform:rotate(-13deg);
  background:rgba(255,255,255,.075);
  border-top:1px solid rgba(255,255,255,.10);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.openlib_journal_placeholder__label,
.openlib_journal_placeholder small { display:none !important; }
.openlib_journal_placeholder strong {
  position:relative;
  z-index:2;
  margin:auto !important;
  max-width:100%;
  white-space:normal !important;
  overflow-wrap:anywhere;
  color:#fff !important;
  font-size:19px !important;
  line-height:1.12 !important;
  text-align:center;
  letter-spacing:.035em;
  text-shadow:0 2px 14px rgba(15,23,42,.30);
}
/* Small visual variation across a row while keeping one brand system. */
.openlib_journal_grid > li:nth-child(3n+2) .openlib_journal_placeholder {
  background:
    radial-gradient(circle at 20% 16%,rgba(255,255,255,.16) 0 9%,rgba(255,255,255,.05) 10% 18%,transparent 19%),
    radial-gradient(circle at 88% 84%,rgba(15,23,42,.26) 0 20%,transparent 21%),
    linear-gradient(155deg,#0F172A 0%,#334155 36%,#002F70 37%,#003F94 68%,#2563EB 100%) !important;
}
.openlib_journal_grid > li:nth-child(3n+3) .openlib_journal_placeholder {
  background:
    radial-gradient(circle at 82% 80%,rgba(255,255,255,.15) 0 10%,rgba(255,255,255,.04) 11% 18%,transparent 19%),
    radial-gradient(circle at 12% 20%,rgba(15,23,42,.25) 0 20%,transparent 21%),
    linear-gradient(135deg,#1E293B 0%,#475569 34%,#00357D 35%,#004AAC 70%,#93C5FD 100%) !important;
}

/* Action buttons: no overflow into the card edge. */
.openlib_journal_footer { padding:13px 18px 15px !important; }
.openlib_journal_actions {
  box-sizing:border-box !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  gap:10px !important;
}
.openlib_journal_actions li { min-width:0 !important; }
.openlib_journal_actions a {
  box-sizing:border-box !important;
  width:auto !important;
  max-width:100% !important;
  min-height:38px;
  padding:0 11px !important;
  overflow:hidden;
}

/* Search result cards: top accent instead of left stripe. */
.openlib_search_page { max-width:1040px; }
.openlib_search_results .obj_article_summary {
  padding:18px 20px 17px !important;
  overflow:hidden;
}
.openlib_search_results .obj_article_summary:before {
  top:0 !important;
  right:0 !important;
  bottom:auto !important;
  left:0 !important;
  width:100% !important;
  height:3px !important;
  border-radius:12px 12px 0 0 !important;
  background:linear-gradient(90deg,var(--ol-red),#60A5FA) !important;
}
.openlib_search_results .obj_article_summary .title { margin-top:2px !important; }

/* Search pagination: compact numbered controls. */
.openlib_search_pagination {
  display:flex;
  justify-content:center;
  margin-top:24px !important;
  padding:18px 0 0 !important;
  border-top:1px solid #E2E8F0 !important;
}
.openlib_search_pagination ul {
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.openlib_search_pagination li { margin:0 !important; padding:0 !important; }
.openlib_search_pagination a,
.openlib_search_pagination .current,
.openlib_search_pagination span {
  box-sizing:border-box;
}
.openlib_search_pagination a {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:38px;
  min-height:38px;
  padding:0 11px !important;
  border:1px solid #D7DEE7 !important;
  border-radius:8px !important;
  background:#fff !important;
  color:#475569 !important;
  font-size:12px !important;
  font-weight:800 !important;
  text-decoration:none !important;
}
.openlib_search_pagination a:hover,
.openlib_search_pagination a:focus { border-color:#93C5FD !important; background:#F8FAFF !important; color:var(--ol-red) !important; }
.openlib_search_pagination .current > a,
.openlib_search_pagination a.current,
.openlib_search_pagination .current {
  border-color:var(--ol-red) !important;
  background:var(--ol-red) !important;
  color:#fff !important;
}

/* Footer backlinks live here, not beside the account menu. */
.openlib_site_footer__links { gap:10px 20px; }
.openlib_site_footer__links a { position:relative; }
.openlib_site_footer__links a + a:before {
  position:absolute;
  left:-11px;
  color:#475569;
  content:"·";
}

/* Dark mode — portal/search/login/register/footer. */
html[data-openlib-color-mode="dark"] {
  --ol-navy:#F8FAFC;
  --ol-slate:#CBD5E1;
  --ol-muted:#94A3B8;
  --ol-line:#334155;
  --ol-line-strong:#475569;
  --ol-canvas:#0B1120;
  --ol-surface:#111827;
}
html[data-openlib-color-mode="dark"] body { background:#0B1120 !important; color:#E5E7EB !important; }
html[data-openlib-color-mode="dark"] .openlib_site_header,
html[data-openlib-color-mode="dark"] .openlib_site_header__main { background:#111827 !important; border-color:#263244 !important; }
html[data-openlib-color-mode="dark"] .openlib_site_header__utility { background:#0F172A !important; border-color:#263244 !important; }
html[data-openlib-color-mode="dark"] .openlib_site_header__institution,
html[data-openlib-color-mode="dark"] .openlib_site_header__account .pkp_navigation_user > li > a,
html[data-openlib-color-mode="dark"] .openlib_site_nav_menu .pkp_navigation_primary > li > a { color:#CBD5E1 !important; }
html[data-openlib-color-mode="dark"] .openlib_site_brand__text strong { color:#F8FAFC !important; }
html[data-openlib-color-mode="dark"] .openlib_site_brand__text small { color:#94A3B8 !important; }
html[data-openlib-color-mode="dark"] .openlib_color_mode_toggle {
  border-color:#475569;
  background:#0F172A;
  color:#E2E8F0;
}
html[data-openlib-color-mode="dark"] .openlib_color_mode_toggle:hover { border-color:#60A5FA; background:#0F172A; color:#93C5FD; }
html[data-openlib-color-mode="dark"] .openlib_search_panel,
html[data-openlib-color-mode="dark"] .openlib_portal_about_panel,
html[data-openlib-color-mode="dark"] .openlib_journal_empty,
html[data-openlib-color-mode="dark"] .openlib_search_form,
html[data-openlib-color-mode="dark"] .openlib_search_results .obj_article_summary,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_login,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register fieldset {
  border-color:#334155 !important;
  background:#111827 !important;
  color:#E2E8F0 !important;
}
html[data-openlib-color-mode="dark"] .pkp_page_index .openlib_journal_card { border-color:#334155 !important; background:#111827 !important; }
html[data-openlib-color-mode="dark"] .openlib_journal_footer { border-color:#475569 !important; background:#0F172A !important; }
html[data-openlib-color-mode="dark"] .openlib_journal_content h3 a,
html[data-openlib-color-mode="dark"] .openlib_search_page__heading h1,
html[data-openlib-color-mode="dark"] .openlib_search_results_header h2,
html[data-openlib-color-mode="dark"] .openlib_search_results .obj_article_summary .title > a,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_login > h1,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register > h1 { color:#F8FAFC !important; }
html[data-openlib-color-mode="dark"] .openlib_journal_content .description,
html[data-openlib-color-mode="dark"] .openlib_search_page__heading p,
html[data-openlib-color-mode="dark"] .openlib_portal_about_panel .openlib_portal_about { color:#94A3B8 !important; }
html[data-openlib-color-mode="dark"] .openlib_discovery__form input[type="search"],
html[data-openlib-color-mode="dark"] .openlib_discovery__form select,
html[data-openlib-color-mode="dark"] .openlib_journal_filter input[type="search"],
html[data-openlib-color-mode="dark"] .openlib_search_form__primary input,
html[data-openlib-color-mode="dark"] .openlib_search_form__primary select,
html[data-openlib-color-mode="dark"] .openlib_search_advanced input,
html[data-openlib-color-mode="dark"] .openlib_search_advanced select,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_login input,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register input,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register select,
html[data-openlib-color-mode="dark"] .openlib-site-page .page_register textarea {
  border-color:#475569 !important;
  background:#0F172A !important;
  color:#F8FAFC !important;
}
html[data-openlib-color-mode="dark"] .openlib_journal_actions .current a,
html[data-openlib-color-mode="dark"] .openlib_search_pagination a {
  border-color:#475569 !important;
  background:#0F172A !important;
  color:#E2E8F0 !important;
}
html[data-openlib-color-mode="dark"] .openlib_search_pagination .current > a,
html[data-openlib-color-mode="dark"] .openlib_search_pagination a.current,
html[data-openlib-color-mode="dark"] .openlib_search_pagination .current {
  border-color:var(--ol-red) !important;
  background:var(--ol-red) !important;
  color:#fff !important;
}

@media (max-width:767px) {
  .openlib_site_shell,
  .openlib-site-index .pkp_structure_content,
  .openlib-site-page .pkp_structure_content { max-width:calc(100% - 22px) !important; }
  .openlib_color_mode_toggle__text { display:none; }
  .openlib_color_mode_toggle { width:34px; min-width:34px; padding:0; }
  .openlib_journal_footer { padding-left:15px !important; padding-right:15px !important; }
}
.openlib_journal_card.openlib-filter-hidden { display:none !important; }

/* v1.6.2 focus polish: all interactive form controls use the brand red, never black. */
.openlibTheme input:focus,
.openlibTheme select:focus,
.openlibTheme textarea:focus,
.pkp_page_index_site input:focus,
.pkp_page_index_site select:focus,
.pkp_page_search input:focus,
.pkp_page_search select:focus,
.pkp_page_login input:focus,
.pkp_page_register input:focus,
.pkp_page_register select:focus {
  border-color:#004AAC !important;
  outline:3px solid rgba(0,74,172,.12) !important;
  box-shadow:0 0 0 1px rgba(0,74,172,.03) !important;
}

/* ===== Final UI alignment fixes ===== */

/* Account menu: keep it as a compact dropdown instead of expanding the header. */
.openlib_site_header__account,
.openlib_journal_header__account,
#navigationUserWrapper {
  position:relative !important;
  overflow:visible !important;
}
.openlib_site_header__account .pkp_navigation_user,
.openlib_journal_header__account .pkp_navigation_user {
  overflow:visible !important;
  list-style:none !important;
}
.openlib_site_header__account .pkp_navigation_user > li,
.openlib_journal_header__account .pkp_navigation_user > li {
  position:relative !important;
  list-style:none !important;
}
.openlib_site_header__account .pkp_navigation_user > li::marker,
.openlib_journal_header__account .pkp_navigation_user > li::marker,
.openlib_site_header__account .pkp_navigation_user ul li::marker,
.openlib_journal_header__account .pkp_navigation_user ul li::marker { content:""; }
.openlib-account-trigger {
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  border-radius:7px !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.openlib-account-item > .openlib-account-trigger::after {
  content:"\f107";
  margin-left:2px;
  font-family:FontAwesome;
  font-size:10px;
  line-height:1;
  opacity:.65;
  transition:transform .16s ease;
}
.openlib-account-item.openlib-account-open > .openlib-account-trigger::after { transform:rotate(180deg); }
#navigationUserWrapper .openlib-account-dropdown,
#navigationUserWrapper .dropdown-menu {
  position:absolute !important;
  top:calc(100% + 8px) !important;
  right:0 !important;
  left:auto !important;
  z-index:1200 !important;
  display:none !important;
  min-width:210px !important;
  max-width:260px !important;
  margin:0 !important;
  padding:7px !important;
  border:1px solid #E2E8F0 !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 16px 34px rgba(15,23,42,.14) !important;
  list-style:none !important;
  text-align:left !important;
}
#navigationUserWrapper .openlib-account-item.openlib-account-open > .openlib-account-dropdown,
#navigationUserWrapper .openlib-account-dropdown.show,
#navigationUserWrapper .dropdown-menu.show { display:block !important; }
#navigationUserWrapper .openlib-account-dropdown > li,
#navigationUserWrapper .dropdown-menu > li {
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
#navigationUserWrapper .openlib-account-dropdown a,
#navigationUserWrapper .dropdown-menu a {
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  min-height:34px !important;
  margin:0 !important;
  padding:7px 10px !important;
  border:0 !important;
  border-radius:7px !important;
  background:transparent !important;
  color:#334155 !important;
  font-size:11.5px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
#navigationUserWrapper .openlib-account-dropdown a:hover,
#navigationUserWrapper .openlib-account-dropdown a:focus,
#navigationUserWrapper .dropdown-menu a:hover,
#navigationUserWrapper .dropdown-menu a:focus {
  background:#EFF6FF !important;
  color:#004AAC !important;
}

/* Search/meta labels: give numbers and icons deliberate breathing room. */
.openlib_discovery__meta > span,
.openlib_journal_count {
  display:inline-flex !important;
  align-items:center !important;
  gap:4px !important;
}
.openlib_discovery__form button,
.openlib_search_form__submit,
.openlib_journal_actions a,
.openlib_journal_filter,
.openlib_journal_search,
.openlib_color_mode_toggle {
  column-gap:8px !important;
}
.openlib_discovery__form button > .fa,
.openlib_search_form__submit > .fa,
.openlib_journal_actions a > .fa,
.openlib_journal_search > .fa {
  flex:0 0 auto !important;
  margin:0 !important;
}

/* Card action buttons stay inside the footer and align evenly. */
.openlib_journal_actions {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  width:100% !important;
}
.openlib_journal_actions a {
  width:100% !important;
  box-sizing:border-box !important;
  justify-content:center !important;
}

/* Input focus follows the primary red exactly, never black/grey. */
.openlib-site-page input:not([type="checkbox"]):not([type="radio"]):focus,
.openlib-site-page select:focus,
.openlib-site-page textarea:focus,
.openlib-journal-page input:not([type="checkbox"]):not([type="radio"]):focus,
.openlib-journal-page select:focus,
.openlib-journal-page textarea:focus,
.openlib_discovery__form input:focus,
.openlib_discovery__form select:focus,
.openlib_journal_filter input:focus,
.openlib_search_form input:focus,
.openlib_search_form select:focus {
  border-color:#004AAC !important;
  outline:0 !important;
  box-shadow:0 0 0 3px rgba(0,74,172,.12) !important;
}

/* Login form: remove the browser fieldset box and prevent button overflow. */
.openlib-site-page .page_login fieldset.fields,
.openlib-journal-page .page_login fieldset.fields {
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.openlib-site-page .page_login .buttons,
.openlib-journal-page .page_login .buttons {
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.openlib-site-page .page_login .buttons > *,
.openlib-journal-page .page_login .buttons > * {
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* No-cover card: cleaner editorial background; acronym remains the only text. */
.openlib_journal_placeholder,
.openlib_journal_grid > li:nth-child(3n+2) .openlib_journal_placeholder,
.openlib_journal_grid > li:nth-child(3n+3) .openlib_journal_placeholder {
  background:
    linear-gradient(152deg,transparent 0 43%,rgba(255,255,255,.10) 43% 44%,transparent 44% 62%,rgba(255,255,255,.065) 62% 63%,transparent 63%),
    linear-gradient(160deg,#12243D 0%,#002F70 34%,#003F94 66%,#2563EB 100%) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12) !important;
}
.openlib_journal_placeholder::before {
  content:"" !important;
  position:absolute !important;
  z-index:-1 !important;
  top:-22px !important;
  right:-26px !important;
  width:72px !important;
  height:72px !important;
  border:0 !important;
  border-radius:16px !important;
  background:rgba(255,255,255,.08) !important;
  box-shadow:none !important;
  transform:rotate(24deg) !important;
}
.openlib_journal_placeholder::after {
  content:"" !important;
  position:absolute !important;
  z-index:-1 !important;
  left:-16px !important;
  bottom:-22px !important;
  width:96px !important;
  height:62px !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:18px !important;
  background:rgba(15,23,42,.10) !important;
  transform:rotate(-11deg) !important;
}

html[data-openlib-color-mode="dark"] #navigationUserWrapper .openlib-account-dropdown,
html[data-openlib-color-mode="dark"] #navigationUserWrapper .dropdown-menu {
  border-color:#334155 !important;
  background:#111827 !important;
}
html[data-openlib-color-mode="dark"] #navigationUserWrapper .openlib-account-dropdown a,
html[data-openlib-color-mode="dark"] #navigationUserWrapper .dropdown-menu a { color:#E2E8F0 !important; }
html[data-openlib-color-mode="dark"] #navigationUserWrapper .openlib-account-dropdown a:hover,
html[data-openlib-color-mode="dark"] #navigationUserWrapper .dropdown-menu a:hover {
  background:#0F172A !important;
  color:#93C5FD !important;
}
