/* IJPR Editorial Manager — front-end.
   Uses the ijpr-child theme's design tokens when present, with fallbacks. */

.ijem {
	--ijem-accent: var(--teal, #0F5E56);
	--ijem-accent-dark: var(--teal-dark, #0A423C);
	--ijem-accent-pale: var(--teal-pale, #DEEAE7);
	--ijem-bg: #fff;
	--ijem-bg-alt: var(--paper, #F4F5F0);
	--ijem-line: var(--line, #D3D6C9);
	--ijem-ink: var(--ink, #16211D);
	--ijem-soft: var(--ink-soft, #54655C);
	--ijem-warn: var(--rust, #A64B1B);
	--ijem-warn-bg: #FBF1EA;
	--ijem-danger: #B42318;
	--ijem-ok-bg: #E8F3EE;
	--ijem-radius: var(--radius, 12px);
	font-family: var(--sans, system-ui, -apple-system, "Segoe UI", sans-serif);
	color: var(--ijem-ink);
	font-size: 16px;
	line-height: 1.55;
	max-width: 960px;
	margin: 0 auto;
}
.ijem *, .ijem *::before, .ijem *::after { box-sizing: border-box; }
.ijem [hidden] { display: none !important; }

.ijem-card {
	background: var(--ijem-bg);
	border: 1px solid var(--ijem-line);
	border-radius: var(--ijem-radius);
	padding: 24px;
	margin: 0 0 20px;
	min-width: 0;
}
fieldset.ijem-card { display: block; }
.ijem-card legend { float: left; width: 100%; padding: 0; margin: 0 0 16px; }
.ijem-card legend + * { clear: both; }

.ijem-h1 { font-family: var(--serif, Georgia, serif); font-size: 1.6rem; line-height: 1.25; margin: 4px 0 12px; color: var(--ijem-ink); }
.ijem-h2 { font-size: 1.15rem; font-weight: 700; margin: 0 0 12px; color: var(--ijem-accent-dark); }
.ijem-h3 { font-size: 1rem; font-weight: 700; margin: 16px 0 8px; }
.ijem-muted { color: var(--ijem-soft); font-size: .9em; font-weight: 400; }
.ijem-ms-id { font-family: var(--mono, ui-monospace, Consolas, monospace); font-size: .85rem; color: var(--ijem-soft); margin: 0; letter-spacing: .02em; }
.ijem .req { color: var(--ijem-danger); }
.ijem-danger { color: var(--ijem-danger) !important; }

.ijem-step {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--ijem-accent); color: #fff; font-size: .9rem; margin-right: 8px;
}

/* Forms */
.ijem-form label, .ijem label { display: block; font-weight: 600; margin: 0 0 14px; font-size: .95rem; }
.ijem input[type=text], .ijem input[type=email], .ijem input[type=number], .ijem input[type=password],
.ijem select, .ijem textarea {
	display: block; width: 100%; margin-top: 6px;
	padding: 10px 12px; font: inherit; font-weight: 400; color: var(--ijem-ink);
	background: #fff; border: 1px solid var(--line-strong, #B7BBAC); border-radius: 8px;
}
.ijem textarea { resize: vertical; }
.ijem input:focus, .ijem select:focus, .ijem textarea:focus, .ijem button:focus-visible, .ijem a:focus-visible {
	outline: 2px solid var(--ijem-accent); outline-offset: 2px;
}
.ijem input[type=file] { display: block; margin: 8px 0; max-width: 100%; font-size: .9rem; }
.ijem .ijem-radio, .ijem .ijem-check, .ijem .ijem-inline { font-weight: 400; display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; }
.ijem .ijem-inline { display: inline-flex; margin: 0 0 0 12px; font-size: .85rem; }
.ijem .ijem-radio input, .ijem .ijem-check input { margin-top: 4px; flex: none; }
.ijem-q { margin: 0 0 18px; }
.ijem-q__label { font-weight: 600; margin: 0 0 6px; }
.ijem-confirms { background: var(--ijem-bg-alt); padding: 12px 16px; border-radius: 8px; }
.ijem-counter { display: block; font-weight: 400; font-size: .85rem; color: var(--ijem-soft); margin-top: 4px; }
.ijem-counter.is-over { color: var(--ijem-danger); font-weight: 600; }
.ijem-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }

.ijem-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.ijem-grid--2 { gap: 16px; }
.ijem-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ijem-span2 { grid-column: 1 / -1; }

.ijem-author { border: 1px solid var(--ijem-line); border-radius: 8px; padding: 14px 16px 2px; margin: 0 0 12px; background: var(--ijem-bg-alt); }
.ijem-author__head { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 8px; }
.ijem-author__head .ijem-radio { margin: 0; }
.ijem-author__remove { margin-left: auto; }

.ijem-file { padding: 14px 0; border-top: 1px solid var(--ijem-line); }
.ijem-file:first-of-type { border-top: 0; }
.ijem-file__help { display: block; }
.ijem-filelist { list-style: none; margin: 8px 0; padding: 0; }
.ijem-filelist li { padding: 4px 0; word-break: break-word; }

/* Buttons */
.ijem-btn {
	display: inline-block; padding: 10px 20px; border-radius: 8px; border: 1px solid var(--ijem-accent);
	background: var(--ijem-accent); color: #fff !important; font: inherit; font-weight: 600; font-size: .95rem;
	text-decoration: none !important; cursor: pointer; line-height: 1.3;
}
.ijem-btn:hover { background: var(--ijem-accent-dark); border-color: var(--ijem-accent-dark); }
.ijem-btn--ghost { background: #fff; color: var(--ijem-accent) !important; }
.ijem-btn--ghost:hover { background: var(--ijem-accent-pale); }
.ijem-btn--danger { background: var(--ijem-danger); border-color: var(--ijem-danger); }
.ijem-btn--sm { padding: 6px 14px; font-size: .85rem; }
.ijem-link { background: none; border: 0; padding: 0; color: var(--ijem-accent); text-decoration: underline; cursor: pointer; font: inherit; font-size: .9rem; }
.ijem-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ijem-inline-form { display: inline; margin-left: 12px; }
.ijem-toolbar { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.ijem-toolbar p { margin: 0; }

/* Notices */
.ijem-notice { border-radius: 8px; padding: 12px 16px; margin: 0 0 20px; background: var(--ijem-accent-pale); border-left: 4px solid var(--ijem-accent); }
.ijem-notice p { margin: 0; }
.ijem-notice ul { margin: 0; padding-left: 20px; }
.ijem-notice ul li:first-child { list-style: none; margin-left: -20px; font-weight: 600; }
.ijem-notice--ok { background: var(--ijem-ok-bg); }
.ijem-notice--error { background: #FDECEA; border-left-color: var(--ijem-danger); }
.ijem-notice--warn { background: var(--ijem-warn-bg); border-left-color: var(--ijem-warn); }
.ijem-notice--warn details { margin-top: 8px; }

.ijem-action--warn { border-left: 4px solid var(--ijem-warn); background: var(--ijem-warn-bg); }
.ijem-action--ok { border-left: 4px solid var(--ijem-accent); background: var(--ijem-ok-bg); }

/* Tables */
.ijem-table-wrap { overflow-x: auto; }
.ijem-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--ijem-line); border-radius: var(--ijem-radius); font-size: .92rem; }
.ijem-table th, .ijem-table td { padding: 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ijem-line); }
.ijem-table th { background: var(--ijem-bg-alt); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ijem-soft); }
.ijem-table tr.is-action td:first-child { box-shadow: inset 4px 0 0 var(--ijem-warn); }
.ijem-table tr.is-overdue td { background: #FDECEA; }

/* Status badges */
.ijem-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 600; background: var(--ijem-accent-pale); color: var(--ijem-accent-dark); }
.ijem-badge--draft, .ijem-badge--withdrawn { background: #ECEDE8; color: #54655C; }
.ijem-badge--returned, .ijem-badge--revision_requested, .ijem-badge--revision_expired { background: var(--ijem-warn-bg); color: var(--ijem-warn); }
.ijem-badge--accepted, .ijem-badge--in_production, .ijem-badge--published { background: #DDF1E4; color: #1D6B3A; }
.ijem-badge--rejected { background: #FDECEA; color: var(--ijem-danger); }

/* Progress */
.ijem-progress { display: flex; list-style: none; margin: 20px 0 0; padding: 0; counter-reset: s; }
.ijem-progress li { flex: 1; position: relative; text-align: center; font-size: .8rem; color: var(--ijem-soft); counter-increment: s; }
.ijem-progress li::before {
	content: counter(s); display: flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; margin: 0 auto 6px; border-radius: 50%;
	background: #fff; border: 2px solid var(--ijem-line); font-weight: 700; position: relative; z-index: 1;
}
.ijem-progress li::after { content: ""; position: absolute; top: 14px; left: -50%; width: 100%; height: 2px; background: var(--ijem-line); }
.ijem-progress li:first-child::after { display: none; }
.ijem-progress li.is-done { color: var(--ijem-accent-dark); }
.ijem-progress li.is-done::before { content: "✓"; background: var(--ijem-accent); border-color: var(--ijem-accent); color: #fff; }
.ijem-progress li.is-done::after, .ijem-progress li.is-current::after { background: var(--ijem-accent); }
.ijem-progress li.is-current { color: var(--ijem-ink); font-weight: 700; }
.ijem-progress li.is-current::before { border-color: var(--ijem-accent); color: var(--ijem-accent); }

/* Letters / timeline */
.ijem-letter { background: var(--ijem-bg-alt); padding: 16px; border-radius: 8px; font-size: .95rem; margin-top: 8px; overflow-wrap: anywhere; }
.ijem-letter-box { margin-bottom: 8px; }
.ijem summary { cursor: pointer; font-weight: 600; }
.ijem-timeline { list-style: none; margin: 0; padding: 0; }
.ijem-timeline li { padding: 8px 0 8px 18px; border-left: 2px solid var(--ijem-line); position: relative; }
.ijem-timeline li::before { content: ""; position: absolute; left: -6px; top: 14px; width: 10px; height: 10px; border-radius: 50%; background: var(--ijem-accent); }
.ijem-timeline time { display: block; font-size: .8rem; color: var(--ijem-soft); }
.ijem-review-item { padding: 16px 0; border-top: 1px solid var(--ijem-line); }
.ijem-review-item:first-of-type { border-top: 0; }

/* Review scores */
.ijem-scores { border-collapse: collapse; width: 100%; }
.ijem-scores th { text-align: left; font-weight: 400; padding: 6px 8px 6px 0; }
.ijem-scores td { padding: 4px; text-align: center; }
.ijem .ijem-score { margin: 0; display: inline-flex; flex-direction: column; align-items: center; font-weight: 400; font-size: .8rem; }

/* Publication steps */
.ijem-pubstep { border-left: 3px solid var(--ijem-line); padding: 2px 0 8px 16px; margin: 0 0 16px; }
.ijem-pubstep.is-done { border-left-color: var(--ijem-accent); }
.ijem-pubstep .ijem-h3 { margin-top: 0; }

/* Message thread */
.ijem-thread { list-style: none; margin: 0 0 16px; padding: 0; }
.ijem-thread li { max-width: 85%; margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: var(--ijem-bg-alt); }
.ijem-thread li.is-mine { margin-left: auto; background: var(--ijem-accent-pale); }
.ijem-thread__meta { font-size: .8rem; color: var(--ijem-soft); margin-bottom: 4px; }
.ijem-thread__body p { margin: 0 0 .5em; }
.ijem-thread__body p:last-child { margin: 0; }
.ijem-newmsg { font-size: .85rem; font-weight: 600; color: var(--ijem-warn); }

/* Reviewer dashboard */
.ijem-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 20px; }
.ijem-stats > div { background: #fff; border: 1px solid var(--ijem-line); border-radius: var(--ijem-radius); padding: 14px 16px; }
.ijem-stats strong { display: block; font-size: 1.6rem; color: var(--ijem-accent-dark); line-height: 1.1; }
.ijem-stats span { font-size: .85rem; color: var(--ijem-soft); }
.ijem-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--ijem-line); margin: 0 0 20px; }
.ijem-tabs a { padding: 10px 16px; text-decoration: none; color: var(--ijem-soft); border-bottom: 3px solid transparent; font-weight: 600; }
.ijem-tabs a.is-current { color: var(--ijem-accent-dark); border-bottom-color: var(--ijem-accent); }
.ijem-checklist th { font-size: .92rem; }
.ijem-checklist td { width: 58px; }
.ijem-flagq { background: var(--ijem-bg-alt); padding: 10px 14px; border-radius: 8px; }
.ijem-flagq .ijem-radio { display: inline-flex; margin-right: 18px; }

.ijem-empty { text-align: center; }
.ijem-withdraw summary { color: var(--ijem-danger); font-weight: 400; }

@media (max-width: 700px) {
	.ijem-card { padding: 16px; }
	.ijem-grid, .ijem-grid--3 { grid-template-columns: 1fr; }
	.ijem-progress li span { display: none; }
	.ijem-progress li.is-current span { display: block; }
	.ijem-table thead { display: none; }
	.ijem-table, .ijem-table tbody, .ijem-table tr, .ijem-table td { display: block; width: 100%; }
	.ijem-table tr { border-bottom: 1px solid var(--ijem-line); padding: 8px 0; }
	.ijem-table td { border: 0; padding: 4px 12px; }
	.ijem-table td[data-label]::before { content: attr(data-label); display: block; font-size: .75rem; color: var(--ijem-soft); text-transform: uppercase; }
	.ijem-scores th { display: block; padding-top: 10px; }
	.ijem-scores tr { display: flex; flex-wrap: wrap; }
	.ijem-stats { grid-template-columns: 1fr; }
}
