/**
 * plugins/themes/jicabTheme/styles/jicab.css
 *
 * JICAB visual restyle on top of the default OJS theme. Scoped to this
 * theme plugin only (journal_id=9). Two layers:
 *   1. Site-wide restyle of the existing OJS chrome (header nav, sidebar
 *      custom blocks, footer, article list) so every JICAB page feels
 *      consistent with the new homepage, without touching header.tpl /
 *      footer.tpl markup.
 *   2. New homepage-only sections (hero, stats, current-issue card,
 *      for-authors, focus & scope) added by templates/frontend/pages/
 *      indexJournal.tpl, styled under the `.jicab-*` classes below.
 *
 * The OJS float-based sidebar layout (plugins/themes/default/styles/
 * body.less) is left in place. Because the sidebar spans the full page
 * height (it's rendered by footer.tpl, not per-page), homepage sections
 * render inside `.pkp_structure_main`'s column width rather than full
 * page width, unlike the original mockup.
 */

/* The single biggest offender: .pkp_structure_page wraps the ENTIRE
   page (header, content, footer) and is hardcoded to max-width:1160px,
   margin:0 auto, plus a drop-shadow — the whole site renders as a
   floating white card on a grey backdrop, capped well below any modern
   monitor's width. The mockup has no such wrapper at all. Killing this
   is what actually lets the header/hero/footer bands reach the real
   viewport edge instead of stopping at the card's edge. */
/* .pkp_head_wrapper / .pkp_structure_content / .pkp_structure_footer
   deliberately keep core's own `margin:0 auto` here (needed to center
   their capped max-width — set below — within the now-full-width page);
   only .pkp_structure_page and .pkp_structure_main have no width cap at
   all, so margin:0 is safe/correct for those two specifically. */
.pkp_structure_page,
.pkp_structure_main,
.pkp_structure_footer_wrapper {
	max-width:none !important;
	margin-left:0 !important;
	margin-right:0 !important;
	box-shadow:none !important;
	background:#fff !important;
}
.pkp_structure_page { margin-top:0 !important; margin-bottom:0 !important; }
/* The exact 63px gap under the header: core's no-sidebar variant
   (`.pkp_structure_main:first-child:last-child`) adds margin-top:2.857rem
   (40px) to visually center the content column when there's no sidebar
   to pad out — confirmed via getBoundingClientRect(): .pkp_structure_main
   had marginTop:"39.998px" while everything above it measured 0. */
.pkp_structure_main { margin-top:0 !important; }
.pkp_head_wrapper, .pkp_structure_content, .pkp_structure_footer { box-shadow:none !important; }

/* The core theme ALSO separately caps .pkp_head_wrapper /
   .pkp_structure_content / .pkp_structure_footer / .pkp_navigation_* at
   a fixed 952px (desktop) or 1160px (large desktop) and centers them —
   fine on a 1280px laptop, but on any wider monitor it reads as a boxed
   page with big empty gutters left and right, unlike the mockup (whose
   colored bands — topbar, header, hero, footer — are unconstrained
   full-width blocks with only the *text* inside them capped at 1240px).
   Widen the shared container to 1240px so the page actually uses wide
   screens instead of floating in a fixed-width island. */
@media (min-width:992px){
	#headerNavigationContainer .pkp_head_wrapper,
	.pkp_structure_content,
	.pkp_structure_footer,
	.pkp_navigation_primary_wrapper,
	.pkp_navigation_user,
	.pkp_search_mobile {
		width:100% !important;
		max-width:1240px !important;
	}
	/* .pkp_structure_main itself is separately hardcoded to 652/860px
	   (screen container minus a sidebar column) regardless of whether a
	   sidebar is actually present — the isFullWidth "no sidebar" variant
	   only adds centering, it never resets this width. Without this
	   override the homepage content is stuck at 860px even though its
	   containers above were just widened. */
	.pkp_structure_main { width:100% !important; max-width:none !important; float:none !important; padding-bottom:4.5rem !important; }

	/* Core adds 2.143rem of top padding here (room for an absolutely
	   positioned mobile-style logo that no longer applies now the header
	   is a single flex row) — it just reads as dead air between the
	   sticky header and the hero. */
	.pkp_structure_content { padding-top:0 !important; }
}

:root{
	--jicab-navy:#10324a;
	--jicab-navy-2:#1f5f86;
	--jicab-accent:#2b7aa6;
	--jicab-light:#64b0d6;
	--jicab-tint:#e2f1f9;
	--jicab-tint-2:#f1f8fc;
	--jicab-ink:#1d2b36;
	--jicab-text:#33434f;
	--jicab-muted:#5b6b77;
	--jicab-border:#e6ecf0;
}

/* Small inline icon SVGs (login/lost-password/article pages use
   class="ic" directly, matching the Design mockups' own convention,
   instead of inline width/height on every <svg>). Without this rule
   they render at the browser's unstyled intrinsic SVG size. */
svg.ic { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; flex:none; }

/* ---------- Global type & color ---------- */

/* Core sets body{background:#ddd} so the (now-removed) .pkp_structure_page
   card stood out against a grey canvas. With that card gone, the grey
   still peeks around any section that keeps a max-width (article list,
   sidebar, focus & scope, footer content) on screens wider than that
   cap — reading as a "shadow" on both sides. The mockup's body is plain
   white throughout, so nothing shows through at all. */
html, body {
	background:#fff !important;
}
body.pkp_page_index,
body[class*="pkp_page_"] {
	font-family:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
	color:var(--jicab-ink);
}

.pkp_page_index a,
.pkp_page_index a:hover,
.pkp_structure_main a { color:var(--jicab-navy-2); }
.pkp_structure_main a:hover { color:var(--jicab-accent); }

.page_index_journal h1,
.page_index_journal h2,
.page_index_journal h3,
.jicab-serif {
	font-family:"Source Serif 4",Georgia,serif;
	color:var(--jicab-navy);
}

/* ---------- Topbar + header (site-wide) ---------- */

.jicab-topbar {
	background:var(--jicab-navy); color:#c9d6df; font-size:12.5px;
}
/* Match .pkp_head_wrapper's own max-width/centering below (see the
   @media(min-width:992px) block earlier) so the topbar's left/right
   edges line up with the logo and nav instead of using a flat 28px
   that only happens to match at narrow viewports. */
.jicab-topbar__inner {
	max-width:1240px; margin:0 auto; padding:8px 28px;
	display:flex; flex-wrap:wrap; align-items:center; gap:6px 22px;
}
.jicab-topbar .jicab-topbar__spacer { margin-right:auto; }
.jicab-topbar a { color:#fff; text-decoration:none; }
.jicab-topbar a:hover { color:var(--jicab-light); }

.jicab-submit-cta {
	display:inline-flex !important; align-items:center; gap:8px;
	background:var(--jicab-accent) !important; color:#fff !important; text-decoration:none !important;
	font-weight:700 !important; font-size:14px !important; line-height:1.3 !important;
	padding:11px 20px !important; border-radius:999px !important;
	white-space:nowrap;
}
.jicab-submit-cta svg { width:16px; height:16px; flex:none; }
.jicab-submit-cta:hover { background:var(--jicab-navy-2) !important; color:#fff !important; }
.jicab-submit-cta--topbar { font-size:12px; font-weight:800; padding:4px 14px; }

@media (min-width:992px){
}

.jicab-topbar-user__list { display:flex; gap:14px; margin:0 !important; list-style:none; }
.jicab-topbar-user__list li { list-style:none !important; }
.jicab-topbar-user__list a { color:#fff; text-decoration:none; }
.jicab-topbar-user__list a:hover { color:var(--jicab-light); }

/* The journal's old theme has a "baseColour" option (#64B0D6) saved for
   the shared defaultthemeplugin parent, which the compiled core
   stylesheet applies to .pkp_structure_head / .pkp_head_wrapper via
   @bg-base regardless of which child theme is active. !important is
   needed to actually win over that compiled LESS output. */
#headerNavigationContainer,
#headerNavigationContainer .pkp_head_wrapper,
#headerNavigationContainer .pkp_site_name_wrapper,
#headerNavigationContainer .pkp_site_nav_menu {
	background:rgba(255,255,255,.96) !important;
}
#headerNavigationContainer {
	position:sticky;
	top:0;
	z-index:100;
	backdrop-filter:blur(8px);
	border-bottom:0 !important;
	box-shadow:none !important;
}
@media (min-width:992px){
	/* Only at desktop, where the core theme already shows this nav inline
	   (display:block) rather than as a collapsed mobile dropdown — keep
	   the mobile overlay's own position:absolute behavior untouched. */
	#headerNavigationContainer .pkp_site_nav_menu { position:relative !important; top:auto !important; z-index:auto !important; }

	/* Register/Login/Announcements now render in the topbar instead (see
	   .jicab-topbar-user below) — the core menu here would otherwise sit
	   absolutely positioned (top:13px;right:0;width:25%) right on top of
	   the single-row nav. */
	#headerNavigationContainer .pkp_navigation_user_wrapper { display:none !important; }

	/* Core theme stacks the logo row and the nav row on top of each other
	   (.pkp_site_name_wrapper then .pkp_site_nav_menu, both block-level).
	   Make .pkp_head_wrapper a single flex row instead, matching the
	   mockup's one-row header (logo+wordmark, nav, Submit all inline). */
	#headerNavigationContainer .pkp_head_wrapper {
		display:flex !important;
		align-items:center !important;
		flex-wrap:nowrap !important;
		gap:16px 28px;
		padding-top:0 !important;
		padding-bottom:0 !important;
	}
	/* Core's clearfix (content:" ";display:table) on a float-based
	   layout — turning .pkp_head_wrapper into a flex container makes
	   these pseudo-elements flex items in their own right, adding a
	   near-empty row's worth of height below the real content. */
	#headerNavigationContainer .pkp_head_wrapper:before,
	#headerNavigationContainer .pkp_head_wrapper:after {
		content:none !important;
		display:none !important;
	}
	#headerNavigationContainer .pkp_site_name_wrapper {
		width:auto !important; flex:0 0 auto !important; height:auto !important;
		max-width:none !important; float:none !important;
		margin-right:auto !important;
	}
	#headerNavigationContainer .pkp_site_name_wrapper:before,
	#headerNavigationContainer .pkp_site_name_wrapper:after {
		content:none !important;
		display:none !important;
	}
	#headerNavigationContainer .pkp_site_name {
		position:relative !important; width:auto !important; left:auto !important; right:auto !important;
	}
	#headerNavigationContainer .pkp_site_nav_menu {
		width:auto !important; flex:1 1 auto !important; padding:0 !important; min-width:0;
	}
}

.pkp_site_name a.is_img img {
	max-height:56px;
	width:auto;
}

.jicab-brand { display:flex !important; align-items:center; gap:14px; text-decoration:none; }
.jicab-brand__logo { display:flex; flex-direction:column; align-items:center; gap:2px; line-height:1.1; flex:none; }
.jicab-brand__acronym { font-family:"Source Serif 4",Georgia,serif; font-weight:700; font-size:17px; color:var(--jicab-navy); }
.jicab-brand__name { font-size:15px; font-weight:700; line-height:1.3; color:var(--jicab-text); max-width:260px; }

.pkp_navigation_user_wrapper { font-size:12.5px; }
.pkp_navigation_user { display:flex; gap:16px; margin:0 !important; }
.pkp_navigation_user li { list-style:none !important; }
.pkp_navigation_user a { color:var(--jicab-muted) !important; font-weight:600; text-decoration:none; }
.pkp_navigation_user a:hover { color:var(--jicab-navy-2) !important; }

.pkp_navigation_primary_row { background:transparent; }

@media (min-width:992px){
	.pkp_navigation_primary_wrapper { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
}

.pkp_navigation_primary { display:flex; flex-wrap:nowrap; align-items:center; gap:0; margin:0 !important; }
.pkp_navigation_primary > li { list-style:none !important; margin:0 !important; }

.pkp_navigation_primary > li > a,
.pkp_navigation_primary .title {
	display:inline-flex !important;
	align-items:center;
	border-radius:999px !important;
	font-weight:700 !important;
	color:var(--jicab-text) !important;
	padding:8px 11px !important;
	font-size:14.5px !important;
	line-height:1.3 !important;
	background:none !important;
	font-family:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif !important;
	text-transform:none !important;
	transition:background .15s,color .15s;
}

.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li.current > a,
.pkp_navigation_primary > li.active > a {
	background:var(--jicab-tint) !important;
	color:var(--jicab-navy-2) !important;
}

.pkp_navigation_search_wrapper .pkp_search {
	display:inline-grid !important;
	place-items:center;
	width:38px;
	height:38px;
	border-radius:50%;
	padding:0 !important;
	color:var(--jicab-text);
}
.pkp_navigation_search_wrapper .pkp_search .fa-search { font-size:16px; }
.pkp_navigation_search_wrapper .pkp_search:hover { background:var(--jicab-tint-2); color:var(--jicab-navy-2); }
.pkp_navigation_search_wrapper .pkp_search.is-active { background:var(--jicab-tint); color:var(--jicab-navy-2); }

/* ---------- Sidebar custom blocks -> cards ---------- */

.pkp_structure_sidebar { padding-top:0; }

/* indexJournal.tpl renders the sidebar hook itself, inside a flex <aside>
   next to the current-issue article list (see isFullWidth in
   JicabThemePlugin) — override the parent theme's float/fixed-width rule
   so it behaves as a normal flex child instead. */
#current .pkp_structure_sidebar { float:none; width:100%; margin-bottom:0; }

.pkp_structure_sidebar .pkp_block.block_custom {
	background:#fff;
	border:1px solid var(--jicab-border);
	border-radius:18px;
	padding:6px;
	margin-bottom:16px;
	box-shadow:0 4px 14px rgba(16,50,74,.05);
	overflow:hidden;
}

.pkp_structure_sidebar .content table.hover,
.pkp_structure_sidebar .content table {
	width:100%;
	border-collapse:collapse;
}

.pkp_structure_sidebar .content table th,
.pkp_structure_sidebar .content table td,
.pkp_structure_sidebar .content .blockTitle {
	border:0;
	padding:8px 10px;
	font-size:13.5px;
	background:none;
	text-align:left !important;
}

.pkp_structure_sidebar .content table th,
.pkp_structure_sidebar .content .blockTitle {
	font-weight:800;
	font-size:11.5px;
	letter-spacing:.08em;
	color:var(--jicab-accent);
	text-transform:uppercase;
}
/* .blockTitle is always a genuine section label (Tools/Indexed By/E-ISSN
   etc. all use it), so it's safe to tint broadly. Plain <th> is NOT
   always a label — see the scoped #customblock-additional-menu rule
   further down for why that one is handled separately. */
.pkp_structure_sidebar .content .blockTitle {
	background:var(--jicab-tint) !important;
	border-radius:10px;
}

/* public/journals/9/styleSheet.css (a legacy per-journal custom
   stylesheet from the old design, loaded after every other stylesheet
   including this one) hardcodes `.hover tr{background:#64B0D6}` and
   `.hover th{color:#64B0D6}` for these same custom-block tables.
   !important is the only way to win regardless of load order. */
.pkp_structure_sidebar .content table.hover tr,
.pkp_structure_sidebar .content table.hover td {
	background:none !important;
	border-bottom:0 !important;
	height:auto !important;
}
.pkp_structure_sidebar .content table.hover th {
	border-bottom:0 !important;
	height:auto !important;
}
.pkp_structure_sidebar .content table.hover tr,
.pkp_structure_sidebar .content table.hover td {
	color:inherit !important;
}
.pkp_structure_sidebar .content table.hover th {
	color:var(--jicab-accent) !important;
}
/* Only "Additional Menu" uses a bare <th> as its section label — Tools/
   Indexed By/E-ISSN etc. put their label in a separate .blockTitle <td>
   and use <th> for unrelated image rows (logos, the E-ISSN barcode), so
   scoping the tint background to the whole table.hover th rule above
   colored those images' cells too. */
#customblock-additional-menu .content table.hover th {
	background:var(--jicab-tint) !important;
	border-radius:10px;
}

.pkp_structure_sidebar .content table.hover tr:hover td { background:var(--jicab-tint-2) !important; border-radius:10px; }

/* Additional Menu is a plain admin-authored link list (no real "current
   page" object PKP could mark active for us), so the highlight is added
   client-side by matching each link's href against the current URL —
   see setupSidebarActiveLink() in jicab.js. */
.pkp_structure_sidebar .content table.hover tr.is-current td { background:var(--jicab-tint) !important; border-radius:10px; }
.pkp_structure_sidebar .content table.hover tr.is-current a { color:var(--jicab-navy-2) !important; font-weight:800; }

.pkp_structure_sidebar .content a { color:var(--jicab-text); font-weight:600; text-decoration:none; }
.pkp_structure_sidebar .content a:hover { color:var(--jicab-navy-2); }

/* ---------- Main column: drop the decorative divider lines ---------- */

.pkp_structure_main:before,
.pkp_structure_main:after,
.pkp_structure_sidebar:before,
.pkp_structure_sidebar:after { content:none !important; }

/* ---------- Footer (site-wide: pageFooter + brand strip) ---------- */

.pkp_structure_footer_wrapper {
	background:var(--jicab-navy) !important;
	color:#c9d6df;
	margin-top:0 !important;
	border-bottom:0 !important;
}

.pkp_structure_footer_wrapper a { color:#fff !important; }
.pkp_structure_footer_wrapper a:hover { color:var(--jicab-light) !important; }

/* public/journals/9/styleSheet.css forces .pkp_footer_content to a white
   background (leftover from the old design) — it loads after this
   stylesheet, so white text/links inside it would otherwise render
   invisible on white. */
.pkp_footer_content { background:transparent !important; padding:64px 0 8px !important; box-shadow:none !important; }
.pkp_footer_content h2,.pkp_footer_content h3 { color:#fff; }

.pkp_brand_footer {
	padding:14px 0 28px;
	opacity:.7;
}
.pkp_brand_footer img { filter:brightness(0) invert(1); max-height:24px; }

.jicab-footer { display:flex; flex-wrap:wrap; gap:32px 48px; }
.jicab-footer__brand { flex:1 1 280px; }
.jicab-footer__brand img { height:56px; width:auto; display:block; margin-bottom:12px; }
.jicab-footer__brand p { margin:0 0 14px; font-size:13.5px; line-height:1.6; max-width:320px; color:#c9d6df; }
.jicab-footer__tags span { border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:4px 11px; font-size:12px; font-weight:700; color:#fff; margin-right:6px; display:inline-block; margin-bottom:6px; }
.jicab-footer__col { flex:1 1 220px; font-size:13.5px; line-height:1.6; }
.jicab-footer__label { font-size:11.5px; font-weight:800; letter-spacing:.1em; color:#64b0d6; margin-bottom:10px; }
.jicab-footer__col a { display:block; color:#fff; text-decoration:none; margin-bottom:6px; }
.jicab-footer__visitors { flex:0 1 200px; }
.jicab-footer__visitors img { max-width:100%; }
.jicab-footer__visitors .statcounter { margin-top:10px; font-size:11.5px; }
.jicab-footer__visitors .statcounter a { display:inline; color:#9fd0ea; }
.jicab-footer__copyright { border-top:1px solid rgba(255,255,255,.1); margin-top:24px; padding-top:16px; font-size:12.5px; color:#9fb4c3; }

.jicab-policygrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.jicab-policygroup { background:#f6f9fb; border-radius:22px; padding:24px; display:flex; flex-direction:column; gap:2px; }
.jicab-policygroup .t { font-weight:800; font-size:16px; color:var(--jicab-navy); margin-bottom:10px; }
.jicab-policygroup a { padding:8px 0; font-size:14px; font-weight:600; color:var(--jicab-text); text-decoration:none; }
.jicab-policygroup a:hover { color:var(--jicab-navy-2); }

/* ---------- Homepage article list (own markup, see indexJournal.tpl) ---------- */

.jicab-article-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.jicab-article-list > li { list-style:none; }

.jicab-article {
	display:grid;
	grid-template-columns:64px minmax(0,1fr);
	gap:18px;
	padding:20px 22px;
	border:1px solid var(--jicab-border);
	border-radius:18px;
	background:#fff;
	transition:box-shadow .2s,border-color .2s;
}
.jicab-article:hover { border-color:#c4e2f2; box-shadow:0 10px 28px rgba(16,50,74,.09); }

.jicab-article__pages {
	display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:2px;
	background:var(--jicab-tint-2); border-radius:14px; padding:10px 4px; height:fit-content;
}
.jicab-article__pages .pp { font-size:10.5px; font-weight:800; letter-spacing:.08em; color:var(--jicab-muted); }
.jicab-article__pages .n { font-weight:800; font-size:14px; color:var(--jicab-navy-2); }
.jicab-article__pages .sep { font-size:12px; color:#7b8a95; line-height:1; }

.jicab-article__body { min-width:0; }
.jicab-article__title { margin:0 0 8px; font-size:17px; line-height:1.45; font-weight:700; }
.jicab-article__title a { color:var(--jicab-navy); text-decoration:none; }
.jicab-article__title a:hover { color:var(--jicab-accent); }
.jicab-article__authors { font-size:13.5px; color:var(--jicab-muted); margin-bottom:14px; }

.jicab-article__actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
a.jicab-pill-solid, button.jicab-pill-solid {
	display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--jicab-accent) !important; color:#fff !important;
	text-decoration:none; font-weight:700; font-size:13px; padding:7px 15px; border-radius:999px; border:0; font-family:inherit; cursor:pointer;
}
a.jicab-pill-solid:hover, button.jicab-pill-solid:hover { background:var(--jicab-navy-2) !important; }
a.jicab-pill-outline, button.jicab-pill-outline {
	display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid #c4e2f2; color:var(--jicab-navy-2) !important;
	text-decoration:none; font-weight:700; font-size:13px; padding:6px 14px; border-radius:999px; background:none; font-family:inherit; cursor:pointer;
}
a.jicab-pill-outline:hover, button.jicab-pill-outline:hover { background:var(--jicab-tint); }
.jicab-article__metrics { display:flex; gap:14px; margin-left:auto; font-size:12.5px; color:var(--jicab-muted); font-weight:600; }

/* ---------- Homepage-only sections ---------- */

.jicab-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.jicab-badge {
	border-radius:999px;
	padding:6px 14px;
	font-size:12.5px;
	font-weight:800;
	letter-spacing:.03em;
}
.jicab-badge.is-dark { background:var(--jicab-navy); color:#fff; }
.jicab-badge.is-light { background:#fff; color:var(--jicab-navy-2); border:1px solid var(--jicab-border); }
.jicab-badge.is-tint { background:var(--jicab-tint); color:var(--jicab-navy); }

/* True full-bleed: escape not just .pkp_structure_main's own padding but
   the whole 1240px-capped container chain above it, using viewport
   units rather than a negative margin sized to one ancestor's padding —
   matching the mockup, where the hero <section> itself carries the
   background color at 100% width and only an *inner* div is capped at
   max-width and centered. overflow-x:hidden on body is the safety net
   for the sub-pixel rounding calc(50%-50vw) can produce. */
body { overflow-x:hidden; }
.jicab-hero {
	position:relative;
	background-color:var(--jicab-light);
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.22' stroke-width='1.6'%3E%3Crect x='45' y='45' width='70' height='70'/%3E%3Crect x='45' y='45' width='70' height='70' transform='rotate(45 80 80)'/%3E%3Ccircle cx='80' cy='80' r='18'/%3E%3Cpath d='M0 80h45M115 80h45M80 0v45M80 115v45'/%3E%3C/g%3E%3C/svg%3E");
	color:var(--jicab-navy);
	margin:0 0 28px;
	width:100vw;
	margin-left:calc(50% - 50vw);
	margin-right:calc(50% - 50vw);
}
.jicab-hero__inner {
	max-width:1240px; margin:0 auto; padding:48px 32px 56px;
	display:flex; flex-wrap:wrap; gap:32px; align-items:center;
}
.jicab-hero__main { flex:1 1 380px; min-width:0; }
.jicab-hero h1 { font-size:clamp(32px,4.6vw,52px); line-height:1.08; margin:0 0 16px; }
.jicab-hero p.jicab-lede,
.jicab-hero .jicab-lede { font-size:17px; line-height:1.6; margin:0 0 22px; max-width:560px; color:#143c56; }

.jicab-quickterms { display:flex; flex-wrap:wrap; gap:8px; font-size:13px; align-items:center; margin-top:14px; }
.jicab-quickterms span:first-child { font-weight:700; }
.jicab-quickterms button {
	background:rgba(255,255,255,.4); border:0; border-radius:999px; padding:5px 12px;
	font:inherit; font-size:13px; font-weight:600; color:var(--jicab-navy); cursor:pointer;
}
.jicab-quickterms button:hover { background:#fff; }

.jicab-search { position:relative; max-width:560px; margin-bottom:14px; }
.jicab-search input {
	width:100%;
	height:52px;
	border:0;
	border-radius:999px;
	padding:0 118px 0 46px;
	font:inherit;
	font-size:15px;
	color:var(--jicab-ink);
	background:#fff;
	box-shadow:0 10px 30px rgba(16,50,74,.18);
}
.jicab-search svg {
	position:absolute; left:18px; top:50%; transform:translateY(-50%);
	width:18px; height:18px; color:#5b6b77;
}
.jicab-search button {
	position:absolute; right:6px; top:6px; height:40px;
	padding:0 18px; border:0; border-radius:999px;
	background:var(--jicab-navy); color:#fff; font:inherit; font-weight:700; font-size:13.5px; cursor:pointer;
}
.jicab-search button:hover { background:var(--jicab-navy-2); }

.jicab-issuecard {
	flex:0 1 320px; min-width:260px;
	background:#fff; border-radius:20px; padding:18px;
	box-shadow:0 20px 50px rgba(16,50,74,.22);
	display:flex; gap:16px; align-items:stretch;
}
.jicab-issuecard__cover { flex:0 0 110px; border-radius:10px; overflow:hidden; background:var(--jicab-tint); }
.jicab-issuecard__cover img { width:100%; height:100%; object-fit:cover; display:block; }
/* When there's no full-issue galley, .jicab-issuecard__body doesn't
   render at all, so the card has nothing to stretch the cover against —
   it needs its own fixed height, and the card itself should hug the
   cover's width instead of reserving the full body-card width. */
.jicab-issuecard--cover-only { flex:0 0 auto; min-width:0; }
.jicab-issuecard--cover-only .jicab-issuecard__cover { height:150px; }
.jicab-issuecard__body { flex:1; min-width:0; display:flex; flex-direction:column; }
.jicab-issuecard .kicker { font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--jicab-accent); margin-bottom:6px; }
.jicab-issuecard .vol { font-family:"Source Serif 4",Georgia,serif; font-weight:700; font-size:19px; color:var(--jicab-navy); margin-bottom:4px; }
.jicab-issuecard .date { font-size:12px; color:var(--jicab-muted); margin-bottom:10px; }
.jicab-issuecard__countries { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:auto; }
.jicab-issuecard__countries span { background:var(--jicab-tint-2); color:var(--jicab-navy-2); border-radius:999px; padding:3px 9px; font-size:11.5px; font-weight:700; }
.jicab-issuecard .browse {
	margin-top:auto; display:inline-flex; align-items:center; justify-content:center; gap:6px;
	background:var(--jicab-light); color:var(--jicab-navy); text-decoration:none; font-weight:800; font-size:13px;
	padding:9px 12px; border-radius:999px;
}
.jicab-issuecard .browse:hover { background:#4d9ec7; }

.jicab-stats {
	position:relative; z-index:2;
	background:#fff; border-radius:20px; box-shadow:0 16px 40px rgba(16,50,74,.16);
	display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
	margin:-56px 0 28px; overflow:hidden;
}
@media (max-width:700px){ .jicab-stats { margin-top:-30px; } }
.jicab-stats > div { padding:18px 18px; border-right:1px solid var(--jicab-border); }
.jicab-stats > div:last-child { border-right:0; }
.jicab-stats .num { font-family:"Source Serif 4",Georgia,serif; font-weight:700; font-size:26px; color:var(--jicab-navy-2); }
.jicab-stats .lbl { font-size:12.5px; color:var(--jicab-muted); font-weight:600; }

.jicab-indexedby { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; padding:20px 0 8px; }
.jicab-indexedby__label { font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--jicab-muted); }
.jicab-indexedby__list { display:flex; flex-wrap:wrap; gap:10px; flex:1; }
.jicab-indexedby__list a {
	height:44px; padding:0 18px; display:inline-flex; align-items:center;
	border:1px solid var(--jicab-border); border-radius:12px; font-weight:800; font-size:13.5px;
	color:var(--jicab-text); text-decoration:none; background:#fff;
}
.jicab-indexedby__list a:hover { border-color:var(--jicab-light); color:var(--jicab-navy-2); background:var(--jicab-tint-2); }

.jicab-issue-desc p:first-child:has(img) {
	display:flex; flex-wrap:wrap; align-items:center; gap:8px;
}
.jicab-issue-desc p:first-child img {
	height:40px; width:auto; border-radius:6px; object-fit:cover;
}

.jicab-section { margin:0 0 40px; }
.jicab-kicker { font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--jicab-accent); margin-bottom:8px; }
.jicab-section h2 { font-size:28px; line-height:1.15; margin:0 0 14px; }

.jicab-mostread {
	background:var(--jicab-navy); color:#fff; border-radius:20px; padding:20px; margin-bottom:20px;
}
.jicab-mostread .jicab-kicker { color:#9fd0ea; display:flex; align-items:center; gap:8px; }
.jicab-mostread ol { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.jicab-mostread ol > li { display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:start; }
.jicab-mostread a { color:#fff; text-decoration:none; }
.jicab-mostread a:hover { color:#c4e2f2; }
.jicab-mostread .rank {
	width:28px; height:28px; border-radius:50%; background:var(--jicab-light); color:var(--jicab-navy);
	display:grid; place-items:center; font-weight:800; font-size:12.5px;
}
.jicab-mostread .t { display:block; font-weight:700; font-size:13.5px; line-height:1.4; }
.jicab-mostread .v { font-size:11.5px; color:#9fb4c3; }

.jicab-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.jicab-step { background:#fff; border:1px solid var(--jicab-border); border-radius:20px; padding:22px; display:flex; flex-direction:column; gap:10px; }
.jicab-step .n { font-family:"Source Serif 4",Georgia,serif; font-weight:700; font-size:26px; color:#c4e2f2; }
.jicab-step .t { font-weight:800; font-size:16px; color:var(--jicab-navy); }
.jicab-step p { margin:0; font-size:13.5px; line-height:1.6; color:var(--jicab-text); }

.jicab-scope-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr)); gap:14px; }
.jicab-scope-item {
	border:1px solid var(--jicab-border); border-radius:20px; padding:22px; background:#fff;
	display:flex; flex-direction:column; gap:10px; transition:border-color .2s,box-shadow .2s;
}
.jicab-scope-item:hover { border-color:#c4e2f2; box-shadow:0 10px 28px rgba(16,50,74,.08); }
.jicab-scope-item__icon {
	width:44px; height:44px; border-radius:50%; background:var(--jicab-tint);
	color:var(--jicab-navy-2); display:grid; place-items:center; flex:none;
}
.jicab-scope-item .t { font-weight:800; font-size:16px; color:var(--jicab-navy); }
.jicab-scope-item p { margin:0; font-size:13.5px; line-height:1.6; color:var(--jicab-text); }

.jicab-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:8px; background:#f3f7fa; border-radius:999px; margin-bottom:14px; }
/* The homepage toolbar is a single short row, so a pill radius reads fine;
   this page's version wraps to multiple rows (search input + country
   chips), where the same 999px radius looks oversized against the taller
   box. */
.jicab-toolbar--wrap { border-radius:20px; padding:14px; }
.jicab-toolbar--wrap input { border-radius:12px; }
.jicab-toolbar input {
	width:100%; height:38px; border:1px solid #dde5eb; border-radius:999px; padding:0 14px; font:inherit; font-size:13.5px;
}
.jicab-sort { display:flex; gap:2px; flex-wrap:wrap; }
.jicab-sort button {
	border:0; border-radius:999px; padding:8px 15px; font:inherit; font-size:13px; font-weight:700;
	background:none; color:var(--jicab-text); cursor:pointer;
}
.jicab-sort button.is-active { background:#fff; color:var(--jicab-navy-2); box-shadow:0 2px 6px rgba(16,50,74,.12); }

.jicab-cite-btn {
	display:inline-flex; align-items:center; gap:6px; border:1px solid #dde5eb; background:#fff; color:#33434f;
	font:inherit; font-weight:700; font-size:13px; padding:6px 14px; border-radius:999px; cursor:pointer;
}
.jicab-cite-btn:hover { background:#f3f7fa; }

.jicab-toast {
	position:fixed; left:50%; bottom:28px; transform:translateX(-50%);
	background:var(--jicab-navy); color:#fff; padding:12px 20px; border-radius:999px;
	font-size:14px; font-weight:600; box-shadow:0 12px 30px rgba(16,50,74,.3); z-index:200;
	opacity:0; pointer-events:none; transition:opacity .2s;
}
.jicab-toast.is-visible { opacity:1; }

/* Login / lost-password pages --------------------------------------------- */

.jicab-auth-section { background:#f3f7fa; padding:40px 0 72px; }
.jicab-auth-section__inner { max-width:1100px; margin:0 auto; padding:0 28px; }
.jicab-auth-crumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; font-weight:700; margin-bottom:22px; color:var(--jicab-muted); }
.jicab-auth-crumb a { text-decoration:none; }

.jicab-auth-card { display:flex; flex-wrap:wrap; background:#fff; border-radius:28px; overflow:hidden; box-shadow:0 20px 50px rgba(16,50,74,.12); }

.jicab-auth-card__panel {
	flex:1 1 380px; min-width:0; position:relative; background-color:var(--jicab-light);
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.22' stroke-width='1.6'%3E%3Crect x='45' y='45' width='70' height='70'/%3E%3Crect x='45' y='45' width='70' height='70' transform='rotate(45 80 80)'/%3E%3Ccircle cx='80' cy='80' r='18'/%3E%3Cpath d='M0 80h45M115 80h45M80 0v45M80 115v45'/%3E%3C/g%3E%3C/svg%3E");
	color:var(--jicab-navy); padding:40px; display:flex; flex-direction:column; gap:28px;
}
.jicab-auth-card__logo { width:170px; height:auto; display:block; background:#fff; border-radius:24px; padding:10px 14px; }
.jicab-auth-card__title { font-size:30px; line-height:1.15; margin:0 0 10px; }
.jicab-auth-card__lede { margin:0; font-size:15px; line-height:1.6; color:#143c56; }
.jicab-auth-roles { display:flex; flex-direction:column; gap:10px; }
.jicab-auth-role { display:flex; gap:14px; align-items:flex-start; background:rgba(255,255,255,.55); border-radius:18px; padding:14px 16px; }
.jicab-auth-role__icon { width:36px; height:36px; border-radius:12px; background:var(--jicab-navy); color:#fff; display:grid; place-items:center; flex:none; }
.jicab-auth-role__title { display:block; font-weight:800; font-size:14.5px; }
.jicab-auth-role__body { font-size:13px; color:#143c56; }
.jicab-auth-card__badges { margin-top:auto; display:flex; flex-wrap:wrap; gap:8px; }
.jicab-auth-badge { border-radius:999px; padding:5px 12px; font-size:12px; font-weight:800; }
.jicab-auth-badge.is-dark { background:var(--jicab-navy); color:#fff; }
.jicab-auth-badge.is-light { background:#fff; color:var(--jicab-navy-2); }
.jicab-auth-badge.is-tint { background:rgba(255,255,255,.55); color:var(--jicab-navy); }

.jicab-auth-card__form { flex:1 1 440px; min-width:0; padding:44px 44px 40px; display:flex; flex-direction:column; }
.jicab-auth-kicker { font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--jicab-accent); margin-bottom:8px; }
.jicab-auth-title { font-size:36px; line-height:1.1; margin:0 0 8px; color:var(--jicab-navy); }
.jicab-auth-required-note, .jicab-auth-lede { margin:0 0 26px; font-size:14px; color:var(--jicab-muted); line-height:1.6; }
.jicab-auth-required { color:#c0392b; }

.jicab-auth-notice { background:var(--jicab-tint-2); color:var(--jicab-navy-2); border-radius:14px; padding:12px 14px; font-size:13.5px; font-weight:600; margin-bottom:18px; }
.jicab-auth-error { display:flex; gap:10px; align-items:flex-start; background:#fdecea; color:#8a2a1f; border-radius:14px; padding:12px 14px; font-size:13.5px; font-weight:600; margin-bottom:18px; }

.jicab-auth-fields, fieldset.jicab-auth-fields { display:flex; flex-direction:column; gap:18px; border:0; padding:0; margin:0; }
.jicab-auth-field { display:flex; flex-direction:column; gap:7px; }
.jicab-auth-field__label { font-size:13.5px; font-weight:700; color:var(--jicab-navy); }
.jicab-auth-field__label--row { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.jicab-auth-forgot { font-size:13px; font-weight:700; text-decoration:none; }
.jicab-auth-field__control { position:relative; display:block; }
.jicab-auth-field__icon { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:#7b8a95; width:17px; height:17px; }
/* Core's own .cmp_form input[type="text"/"password"/"email"] rule (no
   !important, but a compound class+attribute selector) outranks a plain
   class selector on specificity alone — height/border-radius/border/
   padding/max-width all silently lost to it without !important here. */
.jicab-auth-input {
	width:100% !important; max-width:none !important; height:50px !important; box-sizing:border-box !important;
	border:1.5px solid var(--jicab-border) !important; border-radius:999px !important; padding:0 18px 0 44px !important;
	font:inherit !important; font-size:15px !important; line-height:normal !important; color:#1d2b36; background:#fff !important;
}
.jicab-auth-input:focus-visible { outline:2px solid var(--jicab-accent); outline-offset:2px; }
.jicab-auth-input--pw { padding-right:90px !important; }
.jicab-auth-pw-toggle {
	position:absolute; right:6px; top:6px; height:38px; padding:0 14px; border:0; border-radius:999px;
	background:var(--jicab-tint-2); color:var(--jicab-navy-2); font:inherit; font-size:12.5px; font-weight:800; cursor:pointer;
}
.jicab-auth-pw-toggle:hover { background:var(--jicab-tint); }

.jicab-auth-checkbox { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--jicab-text); cursor:pointer; width:fit-content; }
.jicab-auth-checkbox input { width:18px; height:18px; accent-color:var(--jicab-accent); margin:0; }

.jicab-auth-submit { height:52px; font-size:15.5px; justify-content:center; margin-top:4px; }

.jicab-auth-divider { display:flex; align-items:center; gap:12px; margin:26px 0 18px; color:#8a98a2; font-size:12.5px; font-weight:700; }
.jicab-auth-divider span { flex:1; height:1px; background:var(--jicab-border); }
.jicab-auth-register {
	height:50px; border:1.5px solid #c4e2f2; border-radius:999px; display:flex; align-items:center; justify-content:center;
	gap:8px; font-weight:800; font-size:15px; text-decoration:none; color:var(--jicab-navy-2);
}
.jicab-auth-register:hover { background:var(--jicab-tint-2); }

.jicab-auth-back {
	align-self:flex-start; display:inline-flex; align-items:center; gap:6px; background:none; border:0; padding:0;
	font-size:13.5px; font-weight:800; color:var(--jicab-navy-2); text-decoration:none; margin-bottom:22px;
}

.jicab-auth-help { margin-top:auto; padding-top:28px; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12.5px; color:var(--jicab-muted); }

.jicab-auth-quicklinks { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-top:20px; }
.jicab-auth-quicklink {
	display:flex; align-items:center; gap:14px; background:#fff; border-radius:20px; padding:16px 18px;
	text-decoration:none; color:var(--jicab-navy); transition:box-shadow .15s;
}
.jicab-auth-quicklink:hover { box-shadow:0 8px 22px rgba(16,50,74,.08); }
.jicab-auth-quicklink__icon { width:40px; height:40px; border-radius:12px; background:var(--jicab-tint); color:var(--jicab-navy-2); display:grid; place-items:center; flex:none; }
.jicab-auth-quicklink__icon--doc { font-size:10.5px; font-weight:800; }
.jicab-auth-quicklink__title { display:block; font-weight:800; font-size:14.5px; }
.jicab-auth-quicklink__body { font-size:12.5px; color:var(--jicab-muted); }

@media (max-width:640px){
	.jicab-auth-card__form { padding:32px 24px; }
	.jicab-auth-card__panel { padding:28px; }
}

/* Register page ------------------------------------------------------------
   No mockup exists for this page; it reuses the login/lost-password auth
   shell for visual consistency. Every field/checkbox/fieldset below is
   core's own real markup (registrationForm.tpl etc.) — restyled here by
   targeting the class names core already renders, not rewritten, since
   the reviewer-opt-in / multi-context / reCAPTCHA logic isn't worth
   hand-reproducing. Same .cmp_form input specificity fight as login, so
   the same !important treatment applies. */

.jicab-auth-card--top { align-items:flex-start; }

.page_register fieldset.identity, .page_register fieldset.login,
.page_register fieldset.consent, .page_register fieldset.reviewer,
.page_register fieldset.recaptcha_wrapper, .page_register fieldset[name="contexts"] {
	border:0; padding:0; margin:0 0 28px;
}
.page_register fieldset legend {
	font-family:"Source Serif 4",Georgia,serif; font-weight:700; color:var(--jicab-navy); font-size:18px;
	margin:0 0 14px; padding:0; width:auto; float:none;
}
.page_register .fields { display:flex; flex-wrap:wrap; gap:16px; margin:0; padding:0; }
.page_register .fields > div { flex:1 1 220px; min-width:0; }
.page_register .fields label { display:flex; flex-direction:column; gap:7px; width:100%; }
.page_register .fields .label { font-size:13.5px; font-weight:700; font-style:normal; color:var(--jicab-navy); }
.page_register .required { color:#c0392b; }

.page_register .fields input[type="text"], .page_register .fields input[type="email"],
.page_register .fields input[type="password"], .page_register .fields select,
.page_register #reviewerInterests input, .page_register .reviewer_nocontext_interests input {
	width:100% !important; max-width:none !important; height:50px !important; box-sizing:border-box !important;
	border:1.5px solid var(--jicab-border) !important; border-radius:16px !important; padding:0 18px !important;
	font:inherit !important; font-size:15px !important; line-height:normal !important; color:#1d2b36; background:#fbfcfd !important;
}
.page_register .fields select { padding-right:40px !important; }
.page_register .fields input:focus-visible, .page_register .fields select:focus-visible { outline:2px solid var(--jicab-accent); outline-offset:2px; }

/* Not flexbox: the label's content is a checkbox followed by a mix of
   plain text + a real <a> link + more text (privacy statement wording) —
   flex would fragment that into several anonymous flex items, each
   wrapping onto its own line instead of flowing as one paragraph. A
   padded block with an absolutely-positioned checkbox in the gutter
   handles mixed inline content correctly. */
.page_register .optin label, .page_register #reviewerOptinGroup label, .page_register .contexts label {
	display:block; position:relative; padding-left:28px; font-size:13.5px; font-weight:600; color:var(--jicab-text);
	cursor:pointer; margin-bottom:8px; line-height:1.5;
}
.page_register .optin input[type="checkbox"], .page_register #reviewerOptinGroup input[type="checkbox"],
.page_register .contexts input[type="checkbox"] {
	position:absolute; left:0; top:2px; width:18px; height:18px; accent-color:var(--jicab-accent); margin:0;
}
.page_register #reviewerInterests, .page_register .reviewer_nocontext_interests { margin-top:12px; }

.page_register .buttons { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:8px; }
.page_register .buttons a.login { font-size:13px; font-weight:700; }

.page_register #formErrors {
	background:#fdecea; color:#8a2a1f; border-radius:14px; padding:14px 18px; margin-bottom:24px; font-size:13.5px;
}
.page_register #formErrors .pkp_form_error { font-weight:700; display:block; margin-bottom:6px; }
.page_register .pkp_form_error_list { margin:0; padding-left:20px; }
.page_register .pkp_form_error_list a { color:#8a2a1f; font-weight:600; }

.page_register .contexts { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.page_register .contexts .context { border:1px solid var(--jicab-border); border-radius:16px; padding:16px 18px; }
.page_register .contexts .name { font-weight:800; color:var(--jicab-navy); margin-bottom:8px; }
.page_register .contexts fieldset.roles { margin:0 0 8px; }

@media (max-width:640px){
	.page_register .fields > div { flex-basis:100%; }
}

/* Register wizard (JICAB Register mockup) --------------------------------
   Layered on top of the .page_register rules above (field/.optin/#formErrors
   base styling is shared); this adds the hero step-nav, the wizard card,
   preference "cards" instead of plain checkboxes, password strength meter,
   step-4 summary, and the live sidebar preview. */

.jicab-reg-hero {
	background:var(--jicab-navy); color:#fff;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.6'%3E%3Crect x='45' y='45' width='70' height='70'/%3E%3Crect x='45' y='45' width='70' height='70' transform='rotate(45 80 80)'/%3E%3Ccircle cx='80' cy='80' r='18'/%3E%3C/g%3E%3C/svg%3E");
}
.jicab-reg-hero__inner { max-width:1240px; margin:0 auto; padding:32px 28px 28px; }
.jicab-reg-hero__row { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px 40px; margin-bottom:28px; }
.jicab-reg-hero__intro { flex:1 1 420px; }
.jicab-reg-hero__intro h1 { font-size:clamp(32px,4vw,46px); line-height:1.08; margin:0 0 10px; }
.jicab-reg-hero__intro p { margin:0; font-size:15.5px; line-height:1.6; color:#c9d6df; max-width:560px; }
.jicab-reg-hero__login { font-size:14px; color:#c9d6df; }
.jicab-reg-hero__login a { color:var(--jicab-light); font-weight:800; }

.jicab-reg-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.jicab-reg-steps button {
	width:100%; display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:18px;
	border:1.5px solid rgba(255,255,255,.14); background:transparent; color:#fff; font:inherit; text-align:left; cursor:default;
}
.jicab-reg-steps li.is-current button { background:rgba(100,176,214,.18); border-color:var(--jicab-light); }
.jicab-reg-steps li.is-reachable button { cursor:pointer; }
.jicab-reg-steps .dot { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:14px; flex:none; background:rgba(255,255,255,.12); color:#9fb4c3; }
.jicab-reg-steps li.is-current .dot { background:var(--jicab-light); color:var(--jicab-navy); }
.jicab-reg-steps li.is-done .dot { background:#fff; color:var(--jicab-navy); }
.jicab-reg-steps .t { display:block; font-weight:800; font-size:14px; }
.jicab-reg-steps .s { font-size:12px; color:#9fb4c3; }

.jicab-reg-progress { height:4px; background:rgba(255,255,255,.08); }
.jicab-reg-progress__fill { height:100%; background:var(--jicab-light); width:25%; transition:width .3s; }

.jicab-reg-body { background:#f3f7fa; padding:36px 0 72px; }
.jicab-reg-body__inner { max-width:1240px; margin:0 auto; padding:0 28px; display:flex; flex-wrap:wrap; gap:28px; align-items:flex-start; }

.jicab-reg-card { flex:1 1 600px; min-width:0; background:#fff; border-radius:28px; box-shadow:0 14px 40px rgba(16,50,74,.08); padding:36px 40px; }
.jicab-reg-stepkicker { font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--jicab-accent); margin-bottom:6px; }
.jicab-reg-card h2 { font-size:30px; line-height:1.15; margin:0 0 6px; color:var(--jicab-navy); }
.jicab-reg-stepintro { margin:0 0 28px; font-size:14.5px; line-height:1.6; color:var(--jicab-muted); }

.jicab-reg-grid { display:grid !important; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px 16px !important; }
.jicab-reg-grid > div { flex:none !important; }
.jicab-reg-span2 { grid-column:1 / -1; }
.jicab-reg-hint { display:block; font-size:12px; color:#7b8a95; margin-top:4px; }

.jicab-reg-at { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:#7b8a95; font-weight:700; }
.page_register .jicab-reg-input--at { padding-left:36px !important; }
.page_register .jicab-auth-input--pw { padding-right:80px !important; }

.jicab-reg-strength { background:#f6f9fb; border-radius:18px; padding:16px 18px; }
.jicab-reg-strength__head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; font-size:13px; font-weight:800; color:var(--jicab-navy); }
.jicab-reg-strength__bars { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:14px; }
.jicab-reg-strength__bars span { height:6px; border-radius:999px; background:var(--jicab-border); }
.jicab-reg-strength__rules { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:6px 16px; }
.jicab-reg-strength__rules span[data-role="pw-rule"] { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--jicab-muted); }
.jicab-reg-strength__rules .dot { width:18px; height:18px; border-radius:50%; background:var(--jicab-border); flex:none; }
.jicab-reg-strength__rules span.is-ok { color:#1e5b31; }
.jicab-reg-strength__rules span.is-ok .dot { background:#2f8f5b; position:relative; }
.jicab-reg-strength__rules span.is-ok .dot::after { content:"✓"; position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:11px; }

.jicab-reg-pref { border:1.5px solid var(--jicab-border); background:#fff; border-radius:20px; margin-bottom:12px; transition:border-color .15s,background .15s; }
.jicab-reg-pref label { display:block; position:relative; padding:18px 20px 18px 56px !important; margin:0 !important; cursor:pointer; }
.jicab-reg-pref input[type="checkbox"] { position:absolute; left:20px; top:20px; width:20px; height:20px; accent-color:var(--jicab-accent); }
.jicab-reg-pref.is-checked { border-color:var(--jicab-light); background:var(--jicab-tint-2); }
.jicab-reg-pref__head { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:4px; }
.jicab-reg-pref__head .t { font-weight:800; font-size:15px; color:var(--jicab-navy); }
.jicab-reg-pref__head .tag { font-size:11px; font-weight:800; letter-spacing:.06em; padding:2px 8px; border-radius:999px; background:var(--jicab-tint); color:var(--jicab-navy-2); }
.jicab-reg-pref--required .jicab-reg-pref__head .tag { background:#fdecea; color:#8a2a1f; }
.jicab-reg-pref__body { display:block; font-size:14px; line-height:1.55; color:var(--jicab-text); }
#reviewerInterests.page_register, .page_register #reviewerInterests { margin-top:0; padding:0 20px 18px 56px !important; }
.page_register #reviewerInterests label { padding:0 !important; }
.jicab-reg-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.jicab-reg-chip { border:1.5px solid var(--jicab-border); background:#fff; color:var(--jicab-text); border-radius:999px; padding:6px 12px; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.jicab-reg-chip.is-active { border-color:var(--jicab-accent); background:var(--jicab-accent); color:#fff; }

.jicab-reg-summary__block { border:1px solid var(--jicab-border); border-radius:20px; padding:18px 20px; margin-bottom:12px; }
.jicab-reg-summary__head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.jicab-reg-summary__head span { font-weight:800; font-size:15px; color:var(--jicab-navy); }
.jicab-reg-summary__head button { background:none; border:0; padding:0; font:inherit; font-size:13px; font-weight:800; color:var(--jicab-navy-2); cursor:pointer; }
.jicab-reg-summary__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px 20px; }
.jicab-reg-summary__grid .k { font-size:12px; font-weight:700; color:#7b8a95; margin-bottom:2px; }
.jicab-reg-summary__grid .v { font-size:14.5px; font-weight:700; color:#1d2b36; word-break:break-word; }

.jicab-reg-nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:32px; padding-top:24px; border-top:1px solid #eef2f5; }
.jicab-reg-nav .jicab-pill-solid, .jicab-reg-nav .jicab-pill-dark, .jicab-reg-nav .jicab-pill-outline { height:52px; padding:0 26px; font-size:15.5px; }

.jicab-reg-aside { flex:0 1 340px; min-width:280px; display:flex; flex-direction:column; gap:16px; }
.jicab-reg-preview { background:#fff; border-radius:24px; box-shadow:0 14px 40px rgba(16,50,74,.08); overflow:hidden; }
.jicab-reg-preview__head { background:var(--jicab-light); padding:14px 20px; font-size:11.5px; font-weight:800; letter-spacing:.1em; color:var(--jicab-navy); }
.jicab-reg-preview__body { padding:20px; display:flex; flex-direction:column; gap:14px; }
.jicab-reg-preview__id { display:flex; gap:14px; align-items:center; }
.jicab-reg-preview__avatar { width:56px; height:56px; border-radius:50%; background:var(--jicab-navy); color:#fff; display:grid; place-items:center; font-weight:800; font-size:18px; flex:none; }
.jicab-reg-preview__name { font-weight:800; font-size:17px; color:var(--jicab-navy); word-break:break-word; }
.jicab-reg-preview__handle { font-size:13px; color:var(--jicab-muted); word-break:break-word; }
.jicab-reg-preview__rows { display:flex; flex-direction:column; gap:8px; font-size:13.5px; color:var(--jicab-text); }
.jicab-reg-preview__rows span { display:flex; gap:8px; align-items:flex-start; }
.jicab-reg-preview__rows svg { color:var(--jicab-accent); margin-top:2px; }
.jicab-reg-preview__roles { display:flex; flex-wrap:wrap; gap:6px; padding-top:12px; border-top:1px solid #eef2f5; }
.jicab-reg-role { background:var(--jicab-tint); color:var(--jicab-navy-2); border-radius:999px; padding:4px 10px; font-size:12px; font-weight:800; }
.jicab-reg-role--reviewer { background:var(--jicab-navy); color:#fff; }
.jicab-reg-preview__progress-head { display:flex; justify-content:space-between; font-size:12.5px; font-weight:700; color:var(--jicab-muted); margin-bottom:6px; }
.jicab-reg-preview__progress .jicab-reg-progress { border-radius:999px; overflow:hidden; }
.jicab-reg-preview__progress .jicab-reg-progress__fill { background:var(--jicab-accent); }

.jicab-reg-benefits { background:#fff; border-radius:24px; padding:20px; }
.jicab-reg-benefits__head { font-size:11.5px; font-weight:800; letter-spacing:.1em; color:var(--jicab-accent); margin-bottom:12px; }
.jicab-reg-benefits span { display:flex; gap:10px; font-size:13.5px; line-height:1.5; color:var(--jicab-text); margin-bottom:10px; }
.jicab-reg-benefits span:last-child { margin-bottom:0; }
.jicab-reg-benefits .n { width:22px; height:22px; border-radius:50%; background:var(--jicab-tint); color:var(--jicab-navy-2); display:grid; place-items:center; font-size:11px; font-weight:800; flex:none; }
.jicab-reg-help { font-size:13px; color:var(--jicab-muted); line-height:1.55; padding:0 6px; }

@media (max-width:640px){
	.jicab-reg-card { padding:26px 22px; }
}

/* Registration-complete page ----------------------------------------------- */

.jicab-regcomplete-card {
	background:#fff; border-radius:28px; box-shadow:0 20px 50px rgba(16,50,74,.12); padding:44px;
	display:flex; flex-direction:column; align-items:flex-start; gap:16px; max-width:720px;
}
.jicab-regcomplete-check { width:64px; height:64px; border-radius:50%; background:#e6f4ea; color:#1e5b31; display:grid; place-items:center; }
.jicab-regcomplete-card h1 { font-size:32px; margin:0; color:var(--jicab-navy); }
.jicab-regcomplete-card p { margin:0; font-size:15.5px; line-height:1.65; color:var(--jicab-text); }
.jicab-regcomplete-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; width:100%; margin-top:10px; }
.jicab-regcomplete-action {
	display:flex; flex-direction:column; gap:6px; background:var(--jicab-tint-2); color:var(--jicab-navy);
	border-radius:20px; padding:18px; text-decoration:none;
}
.jicab-regcomplete-action:hover { background:var(--jicab-tint); }
.jicab-regcomplete-action .t { font-weight:800; font-size:15px; }
.jicab-regcomplete-action .s { font-size:13px; color:var(--jicab-muted); }
.jicab-regcomplete-action--dark { background:var(--jicab-navy); color:#fff; }
.jicab-regcomplete-action--dark .s { color:#c9d6df; }
.jicab-regcomplete-action--dark:hover { background:var(--jicab-navy-2); }

/* Search page (JICAB Search mockup) --------------------------------------- */

.jicab-searchbar { position:relative; display:flex; align-items:center; gap:10px; background:#fff; border-radius:999px; box-shadow:0 12px 32px rgba(16,50,74,.2); padding:6px 6px 6px 20px; }
.jicab-searchbar svg.ic { color:#5b6b77; width:21px; height:21px; flex:none; }
.jicab-searchbar input { flex:1; min-width:0; border:0; height:50px; font:inherit; font-size:16.5px; color:#1d2b36; background:none; }
.jicab-searchbar input:focus-visible { outline:none; }
.jicab-searchbar [data-role="jicab-search-clear"] { border:0; background:#eef3f6; color:#4a5a66; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; cursor:pointer; flex:none; }
.jicab-searchbar [data-role="jicab-search-clear"]:hover { background:#e2e9ee; }
.jicab-searchbar .jicab-pill-dark { height:46px; padding:0 26px; flex:none; }

.jicab-searchbar-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:14px; max-width:820px; }
.jicab-scope-pills { display:flex; flex-wrap:wrap; gap:2px; background:rgba(255,255,255,.4); border-radius:999px; padding:3px; }
.jicab-scope-pills button { border:0; border-radius:999px; padding:7px 14px; font:inherit; font-size:13px; font-weight:800; cursor:pointer; background:transparent; color:var(--jicab-navy); }
.jicab-scope-pills button.is-active { background:#fff; }
.jicab-searchbar-try { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; }
.jicab-searchbar-try > span { font-weight:800; color:var(--jicab-navy); }
.jicab-searchbar-try button { background:rgba(255,255,255,.45); border:0; border-radius:999px; padding:5px 12px; font:inherit; font-size:13px; font-weight:700; color:var(--jicab-navy); cursor:pointer; }
.jicab-searchbar-try button:hover { background:#fff; }
.jicab-searchbar-recent { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; margin-top:10px; }
.jicab-searchbar-recent > span:first-child { font-weight:800; color:var(--jicab-navy); }
.jicab-searchbar-recent button[data-run] { background:#fff; border:0; border-radius:999px; padding:5px 12px; font:inherit; font-size:13px; font-weight:700; color:var(--jicab-navy-2); cursor:pointer; }
.jicab-searchbar-recent button[data-run]:hover { background:var(--jicab-tint); }
.jicab-searchbar-recent [data-role="jicab-recent-clear"] { background:none; border:0; padding:0 4px; font:inherit; font-size:12.5px; font-weight:700; color:#143c56; text-decoration:underline; cursor:pointer; }
.jicab-searchbar-recent [data-role="jicab-recent-list"] { display:inline-flex; flex-wrap:wrap; gap:6px; }

.jicab-searchfilters { border:1px solid var(--jicab-border); border-radius:24px; padding:20px; margin:0; }
.jicab-searchfilters__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.jicab-searchfilters__head span { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; letter-spacing:.1em; color:var(--jicab-accent); }
.jicab-searchfilters__head a { font-size:12.5px; font-weight:800; color:var(--jicab-navy-2); text-decoration:none; }
.jicab-searchfilters__label { font-size:13.5px; font-weight:800; color:var(--jicab-navy); margin-bottom:8px; }
.jicab-daterange { display:grid; gap:10px; margin-bottom:10px; }
.jicab-daterange > div { display:flex; flex-direction:column; gap:5px; }
.jicab-daterange > div > span { font-size:12px; font-weight:700; color:var(--jicab-muted); }
.jicab-daterange select {
	height:42px !important; border:1.5px solid var(--jicab-border) !important; border-radius:12px !important;
	padding:0 10px !important; font:inherit !important; font-size:13.5px !important; color:#1d2b36; background:#fbfcfd !important;
	margin:0 4px 4px 0 !important; width:auto !important;
}
.jicab-date-presets { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px; }
.jicab-date-presets button { border:1px solid var(--jicab-border); background:#fff; border-radius:999px; padding:5px 11px; font:inherit; font-size:12px; font-weight:700; color:var(--jicab-text); cursor:pointer; }
.jicab-date-presets button:hover { border-color:var(--jicab-light); color:var(--jicab-navy-2); }

.jicab-results-head { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-bottom:14px; }
.jicab-sortby { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:#4a5a66; }
.jicab-sortby select { height:40px !important; border:1.5px solid var(--jicab-border) !important; border-radius:999px !important; padding:0 14px !important; font:inherit !important; font-size:13.5px !important; font-weight:700 !important; color:#1d2b36; background:#fff !important; cursor:pointer; }

.jicab-chips { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:16px; }
.jicab-chip { display:inline-flex; align-items:center; background:var(--jicab-navy); color:#fff; border-radius:999px; padding:6px 13px; font-size:12.5px; font-weight:700; }
.jicab-chip--clear { background:none; border:0; color:var(--jicab-navy-2); text-decoration:none; padding:4px 6px; font-weight:800; }

.jicab-searchresult {
	padding:20px 22px; border:1px solid var(--jicab-border); border-radius:20px; background:#fff;
	transition:border-color .2s,box-shadow .2s; margin-bottom:12px;
}
.jicab-searchresult:hover { border-color:#c4e2f2; box-shadow:0 10px 28px rgba(16,50,74,.08); }
.jicab-searchresult__meta { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; font-size:12px; font-weight:700; color:var(--jicab-muted); }
.jicab-searchresult__title { margin:0 0 8px; font-size:17px; line-height:1.45; font-weight:700; }
.jicab-searchresult__title a { color:var(--jicab-navy); text-decoration:none; }
.jicab-searchresult__title a:hover { color:var(--jicab-accent); }
.jicab-searchresult__authors { font-size:13.5px; color:#4a5a66; margin-bottom:12px; }
.jicab-searchresult__actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.jicab-searchresult__metrics { display:flex; gap:14px; margin-left:auto; font-size:12.5px; color:var(--jicab-muted); font-weight:600; }
.jicab-searchresult mark { background:#cde7f5; color:var(--jicab-navy); border-radius:4px; padding:0 1px; }

.jicab-search-empty {
	border:1.5px dashed #d6dfe5; border-radius:24px; padding:40px 32px; display:flex; flex-direction:column;
	align-items:flex-start; gap:14px;
}
.jicab-search-empty__icon { width:52px; height:52px; border-radius:50%; background:var(--jicab-tint-2); color:var(--jicab-navy-2); display:grid; place-items:center; }
.jicab-search-empty__title { font-weight:800; font-size:18px; color:var(--jicab-navy); }
.jicab-search-empty ul { margin:0; padding-left:18px; font-size:14px; line-height:1.7; color:#4a5a66; }

@media (max-width:700px){
	.jicab-searchbar { flex-wrap:wrap; padding:10px 16px; border-radius:22px; }
	.jicab-searchbar input { width:100%; order:1; }
	.jicab-searchbar .jicab-pill-dark { order:2; }
}

/* Article view page ------------------------------------------------------ */

.jicab-actionbar {
	position:sticky; z-index:30; background:#fff; border-bottom:1px solid var(--jicab-border);
	width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.jicab-actionbar__inner {
	max-width:1240px; margin:0 auto; padding:10px 28px; display:flex; flex-wrap:wrap; align-items:center; gap:8px;
}
.jicab-actionbar .obj_galley_link {
	display:inline-flex; align-items:center; gap:8px; background:var(--jicab-accent); color:#fff;
	text-decoration:none; font-weight:700; font-size:14px; padding:10px 18px; border-radius:999px;
}
.jicab-actionbar .obj_galley_link:hover { background:var(--jicab-navy-2); }
a.jicab-pill-ghost, button.jicab-pill-ghost {
	display:inline-flex; align-items:center; gap:8px; border:1px solid #dde5eb; background:#fff; color:var(--jicab-text);
	font:inherit; font-weight:700; font-size:14px; padding:9px 16px; border-radius:999px; cursor:pointer; text-decoration:none;
}
a.jicab-pill-ghost:hover, button.jicab-pill-ghost:hover { background:#f3f7fa; }
a.jicab-pill-dark, button.jicab-pill-dark {
	display:inline-flex; align-items:center; gap:8px; background:var(--jicab-navy); color:#fff; border:0;
	font:inherit; font-weight:700; font-size:13.5px; padding:9px 16px; border-radius:999px; cursor:pointer; text-decoration:none;
}
a.jicab-pill-dark:hover, button.jicab-pill-dark:hover { background:var(--jicab-navy-2); }
.jicab-actionbar__nav { display:flex; flex-wrap:wrap; gap:2px; margin-left:auto; font-size:13.5px; font-weight:700; }
.jicab-actionbar__nav a { padding:8px 12px; border-radius:999px; text-decoration:none; color:var(--jicab-muted); }
.jicab-actionbar__nav a:hover { background:#f1f8fc; color:var(--jicab-navy-2); }

.jicab-infocard { border:1px solid var(--jicab-border); border-radius:16px; padding:14px 16px; }
.jicab-infocard .k { font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--jicab-muted); margin-bottom:4px; }
.jicab-infocard .v, .jicab-infocard a.v { font-weight:800; font-size:15px; color:var(--jicab-navy); text-decoration:none; display:block; }
.jicab-infocard a.v:hover { color:var(--jicab-accent); }

.jicab-abstract { font-family:"Source Serif 4",Georgia,serif; font-size:17.5px; line-height:1.75; color:#24333e; }
.jicab-abstract p { margin:0 0 16px; }
.jicab-abstract p:last-child { margin-bottom:0; }

.jicab-keyword-pill {
	display:inline-flex; align-items:center; border:1px solid #c4e2f2; background:#fff; border-radius:999px;
	padding:7px 14px; font-size:13.5px; font-weight:700; color:var(--jicab-navy-2);
}

.jicab-cite-tabs { display:flex; flex-wrap:wrap; gap:2px; background:#fff; border:1px solid #dde5eb; border-radius:999px; padding:3px; }
.jicab-cite-tabs button { border:0; border-radius:999px; padding:7px 13px; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; background:none; color:var(--jicab-muted); }
.jicab-cite-tabs button.is-active { background:var(--jicab-navy); color:#fff; }
.jicab-cite-text { margin:0 0 16px; font-family:"Source Serif 4",Georgia,serif; font-size:16px; line-height:1.7; color:#24333e; padding-left:26px; text-indent:-26px; }
.jicab-cite-code { margin:0 0 16px; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12.5px; line-height:1.6; color:#24333e; background:#f6f9fb; border-radius:14px; padding:16px; white-space:pre-wrap; word-break:break-word; }

.jicab-license-card { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; padding:18px 20px; background:var(--jicab-tint); border-radius:20px; margin-bottom:14px; }
.jicab-license-badge { width:36px; height:36px; border-radius:50%; background:var(--jicab-navy); color:#fff; display:grid; place-items:center; font-weight:800; font-size:11px; }
.jicab-terms-card { border:1px solid var(--jicab-border); border-radius:20px; overflow:hidden; }
.jicab-terms-card__toggle {
	width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 20px;
	background:none; border:0; font:inherit; font-size:14px; font-weight:800; color:var(--jicab-navy); cursor:pointer; text-align:left;
}
.jicab-terms-card__toggle span { font-size:12.5px; color:var(--jicab-navy-2); font-weight:700; }
.jicab-terms-card__body { padding:0 20px 18px; font-size:13.5px; line-height:1.65; color:var(--jicab-text); }
.jicab-terms-card__body ul, .jicab-terms-card__body ol { margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px; }
.jicab-terms-card__body p:first-child { margin-top:0; }

.jicab-article-aside { display:flex; flex-direction:column; gap:16px; }
.jicab-sidecard { border:1px solid var(--jicab-border); border-radius:20px; padding:18px 20px; }
.jicab-sidecard--dark { background:var(--jicab-navy); color:#fff; border-color:var(--jicab-navy); }
.jicab-meta-row { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid #f0f3f6; font-size:13.5px; }
.jicab-meta-row:last-child { border-bottom:0; }
.jicab-meta-row span:first-child { color:var(--jicab-muted); font-weight:600; }
.jicab-meta-row span:last-child { font-weight:700; color:var(--jicab-navy); text-align:right; }

.jicab-share-btn {
	display:inline-flex; align-items:center; background:var(--jicab-light); color:var(--jicab-navy); border:0;
	font:inherit; font-weight:800; font-size:13px; padding:8px 14px; border-radius:999px; cursor:pointer;
}
.jicab-share-btn:hover { background:#8cc6e3; }
.jicab-share-link {
	display:inline-flex; align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
	color:#fff; text-decoration:none; font-weight:700; font-size:13px; padding:7px 13px; border-radius:999px;
}
.jicab-share-link:hover { background:rgba(255,255,255,.2); color:#fff; }

.jicab-fulltext-card {
	display:flex; align-items:center; gap:14px; background:var(--jicab-tint); border:1px solid #c4e2f2; border-radius:18px;
	padding:16px; text-decoration:none; color:var(--jicab-navy);
}
.jicab-fulltext-card:hover { background:#e2f1f9; }
.jicab-fulltext-card__badge { width:44px; height:44px; border-radius:12px; background:var(--jicab-accent); color:#fff; display:grid; place-items:center; font-size:11px; font-weight:800; flex:none; }

@media (max-width:700px){
	.jicab-actionbar__inner { flex-wrap:wrap; }
	.jicab-actionbar__nav { margin-left:0; width:100%; }
}

/* Issue view page ------------------------------------------------------- */

.jicab-issuecard__body .obj_galley_link {
	display:inline-flex; align-items:center; height:38px; padding:0 20px; border-radius:999px;
	background:var(--jicab-navy); color:#fff; font-weight:800; font-size:13.5px; text-decoration:none;
	margin-top:4px;
}
.jicab-issuecard__body .obj_galley_link:hover { background:var(--jicab-navy-2); }

/* Contact page ------------------------------------------------------------ */

.jicab-contact-card {
	background:#fff; border:1px solid var(--jicab-border); border-radius:18px; padding:22px 24px; margin-bottom:20px;
}
.jicab-contact-card__label { font-size:11.5px; font-weight:800; letter-spacing:.03em; color:var(--jicab-navy-2); text-transform:uppercase; margin-bottom:8px; }
.jicab-contact-card .address { font-size:14.5px; line-height:1.7; color:var(--jicab-text); }
.jicab-contact-card h3 { margin:0 0 12px; font-size:16px; color:var(--jicab-navy); font-family:"Source Serif 4",Georgia,serif; }
.jicab-contact-card .name { font-weight:700; font-size:15px; color:var(--jicab-ink); }
.jicab-contact-card .title, .jicab-contact-card .affiliation { font-size:13.5px; color:var(--jicab-muted); margin-top:2px; }
.jicab-contact-card .phone, .jicab-contact-card .email { font-size:13.5px; margin-top:10px; }
.jicab-contact-card .phone .label { font-weight:700; margin-right:6px; }
.jicab-contact-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.jicab-contact-grid .jicab-contact-card { margin-bottom:0; }

/* Search page ------------------------------------------------------------ */

.jicab-search-form { max-width:720px; margin:0 auto 32px; }
.jicab-search-form .search_input { margin-bottom:16px; }
.jicab-search-form input.query {
	width:100%; height:52px; border:1px solid var(--jicab-border); border-radius:999px;
	padding:0 22px; font-size:15px; font:inherit; box-sizing:border-box;
}
.jicab-search-form .search_advanced {
	border:1px solid var(--jicab-border); border-radius:16px; padding:18px 22px; margin:0 0 18px;
}
.jicab-search-form .search_advanced legend { font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.03em; color:var(--jicab-navy-2); padding:0 6px; }
.jicab-search-form .author { margin-top:14px; }
.jicab-search-form .author .label { display:block; font-weight:700; font-size:13.5px; margin-bottom:6px; }
.jicab-search-form .author input { width:100%; box-sizing:border-box; height:40px; border:1px solid var(--jicab-border); border-radius:10px; padding:0 12px; font:inherit; }
.jicab-search-form .submit { margin-top:8px; text-align:center; }
.jicab-search-form button.submit { border:0; cursor:pointer; }
.search_results { list-style:none; margin:0; padding:0; }

/* Announcements ---------------------------------------------------------- */

.jicab-announcement-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.jicab-announcement-card {
	background:#fff; border:1px solid var(--jicab-border); border-radius:18px; padding:24px;
}
.jicab-announcement-card .date { font-size:12.5px; font-weight:800; letter-spacing:.03em; color:var(--jicab-navy-2); text-transform:uppercase; margin-bottom:8px; }
.jicab-announcement-card h2 { margin:0 0 10px; font-size:19px; }
.jicab-announcement-card h2 a { color:var(--jicab-ink); text-decoration:none; }
.jicab-announcement-card h2 a:hover { color:var(--jicab-navy-2); }
.jicab-announcement-card .summary { font-size:14.5px; line-height:1.7; color:var(--jicab-text); margin-bottom:14px; }

/* Static pages (About submenu) ------------------------------------------ */

.jicab-static-content { font-size:15px; line-height:1.75; color:var(--jicab-text); }
.jicab-static-content h1, .jicab-static-content h2, .jicab-static-content h3 {
	font-family:"Source Serif 4",Georgia,serif; color:var(--jicab-navy); margin:28px 0 12px;
}
.jicab-static-content h2 { font-size:22px; }
.jicab-static-content h3 { font-size:18px; }
.jicab-static-content p { margin:0 0 16px; }
.jicab-static-content ul, .jicab-static-content ol { margin:0 0 16px; padding-left:22px; }
.jicab-static-content li { margin-bottom:6px; }
.jicab-static-content a { color:var(--jicab-navy-2); }
.jicab-static-content table { border-collapse:collapse; width:100%; margin:0 0 16px; }
.jicab-static-content table td, .jicab-static-content table th { border:1px solid var(--jicab-border); padding:8px 12px; }

/* Archives page --------------------------------------------------------- */

.jicab-archive-grid {
	display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:20px;
}
.jicab-archive-card {
	display:flex; flex-direction:column; background:#fff; border:1px solid var(--jicab-border);
	border-radius:18px; overflow:hidden; text-decoration:none; color:inherit;
	transition:box-shadow .15s, transform .15s;
}
.jicab-archive-card:hover { box-shadow:0 16px 32px rgba(16,50,74,.12); transform:translateY(-2px); }
.jicab-archive-card__cover { aspect-ratio:3/4; background:var(--jicab-tint-2); display:grid; place-items:center; overflow:hidden; }
.jicab-archive-card__cover img { width:100%; height:100%; object-fit:cover; }
.jicab-archive-card__noimg { font-family:"Source Serif 4",Georgia,serif; font-weight:700; color:var(--jicab-navy-2); font-size:14px; text-align:center; padding:0 16px; }
.jicab-archive-card__body { padding:16px; }
.jicab-archive-card__body .series { font-size:11.5px; font-weight:800; letter-spacing:.03em; color:var(--jicab-navy-2); text-transform:uppercase; margin-bottom:4px; }
.jicab-archive-card__body .title { font-size:15px; font-weight:700; color:var(--jicab-ink); margin-bottom:6px; line-height:1.35; }
.jicab-archive-card__body .desc { font-size:13px; color:var(--jicab-muted); line-height:1.5; max-height:8.5em; overflow:hidden; }
.jicab-archive-card__body .desc img { height:20px; width:auto; margin:0 3px 4px 0; vertical-align:middle; }
.jicab-archive-card__body .desc p:first-child { margin:0 0 6px; line-height:1; }

.cmp_pagination { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:32px; font-size:13.5px; }
.cmp_pagination a { color:var(--jicab-navy-2); font-weight:800; text-decoration:none; padding:8px 16px; border:1px solid var(--jicab-border); border-radius:999px; }
.cmp_pagination a:hover { background:var(--jicab-tint-2); }
.cmp_pagination .current { color:var(--jicab-muted); }

/* Editorial Team page ------------------------------------------------- */

.jicab-hero .cmp_breadcrumbs { margin:0 0 16px; padding-top:0; }
.jicab-hero .cmp_breadcrumbs ol { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.jicab-hero .cmp_breadcrumbs li { display:inline-flex; align-items:center; }
.jicab-hero .cmp_breadcrumbs a { color:var(--jicab-navy-2); font-size:13px; font-weight:700; text-decoration:none; }
.jicab-hero .cmp_breadcrumbs a:hover { text-decoration:underline; }
.jicab-hero .cmp_breadcrumbs .separator { margin:0 8px; color:var(--jicab-navy-2); opacity:.6; }
.jicab-hero .cmp_breadcrumbs .current span { font-size:13px; font-weight:700; color:var(--jicab-navy); }

.jicab-country-chip {
	display:inline-block; background:var(--jicab-tint-2); color:var(--jicab-navy-2);
	border-radius:999px; padding:3px 10px; font-size:11.5px; font-weight:700;
}

.jicab-eic {
	display:flex; flex-wrap:wrap; gap:24px; align-items:center;
	background:var(--jicab-navy); color:#fff; border-radius:22px; padding:28px 32px;
}
.jicab-eic__avatar {
	flex:0 0 auto; width:88px; height:88px; border-radius:50%;
	background:rgba(255,255,255,.14); color:#fff; display:grid; place-items:center;
	font-family:"Source Serif 4",Georgia,serif; font-weight:700; font-size:28px;
}
.jicab-eic__body { flex:1 1 300px; min-width:0; }
.jicab-eic__body h2 { margin:0 0 8px; color:#fff; font-size:24px; }
.jicab-eic__meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-size:14px; color:#c9d6df; margin-bottom:12px; }
.jicab-eic__meta .jicab-country-chip { background:rgba(255,255,255,.16); color:#fff; }

.jicab-link-badges { display:flex; flex-wrap:wrap; gap:8px; }
.jicab-link-badge {
	display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px;
	font-size:12px; font-weight:800; text-decoration:none; letter-spacing:.02em;
	background:var(--jicab-tint); color:var(--jicab-navy-2);
}
.jicab-eic .jicab-link-badge { background:rgba(255,255,255,.14); color:#fff; }
.jicab-link-badge:hover { opacity:.85; }
.jicab-link-badge.is-gs { background:#e5edfb; color:#2952a3; }
.jicab-link-badge.is-sinta { background:#e3f5ea; color:#1f7a49; }
.jicab-link-badge.is-scopus { background:#fdece0; color:#b5540e; }
.jicab-link-badge.is-orcid { background:#e3f6e9; color:#2c9b4a; }
.jicab-link-badge.is-cv { background:#eceff1; color:#455a64; }
.jicab-eic .jicab-link-badge.is-gs, .jicab-eic .jicab-link-badge.is-sinta,
.jicab-eic .jicab-link-badge.is-scopus, .jicab-eic .jicab-link-badge.is-orcid,
.jicab-eic .jicab-link-badge.is-cv { background:rgba(255,255,255,.14); color:#fff; }

.jicab-country-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; width:100%; }
.jicab-country-chips button {
	border:1px solid var(--jicab-border); background:#fff; color:var(--jicab-text);
	border-radius:999px; padding:6px 14px; font-size:13px; font-weight:700; cursor:pointer;
}
.jicab-country-chips button.is-active { background:var(--jicab-navy); border-color:var(--jicab-navy); color:#fff; }

.jicab-editor-grid {
	display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:16px;
}
.jicab-editor-card {
	background:#fff; border:1px solid var(--jicab-border); border-radius:18px; padding:20px;
	display:flex; flex-direction:column; gap:8px;
}
.jicab-editor-card__avatar {
	width:52px; height:52px; border-radius:50%; background:var(--jicab-tint); color:var(--jicab-navy-2);
	display:grid; place-items:center; font-weight:700; font-size:16px;
}
.jicab-editor-card__name { font-weight:800; font-size:15px; color:var(--jicab-ink); }
.jicab-editor-card__inst { font-size:13px; color:var(--jicab-muted); line-height:1.4; }

.jicab-countrybars { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.jicab-countrybars__row { display:flex; justify-content:space-between; font-size:13.5px; font-weight:700; color:#fff; margin-bottom:4px; }
.jicab-countrybars__track { height:6px; border-radius:999px; background:rgba(255,255,255,.18); overflow:hidden; }
.jicab-countrybars__fill { height:100%; border-radius:999px; background:#fff; }

.jicab-institution-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.jicab-institution-list li { display:flex; justify-content:space-between; gap:12px; font-size:13.5px; padding:6px 0; border-bottom:1px solid var(--jicab-border); }
.jicab-institution-list li:last-child { border-bottom:0; }
.jicab-institution-list li span:last-child { color:var(--jicab-muted); font-weight:700; }

/* ---------- Reviewer page ---------- */

label.jicab-check {
	display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
	color:var(--jicab-navy-2); white-space:nowrap; padding:0 6px; cursor:pointer;
}
label.jicab-check input[type="checkbox"] { width:16px; height:16px; accent-color:var(--jicab-navy); cursor:pointer; }

.jicab-sort[data-role="reviewer-view-toggle"] button { padding:8px 10px; }

.jicab-az { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0; }
.jicab-az button {
	width:30px; height:30px; border-radius:8px; border:1px solid var(--jicab-border); background:#fff;
	font:inherit; font-weight:700; font-size:13px; color:var(--jicab-navy-2); cursor:pointer;
}
.jicab-az button:hover:not(:disabled) { background:var(--jicab-tint); }
.jicab-az button.is-active { background:var(--jicab-navy); border-color:var(--jicab-navy); color:#fff; }
.jicab-az button:disabled { color:#c7d0d6; border-color:#eef1f3; cursor:default; }

.jicab-link-copy {
	display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
	border-radius:50%; border:1px solid var(--jicab-border); background:#fff; color:var(--jicab-muted);
	padding:0; cursor:pointer;
}
.jicab-link-copy:hover { background:var(--jicab-tint); color:var(--jicab-navy-2); }

.jicab-table-scroll { overflow-x:auto; }
.jicab-reviewer-table { width:100%; border-collapse:collapse; }
.jicab-reviewer-table th {
	text-align:left; font-size:11.5px; font-weight:800; letter-spacing:.06em; color:var(--jicab-muted);
	text-transform:uppercase; padding:10px 12px; border-bottom:2px solid var(--jicab-border); white-space:nowrap;
}
.jicab-reviewer-table td { padding:12px; border-bottom:1px solid var(--jicab-border); vertical-align:top; font-size:13.5px; }
.jicab-reviewer-table tr:last-child td { border-bottom:0; }
.jicab-reviewer-table__person { display:flex; align-items:center; gap:10px; }
.jicab-reviewer-table__avatar {
	width:36px; height:36px; border-radius:50%; background:var(--jicab-tint); color:var(--jicab-navy-2);
	display:grid; place-items:center; font-weight:700; font-size:13px; flex:0 0 auto;
}

.jicab-join-cta p { font-size:13.5px; line-height:1.6; color:#c9d6df; margin:0 0 16px; }
.jicab-join-cta__actions { display:flex; flex-wrap:wrap; gap:10px; }
.jicab-join-cta .jicab-pill-outline { border-color:rgba(255,255,255,.4); color:#fff !important; }
.jicab-join-cta .jicab-pill-outline:hover { background:rgba(255,255,255,.14); }

.jicab-coveragebars { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.jicab-coveragebars__row { display:flex; justify-content:space-between; font-size:13px; font-weight:700; color:var(--jicab-text); margin-bottom:4px; }
.jicab-coveragebars__row span:last-child { color:var(--jicab-muted); font-weight:600; }
.jicab-coveragebars__track { height:6px; border-radius:999px; background:var(--jicab-border); overflow:hidden; }
.jicab-coveragebars__fill { height:100%; border-radius:999px; background:var(--jicab-accent); }

@media (max-width:700px){
	.jicab-eic { padding:22px; }
	.jicab-eic__body h2 { font-size:20px; }
}

@media (max-width:700px){
	.jicab-hero__inner { padding:28px 20px 32px; }
	.jicab-stats > div { border-right:0; border-bottom:1px solid var(--jicab-border); }
}
