.jpm-box {
	max-width: 520px;
	margin: 0 0 24px;
	padding: 24px;
	background: #fff;
	border: 1px solid #e2e4e7;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.jpm-box.jpm-my-submissions,
.jpm-box.jpm-payment-step {
	max-width: 760px;
}
.jpm-box.jpm-submission-form-wide {
	max-width: 760px;
}
.jpm-field { margin-bottom: 16px; }
.jpm-field label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }
.jpm-field input[type="text"],
.jpm-field input[type="email"],
.jpm-field input[type="password"],
.jpm-field input[type="number"],
.jpm-field input[type="file"],
.jpm-field textarea,
.jpm-field select {
	width: 100%;
	max-width: 100%;
	padding: 9px 12px;
	border: 1px solid #ccd0d4;
	border-radius: 5px;
	font-size: 14px;
	box-sizing: border-box;
	font-family: inherit;
}
.jpm-field textarea { resize: vertical; }

.jpm-field-row {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}
.jpm-field-half { flex: 1 1 240px; }

.jpm-note-box {
	background: #f8f9fa;
	border: 1px solid #e2e4e7;
	border-radius: 6px;
	padding: 14px 16px;
	margin: 16px 0;
	font-size: 13px;
	color: #444;
}
.jpm-note-box ol { margin: 8px 0 0 20px; }
.jpm-plan-option { margin: 10px 0; font-weight: 600; }
.jpm-plan-option input { margin-right: 6px; }

.jpm-declaration-box {
	font-size: 12px;
	color: #555;
	max-height: 160px;
	overflow-y: auto;
	border: 1px solid #e2e4e7;
	padding: 10px 14px;
	border-radius: 6px;
	margin-bottom: 12px;
	background: #fafafa;
}

.jpm-field-checkbox label { font-weight: 400; font-size: 13px; display: flex; gap: 8px; align-items: flex-start; }
.jpm-robot-label { color: #2271b1; }

.jpm-help { font-size: 12px; color: #666; margin-top: 8px; }
.jpm-login-required-note { color: #b32d2e; }

.jpm-auth-switch {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid #e2e4e7;
	font-size: 14px;
}
.jpm-auth-switch a {
	font-weight: 600;
}

.jpm-btn {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 5px;
	border: 1px solid #2271b1;
	background: #fff;
	color: #2271b1;
	text-decoration: none;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
}
.jpm-btn-primary { background: #2271b1; color: #fff; }
.jpm-btn-primary:hover { background: #135e96; color: #fff; }

.jpm-notice {
	padding: 12px 16px;
	border-radius: 5px;
	margin-bottom: 16px;
	font-size: 14px;
}
.jpm-notice-success { background: #edfaef; border: 1px solid #a8e6b0; color: #256029; }
.jpm-notice-error { background: #fdeaea; border: 1px solid #f3b4b4; color: #922; }

.jpm-summary-table { width: 100%; margin-bottom: 20px; border-collapse: collapse; }
.jpm-summary-table th, .jpm-summary-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #eee; }
.jpm-summary-table th { width: 160px; color: #555; }

.jpm-table { width: 100%; border-collapse: collapse; }
.jpm-table th, .jpm-table td { text-align: left; padding: 10px; border-bottom: 1px solid #eee; font-size: 14px; }
.jpm-table th { background: #f6f7f7; }

.jpm-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
	background: #f0f0f1;
	color: #444;
}
.jpm-badge-approved, .jpm-badge-published { background: #d7f3dd; color: #1a6b2e; }
.jpm-badge-rejected { background: #fbdada; color: #96201f; }
.jpm-badge-pending_payment, .jpm-badge-submitted { background: #fff3cd; color: #8a6300; }
.jpm-badge-under_review { background: #dbe9ff; color: #1c4e9c; }

.jpm-modal {
	position: fixed;
	top: 0; left: 0; width: 100%; height: 100%;
	background: rgba(0,0,0,0.5);
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jpm-modal-content {
	background: #fff;
	padding: 30px;
	border-radius: 8px;
	max-width: 420px;
	width: 90%;
	position: relative;
	text-align: center;
}
.jpm-modal-close {
	position: absolute;
	top: 10px; right: 16px;
	font-size: 22px;
	cursor: pointer;
	color: #888;
}
.jpm-modal .jpm-btn { margin: 6px; }
.jpm-logged-in-note { background: #edfaef; border: 1px solid #a8e6b0; color: #256029; font-size: 13px; padding: 10px 16px; }
.jpm-notice-testing { background: #fff3cd; border: 1px solid #ffe08a; color: #8a6300; }
/* Public Year -> Volume -> Issue publication archive */
.jpm-publication-archive{width:100%;margin:20px 0 40px}.jpm-archive-grid{display:grid;gap:34px;margin:26px 0}.jpm-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.jpm-volume-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jpm-issue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.jpm-archive-button{display:flex;align-items:center;justify-content:center;min-height:74px;padding:12px 18px;background:#fff;color:#1761b6!important;text-decoration:none!important;font-size:30px;font-weight:500;box-shadow:0 2px 12px rgba(0,0,0,.14);border:1px solid #f1f1f1;transition:.2s ease}.jpm-archive-button:hover,.jpm-archive-button.is-active{background:#1761b6;color:#fff!important;transform:translateY(-1px)}.jpm-year-select-wrap{max-width:440px;margin:28px auto}.jpm-archive-select{width:100%;min-height:70px;padding:10px 52px 10px 24px;border:0!important;border-radius:6px;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.14);font-size:27px;color:#1761b6;text-align:center}.jpm-archive-heading{text-align:center;font-size:24px;font-weight:600;color:#1761b6;margin:30px 0 18px}.jpm-publication-card{display:flex;gap:26px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 7px rgba(0,0,0,.16);padding:18px 20px;margin:20px 0}.jpm-publication-photo{flex:0 0 150px}.jpm-publication-photo img{width:150px;height:180px;object-fit:cover;border-radius:4px}.jpm-publication-details{flex:1;min-width:0}.jpm-publication-row{display:grid;grid-template-columns:370px 1fr;border-bottom:1px solid #ddd;padding:15px 0;font-size:18px;line-height:1.5}.jpm-publication-label{color:#0b5db7;font-weight:600}.jpm-publication-value:before{content:": ";color:#222}.jpm-publication-actions{display:flex;gap:6px;flex-wrap:wrap;padding:20px 0 2px}.jpm-public-btn{display:inline-block;padding:17px 20px;color:#fff!important;text-decoration:none!important;font-size:15px}.jpm-view-btn{background:#4f91d5}.jpm-cert-btn{background:#58ba52}.jpm-letter-btn{background:#433f48}.jpm-public-btn:hover{opacity:.88}.jpm-archive-empty{text-align:center}
@media(max-width:900px){.jpm-year-grid,.jpm-volume-grid,.jpm-issue-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jpm-publication-card{flex-direction:column}.jpm-publication-row{grid-template-columns:1fr;gap:4px}.jpm-publication-value:before{content:""}.jpm-publication-photo{flex-basis:auto}.jpm-archive-button{font-size:22px;min-height:60px}}@media(max-width:520px){.jpm-year-grid,.jpm-volume-grid,.jpm-issue-grid{grid-template-columns:1fr}.jpm-archive-grid{margin:18px 0}.jpm-publication-actions{flex-direction:column}.jpm-public-btn{text-align:center}.jpm-publication-photo img{width:120px;height:145px}.jpm-archive-select{font-size:21px}}
.jpm-archive-context{text-align:center;font-size:24px;font-weight:600;color:#1761b6;margin:12px 0 24px}.jpm-archive-back{margin:24px 0}.jpm-archive-back a{display:inline-block;color:#1761b6;text-decoration:none;font-weight:600}.jpm-archive-back a:hover{text-decoration:underline}

/* v1.2.2: Use all available shortcode container width for volume/issue grids. */
.jpm-publication-archive{width:100%;max-width:none;box-sizing:border-box}
.jpm-publication-archive .jpm-volume-grid,
.jpm-publication-archive .jpm-issue-grid{width:100%;max-width:none;display:grid;gap:20px}
.jpm-publication-archive .jpm-volume-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.jpm-publication-archive .jpm-issue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.jpm-publication-archive .jpm-archive-button{min-width:0;box-sizing:border-box}
@media(max-width:767px){
 .jpm-publication-archive .jpm-volume-grid,
 .jpm-publication-archive .jpm-issue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
 .jpm-publication-archive .jpm-volume-grid,
 .jpm-publication-archive .jpm-issue-grid{grid-template-columns:1fr}
}


/* v1.2.4: Grid fits within the actual WordPress content area. */
body .jpm-publication-archive.jpm-publication-volumes-page,
body .jpm-publication-archive.jpm-publication-issues-page {
 width:100%!important; max-width:100%!important; margin-left:0!important; margin-right:0!important; box-sizing:border-box!important;
}
body .jpm-publication-volumes-page .jpm-archive-grid.jpm-volume-grid,
body .jpm-publication-issues-page .jpm-archive-grid.jpm-issue-grid {
 width:100%!important; max-width:100%!important; min-width:0!important; display:grid!important; box-sizing:border-box!important; gap:20px!important;
}
body .jpm-publication-volumes-page .jpm-archive-grid.jpm-volume-grid {grid-template-columns:repeat(4,minmax(0,1fr))!important}
body .jpm-publication-issues-page .jpm-archive-grid.jpm-issue-grid {grid-template-columns:repeat(3,minmax(0,1fr))!important}
body .jpm-publication-volumes-page .jpm-archive-button,
body .jpm-publication-issues-page .jpm-archive-button {width:100%!important;min-width:0!important;box-sizing:border-box!important;text-align:center;overflow-wrap:anywhere}
@media(max-width:900px){
 body .jpm-publication-volumes-page .jpm-archive-grid.jpm-volume-grid,
 body .jpm-publication-issues-page .jpm-archive-grid.jpm-issue-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
 body .jpm-publication-volumes-page .jpm-archive-grid.jpm-volume-grid,
 body .jpm-publication-issues-page .jpm-archive-grid.jpm-issue-grid {grid-template-columns:1fr!important}
}
