/* Placement V2 uses the shared neutral tokens; photo geometry is independent. */
html[data-theme] #app .ps2-editor{width:100%;max-width:1020px;margin-inline:auto;padding:18px 16px 32px!important;color:var(--es-ink);font-size:calc(.9375rem * var(--elan-ui-scale,1));}
html[data-theme] #app .ps2-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 18px;}
html[data-theme] #app .ps2-heading h1{font:650 calc(1.65rem * var(--elan-ui-scale,1))/1.2 var(--elan-ui-font,system-ui);letter-spacing:-.035em;margin:0;}
html[data-theme] #app .ps2-panel{min-width:0;border:1px solid var(--es-line);border-radius:20px;background:var(--es-panel);color:var(--es-ink);overflow:hidden;margin-bottom:14px;}
html[data-theme] #app .ps2-top{padding:16px;}
html[data-theme] #app :is(.ps2-zone-row,.ps2-size-row){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
html[data-theme] #app .ps2-size-row>strong{font-size:calc(1.125rem * var(--elan-ui-scale,1));font-weight:650;}
html[data-theme] #app .ps2-thumbnails{display:flex;gap:10px;overflow:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:3px 3px 12px;max-width:100%;}
html[data-theme] #app .ps2-thumbnail{flex:0 0 calc(6.5625rem * var(--elan-ui-scale,1));display:grid;grid-template-columns:minmax(0,1fr);gap:5px;align-content:start;min-width:0;text-align:left;border:1px solid var(--es-line);border-radius:13px;padding:6px;background:var(--es-panel);color:var(--es-ink);scroll-snap-align:start;}
html[data-theme] #app .ps2-thumbnail[aria-pressed="true"]{outline:2px solid var(--es-ink);outline-offset:-2px;background:var(--es-soft);}
html[data-theme] #app .ps2-thumbnail img{width:100%;height:68px;object-fit:cover;object-position:center;border-radius:8px;}
html[data-theme] #app .ps2-thumbnail span{font:550 calc(.8125rem * var(--elan-ui-scale,1))/1.35 var(--elan-ui-font,system-ui);overflow-wrap:break-word;}
html[data-theme] #app .ps2-thumbnail small{font:400 calc(.75rem * var(--elan-ui-scale,1))/1.4 var(--elan-ui-font,system-ui);color:var(--es-muted);}
html[data-theme] #app .ps2-photo-title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--es-line);}
html[data-theme] #app .ps2-photo-title strong{font-size:calc(.9375rem * var(--elan-ui-scale,1));font-weight:550;}
html[data-theme] #app .ps2-photo-title span{font-size:calc(.75rem * var(--elan-ui-scale,1));color:var(--es-muted);}
html[data-theme] #app .ps2-stage{width:100%;height:min(56svh,560px);min-height:250px;background:var(--es-soft);position:relative;overflow:hidden;}
html[data-theme] #app .ps2-stage svg{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
html[data-theme] #app .ps2-stage svg:focus-visible{outline:2px solid var(--es-focus);outline-offset:-3px;}
.ps2-frame-shadow{fill:none;stroke:#1D162C;stroke-opacity:.72;stroke-width:4;pointer-events:none;}
.ps2-frame{fill:#7657FF;fill-opacity:.16;stroke:#ffffff;stroke-width:1.6;cursor:move;}
.ps2-frame-label{fill:#fff;stroke:#1D162C;paint-order:stroke;stroke-linejoin:round;font-weight:650;pointer-events:none}
html[data-theme] #app .ps2-tools{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:8px 10px;}
html[data-theme] #app .ps2-zoom{display:flex;align-items:center;gap:0;border:1px solid var(--es-line);border-radius:12px;background:var(--es-soft);overflow:hidden;}
html[data-theme] #app .ps2-zoom output{min-width:40px;text-align:center;font-variant-numeric:tabular-nums;color:var(--es-ink);font-size:calc(.75rem * var(--elan-ui-scale,1));}
html[data-theme] #app .ps2-photo-actions{display:flex;align-items:center;gap:4px;}
html[data-theme] #app .ps2-photo-command{display:grid;justify-items:center;gap:2px;min-width:44px}
html[data-theme] #app .ps2-photo-command>span{font-size:calc(.625rem * var(--elan-ui-scale,1));line-height:1.3;color:var(--es-muted);max-width:68px;text-align:center;overflow-wrap:anywhere}
html[data-theme] #app .ps2-picker-label{margin:0;padding:12px 12px 0;font-size:calc(.75rem * var(--elan-ui-scale,1));color:var(--es-muted);font-weight:600}
html[data-theme] #app .ps2-placement-guide{display:grid;gap:6px;padding:12px;border-top:1px solid var(--es-line);background:var(--es-soft)}
html[data-theme] #app .ps2-placement-guide>strong{font-size:calc(.875rem * var(--elan-ui-scale,1));color:var(--es-ink);overflow-wrap:anywhere}
html[data-theme] #app .ps2-placement-guide .ps2-hint{padding:0;margin:0;color:var(--es-ink)}
html[data-theme] #app .ps2-placement-guide>small{font-size:calc(.6875rem * var(--elan-ui-scale,1));line-height:1.45;color:var(--es-muted)}
html[data-theme] #app .ps2-placement-guide>button{justify-self:start;min-height:44px;margin:2px 0 0}
/* Compact visuals, with the same 44px hit area for every photo command. */
html[data-theme] #app .ps2-tools button[data-elan-control="icon"]{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border-radius:10px!important;font-size:20px!important;}
html[data-theme] #app .ps2-tools .ps2-zoom button[data-elan-control="icon"]{border:0!important;border-radius:0!important;background:transparent!important;}
html[data-theme] #app .ps2-tools .ps2-photo-actions button[data-elan-control="icon"]{border:1px solid var(--es-line)!important;background:var(--es-panel)!important;}
html[data-theme] #app .ps2-tools button[data-elan-control="icon"] svg{width:18px!important;height:18px!important;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
html[data-theme] #app .ps2-hint{padding:0 12px 12px;margin:0;font-size:calc(.75rem * var(--elan-ui-scale,1));color:var(--es-muted);line-height:1.45;}
@media (max-width:380px){html[data-theme] #app .ps2-tools{gap:6px;justify-content:center;}html[data-theme] #app .ps2-photo-actions{gap:2px;}}
html[data-theme] #app .ps2-fields{display:grid;gap:14px;padding:0 16px 16px;min-width:0;}
html[data-theme] #app :is(.ps2-fields,.ps2-calibration) label{display:grid;gap:7px;font-weight:500;color:var(--es-ink);font-size:calc(.875rem * var(--elan-ui-scale,1));line-height:1.5;}
html[data-theme] #app .ps2-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
html[data-theme] #app .ps2-footer{justify-content:space-between;}
html[data-theme] #app .ps2-feedback{font-size:calc(.8125rem * var(--elan-ui-scale,1));line-height:1.5;color:var(--es-muted);margin:12px 2px;}
html[data-theme] #app .ps2-missing{padding:30px 20px;min-height:200px;display:grid;place-items:center;text-align:center;}
html[data-theme] .ps2-sheet{box-sizing:border-box;width:min(100% - 24px,520px);max-width:calc(100% - 24px);max-height:85dvh;padding:0;border:1px solid var(--es-line);border-radius:24px;margin:auto;background:var(--es-panel);color:var(--es-ink);overflow:auto;overscroll-behavior:contain;font-family:var(--elan-ui-font,system-ui);}
.ps2-sheet::backdrop{background:rgb(11 9 16 / .38);}
html[data-theme] .ps2-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;padding:16px;background:var(--es-panel);border-bottom:1px solid var(--es-line);z-index:1;}
html[data-theme] .ps2-sheet h2{font-size:calc(1.125rem * var(--elan-ui-scale,1));font-weight:600;line-height:1.3;margin:0;}
.ps2-sheet-body{padding:16px;}
.ps2-sheet-body :is(form,label){min-width:0;}
html[data-theme] .ps2-sheet-body p{font-size:calc(.875rem * var(--elan-ui-scale,1));line-height:1.5;color:var(--es-muted);margin:0 0 16px;}
html[data-theme] .ps2-sheet-body [role="alert"]{color:var(--es-danger);}
.ps2-photo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;}
html[data-theme] .ps2-photo-list button{min-height:44px;padding:8px;border:1px solid var(--es-line);border-radius:14px;background:var(--es-panel);color:var(--es-ink);text-align:left;font:500 calc(.875rem * var(--elan-ui-scale,1))/1.4 var(--elan-ui-font,system-ui);}
.ps2-photo-list img{width:100%;height:110px;object-fit:cover;border-radius:8px;display:block;margin-bottom:8px;}
.ps2-presets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}
.ps2-size-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:14px;margin-bottom:14px;}
.ps2-size-fields label{display:grid;gap:8px;font-size:calc(.9375rem * var(--elan-ui-scale,1));line-height:1.4;}
html[data-theme] .ps2-size-fields input{box-sizing:border-box;min-width:0;width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--es-line);background:var(--es-panel);color:var(--es-ink);border-radius:12px;font:400 calc(1rem * var(--elan-ui-scale,1))/1.5 var(--elan-ui-font,system-ui);}
html[data-theme] #app .ps2-brand-size{padding:12px 16px;display:grid;gap:5px;background:var(--es-panel);border-top:1px solid var(--es-line);}
html[data-theme] #app .ps2-brand-size strong{color:var(--es-ink);font-size:calc(.9375rem * var(--elan-ui-scale,1));}
html[data-theme] #app .ps2-brand-size span{color:var(--es-muted);font-size:calc(.8125rem * var(--elan-ui-scale,1));line-height:1.4;}
@media(max-width:600px){html[data-theme] .ps2-sheet{margin:auto auto 12px;}html[data-theme] #app .ps2-stage{height:48svh;}html[data-theme] #app .ps2-top{padding:12px;}}
@media(prefers-reduced-motion:no-preference){html:not([data-app-motion="reduced"]) .ps2-sheet[open]{animation:ps2-reveal 150ms ease-out;}@keyframes ps2-reveal{from{opacity:0}to{opacity:1}}}

/* Long words must reflow at 200% rather than set a flex child’s minimum width. */
html[data-theme] #app .ps2-heading h1,html[data-theme] #app .ps2-photo-title>*,html[data-theme] .ps2-sheet h2{min-width:0;max-width:100%;overflow-wrap:anywhere;}
html[data-theme] #app .ps2-thumbnail :is(span,small){min-width:0;max-width:100%;overflow-wrap:anywhere;}

/* Simple placement: the rectangle is adjusted visually; centimetres are
   declared separately. The resize handle is intentionally obvious without
   covering the body with a black label. */
html[data-theme] #app .ps2-size-row>div{display:grid;gap:2px;min-width:0}
html[data-theme] #app .ps2-size-row>div>small{font-size:calc(.75rem * var(--elan-ui-scale,1));color:var(--es-muted)}
.ps2-resize-hit{fill:transparent;cursor:nwse-resize}
.ps2-resize-handle{fill:#fff;stroke:#17131F;stroke-width:2.2}
html[data-theme="dark"] #app .ps2-resize-handle{fill:#F0EBFA;stroke:#0D0B11}
html[data-theme] #app .ps2-frame{cursor:move}
html[data-theme] #app .ps2-hint{font-weight:500}

/* Make the whole visible rectangle and its resize halo reliable pointer targets
   in both Chromium and iOS/WebKit. */
.ps2-frame{pointer-events:all}
.ps2-resize-hit{pointer-events:all}

/* Zone wizard: three steps, one screen at a time. */
html[data-theme] #app .ps2-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 14px;padding:0;list-style:none;counter-reset:none}
html[data-theme] #app .ps2-steps li{display:flex;align-items:center;gap:6px;min-width:0;padding:8px 6px;border-radius:12px;background:var(--es-soft);color:var(--es-muted);font-size:calc(.75rem * var(--elan-ui-scale,1));font-weight:600;overflow-wrap:normal;word-break:keep-all}
@media (max-width:380px){html[data-theme] #app .ps2-steps li{flex-direction:column;justify-content:center;gap:4px;text-align:center;font-size:calc(.6875rem * var(--elan-ui-scale,1))}}
html[data-app-text="large"] #app .ps2-steps li{flex-direction:column;justify-content:center;gap:4px;text-align:center}
html[data-theme] #app .ps2-steps li>span{display:inline-grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--es-panel);border:1px solid var(--es-line);font-size:calc(.75rem * var(--elan-ui-scale,1))}
html[data-theme] #app .ps2-steps li.is-current{background:#7657FF;color:#FFFFFF}
html[data-theme] #app .ps2-steps li.is-current>span{background:#FFFFFF;border-color:#FFFFFF;color:#4B2FD6}
html[data-theme] #app .ps2-steps li.is-done>span{background:#15803D;border-color:#15803D;color:#FFFFFF}
html[data-theme] #app :is(.ps2-choose,.ps2-review,.ps2-place-fields){padding:16px}
html[data-theme] #app :is(.ps2-choose,.ps2-review) h2{margin:0;font:650 calc(1.25rem * var(--elan-ui-scale,1))/1.25 var(--elan-ui-font,system-ui);color:var(--es-ink)}
html[data-theme] #app .ps2-lead{margin:6px 0 14px;font-size:calc(.875rem * var(--elan-ui-scale,1));line-height:1.45;color:var(--es-muted)}
html[data-theme] #app .ps2-choose-count{margin:0 0 8px;font-size:calc(.875rem * var(--elan-ui-scale,1));font-weight:650;color:var(--es-accent-ink)}
html[data-theme] #app .ps2-choose-list{display:grid;gap:8px;margin:0 0 12px;padding:0;list-style:none}
html[data-theme] #app .ps2-choose-item{display:grid;gap:8px;min-width:0;padding:4px;border:1px solid var(--es-line);border-radius:14px}
html[data-theme] #app .ps2-choose-item.is-on{border-color:#7657FF;background:var(--es-soft)}
html[data-theme] #app .ps2-zone-check{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 10px;color:var(--es-ink);font-size:calc(.9375rem * var(--elan-ui-scale,1));font-weight:600;cursor:pointer}
html[data-theme] #app .ps2-zone-check:has(input:disabled){opacity:.55;cursor:not-allowed}
html[data-theme] #app .ps2-zone-check input{flex:0 0 22px;width:22px;height:22px;margin:0;accent-color:#7657FF}
html[data-theme] #app .ps2-zone-check span{min-width:0;overflow-wrap:anywhere}
html[data-theme] #app .ps2-choose-support{display:grid;gap:4px;min-width:0;padding:0 10px 10px 44px;font-size:calc(.8125rem * var(--elan-ui-scale,1));color:var(--es-muted)}
html[data-theme] #app .ps2-choose-support[hidden]{display:none}
html[data-theme] #app :is(.ps2-choose-support,.ps2-support) select,html[data-theme] #app .ps2-price input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--es-line);border-radius:12px;background:var(--es-panel);color:var(--es-ink);font:inherit;font-size:16px}
html[data-theme] #app .ps2-form-error{margin:0 0 12px;color:var(--es-danger);font-size:calc(.875rem * var(--elan-ui-scale,1));font-weight:600}
html[data-theme] #app .ps2-form-error:empty{display:none}
html[data-theme] #app .ps2-next{width:100%;min-height:48px}
html[data-theme] #app .ps2-place-count{margin:0 0 6px;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:650;color:var(--es-accent-ink)}
html[data-theme] #app .ps2-progress{display:flex;gap:4px;margin:0 0 12px}
html[data-theme] #app .ps2-progress span{flex:1;height:4px;border-radius:999px;background:var(--es-line)}
html[data-theme] #app .ps2-progress span.is-done{background:#16A34A}
html[data-theme] #app .ps2-progress span.is-current{background:#7657FF}
html[data-theme] #app .ps2-price{display:grid;gap:6px;margin:0 0 14px;font-size:calc(.875rem * var(--elan-ui-scale,1));font-weight:600;color:var(--es-ink)}
html[data-theme] #app .ps2-more summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
html[data-theme] #app .ps2-more .ps2-fields{display:grid;gap:12px;padding:4px 0 8px}
html[data-theme] #app .ps2-more p{margin:0;font-size:calc(.8125rem * var(--elan-ui-scale,1));line-height:1.45;color:var(--es-muted)}
html[data-theme] #app .ps2-canvas-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 16px 14px}
html[data-theme] #app .ps2-draft-note{margin:10px 0 0;font-size:calc(.8125rem * var(--elan-ui-scale,1));line-height:1.45;color:var(--es-muted)}
html[data-theme] #app .ps2-footer-single{justify-content:stretch}
html[data-theme] #app .ps2-footer-single>*{flex:1}
html[data-theme] #app .ps2-review-list{display:grid;gap:10px;margin:0 0 14px;padding:0;list-style:none}
html[data-theme] #app .ps2-review-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:10px;border:1px solid var(--es-line);border-radius:14px}
html[data-theme] #app .ps2-review-item.is-todo{border-color:#F59E0B}
html[data-theme] #app .ps2-review-photo{position:relative;display:block;width:64px;max-height:96px;overflow:hidden;border-radius:10px;background:var(--es-soft)}
html[data-theme] #app .ps2-review-photo img{display:block;width:100%;height:100%;object-fit:fill}
html[data-theme] #app .ps2-review-photo i{position:absolute;border:2px solid #7657FF;border-radius:3px;box-shadow:0 0 0 1px #FFFFFF;background:rgb(118 87 255 / .25)}
html[data-theme] #app .ps2-review-photo.is-empty{height:80px}
html[data-theme] #app .ps2-review-text{display:grid;gap:2px;min-width:0}
html[data-theme] #app .ps2-review-text strong{font-size:calc(.9375rem * var(--elan-ui-scale,1));overflow-wrap:anywhere}
html[data-theme] #app .ps2-review-text span{font-size:calc(.8125rem * var(--elan-ui-scale,1));color:var(--es-muted);overflow-wrap:anywhere}
html[data-theme] #app .ps2-review-text small{color:#B45309;font-weight:650}
@media (max-width:360px){html[data-theme] #app .ps2-review-item{grid-template-columns:56px minmax(0,1fr)}html[data-theme] #app .ps2-review-item>[data-ps2-review-edit]{grid-column:1 / -1}html[data-theme] #app .ps2-review-photo{width:56px}}
html[data-app-text="large"] #app .ps2-review-item{grid-template-columns:56px minmax(0,1fr)}html[data-app-text="large"] #app .ps2-review-item>[data-ps2-review-edit]{grid-column:1 / -1}
html[data-theme] #app .ps2-selected-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font:650 calc(1.125rem * var(--elan-ui-scale,1))/1.25 var(--elan-ui-font,system-ui);color:var(--es-ink)}
/* The surface belongs to a placement, before price or availability settings. */
html[data-theme] #app .ps2-support{display:grid;gap:7px;margin:0 0 16px;min-width:0;font-size:calc(.875rem * var(--elan-ui-scale,1));color:var(--es-ink)}
html[data-theme] #app .ps2-support select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--es-line);border-radius:12px;background:var(--es-panel);color:var(--es-ink);font:400 calc(1rem * var(--elan-ui-scale,1))/1.4 var(--elan-ui-font,system-ui)}
html[data-theme] #app .ps2-support small{color:var(--es-muted);font-size:calc(.75rem * var(--elan-ui-scale,1));line-height:1.45}
/* Photo-first zones: every photo with its zones, one tap to edit them. */
.ps2-heading-actions{display:flex;flex-wrap:wrap;gap:8px}
.ps2-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0 0 18px;padding:0;list-style:none}
.ps2-photo-card{display:grid;width:100%;padding:0;border:1px solid var(--es-line);border-radius:16px;overflow:hidden;background:var(--es-panel);color:var(--es-ink);text-align:left;font:inherit;cursor:pointer}
.ps2-photo-card:focus-visible{outline:2px solid #7657FF;outline-offset:2px}
.ps2-photo-frame{display:block;background:var(--es-soft);aspect-ratio:3/4;overflow:hidden}
.ps2-photo-frame svg{display:block;width:100%;height:100%}
.ps2-photo-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:10px 12px;min-height:56px;box-sizing:border-box}
.ps2-photo-caption strong{font-size:calc(.875rem * var(--elan-ui-scale,1));font-weight:600;overflow-wrap:anywhere}
.ps2-photo-caption small{grid-column:1;font-size:calc(.75rem * var(--elan-ui-scale,1));color:var(--es-muted)}
.ps2-photo-caption b{grid-column:2;grid-row:1/3;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600;color:#7657FF}
.ps2-frame-other{fill:rgba(118,87,255,.18);stroke:#FFFFFF;stroke-width:2;paint-order:stroke}
.ps2-photo-frame .ps2-frame-other{fill:rgba(118,87,255,.28);stroke:#7657FF;stroke-width:2.5}
.ps2-stage [data-ps2-select-zone]{cursor:pointer}
.ps2-stage [data-ps2-select-zone] .ps2-frame-other{stroke-dasharray:6 4;opacity:.85}
.ps2-zone-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 12px 12px;max-width:100%}
.ps2-zone-chip{display:grid;gap:2px;min-width:0;min-height:48px;padding:7px 10px;border:1px solid var(--es-line);border-radius:11px;background:var(--es-panel);color:var(--es-ink);text-align:left;font:inherit;overflow-wrap:anywhere;cursor:pointer}
.ps2-zone-chip:only-child{grid-column:1/-1}
.ps2-zone-chip span{font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600;white-space:nowrap}
.ps2-zone-chip small{font-size:calc(.6875rem * var(--elan-ui-scale,1));color:var(--es-muted);white-space:nowrap}
.ps2-zone-chip[aria-selected="true"]{background:#7657FF;border-color:#7657FF;color:#FFFFFF}
.ps2-zone-chip[aria-selected="true"] small{color:rgba(255,255,255,.85)}
.ps2-zone-chip.is-todo:not([aria-selected="true"]){border-color:#F59E0B}
.ps2-todo{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.ps2-todo li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #F59E0B;border-radius:12px;font-size:calc(.8125rem * var(--elan-ui-scale,1))}
.ps2-zone-list-title{margin:4px 0 10px;font:600 calc(1rem * var(--elan-ui-scale,1))/1.3 var(--elan-ui-font,system-ui)}
.ps2-review-item{grid-template-columns:minmax(0,1fr) auto}
.ps2-photo-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ps2-photo-title>span{margin-left:auto}
html[data-theme] #app .ps2-review .ps2-review-item{grid-template-columns:minmax(0,1fr) auto;gap:12px}
html[data-theme] #app .ps2-review .ps2-review-item>button{width:auto;min-width:96px}
html[data-theme] #app .ps2-review .ps2-review-text{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center}
html[data-theme] #app .ps2-review .ps2-review-text>b{grid-column:2;grid-row:1/3}
.ps2-photo-frame{background:#1b1825}
@media (max-width:360px){html[data-theme] #app .ps2-review .ps2-review-item{grid-template-columns:minmax(0,1fr)}html[data-theme] #app .ps2-review .ps2-review-item>[data-ps2-review-edit]{grid-column:1;width:100%}}
html[data-app-text="large"] #app .ps2-review .ps2-review-item{grid-template-columns:minmax(0,1fr)}html[data-app-text="large"] #app .ps2-review .ps2-review-item>[data-ps2-review-edit]{grid-column:1;width:100%}
.ps2-photo-caption b{color:#4B2FD6}
html[data-theme="dark"] .ps2-photo-caption b{color:#B8A8FF}
/* Zones menu: one card per zone, its settings shown once it is ticked. */
.ps2-zone-card{display:grid;gap:12px}
.ps2-zone-card .ps2-zone-check{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ps2-zone-state{flex-basis:100%;margin-left:32px;font-size:calc(.75rem * var(--elan-ui-scale,1));color:#15803D;font-weight:600}
.ps2-zone-state.is-todo{color:#B45309}
html[data-theme="dark"] .ps2-zone-state{color:#4ADE80}html[data-theme="dark"] .ps2-zone-state.is-todo{color:#FBBF24}
.ps2-zone-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end;padding-top:4px}
.ps2-zone-fields[hidden]{display:none}
.ps2-zone-fields label{display:grid;gap:6px;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600}
.ps2-zone-fields input{min-height:46px;padding:10px 12px;border:1px solid var(--es-line);border-radius:11px;background:var(--es-panel);color:var(--es-ink);font:inherit;font-size:16px;box-sizing:border-box;width:100%}
.ps2-zone-fields .ps2-size-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px}
.ps2-zone-fields>button{justify-self:start}
.ps2-zone-summary{margin:4px 0 12px;font-size:calc(.875rem * var(--elan-ui-scale,1));color:var(--es-muted)}
.ps2-zone-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ps2-zone-fields>.ps2-choose-support,.ps2-zone-fields>.ps2-zone-note,.ps2-zone-fields>button{grid-column:1/-1}
.ps2-zone-fields .ps2-size-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-content:end}
.ps2-zone-fields .ps2-size-row>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ps2-zone-note summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600}
.ps2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (min-width:760px){.ps2-zone-fields{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}.ps2-zone-fields>.ps2-choose-support{grid-column:auto}}
.elan-photo-head h1 small{font-size:.5em;font-weight:500;opacity:.6;margin-left:6px;letter-spacing:0}
/* Compact zone grid: paired surface/price fields and consistent 44px controls. */
html[data-theme] #app .ps2-zone-card .ps2-zone-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:8px 10px 0;margin:0;align-items:end}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields[hidden]{display:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields>*{grid-column:auto;min-width:0;margin:0;padding:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields label,html[data-theme] #app .ps2-zone-card .ps2-zone-size{display:grid;gap:6px;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600;color:var(--es-ink)}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields select,html[data-theme] #app .ps2-zone-card .ps2-zone-fields input{height:44px;min-height:44px}
/* The price help lives beside its input, so labels need no empty touch-target row. */
html[data-theme] #app .ps2-zone-card .ps2-zone-fields>:is(.ps2-choose-support,.ps2-zone-price,.ps2-zone-size){display:grid;grid-template-rows:auto minmax(44px,auto);gap:5px;align-content:start;align-self:stretch}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields>:is(.ps2-choose-support,.ps2-zone-size)>span{display:flex;align-items:center;min-height:20px;font-size:calc(.8125rem * var(--elan-ui-scale,1));line-height:1.4}
html[data-theme] #app .ps2-zone-card .patch-price-label{min-height:20px;align-items:center;font-size:calc(.8125rem * var(--elan-ui-scale,1))}
html[data-theme] #app .ps2-zone-price-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:2px;min-width:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-price-control .patch-price-help{margin:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-size{grid-column:1/-1}
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value{display:flex;align-items:center;justify-content:space-between;gap:10px;height:46px;padding:0 4px 0 12px;border:1px solid var(--es-line);border-radius:12px;box-sizing:border-box}
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value strong{font-size:15px;white-space:nowrap}
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value button{min-height:38px;padding:0 12px;border-radius:9px}
html[data-theme] #app .ps2-zone-card .ps2-zone-fields>.ps2-zone-note{grid-column:1/-1;border:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-note>summary{display:flex;align-items:center;gap:6px;width:fit-content;max-width:100%;min-height:44px;padding:0 4px;border:0;border-radius:6px;background:transparent;color:var(--es-accent-ink);box-sizing:border-box;list-style:none;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600;line-height:1.4;cursor:pointer;overflow-wrap:anywhere}
html[data-theme] #app .ps2-zone-card .ps2-zone-note>summary::-webkit-details-marker{display:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-note>summary::before,html[data-theme] #app .ps2-zone-card .ps2-zone-note>summary::after{content:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-note-icon{flex:none;display:grid;place-items:center;width:16px;height:16px;color:var(--es-accent-ink);font-size:18px;line-height:1}
html[data-theme] #app .ps2-zone-card .ps2-zone-note[open] .ps2-zone-note-icon{transform:rotate(45deg)}
html[data-theme] #app .ps2-zone-card .ps2-zone-note>label{margin-top:10px}
html[data-theme] #app .ps2-zone-card .ps2-zone-actions{display:flex;flex-wrap:wrap;gap:10px}
@media (min-width:640px){html[data-theme] #app .ps2-zone-card .ps2-zone-fields{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-theme] #app .ps2-zone-card .ps2-zone-size{grid-column:auto}html[data-theme] #app .ps2-zone-card .ps2-zone-fields>:is(.ps2-zone-note,.ps2-zone-actions){grid-column:1/-1}}
@media (max-width:350px){html[data-theme] #app .ps2-zone-card .ps2-zone-fields{grid-template-columns:minmax(0,1fr)}}
html[data-app-text="large"] #app .ps2-zone-card .ps2-zone-fields{grid-template-columns:minmax(0,1fr)}
.ps2-place-heading{justify-content:flex-start;gap:12px}
.ps2-place-heading h1{flex:1 1 auto}
html[data-theme] #app .ps2-zone-card .ps2-zone-note summary{color:var(--es-ink)}
html[data-theme="light"] #app .ps2-zone-state{color:#166534}
html[data-theme="light"] #app .ps2-zone-state.is-todo{color:#92400E}
/* Each zone keeps its step-2 placement button flagged « À faire » until placed. */
html[data-theme] #app .ps2-todo-badge{position:absolute;top:-9px;right:-6px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 7px;box-sizing:border-box;border-radius:999px;background:#DC2626;color:#fff;font-size:11px;font-style:normal;font-weight:800;line-height:1;letter-spacing:0;box-shadow:0 0 0 2px var(--es-panel);pointer-events:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-place{display:grid;justify-items:center;gap:6px;margin:4px 10px 10px;padding:10px;border:1px dashed #D97706;border-radius:12px;background:rgba(217,119,6,.07);text-align:center}
html[data-theme] #app .ps2-zone-card .ps2-zone-place[hidden]{display:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-place.is-done{border:0;background:transparent;padding:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-place.is-done .ps2-zone-place-step{display:none}
html[data-theme] #app .ps2-zone-place-step{font-size:calc(.6875rem * var(--elan-ui-scale,1));font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--es-muted)}
html[data-theme] #app .ps2-zone-card .ps2-zone-place [data-zones-place]{position:relative;width:100%;min-height:44px;margin:0;font-size:calc(.8125rem * var(--elan-ui-scale,1));font-weight:600;overflow:visible}
html[data-theme] #app .ps2-zone-card .ps2-zone-place small{font-size:calc(.75rem * var(--elan-ui-scale,1));color:#92400E;font-weight:600}
html[data-theme="dark"] #app .ps2-zone-card .ps2-zone-place small{color:#FBBF24}
/* Real size: the value and its edit action share a compact row. */
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;height:auto;padding:0;border:0;border-radius:0;background:none}
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value strong{display:flex;align-items:center;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--es-line);border-radius:12px;box-sizing:border-box;background:var(--es-panel);color:var(--es-ink);font-size:16px;font-weight:650;white-space:normal;overflow-wrap:anywhere}
html[data-theme] #app .ps2-zone-card .ps2-zone-size-value button{align-self:center;min-height:44px;margin:0;padding:0 12px}
/* Selection and disclosure are separate: folding settings never unticks a zone. */
html[data-theme] #app .ps2-zone-card{position:relative;display:block}
html[data-theme] #app .ps2-zone-card .ps2-zone-check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:2px 10px;min-height:52px;padding:4px 58px 4px 10px;box-sizing:border-box}
html[data-theme] #app .ps2-zone-card .ps2-zone-check input{grid-column:1;grid-row:1/3;align-self:center}
html[data-theme] #app .ps2-zone-card:not(.is-on) .ps2-zone-check input{grid-row:1}
html[data-theme] #app .ps2-zone-card .ps2-zone-state{grid-column:2;flex-basis:auto;margin:0}
html[data-theme] #app .ps2-zone-card .ps2-zone-state[hidden]{display:none}
html[data-theme] #app .ps2-zone-settings{margin:0;padding:0;border:0;background:transparent}
html[data-theme] #app .ps2-zone-settings[hidden]{display:none}
html[data-theme] #app .ps2-zone-settings>summary{position:absolute;top:8px;right:8px;display:grid;place-items:center;box-sizing:border-box;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--es-ink);list-style:none;cursor:pointer}
html[data-theme] #app .ps2-zone-settings>summary::-webkit-details-marker{display:none}
html[data-theme] #app .ps2-zone-settings>summary::before,html[data-theme] #app .ps2-zone-settings>summary::after{content:none}
html[data-theme] #app .ps2-zone-settings>summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html[data-theme] #app .ps2-zone-settings[open]>summary svg{transform:rotate(180deg)}
html[data-theme] #app .ps2-zone-settings>summary:hover{background:var(--es-panel)}
html[data-theme] #app .ps2-zone-settings>summary:focus-visible{outline:2px solid var(--es-focus);outline-offset:-2px}
