/* ==========================================================================
   ScholarlyHub additions on top of the Amentojourn theme.
   Keeps the theme's look (Quicksand, #4f46e5 primary) and adds the pieces a
   working platform needs: labels, alerts, status badges, stat tiles,
   timelines, tables, journal sub-navigation.
   ========================================================================== */
:root {
	--sh-primary: #4f46e5;
	--sh-primary-dark: #3f7fcf;
	--sh-navy: #2f3b4c;
	--sh-gray: #636c77;
	--sh-light: #f7f8fa;
	--sh-border: #e3e7ed;
	--sh-success: #2e9d63;
	--sh-warning: #d9a441;
	--sh-danger: #d9534f;
}

/* ---------- Header user menu ---------- */
.sh-avatar {
	width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: var(--sh-primary); color: #fff; font-weight: 700; font-size: 13px; float: left; margin: 0 10px 0 0;
}
.sh-inlineform { margin: 0; }
.sh-inlineform button {
	background: none; border: 0; width: 100%; text-align: left; padding: 0 20px; line-height: 40px; color: #636c77; cursor: pointer;
}
.sh-inlineform button i { margin-right: 10px; }
.sh-inlineform button:hover { color: var(--sh-primary); }

/* ---------- Messages ---------- */
.sh-messages { width: 100%; float: left; padding: 20px 0 0; }
.sh-alert {
	position: relative; display: flex; align-items: center; gap: 10px; padding: 14px 44px 14px 18px; margin-bottom: 10px;
	border-radius: 4px; border-left: 4px solid var(--sh-primary); background: #eef5fd; color: #2f3b4c; font-size: 14px;
}
.sh-alert i { font-size: 18px; }
.sh-alert-success { background: #eaf7f0; border-color: var(--sh-success); }
.sh-alert-danger { background: #fdeeee; border-color: var(--sh-danger); }
.sh-alert-warning { background: #fdf6e8; border-color: var(--sh-warning); }
.sh-alert-close { position: absolute; right: 12px; top: 8px; background: none; border: 0; font-size: 22px; color: #999; cursor: pointer; }
.sh-alert.sh-inline { margin: 0 0 20px; }

/* ---------- Forms ---------- */
.sh-label { display: block; font-size: 13px; font-weight: 600; color: var(--sh-navy); margin: 0 0 6px; }
.sh-help { display: block; color: #8a929c; font-size: 12px; margin-top: 4px; line-height: 1.5; }
.sh-fielderror { display: block; color: var(--sh-danger); font-size: 12px; margin-top: 4px; }
.sh-haserror .form-control { border-color: var(--sh-danger) !important; }
.sj-formtheme textarea.form-control { height: auto; min-height: 90px; padding: 12px 15px; line-height: 1.6; }
.sj-formtheme select.form-control, .sh-form select.form-control { height: 50px; }
.sh-filefield input[type=file] { display: block; width: 100%; padding: 10px; border: 1px dashed var(--sh-border); border-radius: 4px; background: #fff; }
.sh-checkfield { margin-bottom: 16px; }
.sh-checkfield .sj-checkbox label { font-size: 14px; line-height: 1.6; }
.sh-checkgrid { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.sh-checkgrid .sj-checkbox { width: auto !important; }
.sh-form .form-group { width: 100%; float: left; }
.sh-formgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.sh-formgrid .sh-full { grid-column: 1 / -1; }
@media (max-width: 767px) { .sh-formgrid { grid-template-columns: 1fr; } }
.sh-btnrow { width: 100%; float: left; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 10px; }
.sh-btnrow .sj-btn { margin: 0; }
button.sj-btn { border: 0; cursor: pointer; }
.sj-btn.sh-btn-danger { background: var(--sh-danger); color: #fff; }
.sj-btn.sh-btn-success { background: var(--sh-success); color: #fff; }
.sj-btn.sh-btn-small { padding: 0 16px; line-height: 34px; font-size: 13px; }
.sh-linkbtn { background: none; border: 0; padding: 0; color: var(--sh-primary); cursor: pointer; font-size: 13px; }
.sh-linkbtn.sh-danger { color: var(--sh-danger); }

/* ---------- Badges ---------- */
.sh-badge {
	display: inline-block; padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; line-height: 20px;
	letter-spacing: .3px; text-transform: uppercase; background: #e9edf2; color: #4b5563; white-space: nowrap;
}
.sh-badge-oa { background: #fff4df; color: #b97c11; }
.sh-status-draft { background: #eef0f3; color: #6b7280; }
.sh-status-submitted, .sh-status-technical_check, .sh-status-editorial_screening, .sh-status-awaiting_editor { background: #e7f0fc; color: #2b6cb0; }
.sh-status-reviewer_invitation, .sh-status-under_review, .sh-status-revision_submitted, .sh-status-final_decision_pending { background: #ede9fe; color: #6d28d9; }
.sh-status-revision_requested, .sh-status-pending, .sh-status-invited, .sh-status-pending_payment, .sh-status-grace { background: #fdf3dc; color: #a46a00; }
.sh-status-accepted, .sh-status-paid, .sh-status-published, .sh-status-active, .sh-status-success, .sh-status-approved, .sh-status-submitted_review, .sh-status-waived { background: #e3f6ec; color: #1f7a4c; }
.sh-status-production, .sh-status-scheduled, .sh-status-trialing { background: #e0f2fe; color: #0369a1; }
.sh-status-rejected, .sh-status-withdrawn, .sh-status-failed, .sh-status-declined, .sh-status-cancelled, .sh-status-expired, .sh-status-removed, .sh-status-retracted { background: #fde8e8; color: #b42318; }
.sh-kind { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--sh-primary); }

/* ---------- Meta lines on cards ---------- */
.sh-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #8a929c; margin: 6px 0 0; }
.sh-meta i { margin-right: 4px; }
.sh-doi { display: block; font-size: 13px; color: #8a929c; margin: 0 0 12px; }
.sj-editorchoice .sj-postcontent .sj-btn { margin-top: 4px; }

/* ---------- Panels (dashboard boxes) ---------- */
.sh-panel { width: 100%; float: left; background: #fff; border: 1px solid var(--sh-border); border-radius: 4px; margin: 0 0 30px; }
.sh-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 18px 24px; border-bottom: 1px solid var(--sh-border); }
.sh-panel-head h2, .sh-panel-head h3 { margin: 0; font-size: 18px; font-weight: 700; color: var(--sh-navy); }
.sh-panel-body { padding: 24px; width: 100%; float: left; }
.sh-panel-body:after { content: ""; display: table; clear: both; }
.sh-panel-body > p:last-child { margin-bottom: 0; }
.sj-addarticleholdcontent .sh-panel-body { padding: 24px 30px; }
.sh-muted { color: #8a929c; }
.sh-empty { text-align: center; padding: 30px 20px; color: #8a929c; }
.sh-empty i { display: block; font-size: 36px; margin-bottom: 10px; color: #c6ccd4; }

/* ---------- Stat tiles ---------- */
.sh-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; width: 100%; float: left; margin: 0 0 30px; }
.sh-stat { background: #fff; border: 1px solid var(--sh-border); border-radius: 4px; padding: 18px 20px; display: block; color: inherit; transition: box-shadow .2s; }
a.sh-stat:hover { box-shadow: 0 6px 18px rgba(47, 59, 76, .08); color: inherit; }
.sh-stat strong { display: block; font-size: 28px; line-height: 1.1; color: var(--sh-navy); font-weight: 700; }
.sh-stat span { display: block; font-size: 13px; color: #8a929c; margin-top: 6px; }
.sh-stat.sh-stat-alert strong { color: var(--sh-danger); }
.sh-stat.sh-stat-primary { border-top: 3px solid var(--sh-primary); }

/* ---------- Tables ---------- */
.sh-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.sh-table th { text-align: left; background: var(--sh-light); color: var(--sh-navy); font-weight: 700; padding: 12px 14px; border-bottom: 1px solid var(--sh-border); white-space: nowrap; }
.sh-table td { padding: 12px 14px; border-bottom: 1px solid var(--sh-border); vertical-align: top; }
.sh-table tr:last-child td { border-bottom: 0; }
.sh-table-wrap { width: 100%; overflow-x: auto; }
.sh-table .sh-right { text-align: right; }

/* ---------- Timeline ---------- */
.sh-timeline { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--sh-border); }
.sh-timeline li { position: relative; padding: 0 0 18px 18px; list-style: none; }
.sh-timeline li:before { content: ""; position: absolute; left: -26px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--sh-primary); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--sh-primary); }
.sh-timeline time { display: block; font-size: 12px; color: #8a929c; }
.sh-timeline strong { color: var(--sh-navy); }
.sh-timeline p { margin: 4px 0 0; font-size: 13px; }

/* ---------- Workflow progress ---------- */
.sh-progress { display: flex; width: 100%; float: left; margin: 0 0 24px; counter-reset: step; overflow-x: auto; }
.sh-progress li { flex: 1; list-style: none; text-align: center; font-size: 11px; color: #9aa2ab; position: relative; padding-top: 30px; min-width: 70px; }
.sh-progress li:before { counter-increment: step; content: counter(step); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 24px; height: 24px; line-height: 24px; border-radius: 50%; background: #e6e9ee; color: #8a929c; font-weight: 700; z-index: 1; }
.sh-progress li:after { content: ""; position: absolute; top: 11px; left: -50%; width: 100%; height: 2px; background: #e6e9ee; }
.sh-progress li:first-child:after { display: none; }
.sh-progress li.done:before, .sh-progress li.current:before { background: var(--sh-primary); color: #fff; }
.sh-progress li.done:after, .sh-progress li.current:after { background: var(--sh-primary); }
.sh-progress li.current { color: var(--sh-navy); font-weight: 700; }

/* ---------- Journal sub navigation ---------- */
.sh-journalbar { width: 100%; float: left; background: #fff; border-bottom: 1px solid var(--sh-border); }
.sh-journalbar ul { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.sh-journalbar li { list-style: none; }
.sh-journalbar a { display: block; padding: 14px 16px; font-size: 14px; color: var(--sh-gray); border-bottom: 2px solid transparent; }
.sh-journalbar a:hover, .sh-journalbar li.active a { color: var(--sh-primary); border-bottom-color: var(--sh-primary); }
.sh-journalhead { display: flex; gap: 24px; align-items: center; }
.sh-journalhead img { max-height: 90px; border-radius: 4px; background: #fff; padding: 4px; }
.sh-journalhead .sh-issn { color: rgba(255,255,255,.85); font-size: 13px; margin-top: 6px; }
.sj-innerbannercontent .sh-tagline { color: rgba(255, 255, 255, .85); margin: 4px 0 0; font-size: 15px; }

/* ---------- Rich text from policies ---------- */
.sh-prose { font-size: 15px; line-height: 1.8; color: #4b5563; }
.sh-prose p { margin: 0 0 14px; }
.sh-prose h3, .sh-prose h4 { color: var(--sh-navy); margin: 22px 0 10px; }

/* ---------- Article detail ---------- */
.sh-articlehead h1 { font-size: 28px; line-height: 1.35; color: var(--sh-navy); margin: 8px 0 14px; font-weight: 700; }
.sh-authors { font-size: 15px; color: #4b5563; }
.sh-authors sup { color: var(--sh-primary); }
.sh-affiliations { font-size: 13px; color: #8a929c; margin: 8px 0 0; padding-left: 0; list-style: none; }
.sh-affiliations li { list-style: none; }
.sh-citebox { background: var(--sh-light); border-left: 3px solid var(--sh-primary); padding: 14px 18px; font-size: 14px; margin: 0 0 16px; word-break: break-word; }
.sh-keywords a { display: inline-block; padding: 3px 12px; margin: 0 6px 6px 0; border-radius: 20px; background: #eef5fd; font-size: 13px; }
.sh-notice { border-left: 4px solid var(--sh-danger); background: #fdeeee; padding: 14px 18px; margin: 0 0 20px; }
.sh-notice.sh-correction { border-color: var(--sh-warning); background: #fdf6e8; }
.sh-commentsnote { font-size: 13px; color: #8a929c; background: var(--sh-light); padding: 10px 14px; border-radius: 4px; margin: 0 0 20px; }
.sh-dates { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 13px; color: #8a929c; margin: 10px 0 0; }

/* ---------- Review / manuscript ---------- */
.sh-report { border: 1px solid var(--sh-border); border-radius: 4px; padding: 18px 20px; margin: 0 0 16px; background: #fff; }
.sh-report h4 { margin: 0 0 8px; font-size: 16px; }
.sh-confidential { background: #fff8e8; border-left: 3px solid var(--sh-warning); padding: 12px 16px; margin-top: 12px; font-size: 14px; }
.sh-letter { white-space: pre-line; background: var(--sh-light); padding: 16px 20px; border-radius: 4px; font-size: 14px; line-height: 1.7; }
.sh-filelist { list-style: none; padding: 0; margin: 0; }
.sh-filelist li { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--sh-border); font-size: 14px; }
.sh-filelist li:last-child { border-bottom: 0; }
.sh-filelist .sh-fileicon { width: 36px; height: 36px; border-radius: 4px; background: #eef5fd; color: var(--sh-primary); display: inline-flex; align-items: center; justify-content: center; margin-right: 10px; font-size: 16px; flex: none; }
.sh-filelist .sh-fileinfo { display: flex; align-items: center; min-width: 0; }
.sh-filelist .sh-fileinfo span { overflow: hidden; text-overflow: ellipsis; }
.sh-steps { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 24px; padding: 0; list-style: none; }
.sh-steps li { list-style: none; }
.sh-steps a { display: inline-block; padding: 10px 18px; border-radius: 4px; background: #fff; border: 1px solid var(--sh-border); color: var(--sh-gray); font-size: 14px; }
.sh-steps li.active a { background: var(--sh-primary); border-color: var(--sh-primary); color: #fff; }
.sh-authorrow { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--sh-border); }
.sh-authorrow:last-child { border-bottom: 0; }
.sh-authorrow .sh-actions { display: flex; gap: 12px; flex: none; }
.sh-score { display: inline-block; min-width: 26px; text-align: center; font-weight: 700; color: var(--sh-primary); }

/* ---------- Pricing ---------- */
.sh-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; width: 100%; float: left; }
.sh-plan { background: #fff; border: 1px solid var(--sh-border); border-radius: 6px; padding: 30px 26px; display: flex; flex-direction: column; }
.sh-plan.sh-featured { border: 2px solid var(--sh-primary); box-shadow: 0 10px 30px rgba(94, 156, 234, .15); }
.sh-plan h3 { margin: 0 0 4px; font-size: 22px; color: var(--sh-navy); }
.sh-plan .sh-price { font-size: 32px; font-weight: 700; color: var(--sh-primary); margin: 14px 0 4px; }
.sh-plan .sh-price small { font-size: 14px; color: #8a929c; font-weight: 400; }
.sh-plan ul { padding: 0; margin: 18px 0 24px; list-style: none; flex: 1; }
.sh-plan li { list-style: none; padding: 6px 0 6px 24px; position: relative; font-size: 14px; }
.sh-plan li:before { content: "\f00c"; font-family: FontAwesome; position: absolute; left: 0; color: var(--sh-success); }

/* ---------- Bars (simple charts) ---------- */
.sh-bars { display: flex; align-items: flex-end; gap: 8px; height: 180px; padding: 10px 0 0; border-bottom: 1px solid var(--sh-border); }
.sh-bars .sh-bar { flex: 1; background: var(--sh-primary); border-radius: 3px 3px 0 0; position: relative; min-height: 2px; }
.sh-bars .sh-bar span { position: absolute; top: -20px; left: 0; right: 0; text-align: center; font-size: 11px; color: var(--sh-navy); }
.sh-barlabels { display: flex; gap: 8px; font-size: 11px; color: #8a929c; margin-top: 6px; }
.sh-barlabels span { flex: 1; text-align: center; overflow: hidden; white-space: nowrap; }

/* ---------- Misc ---------- */
.sh-banner-note { width: 100%; float: left; background: var(--sh-navy); color: #fff; padding: 10px 0; font-size: 14px; }
.sh-banner-note a { color: #ffd480; }
.sh-verify { margin: 0 0 24px; }
.sj-dashboardnav ul li.sh-active a, .sj-dashboardnav ul li a:hover { color: var(--sh-primary); }
.sj-dashboardnav .sh-navlabel { display: block; padding: 18px 30px 6px; font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: #a3aab3; }
.sh-count { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 10px; background: var(--sh-danger); color: #fff; font-size: 11px; line-height: 18px; text-align: center; margin-left: 6px; }
.sh-subjects a { display: inline-block; margin: 0 8px 8px 0; padding: 6px 14px; border: 1px solid var(--sh-border); border-radius: 20px; font-size: 13px; color: var(--sh-gray); background: #fff; }
.sh-subjects a:hover, .sh-subjects a.active { border-color: var(--sh-primary); color: var(--sh-primary); }
.sh-journalcard { background: #fff; border: 1px solid var(--sh-border); border-radius: 4px; padding: 22px; margin: 0 0 24px; display: flex; gap: 18px; }
.sh-journalcard figure { flex: none; width: 90px; margin: 0; }
.sh-journalcard figure img { width: 90px; height: 120px; object-fit: cover; border-radius: 3px; }
.sh-journalcard h3 { font-size: 18px; margin: 0 0 6px; }
.sh-journalcard p { font-size: 14px; margin: 8px 0; }
.sh-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.sh-boardmember { background: #fff; border: 1px solid var(--sh-border); border-radius: 4px; padding: 16px; display: flex; gap: 14px; align-items: center; }
.sh-boardmember img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
.sh-boardmember h4 { font-size: 15px; margin: 0; }
.sh-boardmember span { display: block; font-size: 12px; color: #8a929c; }
.sh-print-only { display: none; }
@media print {
	#sj-header, #sj-footer, .sj-innerbanner, .sh-noprint, .sh-messages { display: none !important; }
	.sh-print-only { display: block; }
}
.sh-sandbox { border: 2px dashed var(--sh-warning); background: #fffaf0; padding: 24px; border-radius: 6px; }
.sh-modalform .form-group { width: 100%; float: left; }
.sj-modalboxarea .modal-body { padding: 24px 30px; }
.sh-reviewerpick { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--sh-border); font-size: 14px; }
.sh-reviewerpick:last-child { border-bottom: 0; }
.sh-reviewerpick small { display: block; color: #8a929c; }
.sj-articledetails .sj-detailstime h4 a { color: inherit; }
.sh-queuebuckets { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
.sh-queuebuckets a { padding: 6px 14px; border-radius: 20px; background: #fff; border: 1px solid var(--sh-border); font-size: 13px; color: var(--sh-gray); }
.sh-queuebuckets a.active { background: var(--sh-primary); color: #fff; border-color: var(--sh-primary); }
.sh-queuebuckets a em { font-style: normal; font-weight: 700; margin-left: 4px; }
.sh-herosearch { width: 100%; float: left; margin-top: 24px; }
.sh-herosearch fieldset { display: flex; gap: 8px; }
.sh-herosearch input.form-control { flex: 1; height: 50px; border-radius: 4px; }
.sh-herosearch .sj-btn { margin: 0; white-space: nowrap; }
.sh-dashcontent { background: transparent !important; border: 0 !important; padding: 0 !important; }
.sh-navlogout button { padding: 0 30px; line-height: 50px; font-size: 14px; }
.sj-dashboardnav ul li .sh-navlabel { border: 0; }
.sj-dashboardnav ul li { list-style: none; }
.sj-dashboardnav .sh-navlabel { padding: 18px 20px 6px !important; }
.sh-navlogout button { padding: 15px 20px; line-height: inherit; color: #636c77; }
.sh-journalintro { margin-bottom: 30px; }
.sh-yearlabel { display: block; width: 100%; margin: 10px 0 6px; color: var(--sh-navy); }
.sj-recordholder { width: 100%; float: left; }
.sh-paybtn { width: 100%; background: none; border: 0; text-align: left; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 0; }
.sh-paybtn i { font-size: 22px; color: var(--sh-primary); }
.sh-paybtn span em { display: block; font-style: normal; font-size: 12px; color: #8a929c; }
.sh-formgrid { clear: both; width: 100%; }
.sh-panel-body h4 { clear: both; }
.sj-articledetail .sh-dates, .sj-articledetail .sh-btnrow, #sh-cite { width: 100%; float: left; clear: both; }
.sj-articledescription { clear: both; }
.sh-btnrow + .sh-formgrid { padding-top: 20px; }
