/* PrintKit quote requests (stage 8) */
/* Fieldsets never shrink below their content by default: on a phone the size boxes made the page too wide */
.pk-quote-form fieldset { min-width: 0; }
.pk-quote-form fieldset.pk-quote-form__step { margin: 0 0 1.75rem; padding: 0; border: 0; }
.pk-quote-form__step > legend { font-size: 1.15em; font-weight: 600; margin-bottom: 0.75rem; }
.pk-quote-form [hidden] { display: none !important; }
.pk-quote-form__types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
@media (max-width: 480px) { .pk-quote-form__types { grid-template-columns: 1fr; } }
.pk-quote-form__type { position: relative; display: block; padding: 0.9rem 1rem 0.9rem 2.6rem; border: 2px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 8px; cursor: pointer; }
.pk-quote-form__type input { position: absolute; left: 1rem; top: 1.1rem; }
.pk-quote-form__type:has(input:checked) { border-color: currentColor; }
.pk-quote-form__type-name { display: block; font-weight: 600; }
.pk-quote-form__type-intro { display: block; font-size: 0.875em; opacity: 0.8; }
.pk-quote-form__hint { display: block; font-size: 0.85em; opacity: 0.75; margin-top: 0.2rem; }
.pk-quote-form__quantities { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.pk-quote-form .pk-quote-form__sizes { display: grid; grid-template-columns: repeat(auto-fill, minmax(4rem, 1fr)); gap: 0.5rem; max-width: 40rem; }
.pk-quote-form .pk-quote-form__size { display: flex; flex-direction: column; align-items: stretch; gap: 0.2rem; margin: 0; font-size: 0.875em; text-align: center; }
.pk-quote-form .pk-quote-form__size input { width: 100%; text-align: center; }
.pk-quote-form__days { display: block; margin-top: 0.3rem; font-weight: 600; }
.pk-quote-form__tight { margin: 0 0 1rem; padding: 0.75rem 1rem; border-left: 4px solid #b32d2e; background: color-mix(in srgb, #b32d2e 8%, transparent); }
.pk-quote-form__tight p { margin: 0 0 0.5rem; }
.pk-quote-form__fixed { margin: 0; padding: 0; border: 0; }
.pk-quote-form__fixed legend { font-weight: 600; margin-bottom: 0.3rem; }
.pk-quote-form__fixed label { display: block; margin: 0.2rem 0; }
/* Full-width boxes; text size as on WooCommerce's other account forms */
.pk-quote-form input[type=text], .pk-quote-form input[type=email], .pk-quote-form input[type=tel], .pk-quote-form input[type=date], .pk-quote-form select, .pk-quote-form textarea { box-sizing: border-box; width: 100%; max-width: 100%; }
/* iPhone Safari draws a date box at its own width, past the form's edge, unless its own look is off */
.pk-quote-form input[type=date] { -webkit-appearance: none; appearance: none; display: block; min-width: 0; min-height: 2.75rem; }
.pk-quote-form input[type=date]::-webkit-date-and-time-value { text-align: left; }
.pk-quote-form textarea { min-height: 7rem; }
.pk-quote-form .pk-quote-form__quantities input { width: 7rem; }
.pk-quote-form .pk-quote-form__short { max-width: 10rem; }
.pk-quote-form .pk-quote-form__date { max-width: 14rem; }
.pk-quote-form__send { font-size: 1.05em; padding: 0.8rem 1.6rem; }
.pk-quotes__number, .pk-quotes__date { white-space: nowrap; }
@media (max-width: 768px) { .pk-quotes__number, .pk-quotes__date { white-space: normal; } }
/* Files */
.pk-quote-files__list { list-style: none; margin: 0.5rem 0 0; padding: 0; }
.pk-quote-file { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; padding: 0.4rem 0; border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }
.pk-quote-file__name { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.pk-quote-file__note { font-size: 0.85em; opacity: 0.8; }
.pk-quote-file progress { flex: 1 1 8rem; }
.pk-quote-file--refused .pk-quote-file__note { color: #b32d2e; opacity: 1; }
.pk-quote-file__warn { flex: 1 1 100%; margin: 0.35em 0 0; padding: 0.5em 0.75em; border-left: 3px solid #dba617; background: #fcf9e8; color: #1d2327; font-size: 0.9em; }
.pk-quote-file__remove { font: inherit; font-size: 0.85em; background: none; border: 0; padding: 0.2rem; text-decoration: underline; cursor: pointer; color: inherit; }
.pk-quote-files__message:empty { display: none; }
.pk-quote-files__message { color: #b32d2e; margin: 0.4rem 0 0; }
/* The AI check */
.pk-quote-form__missing { margin: 0 0 1rem; padding: 0.75rem 1rem; border-left: 4px solid currentColor; background: color-mix(in srgb, currentColor 6%, transparent); }
.pk-quote-form__missing p { margin: 0 0 0.4rem; }
.pk-quote-form__missing ul { margin: 0 0 0.5rem 1.2rem; }
.pk-quote-online__products { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: 0.75rem; }
.pk-quote-online__product { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 1rem; padding: 1rem; border: 2px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 8px; }
.pk-quote-online__name { flex: 1 1 100%; font-weight: 600; font-size: 1.1em; }
.pk-quote-online__reason { flex: 1 1 14rem; }
.pk-quote-online__from { font-weight: 600; }
/* The contact form */
.pk-contact__trap { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pk-contact__field label { display: block; margin-bottom: 0.25rem; }
.pk-contact__field input, .pk-contact__field textarea { box-sizing: border-box; width: 100%; max-width: 40rem; font: inherit; padding: 0.55rem 0.7rem; }
.pk-contact__quote { padding: 0.75rem 1rem; border-left: 4px solid currentColor; background: color-mix(in srgb, currentColor 6%, transparent); }
.pk-contact__online, .pk-contact__answer { margin: 1.5rem 0; padding-bottom: 0.5rem; border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
/* The drop area and Browse button, as on the product page (printkit-uploads.css) */
.pk-quote-files__label { display: block; margin-bottom: 0.4rem; }
.pk-quote-files__drop { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: center; padding: 1.25rem 1rem; border: 2px dashed color-mix(in srgb, currentColor 35%, transparent); border-radius: 6px; text-align: center; }
.pk-quote-files__drop--over { border-color: currentColor; background: color-mix(in srgb, currentColor 6%, transparent); }
.pk-quote-files__browse { position: relative; cursor: pointer; display: inline-block; padding: 0.55rem 1.1rem; border: 1px solid currentColor; border-radius: 4px; font-weight: 600; }
.pk-quote-files__browse input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.pk-quote-files__browse:focus-within { outline: 2px solid currentColor; outline-offset: 2px; }
.pk-quote-files--full .pk-quote-files__drop { opacity: 0.5; }
@media (max-width: 600px) { .pk-quote-files__browse { width: 100%; padding: 0.9rem; font-size: 1.05em; } }
/* Quantities side by side, and drop-downs the same height as the text boxes (Carl: they looked different).
   WooCommerce's own form rules are specific, so these match them. */
.woocommerce-page .pk-quote-form .pk-quote-form__quantities { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.woocommerce-page .pk-quote-form .pk-quote-form__quantities input.input-text { width: 9rem; flex: 0 0 9rem; }
.woocommerce-page .pk-quote-form .pk-quote-form__size input.input-text { width: 100%; text-align: center; padding-left: 0.2rem; padding-right: 0.2rem; }
.woocommerce-page .pk-quote-form select { min-height: 3rem; padding: 0.55rem 0.7rem; }
/* The quote form led by AI (stage 8 plan, section 12) */
.pk-quote-form--assist [data-part][hidden], .pk-quote-form--assist fieldset[hidden] { display: none !important; }
.pk-quote-assist__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin: 0.5rem 0 1.5rem; }
.pk-quote-assist__message { flex: 1 1 100%; margin: 0; color: #b32d2e; }
.pk-quote-assist__message:empty { display: none; }
.pk-quote-assist__back { font: inherit; background: none; border: 0; padding: 0.4rem 0; text-decoration: underline; cursor: pointer; color: inherit; order: -1; margin-right: auto; }
.pk-quote-assist__nav .pk-quote-assist__next { order: 2; }
.pk-quote-assist__thinking { order: 3; font-style: italic; }
.pk-quote-assist__thinking::before { content: ""; display: inline-block; width: 0.9em; height: 0.9em; margin-right: 0.5em; vertical-align: -0.1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: pk-spin 0.8s linear infinite; }
@keyframes pk-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .pk-quote-assist__thinking::before { animation: none; } }
.pk-quote-assist__question { margin: 0 0 1.25rem; }
.pk-quote-assist__label { display: block; font-weight: 600; margin: 0 0 0.5rem; }
.pk-quote-assist__pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 0.5rem; }
.pk-quote-assist__pill { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.9rem; border: 2px solid color-mix(in srgb, currentColor 20%, transparent); border-radius: 999px; cursor: pointer; }
.pk-quote-assist__pill:has(input:checked) { border-color: currentColor; background: color-mix(in srgb, currentColor 7%, transparent); }
.pk-quote-assist__pill input { margin: 0; }
.pk-quote-assist__other { max-width: 24rem; }
.pk-quote-assist__files-question { margin: 0 0 0.75rem; }
.pk-quote-assist__files .pk-quote-files { margin-top: 1rem; }
.pk-quote-assist__summary { margin: 0 0 1.25rem; }
.pk-quote-assist__summary dt { font-weight: 600; margin-top: 1rem; display: flex; gap: 0.75rem; align-items: baseline; }
.pk-quote-assist__summary dd { margin: 0.25rem 0 0; }
.pk-quote-assist__change { font: inherit; font-weight: normal; font-size: 0.9em; background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; color: inherit; }
.pk-quote-assist__sentence textarea { box-sizing: border-box; width: 100%; font: inherit; padding: 0.6rem 0.7rem; }
.pk-quote-assist__sentence { margin-top: 1rem; }
.pk-quote-assist__summary .pk-quote-assist__qa { display: inline; }
.pk-quote-assist__question--missing .pk-quote-assist__label { color: #b32d2e; }
.pk-quote-assist__question--missing .pk-quote-assist__pills, .pk-quote-assist__question--missing input.input-text { outline: 2px solid #b32d2e; outline-offset: 3px; border-radius: 4px; }
/* The customer's quote (stage 9) */
.pk-quote-view__facts { display: grid; grid-template-columns: max-content 1fr; gap: 0.3rem 1rem; margin: 0 0 1rem; }
.pk-quote-view__facts dt { font-weight: 600; }
.pk-quote-view__facts dd { margin: 0; }
.pk-quote-view__expired { color: #b32d2e; font-weight: 600; }
.pk-quote-view__note { margin: 0 0 1rem; padding: 0.75rem 1rem; border-left: 4px solid currentColor; background: color-mix(in srgb, currentColor 6%, transparent); }
.pk-quote-view__option { margin: 0 0 1.25rem; }
.pk-quote-view__choose { display: block; margin: 0 0 0.4rem; font-size: 1.05em; cursor: pointer; }
.pk-quote-view__amount { text-align: right; white-space: nowrap; }
.pk-quote-view__grand th, .pk-quote-view__grand td { font-weight: 700; }
.pk-quote-view__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.pk-quote-view__decline { margin-top: 1rem; }
.pk-quote-view__decline textarea { box-sizing: border-box; width: 100%; font: inherit; }
.pk-quotes__view { margin-left: 0.5rem; white-space: nowrap; }
/* On a phone the column heading wraps ("Price excluding VAT" made the table wider than the screen in Firefox) */
.pk-quote-view__lines { width: 100%; }
.pk-quote-view__lines th.pk-quote-view__amount { white-space: normal; }
.pk-quote-view__lines td:first-child { overflow-wrap: break-word; hyphens: auto; }
.pk-contact__answer-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* My Account > Messages (Carl, 21 October): the conversation, theirs on one side, ours on the other */
.pk-thread { list-style: none; margin: 1.25rem 0; padding: 0; display: grid; gap: 1rem; }
.pk-thread__entry { padding: 0.9rem 1.1rem; border-radius: 8px; border: 1px solid #d5dde4; max-width: 85%; }
.pk-thread__entry--mine { background: #fff; justify-self: start; }
.pk-thread__entry--ours { background: #eef7f9; border-color: #b9dfe6; justify-self: end; }
.pk-thread__who { margin: 0 0 0.4rem; font-size: 0.9em; color: #4a5a6a; }
.pk-thread__text { overflow-wrap: anywhere; }
.pk-thread__reply textarea { width: 100%; box-sizing: border-box; }
.pk-thread__note { font-size: 0.9em; color: #4a5a6a; }
.woocommerce table.shop_table_responsive.pk-messages tr td.pk-messages__actions::before { content: none; }
@media (max-width: 600px) { .pk-thread__entry { max-width: 100%; } }
/* Promotional products we have (Carl, 23 October): a picture for each */
.pk-quote-online__products--promo .pk-quote-online__product { display: grid; grid-template-columns: 4.5rem 1fr auto; align-items: center; gap: 0.75rem; }
.pk-quote-online__image { width: 4.5rem; height: 4.5rem; object-fit: contain; border-radius: 6px; background: #fff; }
.pk-quote-online__more { margin: 0.5rem 0; font-weight: 600; }
@media (max-width: 600px) { .pk-quote-online__products--promo .pk-quote-online__product { grid-template-columns: 3.5rem 1fr; } .pk-quote-online__products--promo .pk-quote-online__product .button { grid-column: 1 / -1; } .pk-quote-online__image { width: 3.5rem; height: 3.5rem; } }
/* Files on a conversation in My Account > Messages (stage 17, 6a) */
.pk-thread__files ul { margin: 0.25rem 0 0 1.2rem; }
.pk-thread__files li { overflow-wrap: anywhere; }
.pk-thread__files p { margin: 0.5rem 0 0; }
.pk-thread__reply .pk-quote-files { margin-bottom: 1rem; }

/* Unread replies (31 October): the number on the Messages menu item (its digits come from Messages::badge), the
   dashboard box and "New" in the messages list */
.woocommerce-MyAccount-navigation-link--messages.pk-unread a { font-weight: 700; }
.woocommerce-MyAccount-navigation-link--messages.pk-unread a::after { display: inline-block; min-width: 1.4em; margin-left: 0.4em; padding: 0.1em 0.4em; border-radius: 999px; background: #b32d2e; color: #fff; font-size: 0.75em; line-height: 1.3; text-align: center; vertical-align: middle; }
.pk-dashboard__messages { margin: 1.5rem 0; padding: 1rem; border: 2px solid #b32d2e; border-radius: 6px; }
.pk-dashboard__messages h2 { margin-top: 0; }
.pk-dashboard__messages p:last-child { margin-bottom: 0; }
.pk-messages__new { display: inline-block; padding: 0.05em 0.5em; border-radius: 999px; background: #b32d2e; color: #fff; font-size: 0.8em; font-weight: 700; }
/* The account lists' pages: Messages, Quote requests (31 October) */
.pk-pages { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-top: 1rem; }
.pk-pages .woocommerce-button--next { margin-left: auto; }

/* The Request a quote form on a quote-only print product's page (Carl, 4 November) */
.pk-product-quote, .pk-product-quote-thanks {
	--pk-teal: var(--wp--preset--color--accent-2, #42b0bf);
	--pk-muted: var(--wp--preset--color--accent-4, #56636e);
	--pk-light: var(--wp--preset--color--accent-5, #f3f7f9);
	--pk-line: var(--wp--preset--color--accent-6, #dce3e8);
	--pk-tint: var(--wp--preset--color--accent-7, #e6f5f7);
}
.pk-product-quote { margin: 0 0 2rem; padding: 1.25rem; border: 2px solid var(--pk-line); border-radius: 10px; background: var(--pk-light); }
.pk-product-quote [hidden] { display: none !important; }
.pk-product-quote__heading { margin: 0 0 0.25rem; font-size: 1.4rem; }
.pk-product-quote__intro { margin: 0 0 1rem; }
.pk-product-quote__row { margin: 0 0 1rem; padding: 0; border: 0; min-width: 0; }
.pk-product-quote__row > label, .pk-product-quote__row > legend { display: block; margin-bottom: 0.3rem; font-weight: 700; }
.pk-product-quote input[type=text], .pk-product-quote input[type=email], .pk-product-quote input[type=tel], .pk-product-quote input[type=number], .pk-product-quote input[type=date], .pk-product-quote select, .pk-product-quote textarea { box-sizing: border-box; width: 100%; max-width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--pk-line); border-radius: 6px; background: #fff; font: inherit; }
.pk-product-quote input[type=date] { -webkit-appearance: none; appearance: none; display: block; min-width: 0; min-height: 2.75rem; max-width: 14rem; }
.pk-product-quote .pk-product-quote__short { max-width: 12rem; }
.pk-product-quote textarea { min-height: 6rem; }
.pk-product-quote__hint { display: block; margin-top: 0.25rem; font-size: 0.85em; color: var(--pk-muted); }
.pk-product-quote__tight { margin: -0.5rem 0 1rem; padding: 0.7rem 1rem; border-left: 4px solid #b32d2e; background: color-mix(in srgb, #b32d2e 8%, #fff); }
.pk-product-quote__contact .pk-product-quote__row label { font-weight: 400; }
.pk-product-quote abbr.required { text-decoration: none; border: 0; color: #b32d2e; }
.pk-product-quote .pk-quote-files { margin-bottom: 1rem; }
.pk-product-quote .pk-quote-files__drop { background: #fff; }
.pk-product-quote__send { margin: 1rem 0 0.3rem; }
.pk-product-quote__send .button { display: inline-block; box-sizing: border-box; max-width: 100%; white-space: normal; text-align: center; line-height: 1.3; font-size: 1.05em; padding: 0.8rem 1.6rem; }
@media (max-width: 600px) { .pk-product-quote__send .button { display: block; width: 100%; padding: 0.8rem 1rem; } }
.pk-product-quote-thanks { margin: 0 0 2rem; padding: 1.25rem; border-left: 5px solid var(--pk-teal); border-radius: 6px; background: var(--pk-tint); }
.pk-product-quote-thanks h2 { margin: 0 0 0.5rem; font-size: 1.4rem; }
.pk-product-quote-thanks__links { margin-bottom: 0; display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; align-items: center; }
.pk-product-quote-thanks:focus { outline: none; }
