/* PSS Plasma — customer portal. The progress timeline is drawn as a plasma cut: a kerf line that the torch has
   cut up to the current step (orange glow), the rest still scribed in navy. Everything else stays quiet. */
.pss-pt{display:grid;gap:18px}
.pss-pt h2{margin:0;font:800 clamp(1.3rem,2.4vw,1.7rem)/1.15 var(--f-display);letter-spacing:-.015em;color:var(--ink)}
.pss-pt h3{margin:0 0 10px;font:800 1.02rem var(--f-display);color:var(--ink)}
.pss-pt section{min-width:0}
.pss-pt-head,.pss-pt-dhead{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end}
.pss-pt-dhead p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.pss-pt-dhead__val{text-align:right}
.pss-pt-dhead__val small{display:block;color:var(--muted);font:600 .74rem var(--f-mono)}
.pss-pt-dhead__val b{font:800 1.7rem var(--f-display);color:var(--navy-2);font-variant-numeric:tabular-nums}
.pss-pt-back{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:.9rem}
.pss-pt-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px}
.pss-pt-filters .pss-field{margin:0}
.pss-num{text-align:right;font-variant-numeric:tabular-nums}

/* Orders list */
.pss-pt-orders{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pss-pt-order a{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"ref chip val" "meta meta val" "cta cta cta";gap:4px 12px;align-items:center;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .35s var(--spring),border-color .2s,box-shadow .2s}
.pss-pt-order a:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:var(--shadow-1)}
.pss-pt-order a:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.pss-pt-order.is-action a{border-left:4px solid var(--orange)}
.pss-pt-order__ref{grid-area:ref;font:700 .95rem var(--f-mono);color:var(--navy-2)}
.pss-pt-order .pss-chip{grid-area:chip;justify-self:start}
.pss-pt-order__meta{grid-area:meta;color:var(--muted);font-size:.86rem}
.pss-pt-order__val{grid-area:val;font:800 1.1rem var(--f-display);font-variant-numeric:tabular-nums}
.pss-pt-order__cta{grid-area:cta;font-weight:700;color:var(--orange-ink);font-size:.86rem}
.pss-pt-order__msg{grid-column:1/-1;font:600 .78rem var(--f-mono);color:var(--info)}
.pss-pt-strip{display:flex;gap:8px;flex-wrap:wrap}
.pss-pt-stmt{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface-2)}
.pss-pt-stmt dl{display:flex;gap:22px;margin:0}
.pss-pt-stmt dt{font:600 .72rem var(--f-mono);color:var(--muted)}
.pss-pt-stmt dd{margin:0;font:800 1.05rem var(--f-display);font-variant-numeric:tabular-nums}
.pss-pt-stmt .is-due dd{color:var(--orange-ink)}

/* Kerf timeline */
.pss-pt-tl{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:26px 0 4px;--p:0%}
.pss-pt-tl__kerf{position:absolute;left:calc(100% / 14);right:calc(100% / 14);top:33px;height:3px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--line-2) 0 8px,transparent 8px 14px)}
.pss-pt-tl__kerf::after{content:"";position:absolute;left:0;top:-1px;height:5px;width:var(--p);border-radius:3px;background:linear-gradient(90deg,var(--navy),var(--navy-2) 70%,var(--orange));box-shadow:0 0 10px rgba(253,101,0,.55);transition:width 1.1s var(--ease)}
.pss-pt-tl__step{position:relative;display:grid;justify-items:center;text-align:center;gap:2px;padding-top:2px}
.pss-pt-tl__dot{width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--line-2);position:relative;z-index:1;margin-top:-8px;transition:transform .5s var(--spring)}
.pss-pt-tl__step b{font-size:.78rem;line-height:1.25;margin-top:6px;color:var(--muted);font-weight:700}
.pss-pt-tl__step small{font:500 .68rem var(--f-mono);color:var(--muted);min-height:1em}
.pss-pt-tl__step.is-done .pss-pt-tl__dot{background:var(--navy-2);border-color:var(--navy-2)}
.pss-pt-tl__step.is-done b{color:var(--ink)}
.pss-pt-tl__step.is-current .pss-pt-tl__dot{background:var(--orange);border-color:#FFD2B0;transform:scale(1.35);box-shadow:0 0 0 6px rgba(253,101,0,.15),0 0 18px rgba(253,101,0,.7);animation:pssPtTorch 1.8s ease-in-out infinite}
.pss-pt-tl__step.is-current b{color:var(--orange-ink)}
.pss-pt-tl.is-celebrate .pss-pt-tl__step.is-current .pss-pt-tl__dot{animation:pssPtPop .7s var(--spring) 2}
@keyframes pssPtTorch{50%{box-shadow:0 0 0 9px rgba(253,101,0,.08),0 0 26px rgba(253,101,0,.9)}}
@keyframes pssPtPop{50%{transform:scale(1.9)}}
.pss-pt-ready{display:flex;gap:10px;align-items:center;margin:0;padding:10px 14px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--ok) 9%,var(--surface))}
.pss-pt-ready .pss-ico{color:var(--ok);flex:none}

.pss-pt-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px}
.pss-pt-price,.pss-pt-msgs{padding:16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface-2)}
.pss-pt-lines{width:100%;border-collapse:collapse;font-size:.88rem}
.pss-pt-lines th{text-align:left;font:600 .72rem var(--f-mono);color:var(--muted);border-bottom:1px solid var(--line-2);padding:6px 4px}
.pss-pt-lines td{padding:7px 4px;border-bottom:1px solid var(--line)}
.pss-pt-tot{display:grid;grid-template-columns:1fr auto;gap:4px 16px;margin:12px 0 6px;font-variant-numeric:tabular-nums}
.pss-pt-tot dd{margin:0;text-align:right}
.pss-pt-tot .t{border-top:2px solid var(--navy-2);padding-top:6px;font:800 1.15rem var(--f-display)}
.pss-pt-tot dd.t{color:var(--orange-ink)}
.pss-pt-qnotes{white-space:pre-line;font-size:.9rem;padding:8px 12px;border-left:3px solid var(--orange);background:var(--surface)}
.pss-pt-bad{color:var(--bad)}
.pss-pt-decide{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-2)}
.pss-pt-choice{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}
.pss-pt-choice label{position:relative}
.pss-pt-choice input{position:absolute;opacity:0;inset:0}
.pss-pt-choice span{display:flex;gap:8px;justify-content:flex-start;align-items:center;padding:12px 10px;border-radius:var(--r-sm);border:2px solid var(--line-2);background:var(--surface);font-weight:700;white-space:nowrap;cursor:pointer;transition:transform .35s var(--spring),border-color .2s,background .2s}
.pss-pt-choice input:focus-visible+span{outline:3px solid var(--orange);outline-offset:2px}
.pss-pt-choice input:checked+span{transform:translateY(-2px);border-color:var(--navy-2);background:color-mix(in srgb,var(--navy-2) 10%,var(--surface))}
.pss-pt-choice input[value=approve]:checked+span{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,var(--surface))}
.pss-pt-choice input[value=decline]:checked+span{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
.pss-pt-err{color:var(--bad);font-weight:600;font-size:.9rem;margin-top:6px}
.pss-pt-bank{margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line)}
.pss-pt-bank h4{margin:0 0 6px}
.pss-pt-bank pre{margin:0;font:500 .85rem/1.6 var(--f-mono);white-space:pre-wrap}

.pss-pt-thread{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}
.pss-pt-thread li{max-width:88%;padding:9px 12px;border-radius:14px 14px 14px 4px;background:var(--surface);border:1px solid var(--line)}
.pss-pt-thread li.is-workshop{align-self:flex-start}
.pss-pt-thread li.is-customer{align-self:flex-end;border-radius:14px 14px 4px 14px;background:color-mix(in srgb,var(--navy-2) 10%,var(--surface))}
.pss-pt-thread b{font-size:.8rem}
.pss-pt-thread time{margin-left:8px;font:500 .7rem var(--f-mono);color:var(--muted)}
.pss-pt-thread p{margin:4px 0 0;font-size:.92rem}
.pss-pt-thread .pss-pt-none{max-width:none;background:none;border:0;color:var(--muted);font-size:.9rem;padding:0}
.pss-pt-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

.pss-pt-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:12px}
.pss-pt-sheets figure{margin:0;padding:8px;border-radius:var(--r-sm);border:1px solid var(--line);background:#fff}
.pss-pt-sheets svg{width:100%;height:auto;display:block;max-height:320px}
.pss-pt-sheets figcaption{font:500 .74rem var(--f-mono);color:#556;margin-top:6px}
.pss-pt-files ul{margin:0 0 10px;padding-left:18px}
.pss-pt-files small{color:var(--muted);font-family:var(--f-mono)}
.pss-pt-upload{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pss-pt-drop{position:relative;display:flex;align-items:center;gap:8px;flex:1 1 260px;padding:12px 14px;border:2px dashed var(--line-2);border-radius:var(--r-sm);cursor:pointer;font-size:.9rem;color:var(--ink-2)}
.pss-pt-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pss-pt-drop:focus-within{outline:3px solid var(--orange);outline-offset:2px}
.pss-pt-actions{display:flex;flex-wrap:wrap;gap:8px}

/* Account */
.pss-pt-acc .pss-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}
.pss-pt-form{display:grid;gap:4px;padding-top:12px;max-width:760px}
.pss-pt-form h4{margin:12px 0 4px}
.pss-pt-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.pss-pt-check{display:flex;gap:8px;align-items:center;margin:6px 0}
.pss-pt-addr{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}
.pss-pt-addr li{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-2)}
.pss-pt-addr li>div{display:grid;gap:2px}
.pss-pt-addr small{color:var(--muted)}
.pss-pt-addr .pss-link{background:none;border:0;padding:0;cursor:pointer;color:var(--navy-2);font-weight:700}
.pss-pt-offline .pss-pt-actions{margin-top:10px}
.pss-pt-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9999;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600}
.pss-btn.is-busy{opacity:.6;pointer-events:none}

@media (max-width:760px){
  .pss-pt-grid,.pss-pt-filters,.pss-pt-2{grid-template-columns:1fr}
  .pss-pt-tl{grid-template-columns:1fr;gap:0;padding:6px 0 6px 6px}
  .pss-pt-tl__kerf{left:13px;right:auto;top:10px;bottom:10px;width:3px;height:auto;background:repeating-linear-gradient(180deg,var(--line-2) 0 8px,transparent 8px 14px)}
  .pss-pt-tl__kerf::after{width:5px;left:-1px;height:var(--p)}
  .pss-pt-tl__step{grid-template-columns:auto 1fr auto;justify-items:start;text-align:left;gap:10px;align-items:center;padding:6px 0}
  .pss-pt-tl__dot{margin:0}
  .pss-pt-tl__step b{margin:0}
  .pss-pt-dhead__val{text-align:left}
  .pss-pt-order a{grid-template-columns:1fr auto;grid-template-areas:"ref val" "chip chip" "meta meta" "cta cta"}
}
@media (prefers-reduced-motion:reduce){.pss-pt-tl__step.is-current .pss-pt-tl__dot{animation:none}}
.pss-pt [hidden],.pss-pt-decform [hidden]{display:none!important}
/* live sheet progress from the shop floor (v2.7) */
.pss-pt-live{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--navy,#01437C)}
.pss-pt-live.is-cutting{color:#8A3A00}
.pss-pt-live.is-big{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:10px 0;padding:10px 14px;border-radius:var(--r-sm,8px);background:color-mix(in srgb,#FD6500 8%,var(--surface,#fff));font-size:.95rem}
.pss-pt-live__dot{width:10px;height:10px;border-radius:50%;background:#FD6500}
.pss-pt-live.is-cutting .pss-pt-live__dot{animation:pss-pt-pulse 1.2s ease-in-out infinite}
.pss-pt-live__bar{grid-column:1/-1;height:8px;border-radius:5px;background:color-mix(in srgb,#01437C 12%,transparent);overflow:hidden}
.pss-pt-live__bar>span{display:block;height:100%;background:linear-gradient(90deg,#01437C,#FD6500);border-radius:5px}
@keyframes pss-pt-pulse{50%{transform:scale(1.5);opacity:.5}}
@media (prefers-reduced-motion:reduce){.pss-pt-live__dot{animation:none!important}}

/* Bills on a job (v3.4) */
.pss-pt-bills ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.pss-pt-bill{display:grid;grid-template-columns:1fr auto auto;gap:4px 14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.pss-pt-bill a{color:inherit;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pss-pt-bill a:hover b{text-decoration:underline}
.pss-pt-bill__amt{font-weight:700;font-variant-numeric:tabular-nums}
.pss-pt-bill__state{font-size:.9rem;color:var(--muted)}
.pss-pt-bill.is-late{border-color:#D93025}
.pss-pt-bill.is-late .pss-pt-bill__state{color:#B3261E;font-weight:700}
.pss-pt-bill.is-paid .pss-pt-bill__state{color:#14612A}
.pss-pt-bills__due{margin:4px 0 0}
.pss-pt-bills__due.is-clear{color:#14612A}
@media (max-width:560px){.pss-pt-bill{grid-template-columns:1fr auto}.pss-pt-bill__state{grid-column:1/-1}}
.pss-pt-sheetnote{margin:8px 0 0;font-size:.85rem;color:var(--muted)}
