/* PHOTO RETOUCH — pr- prefixed, scoped to the pane. Studio tokens (--paper/--line/--ink…)
   with fallbacks; the stage itself is a dark, neutral ground in both themes, because a
   retouch is judged against a fixed dark surround, not against the page. */
[data-tool="photo-retouch"] .pr-title-accent{color:#0b3fa8}
[data-tool="photo-retouch"] .pr-work{display:grid;grid-template-columns:156px minmax(0,1fr) 336px;   /* 11n (owner): 212 → 156 — the strip gives 56px back to the working area */height:clamp(560px,calc(100vh - 210px),1100px);border:1px solid var(--line,#e6e8ec);border-radius:14px;overflow:hidden;background:var(--paper,#fff);margin-top:14px}
/* ── room for the photo (11ay) ────────────────────────────────────────────────
   The owner asked whether the left strip should move above as a horizontal row to
   give a bigger working area. Measured before answering: strip 156px, panel 336px,
   photo box 633×603 inside 1125 — 44% of the width was chrome. Moving the strip up
   trades 156px of width for ~96px of height: +44% area for a 3:2, but −29% for 1:1
   and 4:5, which is what product photography actually is. So the strip stays and the
   two changes that help EVERY shape ship instead. */
/* ── strip on top (11az, owner asked for it as a toggle) ──────────────────────
   The measurement that kept it OFF by default still stands: +44% area for a 3:2,
   −29% for 1:1 and 4:5. This is for a landscape-heavy job, so it is opt-in and
   remembered. It composes with the panel fold — all four combinations are real
   layouts, which is why the areas are named rather than left to implicit placement.
   ⚠ The ≤900px media query further down already stacks everything and must keep
   winning there; it is LATER in the file, so it does. */
[data-tool="photo-retouch"] .pr-work.pr-strip-top{grid-template-columns:minmax(0,1fr) 336px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"strip strip" "stage panel"}
[data-tool="photo-retouch"] .pr-work.pr-strip-top.pr-no-panel{grid-template-columns:minmax(0,1fr);grid-template-areas:"strip" "stage"}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip{grid-area:strip;flex-direction:row;align-items:center;gap:10px;padding:0 10px;border-right:0;border-bottom:1px solid var(--line,#e6e8ec)}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-stage{grid-area:stage;min-width:0}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-panel{grid-area:panel}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip-h{flex:0 0 auto;flex-direction:column;align-items:flex-start;gap:0;padding:0;border-bottom:0;white-space:nowrap}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip-filter{flex:0 0 auto}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-thumbs{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:4px;overflow-x:auto;overflow-y:hidden;padding:8px 0}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-thumb{flex:0 0 auto;grid-template-columns:36px;padding:4px}
/* the name would make every thumb ~160px wide and there is no room for that across a
   row — it is already the button's title, which is where a filename belongs here */
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-thumb-t{display:none}
/* ⚠ the status mark is an INSET LEFT bar; down a column it reads as a row marker, but
   along a row it reads as a divider between two thumbs. Move it under the thumb. */
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-thumb[data-status="review"]{box-shadow:inset 0 -3px 0 #d92d2d}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip-f{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:0}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip-f .dl-btn{padding:5px 9px;font-size:.72rem;white-space:nowrap}
[data-tool="photo-retouch"] .pr-work.pr-strip-top .pr-strip-empty{white-space:nowrap}
[data-tool="photo-retouch"] .pr-work.pr-no-panel{grid-template-columns:156px minmax(0,1fr)}
[data-tool="photo-retouch"] .pr-work.pr-no-panel .pr-panel{display:none}
/* ⚠ FIXED, NOT just tall. The height cap is clamp(560px, 100vh - 210px, 1100px), and
   that 210px of page chrome is exactly what binds a portrait or a square — more width
   does nothing for them. Focus takes the viewport so the cap stops applying.
   The exit button rides INSIDE .pr-bar, which is inside this box, so unlike Ad Studio's
   full page there is no risk of the overlay painting over its own way out. */
[data-tool="photo-retouch"] .pr-work.is-focus{position:fixed;inset:0;z-index:9990;height:100vh;max-width:none;margin:0;border:0;border-radius:0}
html.pr-focus-lock{overflow:hidden}
/* the two view toggles sit at the right end of the dark stage bar and have to read as
   part of it, not as page buttons dropped in */
[data-tool="photo-retouch"] .pr-viewbtn{background:transparent;border-color:#3a3d46;color:#c9ccd4}
[data-tool="photo-retouch"] .pr-viewbtn:hover{background:#2a2c33;color:#fff}
[data-tool="photo-retouch"] .pr-viewbtn[aria-pressed="false"]{opacity:.72}
[data-tool="photo-retouch"] .pr-viewbtn[aria-pressed="true"]{background:#2f323b;color:#fff;opacity:1}
[data-tool="photo-retouch"] .pr-strip{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line,#e6e8ec);background:var(--paper-2,#f6f7f9)}
[data-tool="photo-retouch"] .pr-strip-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;padding:8px 10px;border-bottom:1px solid var(--line,#e6e8ec);font-size:.7rem;color:var(--ink-3,#6b7280)}
[data-tool="photo-retouch"] .pr-thumbs{flex:1;overflow:auto;padding:8px;display:grid;gap:4px;align-content:start}
[data-tool="photo-retouch"] .pr-thumb{display:grid;grid-template-columns:36px 1fr;gap:7px;align-items:center;padding:6px;border:1px solid transparent;border-radius:8px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
[data-tool="photo-retouch"] .pr-thumb:hover{background:var(--paper,#fff)}
[data-tool="photo-retouch"] .pr-thumb.is-on{border-color:#0b3fa8;background:var(--paper,#fff)}
[data-tool="photo-retouch"] .pr-thumb img{width:36px;height:36px;object-fit:cover;border-radius:5px;background:#222}
[data-tool="photo-retouch"] .pr-thumb-t{min-width:0}
[data-tool="photo-retouch"] .pr-thumb-n{display:block;font-size:.7rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink,#111)}   /* one line, an ellipsis — the full name is the thumb's title */
[data-tool="photo-retouch"] .pr-thumb-m{display:flex;align-items:center;gap:5px;font-size:.66rem;color:var(--ink-3,#6b7280);margin-top:2px}
[data-tool="photo-retouch"] .pr-st{width:8px;height:8px;border-radius:50%;background:#9aa0aa;display:inline-block}
[data-tool="photo-retouch"] .pr-st.edited{background:#d97706}[data-tool="photo-retouch"] .pr-st.exported{background:#16a34a}
[data-tool="photo-retouch"] .pr-strip-f{display:grid;gap:6px;padding:10px;border-top:1px solid var(--line,#e6e8ec)}
/* v3 (2026-09-10h) — THE QUEUE: a status pill per thumb, a filter over the strip, "Next to review" */
[data-tool="photo-retouch"] .pr-strip-filter{padding:8px 10px 0}
[data-tool="photo-retouch"] .pr-filter{width:100%;font:inherit;font-size:.74rem;padding:5px 8px;border:1px solid var(--line,#e6e8ec);border-radius:7px;background:var(--paper,#fff);color:var(--ink,#111)}
[data-tool="photo-retouch"] .pr-filter[hidden]{display:none}
[data-tool="photo-retouch"] .pr-pill{display:inline-block;padding:1px 7px;border-radius:999px;font-size:.62rem;font-weight:600;line-height:1.5;letter-spacing:.01em;background:#eceef2;color:#4b5563;white-space:nowrap}
[data-tool="photo-retouch"] .pr-pill-edited{background:#fdf1dc;color:#9a5b00}
[data-tool="photo-retouch"] .pr-pill-fixed{background:#dff5e6;color:#116b34}
[data-tool="photo-retouch"] .pr-pill-exported{background:#116b34;color:#fff}
[data-tool="photo-retouch"] .pr-pill-review{background:#fde2e2;color:#a51d1d}
[data-tool="photo-retouch"] .pr-pill-queued{background:#e8eefc;color:#1e3f9a}
[data-tool="photo-retouch"] .pr-pill-fixing{background:#0b3fa8;color:#fff}
[data-tool="photo-retouch"] .pr-pill-seen{background:transparent;color:var(--ink-3,#6b7280);padding-left:0}
[data-tool="photo-retouch"] .pr-thumb[data-status="review"]{box-shadow:inset 3px 0 0 #d92d2d}
[data-tool="photo-retouch"] .pr-thumb[data-status="fixing"] img{outline:2px solid #0b3fa8;outline-offset:1px}
[data-tool="photo-retouch"] .pr-strip-empty{padding:18px 10px;text-align:center;font-size:.74rem;color:var(--ink-3,#6b7280)}
[data-tool="photo-retouch"] .pr-btn-review{background:#fde2e2;color:#a51d1d;border-color:#f5b5b5}
[data-tool="photo-retouch"] .pr-btn-review:hover{background:#fbd0d0}
[data-tool="photo-retouch"] .pr-btn-review[hidden]{display:none}
[data-tool="photo-retouch"] .pr-prog-list{margin:0 0 6px;padding-left:18px;font-size:12.5px}
[data-tool="photo-retouch"] .pr-prog-list li{margin:2px 0}
[data-tool="photo-retouch"] .pr-prog-actions{gap:8px}
html.dark [data-tool="photo-retouch"] .pr-pill{background:#2a2f38;color:#c3c8d1}
html.dark [data-tool="photo-retouch"] .pr-pill-edited{background:#3a2a10;color:#f0c27a}
html.dark [data-tool="photo-retouch"] .pr-pill-fixed{background:#12301d;color:#7fd39a}
html.dark [data-tool="photo-retouch"] .pr-pill-review{background:#3a1616;color:#f19a9a}
html.dark [data-tool="photo-retouch"] .pr-pill-queued{background:#16223d;color:#9fb6f0}
html.dark [data-tool="photo-retouch"] .pr-btn-review{background:#3a1616;color:#f19a9a;border-color:#5a2424}
html.dark [data-tool="photo-retouch"] .pr-filter{background:#16191e;color:#eceef2;border-color:#2f3540}
[data-tool="photo-retouch"] .pr-strip-f .dl-btn{justify-content:center;font-size:.72rem;padding:6px 6px;white-space:normal;line-height:1.2}
/* the stage */
[data-tool="photo-retouch"] .pr-stage{display:grid;grid-template-rows:40px minmax(0,1fr) 26px;min-width:0;min-height:0;background:#17181c}
[data-tool="photo-retouch"] .pr-bar{display:flex;align-items:center;gap:6px;padding:0 10px;border-bottom:1px solid #2a2c33;background:#1f2127;color:#c9ccd4;font-size:.76rem;overflow:hidden}
[data-tool="photo-retouch"] .pr-bar .dl-btn{background:#2a2d35;border-color:#3a3d47;color:#e6e8ee}
[data-tool="photo-retouch"] .pr-bar .dl-btn:hover{background:#353945}
[data-tool="photo-retouch"] .pr-bar .dl-btn.is-on,[data-tool="photo-retouch"] .pr-bar .dl-btn[aria-pressed="true"]{background:#0b3fa8;border-color:#0b3fa8;color:#fff}
/* 11w: one pill — Fit · − · the live readout (the 100 % button) · + */
[data-tool="photo-retouch"] .pr-zoomctl{display:inline-flex;flex:none;align-items:center;border:1px solid #3a3d47;border-radius:20px;overflow:hidden;background:#2a2d35}   /* flex:none — with overflow:hidden a flex item's min-width is 0, and the bar squeezed the pill to 42px */
[data-tool="photo-retouch"] .pr-zoomctl button{border:0;background:none;color:#e6e8ee;font:inherit;font-size:.76rem;font-weight:600;padding:6px 10px;line-height:1;cursor:pointer;white-space:nowrap}
[data-tool="photo-retouch"] .pr-zoomctl button:hover{background:#353945}
[data-tool="photo-retouch"] .pr-zoomctl button.is-on{background:#0b3fa8;color:#fff}
[data-tool="photo-retouch"] .pr-zoomctl button i{font-size:.8rem}
[data-tool="photo-retouch"] .pr-zoomctl #prZoom{min-width:74px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;border-left:1px solid #3a3d47;border-right:1px solid #3a3d47}
[data-tool="photo-retouch"] .pr-sep{width:1px;height:20px;background:#3a3d47;margin:0 4px}
[data-tool="photo-retouch"] .pr-muted{color:#9aa0ad;white-space:nowrap}
[data-tool="photo-retouch"] .grow{flex:1 1 auto;min-width:0}
[data-tool="photo-retouch"] .pr-viewport{position:relative;overflow:hidden;min-height:0;min-width:0;outline:none}
/* v4 (2026-09-10i) — cut-out: a checker shows through a transparent backdrop; the quality select beside the button */
[data-tool="photo-retouch"] .pr-viewport.is-cut{background-color:#2a2c33;background-image:linear-gradient(45deg,#3a3d46 25%,transparent 25%,transparent 75%,#3a3d46 75%),linear-gradient(45deg,#3a3d46 25%,transparent 25%,transparent 75%,#3a3d46 75%);background-size:18px 18px;background-position:0 0,9px 9px}
[data-tool="photo-retouch"] .pr-select{font:inherit;font-size:.74rem;padding:6px 8px;border:1px solid var(--line,#e6e8ec);border-radius:8px;background:var(--paper,#fff);color:var(--ink,#111);max-width:46%}
[data-tool="photo-retouch"] #prCutColourRow input[type="color"]{width:40px;height:26px;padding:0;border:1px solid var(--line,#e6e8ec);border-radius:6px;background:none;vertical-align:middle;margin-left:6px}
html.dark [data-tool="photo-retouch"] .pr-select{background:#16191e;color:#eceef2;border-color:#2f3540}
[data-tool="photo-retouch"] .pr-viewport:focus-visible{box-shadow:inset 0 0 0 2px #0b3fa8}
[data-tool="photo-retouch"] .pr-viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
[data-tool="photo-retouch"] #prOv{touch-action:none}
[data-tool="photo-retouch"] .pr-viewport.tool-brush #prOv{cursor:none}
[data-tool="photo-retouch"] .pr-viewport.tool-crop #prOv{cursor:crosshair}
[data-tool="photo-retouch"] .pr-viewport.tool-pan #prOv{cursor:grab}
[data-tool="photo-retouch"] .pr-viewport.panning #prOv{cursor:grabbing}
[data-tool="photo-retouch"] .pr-viewport.split-hover #prOv{cursor:col-resize!important}
[data-tool="photo-retouch"] .pr-drop{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:#aeb4c0;pointer-events:none}
[data-tool="photo-retouch"] .pr-drop b{color:#f2f3f6;font-size:1.05rem}
[data-tool="photo-retouch"] .pr-drop small{font-size:.76rem;color:#8f96a3}
[data-tool="photo-retouch"] .pr-viewport.is-over::after{content:"Drop photos to add them";position:absolute;inset:8px;border:2px dashed #6ea8ff;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#cfe0ff;background:rgba(11,63,168,.18);font-size:1rem;pointer-events:none}
[data-tool="photo-retouch"] .pr-busy{position:absolute;left:50%;top:14px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(20,21,26,.92);border:1px solid #3a3d47;color:#e6e8ee;padding:6px 12px;border-radius:20px;font-size:.78rem;z-index:3}
[data-tool="photo-retouch"] .pr-busy[hidden]{display:none}
[data-tool="photo-retouch"] .pr-spin{width:12px;height:12px;border:2px solid #6b7280;border-top-color:#6ea8ff;border-radius:50%;animation:pr-spin .8s linear infinite}
@keyframes pr-spin{to{transform:rotate(360deg)}}
[data-tool="photo-retouch"] .pr-status{display:flex;align-items:center;gap:14px;padding:0 12px;font-size:.72rem;color:#9aa0ad;border-top:1px solid #2a2c33;background:#1f2127;white-space:nowrap;overflow:hidden}
[data-tool="photo-retouch"] .pr-status .grow{overflow:hidden;text-overflow:ellipsis}
[data-tool="photo-retouch"] .pr-layers{position:absolute;inset:0;pointer-events:none}
/* the panel */
[data-tool="photo-retouch"] .pr-panel{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line,#e6e8ec);background:var(--paper,#fff)}
/* v2 (2026-09-10d): the owner saw "Exp…" — the fifth tab clipped at the aside's edge. The grammar's
   `.tool .app .dl-tabs>button{padding:10px 14px}` (0,3,1) outranked the (0,2,1) override below it, and
   `1fr` tracks refuse to shrink under their content, so five 14px-padded tabs overflowed 336px. Same
   specificity now, later in the cascade, and tracks that may shrink. */
.tool .app .pr-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;border-bottom:1px solid var(--line,#e6e8ec)}
.tool .app .pr-tabs>button{padding:10px 2px;font-size:.78rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
[data-tool="photo-retouch"] .pr-tab{overflow:auto;padding:14px 14px 30px;flex:1;min-height:0}
[data-tool="photo-retouch"] .pr-tab[hidden]{display:none}
[data-tool="photo-retouch"] .pr-sec{margin-bottom:18px}
[data-tool="photo-retouch"] .pr-sec h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3,#6b7280);margin:0 0 8px;font-weight:700}
[data-tool="photo-retouch"] .pr-note{font-size:.76rem;color:var(--ink-3,#6b7280);margin:6px 0 0;line-height:1.45}
[data-tool="photo-retouch"] .pr-note.is-ok{color:#15803d}[data-tool="photo-retouch"] .pr-note.is-warn{color:#b45309}
[data-tool="photo-retouch"] .pr-row{display:flex;gap:8px;align-items:center;margin:8px 0;flex-wrap:wrap}
[data-tool="photo-retouch"] .pr-wide{width:100%;justify-content:center}
[data-tool="photo-retouch"] .pr-btn-danger{border-color:#f0b4b4;color:#b42318}
[data-tool="photo-retouch"] .pr-ctl{margin:8px 0 10px}
[data-tool="photo-retouch"] .pr-lab{display:flex;justify-content:space-between;font-size:.76rem;margin-bottom:2px;color:var(--ink-2,#3f4756)}
[data-tool="photo-retouch"] .pr-lab b{font-weight:600}
[data-tool="photo-retouch"] .pr-val{border:0;background:none;padding:0;font:inherit;color:var(--ink-3,#6b7280);font-variant-numeric:tabular-nums;cursor:pointer}
[data-tool="photo-retouch"] .pr-val:hover{color:#0b3fa8;text-decoration:underline}
[data-tool="photo-retouch"] .pr-ctl input[type=range]{width:100%}
[data-tool="photo-retouch"] .pr-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line,#e6e8ec);border-radius:10px;overflow:hidden;background:var(--paper-2,#f6f7f9)}
[data-tool="photo-retouch"] .pr-seg button,[data-tool="photo-retouch"] .pr-ratios button{background:none;border:0;padding:7px 2px;font:inherit;font-size:.74rem;font-weight:600;color:var(--ink-2,#3f4756);cursor:pointer;border-right:1px solid var(--line,#e6e8ec)}
[data-tool="photo-retouch"] .pr-seg button:last-child{border-right:0}
[data-tool="photo-retouch"] .pr-seg button[aria-pressed="true"],[data-tool="photo-retouch"] .pr-ratios button[aria-pressed="true"]{background:#0b3fa8;color:#fff}
[data-tool="photo-retouch"] .pr-ratios{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line,#e6e8ec);border-radius:10px;overflow:hidden;background:var(--paper-2,#f6f7f9)}
[data-tool="photo-retouch"] .pr-ratios button{border-bottom:1px solid var(--line,#e6e8ec)}
[data-tool="photo-retouch"] .pr-ratios button:nth-child(4n){border-right:0}
[data-tool="photo-retouch"] .pr-ratios button:nth-last-child(-n+4){border-bottom:0}
[data-tool="photo-retouch"] .pr-looks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
[data-tool="photo-retouch"] .pr-look{border:1px solid var(--line,#e6e8ec);border-radius:10px;padding:6px;background:var(--paper,#fff);text-align:left;font:inherit;color:inherit;cursor:pointer;display:grid;gap:2px}
[data-tool="photo-retouch"] .pr-look[aria-pressed="true"]{border-color:#0b3fa8;box-shadow:0 0 0 2px rgba(11,63,168,.18)}
[data-tool="photo-retouch"] .pr-look-img{display:block;height:44px;border-radius:6px;background:#2b2e36 center/cover no-repeat}
[data-tool="photo-retouch"] .pr-look b{font-size:.74rem;color:var(--ink,#111)}
[data-tool="photo-retouch"] .pr-look small{font-size:.64rem;color:var(--ink-3,#6b7280)}
[data-tool="photo-retouch"] .pr-hist{display:block;width:100%;height:64px;border:1px solid var(--line,#e6e8ec);border-radius:8px;background:var(--paper-2,#f6f7f9);color:var(--ink,#111)}
[data-tool="photo-retouch"] .pr-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:.7rem;color:var(--ink-3,#6b7280);margin-top:6px}
[data-tool="photo-retouch"] .pr-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px;margin-right:3px}
[data-tool="photo-retouch"] .pr-spots{max-height:180px;overflow:auto;border:1px solid var(--line,#e6e8ec);border-radius:8px;margin-top:6px}
[data-tool="photo-retouch"] .pr-spot{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:.74rem;border-bottom:1px solid var(--line,#e6e8ec);cursor:pointer}
[data-tool="photo-retouch"] .pr-spot:last-child{border-bottom:0}
[data-tool="photo-retouch"] .pr-spot:hover{background:var(--paper-2,#f6f7f9)}
[data-tool="photo-retouch"] .pr-spot.is-done{color:var(--ink-3,#6b7280);text-decoration:line-through}
[data-tool="photo-retouch"] .pr-empty{padding:10px;color:var(--ink-3,#6b7280);font-size:.74rem}
[data-tool="photo-retouch"] .pr-stat{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:.76rem;color:var(--ink-2,#3f4756)}
[data-tool="photo-retouch"] .pr-stat span:nth-child(even){color:var(--ink-3,#6b7280);text-align:right;font-variant-numeric:tabular-nums}
[data-tool="photo-retouch"] .pr-check{display:flex;gap:10px;align-items:flex-start;width:100%;padding:8px 10px;border:1px solid var(--line,#e6e8ec);border-radius:10px;margin:6px 0;font:inherit;font-size:.8rem;text-align:left;background:var(--paper,#fff);color:var(--ink,#111);cursor:pointer}
[data-tool="photo-retouch"] .pr-mark{width:18px;height:18px;border-radius:50%;border:2px solid var(--line,#d7dbe2);flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;margin-top:1px}
[data-tool="photo-retouch"] .pr-check.is-done{border-color:#86efac}
[data-tool="photo-retouch"] .pr-check.is-done .pr-mark{background:#16a34a;border-color:#16a34a;color:#fff}
[data-tool="photo-retouch"] .pr-check-b{flex:1}
[data-tool="photo-retouch"] .pr-check-b small{display:block;color:var(--ink-3,#6b7280);font-size:.72rem;margin-top:2px}
[data-tool="photo-retouch"] .pr-select,[data-tool="photo-retouch"] .pr-input{display:block;width:100%;margin-top:3px;font:inherit;font-size:.78rem;padding:6px 8px;border:1px solid var(--line,#e6e8ec);border-radius:8px;background:var(--paper,#fff);color:var(--ink,#111)}
[data-tool="photo-retouch"] .pr-row label{font-size:.74rem;color:var(--ink-3,#6b7280)}
[data-tool="photo-retouch"] kbd{display:inline-block;padding:0 5px;border:1px solid var(--line,#e6e8ec);border-radius:4px;font-size:.66rem;color:var(--ink-3,#6b7280);line-height:16px}
[data-tool="photo-retouch"] .pr-foot{margin-top:12px}
/* progress + ask cards */
[data-tool="photo-retouch"] .pr-prog-track{margin:14px 6px 2px;height:6px;border-radius:20px;background:var(--line,#e8ebf3);overflow:hidden}
[data-tool="photo-retouch"] .pr-prog-track span{display:block;height:100%;width:0;border-radius:20px;background:#0b3fa8;transition:width .25s ease}
[data-tool="photo-retouch"] .pr-prog-track[hidden]{display:none}
[data-tool="photo-retouch"] .pr-prog-result{margin-top:6px;font-size:13px;color:var(--ink-2,#3f4756);text-align:left}
[data-tool="photo-retouch"] .pr-prog-result p{margin:0 0 10px}
[data-tool="photo-retouch"] .pr-prog-actions{margin-top:12px;display:flex;justify-content:flex-end}
[data-tool="photo-retouch"] .pr-prog.is-error .st-load-title{color:#b42318}
[data-tool="photo-retouch"] .pr-ask-card{text-align:left}
[data-tool="photo-retouch"] .pr-ask-card p{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--ink-2,#3f4756)}
[data-tool="photo-retouch"] .pr-ask-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
/* design layers (pr-design.js) */
[data-tool="photo-retouch"] .pr-layer-list{display:grid;gap:4px;margin:8px 0}
[data-tool="photo-retouch"] .pr-layer{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line,#e6e8ec);border-radius:8px;font-size:.76rem;background:var(--paper,#fff);cursor:pointer}
[data-tool="photo-retouch"] .pr-layer.is-on{border-color:#0b3fa8;box-shadow:0 0 0 2px rgba(11,63,168,.16)}
[data-tool="photo-retouch"] .pr-layer .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-tool="photo-retouch"] .pr-layer i{font-style:normal;color:var(--ink-3,#6b7280);font-size:.68rem}
[data-tool="photo-retouch"] .pr-emoji{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin:6px 0}
[data-tool="photo-retouch"] .pr-emoji button{font-size:1.2rem;border:1px solid var(--line,#e6e8ec);border-radius:8px;background:var(--paper,#fff);padding:4px 0;cursor:pointer}
[data-tool="photo-retouch"] .pr-emoji button:hover{border-color:#0b3fa8}
[data-tool="photo-retouch"] .pr-props{display:grid;gap:8px;padding:10px;border:1px solid var(--line,#e6e8ec);border-radius:10px;background:var(--paper-2,#f6f7f9);margin-top:8px}
[data-tool="photo-retouch"] .pr-props label{display:grid;gap:3px;font-size:.72rem;color:var(--ink-3,#6b7280)}
[data-tool="photo-retouch"] .pr-props textarea{font:inherit;font-size:.8rem;padding:6px 8px;border:1px solid var(--line,#e6e8ec);border-radius:8px;background:var(--paper,#fff);color:var(--ink,#111);resize:vertical;min-height:52px}
[data-tool="photo-retouch"] .pr-props .pr-row{margin:0}
[data-tool="photo-retouch"] .pr-props input[type=color]{width:38px;height:28px;padding:0;border:1px solid var(--line,#e6e8ec);border-radius:6px;background:none}
[data-tool="photo-retouch"] .pr-lay-item{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1.5px dashed transparent;box-sizing:border-box}
[data-tool="photo-retouch"] .pr-lay-item:hover{border-color:rgba(110,168,255,.7)}
[data-tool="photo-retouch"] .pr-lay-item.is-on{border-color:#6ea8ff}
[data-tool="photo-retouch"] .pr-lay-hit{position:absolute;inset:0;border:0;background:none;cursor:move;padding:0}
[data-tool="photo-retouch"] .pr-lay-resize{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;border-radius:50%;background:#6ea8ff;border:2px solid #fff;cursor:nwse-resize;padding:0}
[data-tool="photo-retouch"] .pr-guide{position:absolute;background:#f59e0b;pointer-events:none}
[data-tool="photo-retouch"] .pr-guide.v{top:0;bottom:0;width:1px}[data-tool="photo-retouch"] .pr-guide.h{left:0;right:0;height:1px}
[data-tool="photo-retouch"] .pr-templates{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:6px 0}
[data-tool="photo-retouch"] .pr-template{border:1px solid var(--line,#e6e8ec);border-radius:10px;padding:8px;background:var(--paper,#fff);font:inherit;text-align:left;cursor:pointer;display:grid;gap:3px;color:inherit}
[data-tool="photo-retouch"] .pr-template:hover{border-color:#0b3fa8}
[data-tool="photo-retouch"] .pr-template span{display:block;height:34px;border-radius:6px}
[data-tool="photo-retouch"] .pr-template b{font-size:.74rem}[data-tool="photo-retouch"] .pr-template small{font-size:.64rem;color:var(--ink-3,#6b7280)}
@media (max-width:1180px){ [data-tool="photo-retouch"] .pr-work{grid-template-columns:140px minmax(0,1fr) 300px} }
@media (max-width:900px){ [data-tool="photo-retouch"] .pr-work{grid-template-columns:1fr;grid-template-rows:auto minmax(420px,1fr) auto;height:auto} [data-tool="photo-retouch"] .pr-strip{border-right:0;border-bottom:1px solid var(--line,#e6e8ec)} [data-tool="photo-retouch"] .pr-thumbs{display:flex;overflow:auto} [data-tool="photo-retouch"] .pr-panel{border-left:0;border-top:1px solid var(--line,#e6e8ec)} }
