/* Scholar Bridge Core: components. Colours follow the Scholar Bridge theme when it is active. */
.sbc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	background: var(--sb-teal, #0f8b8d); color: #fff; border: 2px solid var(--sb-teal, #0f8b8d);
	border-radius: 6px; padding: 7px 16px; font-weight: 600; font-size: .86rem; line-height: 1.3;
	cursor: pointer; text-decoration: none;
}
.sbc-btn:hover, .sbc-btn:focus { background: var(--sb-navy, #0e2a47); border-color: var(--sb-navy, #0e2a47); color: #fff; text-decoration: none; }
.sbc-btn--ghost { background: #fff; color: var(--sb-teal-dark, #0b6f71); }
.sbc-btn--lg { padding: 10px 22px; font-size: .95rem; }
.sbc-more { margin: 12px 0 0; font-weight: 600; font-size: .9rem; }
.sbc-empty { color: var(--sb-muted, #5a6b7a); font-style: italic; }

.sbc-badge {
	display: inline-block; padding: 1px 9px; border-radius: 20px; font-size: .74rem; font-weight: 600;
	background: var(--sb-teal-soft, #e3f3f2); color: var(--sb-teal-dark, #0b6f71); vertical-align: middle;
}
.sbc-badge--closed, .sbc-badge--rejected { background: #fde8e8; color: #9b1c1c; }
.sbc-badge--pending, .sbc-badge--under_review, .sbc-badge--revision { background: #fff4d6; color: #8a5a00; }
.sbc-badge--accepted, .sbc-badge--published, .sbc-badge--approved, .sbc-badge--open { background: #def7ec; color: #03543f; }

/* Tabs */
.sbc-tabs__list { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--sb-teal, #0f8b8d); margin: 0 0 16px; }
.sbc-tabs__tab {
	appearance: none; border: 0; background: #eef3f6; color: var(--sb-text, #1e2b37);
	font: inherit; font-size: .86rem; font-weight: 600; padding: 9px 16px; border-radius: 6px 6px 0 0; cursor: pointer;
}
.sbc-tabs__tab:hover { background: var(--sb-teal-soft, #e3f3f2); }
.sbc-tabs__tab[aria-selected="true"] { background: var(--sb-teal, #0f8b8d); color: #fff; }
.sbc-tabs__panel[hidden] { display: none; }

/* Search */
.sbc-search__count { text-align: center; font-size: 1.35rem; margin: 0 0 18px; padding: 0 !important; }
.sbc-search__count::after { display: none !important; }
.sbc-search__count::before {
	content: ""; display: block; width: 46px; height: 3px; margin: 0 auto 12px;
	background: var(--sb-teal, #0f8b8d); border-radius: 2px;
}
.sbc-search__count strong { color: var(--sb-teal, #0f8b8d); }
.sbc-search__tabs { display: flex; flex-wrap: wrap; gap: 4px; }
.sbc-search__tab { position: relative; cursor: pointer; }
.sbc-search__tab input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sbc-search__tab span {
	display: block; padding: 9px 14px; font-size: .84rem; font-weight: 600; color: var(--sb-teal-dark, #0b6f71);
	border-radius: 6px 6px 0 0; background: transparent;
}
.sbc-search__tab input:checked + span { background: var(--sb-teal, #0f8b8d); color: #fff; }
.sbc-search__tab input:focus-visible + span { outline: 2px solid var(--sb-navy, #0e2a47); outline-offset: 2px; }
.sbc-search__panel { background: #f1f5f8; border: 1px solid var(--sb-border, #dce4ea); border-radius: 0 6px 6px 6px; padding: 16px 18px 18px; }
.sbc-search__label { display: block; font-weight: 600; font-size: .86rem; margin-bottom: 8px; color: var(--sb-navy, #0e2a47); }
.sbc-search__row { display: flex; gap: 10px; }
.sbc-search__row input, .sbc-search__row select { flex: 1; min-width: 0; border-radius: 30px; padding-left: 16px; }
.sbc-search__row [hidden] { display: none; }
.sbc-search__row .sbc-btn { min-width: 110px; }
@media (max-width: 560px) {
	.sbc-search__row { flex-direction: column; }
	.sbc-search__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 6px; }
	.sbc-search__tab span { padding: 7px 8px; font-size: .78rem; text-align: center; border-radius: 6px; background: #eef3f6; }
	.sbc-search__panel { border-radius: 6px; }
}
.sbc-results { margin-top: 22px; }
.sbc-results__count { font-weight: 600; color: var(--sb-navy, #0e2a47); }

/* Calls */
.sbc-call {
	border: 1px solid var(--sb-border, #dce4ea); border-left: 4px solid var(--sb-teal, #0f8b8d);
	border-radius: 6px; padding: 14px 18px; margin-bottom: 14px; background: #fff;
}
.sbc-call.is-closed { border-left-color: #b8c4ce; }
.sbc-call__title { font-size: 1rem; margin: 0 0 8px; line-height: 1.45; }
.sbc-call__title a { color: var(--sb-navy, #0e2a47); }
.sbc-call__ref { display: inline-block; font-size: .74rem; font-weight: 600; color: var(--sb-teal-dark, #0b6f71); background: var(--sb-teal-soft, #e3f3f2); padding: 1px 8px; border-radius: 4px; margin-right: 6px; vertical-align: 2px; }
.sbc-call__meta { list-style: none; margin: 0 0 12px; padding: 0; font-size: .87rem; color: var(--sb-muted, #5a6b7a); }
.sbc-call__meta li { margin: 2px 0; }
.sbc-call__meta strong { color: var(--sb-text, #1e2b37); }
.sbc-call__actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.sbc-call__actions--single { margin-top: 22px; }

/* Chapters */
.sbc-chapters { list-style: none; margin: 0; padding: 0; }
ol.sbc-chapters--toc { list-style: decimal; padding-left: 1.4em; }
.sbc-chapter { padding: 11px 0; border-bottom: 1px dashed var(--sb-border, #dce4ea); }
.sbc-chapter:last-child { border-bottom: 0; }
.sbc-chapter__title { display: block; font-weight: 600; color: var(--sb-navy, #0e2a47); font-size: .93rem; line-height: 1.45; }
.sbc-chapters:not(.sbc-chapters--toc) .sbc-chapter__title { text-transform: uppercase; font-size: .86rem; }
.sbc-chapter__meta { display: block; font-size: .8rem; color: var(--sb-muted, #5a6b7a); margin-top: 3px; }

/* Books */
.sbc-books { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 20px; }
.sbc-book { border: 1px solid var(--sb-border, #dce4ea); border-radius: 8px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.sbc-book__cover { display: block; aspect-ratio: 3 / 4; background: #e9eef2; overflow: hidden; }
.sbc-book__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sbc-book__fallback {
	display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 16px;
	background: linear-gradient(160deg, var(--sb-navy, #0e2a47) 0%, var(--sb-navy-2, #173b61) 60%, var(--sb-teal, #0f8b8d) 140%);
	color: #fff; font-weight: 600; font-size: .92rem; line-height: 1.35; position: relative;
}
.sbc-book__fallback::before { content: ""; position: absolute; left: 16px; top: 16px; width: 34px; height: 4px; background: var(--sb-gold, #e3a33b); border-radius: 2px; }
.sbc-book__body { padding: 12px 14px 14px; }
.sbc-book__title { font-size: .92rem; margin: 0 0 6px; line-height: 1.4; }
.sbc-book__title a { color: var(--sb-navy, #0e2a47); }
.sbc-book__meta { font-size: .78rem; color: var(--sb-muted, #5a6b7a); margin: 0 0 2px; }
.sbc-book-head { display: grid; grid-template-columns: 200px 1fr; gap: 24px; margin-bottom: 18px; }
.sbc-book-head > div:only-child { grid-column: 1 / -1; }
.sbc-single-cover img { border-radius: 6px; box-shadow: 0 4px 14px rgba(14, 42, 71, .15); }
@media (max-width: 640px) { .sbc-book-head { grid-template-columns: 1fr; } .sbc-single-cover { max-width: 200px; } }

/* Details table and citation */
.sbc-details { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: .9rem; }
.sbc-details th, .sbc-details td { border: 1px solid var(--sb-border, #dce4ea); padding: 8px 12px; text-align: left; vertical-align: top; }
.sbc-details th { width: 170px; background: var(--sb-teal-soft, #e3f3f2); color: var(--sb-navy, #0e2a47); font-weight: 600; }
.sbc-cite { background: #f6f8fa; border: 1px solid var(--sb-border, #dce4ea); border-radius: 6px; padding: 14px 18px; margin-top: 24px; font-size: .88rem; }
.sbc-cite h3 { margin: 0 0 6px; font-size: .95rem; }
.sbc-cite p { margin: 0; }

/* Numbers */
.sbc-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 14px; }
.sbc-stat { text-align: center; padding: 16px 8px; border: 1px solid var(--sb-border, #dce4ea); border-radius: 8px; background: #fbfcfd; }
.sbc-stat__num { display: block; font-size: 1.8rem; font-weight: 700; color: var(--sb-teal, #0f8b8d); line-height: 1.1; }
.sbc-stat__label { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sb-muted, #5a6b7a); margin-top: 6px; }

/* Forms */
.sbc-form { margin-top: 10px; }
.sbc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.sbc-field--wide { grid-column: 1 / -1; }
@media (max-width: 640px) { .sbc-grid { grid-template-columns: 1fr; } }
.sbc-field label { display: block; font-weight: 600; font-size: .86rem; margin-bottom: 5px; color: var(--sb-navy, #0e2a47); }
.sbc-field input[type="file"] { display: block; width: 100%; padding: 10px; border: 1px dashed #b9c7d2; border-radius: 6px; background: #f8fafb; }
.sbc-req { color: #c0392b; }
.sbc-help { display: block; font-size: .78rem; color: var(--sb-muted, #5a6b7a); margin-top: 4px; }
.sbc-check { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 6px; font-size: .88rem; }
.sbc-check input { margin-top: 5px; flex: none; }
.sbc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sbc-notice { border-radius: 6px; padding: 14px 18px; margin: 0 0 18px; background: var(--sb-teal-soft, #e3f3f2); border: 1px solid #b7e1dd; }
.sbc-notice h3 { margin: 0 0 8px; }
.sbc-notice ul { margin: 6px 0 0; padding-left: 1.2em; }
.sbc-notice--success { background: #def7ec; border-color: #9ee0c1; }
.sbc-notice--error { background: #fde8e8; border-color: #f5b5b5; }

/* Sign in / account */
.sbc-auth { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sbc-auth__col { border: 1px solid var(--sb-border, #dce4ea); border-radius: 8px; padding: 20px 22px; }
.sbc-auth__col h2 { margin-top: 0; }
.sbc-auth__col--alt { background: var(--sb-teal-soft, #e3f3f2); }
.sbc-auth #loginform p { margin-bottom: 12px; }
.sbc-auth #loginform label { display: block; font-weight: 600; font-size: .86rem; margin-bottom: 4px; }
.sbc-auth #loginform .login-remember label { font-weight: 400; display: flex; gap: 8px; align-items: center; }
@media (max-width: 700px) { .sbc-auth { grid-template-columns: 1fr; } }
.sbc-account__card { border: 1px solid var(--sb-border, #dce4ea); border-radius: 8px; padding: 18px 22px; margin-bottom: 20px; }
.sbc-account__card h2 { margin: 0 0 4px; }
.sbc-account__links { display: flex; flex-wrap: wrap; gap: 8px; }
.sbc-table-wrap { overflow-x: auto; }
.sbc-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.sbc-table th, .sbc-table td { border: 1px solid var(--sb-border, #dce4ea); padding: 8px 10px; text-align: left; }
.sbc-table th { background: var(--sb-teal-soft, #e3f3f2); }
