/* PSS Plasma — Studio editing (edit area): part tools, plate editor, manual nesting, sheet stock, jobs.
 * Pro Steel Solutions Ltd. Uses tokens.css. No italics. Drafting-board feel: blueprint grid, orange for whatever the torch will touch. */

/* ===================== shared bits ===================== */
.pss-ed-form{display:grid;gap:4px;margin-top:10px}
.pss-ed-form__foot{display:flex;gap:10px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
.pss-ed-sub{font:600 .9rem var(--f-body);color:var(--muted);margin-left:4px}
.pss-st-modal .pss-field{display:grid;gap:4px;margin-bottom:8px}
.pss-st-modal .pss-field>span{font-size:.78rem;font-weight:700;color:var(--muted)}
.pss-st-modal .pss-field input,.pss-st-modal .pss-field select,.pss-st-modal .pss-field textarea{min-height:42px;padding:8px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:inherit;width:100%}
.pss-st-modal .pss-field textarea{min-height:76px;resize:vertical}
.pss-st-modal .pss-st-check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;margin:6px 0}

/* ===================== part tools modal ===================== */
.pss-ed-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-top:14px}
.pss-ed-tool{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;text-align:left;font:600 .86rem var(--f-body);color:var(--ink);transition:transform .35s var(--spring),border-color .2s,background .2s}
.pss-ed-tool .pss-ico{color:var(--orange);width:20px;height:20px}
.pss-ed-tool:hover,.pss-ed-tool:focus-visible{transform:translateY(-2px);border-color:var(--orange-ink);background:var(--surface)}

/* ===================== details drawer ===================== */
.pss-ed-markchip{display:inline-grid;place-items:center;min-width:44px;height:30px;padding:0 10px;border-radius:9px;background:var(--c);color:#fff;font:700 .95rem var(--f-mono)}
.pss-ed-drawer__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:12px;align-items:start}
.pss-ed-drawer__pic{border-radius:16px;background:var(--surface-2);border:1px solid var(--line);padding:12px;display:grid;place-items:center;min-height:200px}
.pss-ed-drawer__pic svg{width:100%;max-height:300px}
.pss-ed-stats,.pss-ed-ht,.pss-sk-rank,.pss-jb__cmp{border-collapse:collapse;width:100%;font-size:.84rem}
.pss-ed-stats th,.pss-ed-stats td,.pss-ed-ht th,.pss-ed-ht td,.pss-sk-rank th,.pss-sk-rank td,.pss-jb__cmp th,.pss-jb__cmp td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.pss-ed-stats th{color:var(--muted);font-weight:600;width:46%}
.pss-ed-stats td,.pss-ed-ht td,.pss-sk-rank td{font-family:var(--f-mono);font-size:.8rem}
.pss-ed-ht thead th,.pss-sk-rank thead th,.pss-jb__cmp thead th{background:var(--surface-2);font-size:.76rem;color:var(--muted)}
.pss-ed-tablewrap{overflow-x:auto;max-width:100%}
.pss-ed-warns p{display:flex;gap:8px;color:var(--warn);font-weight:600;font-size:.86rem;margin:8px 0}
.pss-ed-drawer h3{font:800 1.05rem var(--f-display);margin:18px 0 6px}
.pss-ed-drawer h3 small{font:500 .78rem var(--f-body);color:var(--muted);margin-left:6px}
.pss-ed-drawer__acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
@media (max-width:640px){.pss-ed-drawer__grid{grid-template-columns:1fr}}

/* ===================== parts list bar, badges, bulk ===================== */
.pss-ed-listbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:8px 10px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.pss-ed-mini{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--muted)}
.pss-ed-mini select,.pss-ed-mini input{min-height:32px;padding:4px 8px;border-radius:9px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font:600 .82rem var(--f-body);max-width:190px}
.pss-ed-mini input{width:72px}
.pss-ed-selall{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;cursor:pointer}
.pss-ed-qtymul{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;margin-left:auto}
.pss-ed-qtymul button{border:0;background:var(--surface-2);padding:6px 10px;font:700 .8rem var(--f-mono);cursor:pointer;color:var(--ink)}
.pss-ed-qtymul button+button{border-left:1px solid var(--line-2)}
.pss-ed-qtymul button:hover{background:var(--orange);color:#fff}
.pss-ed-cb{position:absolute;bottom:8px;left:8px;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--surface);border:1px solid var(--line-2);cursor:pointer;z-index:2}
.pss-ed-cb input{width:16px;height:16px;margin:0;accent-color:var(--orange-ink);cursor:pointer}
.pss-st-pcard__pic{position:relative}
.pss-st-pcard.is-picked{outline:2px solid var(--orange);outline-offset:2px}
.pss-st-pcard.has-tag{box-shadow:inset 5px 0 0 var(--tag),var(--shadow-1)}
.pss-ed-badges{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px}
.pss-ed-badges span{font:700 .68rem var(--f-mono);padding:2px 7px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pss-ed-bulk{position:sticky;bottom:10px;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;padding:10px 12px;border-radius:18px;background:var(--navy-ink);color:#fff;box-shadow:var(--shadow-2);animation:stModal .45s var(--spring)}
.pss-ed-bulk b{font-family:var(--f-display);margin-right:4px}
.pss-ed-bulk .pss-ed-mini{color:rgba(255,255,255,.75)}
.pss-ed-bulk .pss-ed-mini select,.pss-ed-bulk .pss-ed-mini input{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}
.pss-ed-bulk .pss-ed-mini option{color:#0B1422}
.pss-ed-bulk .pss-btn--ghost{--bg:rgba(255,255,255,.08);--fg:#fff;--bd:rgba(255,255,255,.28);color:#fff}

/* ===================== plate editor ===================== */
.pss-dr-launch{display:grid;gap:8px}
.pss-dr-launch__art{color:var(--navy-2);background:repeating-linear-gradient(0deg,transparent 0 11px,rgba(1,67,124,.08) 11px 12px),repeating-linear-gradient(90deg,transparent 0 11px,rgba(1,67,124,.08) 11px 12px),var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;place-items:center}
.pss-dr-launch__art svg{width:min(220px,80%)}
.pss-dr-launch h4{font:800 1.15rem var(--f-display);margin:6px 0 0}
.pss-dr-launch h5{font:700 .8rem var(--f-body);color:var(--muted);margin:10px 0 0}
.pss-dr-launch__quick{display:flex;flex-wrap:wrap;gap:6px}

.pss-dr-full{position:fixed;inset:0;z-index:990;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--bg);animation:stIn .45s var(--spring) both;font-family:var(--f-body);color:var(--ink)}
.pss-dr-full.is-out{animation:stOut .22s ease-in forwards}
.pss-dr-full *{box-sizing:border-box}
.pss-dr-full__top{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.pss-dr-full__top b{display:flex;align-items:center;gap:8px;font:800 1.08rem var(--f-display);letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pss-dr-full__top b .pss-ico{color:var(--orange)}
.pss-dr-full__unit{font:600 .78rem var(--f-mono);color:var(--muted)}
.pss-dr-full .pss-ico{width:18px;height:18px}
.pss-dr-full__body{min-height:0}
.pss-dr{--dr-bg:#F1F5FA;--dr-grid:rgba(1,67,124,.07);--dr-grid2:rgba(1,67,124,.17);--dr-cut:#01437C;--dr-etch:#B26A00;--dr-fill:rgba(1,67,124,.12);--dr-dim:#2B3647;--dr-axis:rgba(253,101,0,.55);
  height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);outline:none}
:root[data-theme="dark"] .pss-dr{--dr-bg:#0B1626;--dr-grid:rgba(111,180,255,.07);--dr-grid2:rgba(111,180,255,.16);--dr-cut:#6FB4FF;--dr-etch:#FFB547;--dr-fill:rgba(111,180,255,.12);--dr-dim:#C9D4E3}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pss-dr{--dr-bg:#0B1626;--dr-grid:rgba(111,180,255,.07);--dr-grid2:rgba(111,180,255,.16);--dr-cut:#6FB4FF;--dr-etch:#FFB547;--dr-fill:rgba(111,180,255,.12);--dr-dim:#C9D4E3}}
.pss-dr__bar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.pss-dr__tools{display:flex;flex-wrap:wrap;gap:3px;padding:3px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.pss-dr__tools button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:11px;background:none;cursor:pointer;color:var(--ink-2);transition:background .2s,color .2s,transform .3s var(--spring)}
.pss-dr__tools button:hover{background:var(--surface-2);transform:translateY(-1px)}
.pss-dr__tools button[aria-pressed="true"]{background:var(--navy);color:#fff;box-shadow:0 4px 12px rgba(1,67,124,.3)}
.pss-dr__snaps{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.pss-dr__snaps label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.pss-dr__snaps input[type=checkbox]{accent-color:var(--orange-ink)}
.pss-dr__snaps input[type=number]{width:58px;min-height:28px;padding:2px 6px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:600 .8rem var(--f-mono)}
.pss-dr__body{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:0}
.pss-dr__stage{position:relative;min-height:0;overflow:hidden}
.pss-dr__stage canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.pss-dr__hud{position:absolute;left:12px;top:10px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.pss-dr__hud span{font:600 .76rem var(--f-mono);padding:4px 8px;border-radius:8px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}
.pss-dr__hud span:empty{display:none}
.pss-dr__type{position:absolute;top:10px;right:12px;width:min(400px,calc(100% - 330px))}
.pss-dr__type label{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-1)}
.pss-dr__type span{font:700 .74rem var(--f-body);color:var(--muted);white-space:nowrap}
.pss-dr__type input{flex:1;min-width:0;min-height:36px;border:0;background:none;color:var(--ink);font:600 .86rem var(--f-mono);outline:none}
.pss-dr__type label:focus-within{border-color:var(--orange-ink);box-shadow:0 0 0 4px rgba(253,101,0,.15)}
.pss-dr__zoom{position:absolute;right:12px;bottom:12px;display:grid;gap:6px}
.pss-dr__zoom button{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.pss-dr__side{border-left:1px solid var(--line);background:var(--surface);overflow:auto;padding:12px 14px 18px}
.pss-dr__side section{padding:10px 0;border-bottom:1px solid var(--line)}
.pss-dr__side section:empty{display:none}
.pss-dr__side h4{font:800 .95rem var(--f-display);margin:0 0 6px}
.pss-dr__tip{font-size:.8rem;color:var(--muted);line-height:1.45;margin:0 0 8px}
.pss-dr__side .pss-field{display:grid;gap:4px;margin-bottom:8px}
.pss-dr__side .pss-field>span{font-size:.76rem;font-weight:700;color:var(--muted)}
.pss-dr__side .pss-field input{min-height:38px;padding:6px 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font:inherit;width:100%}
.pss-dr__chips{display:flex;flex-wrap:wrap;gap:5px}
.pss-dr__chips .pss-chip{font-size:.78rem;padding:.3em .7em}
.pss-dr__ops{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.pss-dr__ops button{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:10px;border:1px solid transparent;background:var(--surface-2);cursor:pointer;font:600 .76rem var(--f-body);color:var(--ink);text-align:left;min-height:34px}
.pss-dr__ops button .pss-ico{width:15px;height:15px;color:var(--navy-2)}
.pss-dr__ops button:hover{border-color:var(--orange-ink)}
.pss-dr__props{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pss-dr__props label{display:grid;gap:2px;font-size:.72rem;font-weight:700;color:var(--muted)}
.pss-dr__props label.wide{grid-column:1/-1}
.pss-dr__props input{min-height:34px;padding:4px 8px;border-radius:9px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font:600 .82rem var(--f-mono);width:100%}
.pss-dr__stats{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:.82rem}
.pss-dr__stats dt{color:var(--muted);font-weight:600}
.pss-dr__stats dd{margin:0;font-family:var(--f-mono);font-size:.8rem}
.pss-dr__savebtns{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.pss-dr__save{border-bottom:0!important}
@media (max-width:860px){
  .pss-dr__body{grid-template-columns:1fr;grid-template-rows:minmax(300px,58vh) auto;overflow:auto}
  .pss-dr__side{border-left:0;border-top:1px solid var(--line)}
  .pss-dr__tools button{width:34px;height:34px}
  .pss-dr__type{top:auto;bottom:12px;left:12px;right:60px;width:auto}
}

/* ===================== manual nesting ===================== */
.pss-mn-bar{position:absolute;left:12px;top:12px;display:flex;flex-wrap:wrap;gap:3px;padding:4px;max-width:calc(100% - 80px);border-radius:16px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-1);z-index:4}
.pss-mn-bar button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:10px;background:none;cursor:pointer;color:var(--ink-2);transition:background .2s,transform .3s var(--spring)}
.pss-mn-bar button:hover{background:var(--surface);transform:translateY(-1px)}
.pss-mn-bar button[aria-pressed="true"]{background:var(--orange);color:#fff}
.pss-mn-bar button:disabled{opacity:.35;pointer-events:none}
.pss-mn-bar .pss-ico{width:17px;height:17px}
.pss-mn-sep{width:1px;margin:6px 2px;background:var(--line-2)}
.pss-mn-tip{position:absolute;pointer-events:none;padding:6px 10px;border-radius:10px;font:700 .76rem var(--f-mono);box-shadow:var(--shadow-2);z-index:6;white-space:nowrap}
.pss-mn-tip.is-ok{background:#0E5E3A;color:#fff}
.pss-mn-tip.is-bad{background:#A3241F;color:#fff}
.pss-st-stage canvas.pss-mn-mini{position:absolute;inset:auto;right:62px;top:62px;border-radius:10px;border:1px solid var(--line-2);box-shadow:var(--shadow-1);cursor:pointer;z-index:3;touch-action:none}
.pss-mn-sum{display:flex;justify-content:space-between;gap:8px;font-size:.84rem;font-weight:600;margin-bottom:8px}
.pss-mn-selbox{padding:10px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);margin:8px 0}
.pss-mn-selbox>b{display:block;font-family:var(--f-display);margin-bottom:6px}
.pss-mn-xy{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}
.pss-mn-xy label{display:grid;gap:2px;font-size:.72rem;font-weight:700;color:var(--muted)}
.pss-mn-xy input{min-height:32px;padding:4px 6px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:600 .8rem var(--f-mono);width:100%}
.pss-mn-acts{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.pss-mn-acts .pss-chip{font-size:.76rem;padding:.32em .7em}
.pss-mn-h{font:800 .9rem var(--f-display);margin:12px 0 6px;display:flex;align-items:center;gap:6px}
.pss-mn-h small{font:700 .72rem var(--f-mono);padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.pss-mn-wait{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pss-mn-wait li{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:6px;font-size:.8rem;padding:5px 6px;border-radius:10px;background:var(--surface-2)}
.pss-mn-wait li span:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pss-mn-wait button{border:1px solid var(--line-2);background:var(--surface);border-radius:8px;padding:3px 8px;font:700 .72rem var(--f-body);cursor:pointer}
.pss-mn-wait button:hover{border-color:var(--orange-ink);color:var(--orange-ink)}
.pss-mn-dot{width:10px;height:10px;border-radius:3px;background:var(--c)}
.pss-mn-opts{display:grid;gap:2px;margin-top:8px;font-size:.82rem}
.pss-mn-opts label{display:flex;align-items:center;gap:8px;font-weight:600}
.pss-mn-opts select{min-height:30px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font:600 .8rem var(--f-body);padding:2px 6px}
@media (max-width:860px){.pss-st-stage canvas.pss-mn-mini{display:none}.pss-mn-bar{max-width:calc(100% - 64px)}}

/* ===================== sheet stock, remnants, engine ===================== */
.pss-sk-presets{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.pss-sk-presets .pss-chip{font:700 .76rem var(--f-mono);padding:.34em .7em}
.pss-sk-presets .pss-chip[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.pss-sk-list{display:grid;gap:6px}
.pss-sk-item{border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.pss-sk-item.is-on{border-color:color-mix(in srgb,var(--orange) 55%,var(--line))}
.pss-sk-item summary{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer;list-style:none}
.pss-sk-item summary::-webkit-details-marker{display:none}
.pss-sk-item summary b{display:block;font-size:.84rem}
.pss-sk-item summary small{display:block;font-size:.74rem;color:var(--muted)}
.pss-sk-pic{flex:0 0 auto;height:28px;aspect-ratio:var(--ar);max-width:70px;border-radius:4px;background:color-mix(in srgb,var(--navy) 18%,transparent);border:1px solid color-mix(in srgb,var(--navy) 40%,transparent);color:color-mix(in srgb,var(--navy) 45%,transparent);overflow:hidden}
.pss-sk-pic svg{width:100%;height:100%;display:block}
.pss-sk-pic:has(svg){background:none}
.pss-sk-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 10px}
.pss-sk-grid .pss-field>span{font-size:.7rem}
.pss-sk-grid input,.pss-sk-grid select{min-height:34px!important;padding:4px 8px!important;font-size:.82rem}
.pss-sk-zones{padding:4px 10px 6px;font-size:.8rem}
.pss-sk-zones small{color:var(--muted)}
.pss-sk-zone{display:inline-flex;align-items:center;gap:4px;margin:4px 4px 0 0;padding:2px 4px 2px 8px;border-radius:8px;background:rgba(200,49,43,.1);color:var(--bad);font:600 .74rem var(--f-mono)}
.pss-sk-zone button{border:0;background:none;cursor:pointer;color:inherit;display:grid;place-items:center;padding:2px}
.pss-sk-zone .pss-ico{width:13px;height:13px}
.pss-sk-zbtns{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0;padding:0 2px}
.pss-sk-item .pss-sk-zbtns{padding:0 10px 8px}
.pss-sk-zbtns .pss-chip{font-size:.74rem;padding:.3em .66em}
.pss-sk-rems{list-style:none;margin:8px 0;padding:0;display:grid;gap:5px}
.pss-sk-rems li{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.pss-sk-rems li>span:nth-child(2){flex:1;min-width:0}
.pss-sk-rems b{display:block;font-size:.82rem}
.pss-sk-rems small{display:block;font-size:.72rem;color:var(--muted)}
.pss-sk-rems li.is-match{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}
.pss-sk-rems li.is-used{background:color-mix(in srgb,var(--orange) 10%,var(--surface-2))}
.pss-sk-rank tr.is-best td{background:color-mix(in srgb,var(--ok) 12%,transparent);font-weight:700}
.pss-sk-rank .pss-chip{font-size:.72rem;padding:.2em .6em}
.pss-sk-note{display:flex;gap:6px;align-items:flex-start;font-size:.8rem;color:var(--ink-2);margin:8px 0 0;line-height:1.4}
.pss-sk-note .pss-ico{color:var(--navy-2);width:16px;height:16px}
.pss-sk-rep{position:absolute;top:4px;right:6px;font:800 .7rem var(--f-mono);color:#fff;background:var(--navy);border-radius:6px;padding:1px 5px}
.pss-st-stab{position:relative}
[data-optout] h5{font:800 .86rem var(--f-display);margin:10px 0 4px}

/* ===================== jobs ===================== */
.pss-st .pss-jb-badge{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font:700 .7rem var(--f-body);color:var(--muted);cursor:pointer;vertical-align:middle}
.pss-jb-badge .pss-ico{width:14px;height:14px}
.pss-jb-badge[data-state="ok"] .pss-ico{color:var(--ok)}
.pss-jb-badge[data-state="saving"] .pss-ico{color:var(--orange);animation:pssSpin 1.2s linear infinite}
.pss-jb-badge[data-state="bad"]{color:var(--bad);border-color:var(--bad)}
.pss-jb__bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 6px}
.pss-jb__bar .pss-st-search{flex:1 1 180px}
.pss-jb__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:10px}
.pss-jb__card{display:grid;grid-template-rows:auto 1fr auto;border-radius:16px;border:1px solid var(--line);background:var(--surface-2);overflow:hidden;transition:transform .35s var(--spring),border-color .2s}
.pss-jb__card:hover{transform:translateY(-2px);border-color:var(--line-2)}
.pss-jb__card.is-cur{border-color:var(--orange-ink);box-shadow:0 0 0 3px rgba(253,101,0,.15)}
.pss-jb__thumb{aspect-ratio:5/3;display:grid;place-items:center;background:var(--surface);color:var(--muted);border-bottom:1px solid var(--line)}
.pss-jb__thumb img{width:100%;height:100%;object-fit:contain}
.pss-jb__meta{padding:8px 10px;display:grid;gap:2px}
.pss-jb__meta input{border:0;border-bottom:1px dashed transparent;background:none;font:800 .95rem var(--f-display);color:var(--ink);padding:2px 0;width:100%}
.pss-jb__meta input:focus{outline:none;border-bottom-color:var(--orange-ink)}
.pss-jb__meta small{font-size:.74rem;color:var(--muted)}
.pss-jb__acts{display:flex;flex-wrap:wrap;gap:5px;padding:0 10px 10px;align-items:center}
.pss-jb__acts .pss-chip{font-size:.74rem;padding:.3em .66em}
.pss-jb__mini{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pss-jb__revadd{display:flex;gap:6px}
.pss-jb__revadd input{flex:1;min-width:0;min-height:38px;padding:6px 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font:inherit;font-size:.84rem}
.pss-jb__revs{list-style:none;margin:8px 0;padding:0;display:grid;gap:5px}
.pss-jb__revs li{padding:7px 8px;border-radius:12px;background:var(--surface-2);display:grid;gap:3px}
.pss-jb__revs li .pss-st-check{margin:0}
.pss-jb__revs small{font-size:.72rem;color:var(--muted)}
.pss-jb__revs li>span{display:flex;gap:5px}
.pss-jb__revs .pss-chip{font-size:.72rem;padding:.2em .6em}
.pss-jb__cmp td{min-width:150px}
.pss-jb__cmpic{display:grid;gap:4px}
.pss-jb__cmpic svg{width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff}
.pss-jb__cmpic.is-none{color:var(--muted);font-size:.8rem}
.pss-jb__diff{margin:6px 0 0;padding-left:18px;font-size:.86rem}

/* focus rings */
.pss-dr button:focus-visible,.pss-mn-bar button:focus-visible,.pss-ed-tool:focus-visible,.pss-jb__card button:focus-visible,.pss-ed-qtymul button:focus-visible,.pss-mn-wait button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
