/* Partner programme */
.pt-hero { background: linear-gradient(180deg, #1a1c1e, #2a2d30); color: #f0efec; padding: clamp(56px, 9vw, 110px) 0 56px }
.pt-hero h1 { color: #fff; font-size: clamp(2.2rem, 5vw, 3.6rem); margin: .3em 0 .3em; max-width: 820px }
.pt-hero .lede { color: #d9d6cf; max-width: 720px; font-size: 1.12rem }
.pt-hero .eyebrow { color: #d6b98a; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem }
.pt-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px }
.pt-hero .btn-ghost { color: #fff; border-color: rgba(255,255,255,.4) }
.pt-band { background: #f0efec; padding: 28px 0; border-bottom: 1px solid #e3e0d9 }
.pt-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px }
.pt-grid-3 article { background: #fff; border: 1px solid #e3e0d9; border-radius: 14px; padding: 18px 20px }
.pt-grid-3 b { display: block; font-family: "Cormorant Garamond", serif; font-size: 2.2rem; color: #8f7041; line-height: 1 }
.pt-grid-3 span { color: #4b4f55; font-size: .95rem }
.pt-steps { counter-reset: s; list-style: none; padding: 0; display: grid; gap: 12px; margin: 16px 0 24px }
.pt-steps li { counter-increment: s; display: grid; grid-template-columns: 44px 1fr; gap: 4px 14px; background: #fff; border: 1px solid #e3e0d9; border-radius: 14px; padding: 16px 18px }
.pt-steps li::before { content: counter(s); grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; background: #1a1c1e; color: #d6b98a; display: grid; place-items: center; font-weight: 700 }
.pt-steps span { color: #5b5f66 }
.pt-h { font-size: 1.3rem; margin: 22px 0 10px } .panel .pt-h:first-child, details > summary.pt-h { margin-top: 0 }
details > summary.pt-h { cursor: pointer; list-style: none } details > summary.pt-h::after { content: " ▾"; color: #8f7041 }
.pt-zip { grid-template-columns: 1fr 2fr; gap: 12px; margin: 0 }
.pt-terms { max-height: 260px; overflow: auto; background: #faf9f6; border: 1px solid #e3e0d9; border-radius: 10px; padding: 14px 16px; font-size: .88rem; line-height: 1.6; margin-bottom: 14px; color: #3d4147 }
.pt-head { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 16px }
.pt-head h1 { margin: 0 } .pt-alert { background: #fff4e0; color: #8a5a07; border: 1px solid #f2dcae; padding: 10px 14px; border-radius: 10px; max-width: 420px; font-size: .9rem }
.pt-ref { display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap }
.pt-ref-main { flex: 1 1 380px } .pt-code { font-size: 2rem; font-weight: 700; letter-spacing: .12em; margin: 2px 0 10px; color: #1a1c1e }
.pt-copy { display: flex; gap: 8px } .pt-copy input { flex: 1; min-width: 0 }
.pt-qr { display: grid; justify-items: center; gap: 6px } .pt-qr canvas { border: 1px solid #e3e0d9; border-radius: 10px }
.pt-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 16px 0 }
.pt-stats article { background: #fff; border: 1px solid #e3e0d9; border-radius: 14px; padding: 16px 18px }
.pt-stats span { display: block; color: #6b6f72; font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 600 }
.pt-stats b { display: block; font-size: 1.5rem; margin-top: 4px } .pt-stats small { color: #8a8d90 }
.pt-row { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; padding: 14px 0; border-bottom: 1px solid #eeece7 } .pt-row:last-child { border-bottom: 0 }
.pt-row .r { text-align: right } .pt-actions { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; align-items: center }
.pt-upload { display: flex; gap: 6px; flex-wrap: wrap; align-items: center } .pt-upload input[name=invoice_number] { width: 180px }
.pt-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; background: #eceae4; color: #4b4f55 }
.pt-pending, .pt-invoice_missing { background: #fff4e0; color: #8a5a07 } .pt-available, .pt-ready { background: #e8f0ff; color: #2b4fb8 }
.pt-settled, .pt-paid { background: #e3f5ea; color: #11643a } .pt-reversed, .pt-void { background: #f6e3e3; color: #9b2c2c }
.pt-table-wrap { overflow-x: auto } .pt-table { width: 100%; border-collapse: collapse; font-size: .93rem }
.pt-table th { text-align: left; font-size: .74rem; text-transform: uppercase; color: #6b6f72; padding: 10px 8px; border-bottom: 1px solid #e3e0d9 }
.pt-table td { padding: 10px 8px; border-bottom: 1px solid #f0eee9 } .pt-table .r { text-align: right }
.pt-status { border-left: 4px solid #d6b98a } .pt-status-rejected, .pt-status-suspended { border-left-color: #c0392b }
@media (max-width: 760px) {
  .pt-grid-3, .pt-stats { grid-template-columns: 1fr 1fr } .pt-ref { flex-direction: column; align-items: stretch } .pt-qr { justify-items: start }
  .pt-table thead { display: none } .pt-table tr { display: block; border: 1px solid #eceae4; border-radius: 12px; margin: 10px 0; padding: 6px 10px }
  .pt-table td { display: flex; justify-content: space-between; border: 0; padding: 6px 0 } .pt-table td::before { content: attr(data-l); color: #6b6f72; font-size: .78rem; font-weight: 600 }
}
.pt-level { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; border-left: 4px solid #b08d57 }
.pt-level > div { flex: 1 1 360px } .pt-level-n { font-size: 1.35rem; margin: 2px 0 4px } .pt-level-n b { color: #8f7041 }
.pt-progress { height: 8px; background: #eceae4; border-radius: 99px; overflow: hidden; max-width: 460px } .pt-progress i { display: block; height: 100%; background: linear-gradient(90deg, #b08d57, #d6b98a) }
/* Business registration */
.pt-reg-hero { background: linear-gradient(180deg, #1a1c1e, #2a2d30); color: #f0efec; padding: clamp(48px, 7vw, 90px) 0 40px }
.pt-reg-hero h1 { color: #fff; margin: .25em 0 .3em } .pt-reg-hero .lede { color: #d9d6cf; max-width: 720px }
.pt-reg-hero .eyebrow { color: #d6b98a; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem }
.pt-reg-hero .small { color: #b9b4aa } .pt-reg-hero a { color: #d6b98a }
.pt-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 8px }
.pt-type { position: relative; display: block; cursor: pointer }
.pt-type input { position: absolute; opacity: 0 }
.pt-type span { display: grid; gap: 4px; height: 100%; padding: 14px 16px; border: 1px solid #dcd9d2; border-radius: 12px; background: #fff; transition: border-color .15s, box-shadow .15s }
.pt-type small { color: #6b6f72; font-size: .82rem; line-height: 1.4 }
.pt-type input:checked + span { border-color: #1a1c1e; box-shadow: 0 0 0 1px #1a1c1e; background: #fbfaf7 }
.pt-type input:focus-visible + span { outline: 2px solid #b08d57; outline-offset: 2px }
.pt-errors { background: #fdeeee; border: 1px solid #f3cccc; color: #8d2323; border-radius: 12px; padding: 12px 16px; margin-bottom: 14px } .pt-errors ul { margin: 6px 0 0; padding-left: 18px }
.biz-link { text-align: center; margin: 14px 0 0; font-size: .92rem; color: #6b6f72 } .biz-link a { font-weight: 600 }
@media (max-width: 760px) { .pt-types { grid-template-columns: 1fr } }
/* field errors + optional section */
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: #c0392b !important; background: #fff7f6; box-shadow: 0 0 0 3px rgba(192,57,43,.12) }
.field.is-invalid > span { color: #a93226 }
.pt-err { display: block; color: #b42318 !important; font-weight: 600; margin-top: 6px; font-size: .84rem }
.pt-err::before { content: "⚠ " }
.pt-optional { margin: 26px 0 8px; border: 1px dashed #d6cfbf; border-radius: 14px; padding: 4px 18px; background: #fcfaf6 }
.pt-optional[open] { padding-bottom: 14px }
.pt-optional summary { cursor: pointer; list-style: none; padding: 14px 0; display: grid; gap: 4px }
.pt-optional summary::-webkit-details-marker { display: none }
.pt-optional summary b { font-family: "Cormorant Garamond", serif; font-size: 1.3rem; font-weight: 600 } .pt-optional summary b::after { content: " ▾"; color: #8f7041; font-size: .9rem }
.pt-optional summary span { color: #6b6f72; font-size: .9rem }
.pt-errors { border-left: 4px solid #c0392b } .pt-errors b { color: #8d2323 }
.pt-bank-hint { background: #fff4e0; border: 1px solid #f2dcae; color: #7a4f06; border-radius: 12px; padding: 12px 16px; margin: 0 0 16px }
/* ===== Partner dashboard (customer control panel) ===== */
.pt-dash { padding-top: clamp(32px, 5vw, 56px) }
.pt-dash-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; margin-bottom: 22px }
.pt-dash-head h1 { margin: 0 } .pt-dash-head .eyebrow { color: #8f7041; letter-spacing: .1em; text-transform: uppercase; font-size: .78rem; margin: 0 0 6px }
.pt-dash-actions { display: flex; gap: 10px; flex-wrap: wrap }
.pt-levelcard { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 4vw, 48px); align-items: center; background: linear-gradient(135deg, #1a1c1e, #2a2d30); color: #f0efec; border-radius: 22px; padding: clamp(22px, 4vw, 38px); margin-bottom: 18px; box-shadow: 0 24px 50px -30px rgba(0,0,0,.55); position: relative; overflow: hidden }
.pt-levelcard::after { content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(closest-side, rgba(214,185,138,.22), transparent) }
.pt-ring { position: relative; width: 168px; height: 168px; flex: none }
.pt-ring svg { width: 100%; height: 100%; transform: rotate(-90deg) }
.pt-ring circle { fill: none; stroke-width: 10 } .pt-ring .bg { stroke: rgba(255,255,255,.1) } .pt-ring .fg { stroke: #d6b98a; stroke-linecap: round; transition: stroke-dashoffset 1s ease }
.pt-ring > div { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; line-height: 1.1 }
.pt-ring b { font-family: "Cormorant Garamond", serif; font-size: 2.6rem; color: #fff } .pt-ring small { color: #bdb7aa; font-size: .95rem } .pt-ring span { display: block; color: #bdb7aa; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; margin-top: 4px }
.pt-level-badge { display: inline-block; padding: 4px 12px; border-radius: 999px; background: rgba(214,185,138,.18); color: #d6b98a; font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase }
.pt-levelinfo h2 { color: #fff; font-size: clamp(2rem, 4vw, 2.8rem); margin: 8px 0 6px } .pt-levelinfo h2 small { font-family: Jost, sans-serif; font-size: 1rem; color: #cfcac0; font-weight: 400 }
.pt-levelinfo p { color: #d9d6cf; margin: 0 0 16px } .pt-levelinfo p b { color: #d6b98a }
.pt-steps-line { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; position: relative; z-index: 1 }
.pt-steps-line li { padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03) }
.pt-steps-line li b { display: block; color: #fff; font-size: 1.1rem } .pt-steps-line li span { color: #a9a49a; font-size: .78rem }
.pt-steps-line li.done { opacity: .6 } .pt-steps-line li.done b::after { content: " ✓"; color: #d6b98a }
.pt-steps-line li.now { border-color: #d6b98a; background: rgba(214,185,138,.14) } .pt-steps-line li.now b { color: #d6b98a }
.pt-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px }
.pt-kpis article { background: #fff; border: 1px solid #e3e0d9; border-radius: 16px; padding: 18px 20px; box-shadow: 0 12px 30px -24px rgba(26,28,30,.35) }
.pt-kpis span { display: block; color: #6b6f72; font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600 }
.pt-kpis b { display: block; font-size: 1.7rem; margin-top: 6px; color: #1a1c1e } .pt-kpis small { color: #9a6206; font-size: .8rem }
.pt-orders-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap } .pt-orders-head .pt-h { margin: 0 }
.pt-orders-head input { max-width: 280px; min-height: 40px }
.pt-st { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .76rem; font-weight: 600; background: #eceae4; color: #4b4f55; white-space: nowrap }
.pt-st-pending { background: #fff4e0; color: #8a5a07 } .pt-st-paid, .pt-st-laser, .pt-st-engraved { background: #e8f0ff; color: #2b4fb8 } .pt-st-shipped { background: #efe8ff; color: #5b3593 } .pt-st-delivered { background: #e3f5ea; color: #11643a }
.pt-saved { color: #11643a; font-weight: 600 }
.pt-row-actions { white-space: nowrap } .pt-row-actions a { display: inline-block; margin: 2px 8px 2px 0; font-size: .86rem; font-weight: 600 }
.pt-empty td { text-align: center; padding: 34px 10px !important; color: #6b6f72 }
.pt-refer summary small { font-family: Jost, sans-serif; font-size: .85rem; color: #6b6f72; font-weight: 400; margin-left: 8px }
.pt-refer .pt-ref { margin-top: 16px; padding-bottom: 16px; border-bottom: 1px solid #eeece7 }
.pt-refer .panel { box-shadow: none; border: 0; padding: 16px 0 0 }
@media (max-width: 860px) { .pt-levelcard { grid-template-columns: 1fr; justify-items: center; text-align: center } .pt-steps-line { text-align: left } .pt-kpis { grid-template-columns: 1fr 1fr } }
@media (max-width: 760px) { .pt-row-actions { white-space: normal; justify-content: flex-end } .pt-orders-head input { max-width: none; width: 100% } }
.pt-reg-hero h1, .pt-hero h1 { font-size: clamp(2rem, 5.2vw, 3.6rem); line-height: 1.08; overflow-wrap: anywhere; hyphens: auto; max-width: 18ch }
.pt-reg-hero .wrap, .pt-hero .wrap { overflow: hidden }
