/*
 * Print Advertisement module - public booking flow styling.
 * Scoped to .pa-module only, entirely separate from the Subscription
 * module's .sub-module stylesheet (subscription/public/assets/subscriber.css) -
 * no shared file, no shared class, so this module has no frontend
 * dependency on Subscription at all. Accent intentionally distinct from
 * the Subscription module's blue (#2478ff) so the two flows read as
 * related-but-separate services of the same site.
 */
.pa-module { --pa-accent: #c2410c; --pa-accent-dark: #9a3412; --pa-border: #d0d5dd; --pa-text-muted: #667085; --pa-bg-subtle: #fff7ed; }
.pa-module .pa-shell { padding: 28px 0 56px; }
.pa-module .pa-card { background: #fff; border: 1px solid #e7e9ee; border-radius: 12px; box-shadow: 0 2px 10px rgba(16,24,40,.04); }
.pa-module .pa-card-body { padding: 24px; }
@media (max-width: 576px) { .pa-module .pa-card-body { padding: 16px; } }

.pa-module h1.pa-title, .pa-module h4.pa-title { font-weight: 700; letter-spacing: -.01em; color: #101828; }
.pa-module .pa-subtitle { color: var(--pa-text-muted); }

.pa-module .form-label { font-weight: 600; font-size: .875rem; color: #344054; margin-bottom: 6px; }
.pa-module .form-control, .pa-module .form-select {
    width: 100%; padding: 10px 14px; font-size: 15px; color: #101828;
    background-color: #fff; border: 1.5px solid var(--pa-border); border-radius: 8px;
}
.pa-module .form-control:focus, .pa-module .form-select:focus { border-color: var(--pa-accent); box-shadow: 0 0 0 3px rgba(194,65,12,.13); outline: none; }
.pa-module .form-hint { font-size: .8rem; color: var(--pa-text-muted); margin-top: 4px; }
.pa-module .invalid-feedback { display: block; font-size: .8rem; color: #dc3545; }

.pa-module .btn-pa-primary { background: var(--pa-accent); border-color: var(--pa-accent); color: #fff; font-weight: 600; height: 46px; border-radius: 8px; }
.pa-module .btn-pa-primary:hover { background: var(--pa-accent-dark); border-color: var(--pa-accent-dark); color: #fff; }
.pa-module .btn-pa-primary:disabled { opacity: .6; }
.pa-module .btn-pa-outline { border: 1.5px solid var(--pa-border); color: #344054; background: #fff; font-weight: 600; height: 46px; border-radius: 8px; }

.pa-module .pa-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 20px; font-size: .75rem; font-weight: 700; }
.pa-module .pa-badge-success { background: #ecfdf3; color: #027a48; }
.pa-module .pa-badge-danger { background: #fef3f2; color: #b42318; }
.pa-module .pa-badge-secondary { background: #f2f4f7; color: #475467; }
.pa-module .pa-badge-info { background: #eff8ff; color: #175cd3; }
.pa-module .pa-badge-warning { background: #fffaeb; color: #b54708; }

.pa-module .pa-type-choice { display: flex; gap: 16px; flex-wrap: wrap; }
.pa-module .pa-type-card { flex: 1 1 220px; border: 2px solid #e7e9ee; border-radius: 12px; padding: 20px; cursor: pointer; transition: .15s; text-align: center; }
.pa-module .pa-type-card:hover { border-color: var(--pa-accent); }
.pa-module .pa-type-card.active { border-color: var(--pa-accent); background: var(--pa-bg-subtle); }
.pa-module .pa-type-card i { font-size: 28px; color: var(--pa-accent); margin-bottom: 10px; display: block; }
.pa-module .pa-type-card h6 { margin: 0 0 4px; color: #101828; font-weight: 700; }
.pa-module .pa-type-card span { color: var(--pa-text-muted); font-size: .8rem; }

.pa-module .pa-steps { display: flex; gap: 6px; margin-bottom: 22px; flex-wrap: wrap; }
.pa-module .pa-step { flex: 1 1 auto; text-align: center; padding: 8px 6px; border-radius: 8px; background: #f2f4f7; color: var(--pa-text-muted); font-size: .78rem; font-weight: 700; }
.pa-module .pa-step.active { background: var(--pa-accent); color: #fff; }
.pa-module .pa-step.done { background: #ecfdf3; color: #027a48; }

.pa-module .pa-char-counter { font-size: .8rem; color: var(--pa-text-muted); text-align: right; margin-top: 4px; }
.pa-module .pa-char-counter.over { color: #b42318; font-weight: 700; }

.pa-module .pa-preview-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; min-height: 26px; }
.pa-module .pa-preview-meta .pa-badge { font-size: .68rem; padding: 3px 9px; }

.pa-module .pa-preview-box { border: 1.5px dashed var(--pa-border); border-radius: 10px; padding: 14px; min-height: 130px; max-height: 260px; overflow: auto; background: #f8f9fb; display: flex; align-items: center; justify-content: center; text-align: center; transition: background-color .15s ease; }
.pa-module .pa-preview-box.has-content { background: #fff; text-align: left; align-items: flex-start; justify-content: flex-start; display: block; }
.pa-module .pa-preview-classified h6 { font-weight: 800; margin-bottom: 6px; transition: font-size .1s ease, color .1s ease; }
.pa-module .pa-preview-classified p { white-space: pre-wrap; margin: 0; font-size: .85rem; color: #101828; line-height: 1.5; }
.pa-module .pa-preview-classified.pa-colour p { color: #c2410c; }
.pa-module .pa-preview-artwork { display: flex; align-items: center; justify-content: center; margin: 0 auto; max-height: 200px; }
.pa-module .pa-preview-artwork img { max-width: 100%; max-height: 200px; border-radius: 8px; display: block; margin: 0 auto; object-fit: contain; }
.pa-module .pa-preview-artwork-placeholder { width: 100%; max-height: 180px; min-height: 80px; margin: 0 auto; border: 1.5px dashed var(--pa-border); border-radius: 8px; background: #eef0f3; display: flex; align-items: center; justify-content: center; color: #98a2b3; }
.pa-module .pa-preview-artwork-placeholder i { font-size: 26px; }
.pa-module .pa-preview-dims { font-size: .72rem; color: var(--pa-text-muted); text-align: center; margin-top: 6px; }

.pa-module .pa-price-summary { position: sticky; top: 20px; }
.pa-module .pa-price-row { display: flex; justify-content: space-between; font-size: .85rem; color: #475467; padding: 4px 0; }
.pa-module .pa-price-total { display: flex; justify-content: space-between; font-size: 1.25rem; font-weight: 800; color: #101828; border-top: 1px solid #eaecf0; margin-top: 10px; padding-top: 10px; }

.pa-module .pa-empty { text-align: center; padding: 40px 16px; color: var(--pa-text-muted); }
.pa-module .pa-empty i { font-size: 32px; margin-bottom: 10px; display: block; color: #d0d5dd; }

.pa-module .pa-table-wrap { overflow-x: auto; }
.pa-module table.pa-table { width: 100%; margin-bottom: 0; }
.pa-module table.pa-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--pa-text-muted); border-bottom: 1px solid #eaecf0; padding: 10px 12px; white-space: nowrap; }
.pa-module table.pa-table td { padding: 12px; vertical-align: middle; border-bottom: 1px solid #f2f4f7; }

@media (max-width: 991.98px) {
    .pa-module .pa-price-summary { position: static; margin-top: 20px; }
}
