/* Custom part / quote request page + admin quote list */
.pf-hiw-5 .pf-hiw-steps{grid-template-columns:repeat(5,1fr)}
.pf-hiw-5 .pf-hiw-track{margin:0 10%}
html.pf-reveal-on .pf-hiw-5.pf-in .pf-hiw-step:nth-child(2){transition-delay:.75s}
html.pf-reveal-on .pf-hiw-5.pf-in .pf-hiw-step:nth-child(3){transition-delay:1.3s}
html.pf-reveal-on .pf-hiw-5.pf-in .pf-hiw-step:nth-child(4){transition-delay:1.85s}
html.pf-reveal-on .pf-hiw-5.pf-in .pf-hiw-step:nth-child(5){transition-delay:2.4s}
@media (max-width:640px){.pf-hiw-5 .pf-hiw-steps{grid-template-columns:1fr 1fr}.pf-hiw-5 .pf-hiw-step:last-child{grid-column:1/-1}}
@media (max-width:400px){.pf-hiw-5 .pf-hiw-steps{grid-template-columns:1fr}}

.q-form,.q-done{max-width:820px;margin:22px auto 0}
.q-form h2{font-size:18px;margin:0 0 10px}
.lbl{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:3px}
.q-size{display:flex;gap:8px}.q-size select{width:86px;flex:none}
.q-drop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px;border:2px dashed #c7d7fe;border-radius:10px;background:#f8faff;transition:background .15s,border-color .15s}
.q-drop.over{background:#eff6ff;border-color:var(--brand)}
.q-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.q-file-input:focus-visible + label{outline:2px solid var(--brand);outline-offset:2px}
.q-drop label{margin:0;cursor:pointer}
.q-files{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.q-files li{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:14px}
.q-files .q-fname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.q-files .q-fkind{font-size:11px;font-weight:700;text-transform:uppercase;color:#1e40af;background:#dbeafe;border-radius:999px;padding:1px 8px}
.q-files .q-fsize{color:var(--muted);font-size:13px;white-space:nowrap}
.q-files .q-total{border:0;background:none;padding:2px 2px 0;color:var(--muted);font-size:13px;justify-content:flex-end}
.q-files button{min-height:30px;padding:4px 10px}
.q-ack{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #fcd34d;background:#fffbeb;border-radius:10px}
.q-ack input{width:20px;height:20px;flex:none;margin:1px 0 0;accent-color:var(--brand)}
.q-ack label{margin:0;font-size:14px;font-weight:600;color:#78350f}
.q-ack.invalid{border-color:var(--bad);background:#fef2f2}
[data-field].invalid input,[data-field].invalid textarea,[data-field].invalid select{border-color:var(--bad)}
.q-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.q-done{text-align:center;padding:28px 20px}
.q-done h2{margin:6px 0}.q-done .big-id{font-size:26px;font-weight:800;letter-spacing:.04em;color:var(--brand);margin:6px 0 12px}
.q-done ol{text-align:left;max-width:520px;margin:14px auto;padding-left:22px}.q-done li{margin:4px 0}
.q-check{display:inline-flex;width:58px;height:58px;border-radius:50%;background:#dcfce7;align-items:center;justify-content:center}
.q-check svg{width:34px;height:34px}

.q-done-actions{justify-content:center}
/* admin: quote requests */
.pill.qs-new{background:#e0e7ff;color:#3730a3}.pill.qs-quoted{background:#fef3c7;color:#92400e}.pill.qs-paid{background:#dcfce7;color:#166534}
.pill.qs-in-design{background:#ede9fe;color:#5b21b6}.pill.qs-printing{background:#ffedd5;color:#9a3412}.pill.qs-done{background:#d1fae5;color:#065f46}.pill.qs-declined{background:#f3f4f6;color:#4b5563}
.q-desc-full{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;margin:0}
.q-desc-short{max-width:260px;overflow-wrap:anywhere}
/* pay page (pay.html) + test-mode badge */
.pill.test-badge{background:#fef3c7;color:#92400e;vertical-align:middle;font-size:12px;margin-left:6px}
.pay-page h1{font-size:26px;margin:0 0 12px}
.pay-summary{margin:6px 0 10px}.pay-summary .line{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #e5e7eb}
.pay-summary .q-note{white-space:pre-wrap;overflow-wrap:anywhere;background:#f8fafc;border-radius:8px;padding:10px 12px;margin:8px 0}
.pay-total{display:flex;justify-content:space-between;align-items:baseline;font-size:18px;margin:10px 0 16px}.pay-total strong{font-size:24px}
/* admin: quote & payment box */
.q-pay{display:grid;gap:6px;margin-top:6px}.q-pay input,.q-pay textarea{width:100%}.q-pay textarea{min-height:70px}
.q-link{font-size:12px;overflow-wrap:anywhere;background:#f8fafc;border-radius:6px;padding:6px 8px}
.alert.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
/* photo quote page (photo-quote.html) */
.pf-hiw-3 .pf-hiw-steps{grid-template-columns:repeat(3,1fr)}
.pf-hiw-3 .pf-hiw-track{margin:0 16%}
@media (max-width:640px){.pf-hiw-3 .pf-hiw-steps{grid-template-columns:1fr}}
.p-drop{justify-content:flex-start}
.p-cam-btn{display:none}
@media (hover:none) and (pointer:coarse){.p-cam-btn{display:inline-flex}.p-drag{display:none}}
.p-thumbs{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.p-thumbs li{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.p-thumbs img,.p-thumbs .p-noprev{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:#f1f5f9}
.p-thumbs .p-noprev{display:flex;align-items:center;justify-content:center;font-weight:700;color:#64748b}
.p-thumbs .p-tname{font-size:12px;color:var(--muted);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p-thumbs .p-rm{position:absolute;top:5px;right:5px;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;border:0;background:rgba(15,23,42,.72);color:#fff;font-size:19px;line-height:30px;cursor:pointer}
.p-thumbs .p-rm:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.p-thumbs .p-total{grid-column:1/-1;border:0;background:none;font-size:13px;color:var(--muted);align-items:flex-end}
/* admin: source badge */
.pill.qsrc-photo{background:#e0f2fe;color:#075985;font-size:11px;margin-left:6px;vertical-align:middle}
