/* Publish Publications — front-end form */
.pubpub-form { margin: 1.5em 0; }
.pubpub-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 4px; }
.pubpub-field { flex: 1 1 100%; margin-bottom: 12px; }
.pubpub-field label { display: block; font-weight: 600; margin-bottom: 4px; }
.pubpub-field input[type=text],
.pubpub-field input[type=email],
.pubpub-field input[type=tel],
.pubpub-field input[type=number],
.pubpub-field input[type=date],
.pubpub-field textarea,
.pubpub-field select { width: 100%; box-sizing: border-box; }
.pubpub-help-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 16px; height: 16px; margin-left: 6px; border-radius: 50%;
	background: #6b7280; color: #fff; font-size: 11px; font-weight: 700;
	cursor: help; position: relative; vertical-align: middle;
}
.pubpub-help-icon:hover::after,
.pubpub-help-icon:focus::after {
	content: attr(data-tip);
	position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%);
	background: #111; color: #fff; padding: 6px 9px; border-radius: 5px;
	font-size: 12px; font-weight: 400; line-height: 1.35; white-space: normal;
	width: max-content; max-width: 240px; z-index: 20; text-align: left;
	box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.pubpub-view-service { display: inline-block; }

.pubpub-w-1-2 { flex: 1 1 calc(50% - 12px); }
.pubpub-w-1-3 { flex: 1 1 calc(33.333% - 12px); }
.pubpub-w-2-3 { flex: 1 1 calc(66.666% - 12px); }
.pubpub-w-1-4 { flex: 1 1 calc(25% - 12px); }
.pubpub-w-3-4 { flex: 1 1 calc(75% - 12px); }
@media (max-width: 600px) { .pubpub-field { flex: 1 1 100% !important; } }

.pubpub-choices label { display: block; font-weight: 400; }
.pubpub-nav { display: flex; align-items: center; gap: 12px; margin: 10px 0; }
.pubpub-progress { color: #555; }

.pubpub-preview-wrap { background: #f7f7f7; border: 1px solid #e2e2e2; padding: 12px; border-radius: 6px; margin: 12px 0; }
.pubpub-preview { white-space: pre-wrap; font-family: Georgia, serif; margin: 0; }

.pubpub-price-summary { border-top: 2px solid #ddd; margin-top: 14px; padding-top: 10px; }
.pubpub-price-line { display: flex; justify-content: space-between; color: #555; padding: 2px 0; }
.pubpub-price-total { display: flex; justify-content: space-between; font-weight: 700; font-size: 1.1em; border-top: 1px solid #ddd; margin-top: 6px; padding-top: 6px; }

.pubpub-signature { border: 1px dashed #bbb; padding: 10px; border-radius: 6px; }
.pubpub-sig-canvas { border: 1px solid #ccc; background: #fff; touch-action: none; max-width: 100%; }
.pubpub-sig-or { margin: 8px 0 4px; color: #666; }

.pubpub-errors { color: #a00; margin-top: 10px; }
.pubpub-errors ul { margin: 0; padding-left: 18px; }

.pubpub-doc-panel, .pubpub-order-details { margin: 28px 0; }
.pubpub-doc-table, .pubpub-details-table { width: 100%; border-collapse: collapse; margin: 10px 0; }
.pubpub-doc-table th, .pubpub-doc-table td,
.pubpub-details-table th, .pubpub-details-table td {
	border: 1px solid #e5e5e5; padding: 8px 10px; text-align: left; vertical-align: top;
}
.pubpub-doc-table thead th { background: #f6f7f7; }
.pubpub-details-table th { width: 35%; background: #fafafa; font-weight: 600; }
.pubpub-req { color: #c00; }
.pubpub-doc-status { display: inline-block; font-size: .85em; padding: 1px 8px; border-radius: 10px; background: #f3f3f3; }
.pubpub-doc-status.status-uploaded { background: #e5f1ff; }
.pubpub-doc-status.status-approved { background: #e3f6e3; }
.pubpub-doc-status.status-rejected { background: #fde8e8; }
.pubpub-doc-status.status-pending { background: #f3f3f3; }
.pubpub-doc-reason { color: #a00; font-size: .9em; margin: 4px 0; }
.pubpub-doc-msg { display: inline-block; margin-left: 6px; font-size: .85em; color: #555; }
.pubpub-doc-sig-canvas { border: 1px solid #ccc; background: #fff; touch-action: none; max-width: 100%; display: block; }
.pubpub-doc-sig-controls { margin-top: 6px; }
.pubpub-uploadlabel, .pubpub-doc-uploadlabel { font-weight: 600; }

/* My Documents (My Account) */
.pubpub-mydocs th, .pubpub-mydocs td { text-align: left; }
.pubpub-expired { color: #a00; font-weight: 600; }

/* Comment / inline preview / phone */
.pubpub-comment-title { display: block; margin-bottom: 4px; }
.pubpub-comment { background: #f6f8fa; border-left: 3px solid #c9d3dd; padding: 8px 12px; border-radius: 4px; color: #444; }
.pubpub-inline-preview { white-space: pre-wrap; font-family: Georgia, serif; background: #fff; border: 1px solid #e2e2e2; padding: 12px; border-radius: 6px; }
.pubpub-rep-item { margin-bottom: 10px; }
.pubpub-rep-item > label { display: block; font-weight: 600; margin-bottom: 3px; }
.iti { width: 100%; }
.iti input.pubpub-tel { width: 100%; }

/* Number width (override theme quantity styling) */
.pubpub-field input.pubpub-num { width: 100% !important; }

/* Errors near pagination */
.pubpub-errors-top:empty { display: none; }
.pubpub-errors-top { margin: 8px 0; }

/* Upload chip + remove */
.pubpub-file-chip { align-items: center; gap: 10px; background: #f2f7f2; border: 1px solid #cfe3cf; border-radius: 6px; padding: 6px 10px; margin-top: 6px; }
.pubpub-file-name a { text-decoration: underline; }
.pubpub-file-remove { background: none; border: none; color: #a00; cursor: pointer; font-size: 12px; }

/* Image options */
.pubpub-imgselect { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
.pubpub-imgopt { position: relative; border: 2px solid #e0e0e0; border-radius: 8px; padding: 8px; cursor: pointer; text-align: center; background: #fff; transition: border-color .15s, box-shadow .15s; }
.pubpub-imgopt:hover { border-color: #9db8d2; }
.pubpub-imgopt.selected { border-color: #2271b1; box-shadow: 0 0 0 2px rgba(34,113,177,.2); }
.pubpub-imgopt img { max-width: 100%; height: 80px; object-fit: contain; display: block; margin: 0 auto 6px; }
.pubpub-imgopt-ph { height: 80px; display: flex; align-items: center; justify-content: center; background: #f3f3f3; border-radius: 4px; margin-bottom: 6px; color: #666; font-size: 12px; padding: 4px; }
.pubpub-imgopt-cap { font-size: 13px; display: block; }
.pubpub-imgopt-check { position: absolute; top: 6px; right: 6px; width: 20px; height: 20px; border-radius: 50%; background: #2271b1; color: #fff; font-size: 12px; line-height: 20px; display: none; }
.pubpub-imgopt.selected .pubpub-imgopt-check { display: block; }

/* Signature (documents) — keep saved visible + tabs */
.pubpub-sig-saved { display: flex; align-items: center; gap: 10px; }
.pubpub-sig-savedimg { max-width: 220px; border: 1px solid #ccc; background: #fff; border-radius: 4px; }
.pubpub-sig-tabs { margin-bottom: 6px; }
.pubpub-sig-tab.active { background: #2271b1; color: #fff; border-color: #2271b1; }

/* Cart edit icon */
.pubpub-cart-edit { text-decoration: none; color: #2271b1; margin-right: 4px; font-size: 15px; vertical-align: middle; }
.pubpub-cart-edit:hover { color: #135e96; }
.pubpub-cart-edit-link { display: inline-block; font-weight: 600; text-decoration: none; color: #2271b1; }
.pubpub-cart-edit-link:hover { text-decoration: underline; }

/* Acceptance (fillable terms) document */
.pubpub-accept { max-width: 640px; }
.pubpub-accept-done { background: #e3f6e3; border: 1px solid #bcdcbc; border-radius: 6px; padding: 8px 12px; margin: 0 0 8px; }
.pubpub-accept-done a { text-decoration: underline; }
.pubpub-accept-terms { white-space: pre-wrap; max-height: 240px; overflow-y: auto; border: 1px solid #ddd; background: #fafafa; padding: 12px 14px; border-radius: 6px; font-family: Georgia, serif; line-height: 1.5; margin-bottom: 10px; }
.pubpub-accept-check { display: flex; align-items: flex-start; gap: 8px; font-weight: 400; margin: 10px 0; }
.pubpub-accept-check input { margin-top: 3px; }
.pubpub-accept .pubpub-sig-pane { margin: 6px 0; }

/* Documents progress */
.pubpub-doc-progress-wrap { background: #eceff1; border-radius: 6px; height: 10px; overflow: hidden; margin: 8px 0 4px; }
.pubpub-doc-progress-bar { background: #2e7d32; height: 100%; width: 0; transition: width .3s ease; }
.pubpub-doc-progress-count { color: #555; font-size: .9em; margin: 0 0 10px; }

/* Heading paragraph */
.pubpub-heading-para { margin: 4px 0 10px; color: #444; line-height: 1.5; }
.pubpub-heading-para p { margin: 0 0 8px; }
.pubpub-popup-link { color: #2271b1; text-decoration: underline; cursor: pointer; }
.pubpub-popup-link:hover { color: #135e96; }

/* Popup modal */
.pubpub-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.pubpub-modal-box { background: #fff; border-radius: 8px; max-width: 720px; width: 100%; max-height: 88vh; overflow: auto; padding: 20px 22px; position: relative; box-shadow: 0 10px 40px rgba(0,0,0,.3); }
.pubpub-modal-close { position: absolute; top: 8px; right: 10px; background: none; border: none; font-size: 26px; line-height: 1; cursor: pointer; color: #666; }
.pubpub-modal-close:hover { color: #000; }
.pubpub-modal-title { margin: 0 30px 12px 0; font-size: 1.2em; }
.pubpub-modal-content { display: flex; flex-direction: column; gap: 12px; }
.pubpub-modal-img { max-width: 100%; height: auto; border: 1px solid #e2e2e2; border-radius: 4px; }
.pubpub-modal-link { display: inline-block; align-self: flex-start; background: #2271b1; color: #fff; padding: 8px 14px; border-radius: 5px; text-decoration: none; }
.pubpub-modal-link:hover { background: #135e96; color: #fff; }

/* Popup display mode: grid */
.pubpub-modal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.pubpub-modal-tile { padding: 0; border: 1px solid #e2e2e2; border-radius: 4px; background: #fff; cursor: pointer; overflow: hidden; aspect-ratio: 1 / 1; }
.pubpub-modal-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pubpub-modal-tile:hover { border-color: #2271b1; }

/* Popup display mode: slideshow */
.pubpub-modal-slider { position: relative; text-align: center; }
.pubpub-slide-img { max-width: 100%; max-height: 68vh; height: auto; border: 1px solid #e2e2e2; border-radius: 4px; }
.pubpub-slide-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(0,0,0,.5); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.pubpub-slide-nav:hover { background: rgba(0,0,0,.75); }
.pubpub-slide-nav.prev { left: 8px; }
.pubpub-slide-nav.next { right: 8px; }
.pubpub-slide-dots { display: flex; justify-content: center; gap: 7px; margin-top: 4px; }
.pubpub-slide-dot { width: 9px; height: 9px; padding: 0; border: none; border-radius: 50%; background: #c9c9c9; cursor: pointer; }
.pubpub-slide-dot.active { background: #2271b1; }

/* Popup display mode: single + thumbnails */
.pubpub-gallery-main { width: 100%; max-height: 62vh; object-fit: contain; border: 1px solid #e2e2e2; border-radius: 4px; }
.pubpub-gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.pubpub-gallery-thumb { padding: 0; width: 64px; height: 64px; border: 2px solid transparent; border-radius: 4px; background: #fff; cursor: pointer; overflow: hidden; }
.pubpub-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pubpub-gallery-thumb.active { border-color: #2271b1; }

/* Shared lightbox (grid mode) */
.pubpub-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 100001; display: flex; align-items: center; justify-content: center; padding: 30px; }
.pubpub-lightbox-img { max-width: 92vw; max-height: 88vh; border-radius: 4px; }
.pubpub-lightbox-close { position: absolute; top: 14px; right: 18px; background: none; border: none; color: #fff; font-size: 34px; line-height: 1; cursor: pointer; }
.pubpub-lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border: none; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.pubpub-lightbox-nav:hover { background: rgba(255,255,255,.3); }
.pubpub-lightbox-nav.prev { left: 18px; }
.pubpub-lightbox-nav.next { right: 18px; }
.pubpub-lightbox-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #fff; font-size: 13px; }

/* Application letter panel */
.pubpub-letter-panel { margin: 24px 0; }
.pubpub-letter { border: 1px solid #e2e2e2; border-radius: 8px; padding: 16px 18px; margin: 12px 0; background: #fff; }
.pubpub-letter-body { white-space: pre-wrap; font-family: Georgia, serif; line-height: 1.55; background: #fafafa; border: 1px solid #eee; border-radius: 6px; padding: 14px 16px; max-height: 320px; overflow-y: auto; margin-bottom: 12px; }
.pubpub-letter-done { background: #e3f6e3; border: 1px solid #bcdcbc; border-radius: 6px; padding: 10px 12px; }
.pubpub-letter .pubpub-sig-pane { margin: 6px 0; }

/* Typeable dropdown (combo) — look like a select */
.pubpub-field input.pubpub-combo {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 10px center; padding-right: 28px;
}

