/* Gallery Batch Lab production-desk design tokens */
:root{
  --color-stage:#191a1d;--color-panel:#24262b;--color-paper:#f4f3ef;--color-surface:#f7f7f4;--color-white:#ffffff;
  --color-light-text:#f7f7f4;--color-dark-text:#202127;--color-muted:#6c6f76;--color-border:#44474e;--color-light-border:#d8d7d2;
  --color-action:#4d49cf;--color-action-hover:#3f3bb7;--color-danger:#a33242;--color-success-bg:#e5f2e9;--color-success-text:#245b37;--color-info-bg:#ebeaf8;--color-danger-bg:#f8e8eb;--color-stage-muted:#aeb0b7;--color-stage-dim:#90939b;--color-stage-hover:#8d8ae7;--color-stage-selected:#9693ff;--color-stage-empty:#202226;--color-stage-empty-text:#676a72;--color-stage-slot-text:#b9bbc2;--color-stage-border-hover:#74777f;--color-stage-number:#9699a1;--color-stage-text:#d0d1d5;
  --font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Consolas,monospace;
  --text-xs:.72rem;--text-sm:.875rem;--text-md:.94rem;--text-lg:1.15rem;--text-display:clamp(1.75rem,3.4vw,2rem);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;
  --radius-sm:4px;--radius-md:7px;--rule:1px solid var(--color-light-border);--focus:0 0 0 3px color-mix(in srgb,var(--color-action),transparent 70%);
}
*{box-sizing:border-box}html,body{overflow-x:clip}html{background:var(--color-paper)}body{margin:0;color:var(--color-dark-text);background:var(--color-paper);font:400 var(--text-md)/1.5 var(--font-sans)}button,input,textarea,select{font:inherit}button{color:inherit}h1,h2,h3,p{margin-top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.utility-header{height:60px;padding:0 clamp(var(--space-4),4vw,var(--space-10));display:flex;align-items:center;justify-content:space-between;border-bottom:var(--rule);background:var(--color-white)}.wordmark{color:var(--color-dark-text);text-decoration:none;font-weight:750;letter-spacing:-.02em}.wordmark span{margin-left:var(--space-2);font:600 .64rem/1 var(--font-mono);letter-spacing:.08em;color:var(--color-muted);text-transform:uppercase}.header-tools{display:flex;align-items:center;gap:var(--space-4)}.local-note{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-muted)}.local-dot{width:7px;height:7px;border-radius:50%;background:var(--color-action)}.language select{min-height:44px;padding:0 28px 0 10px;border:var(--rule);border-radius:var(--radius-sm);background:var(--color-white);font:600 var(--text-xs)/1 var(--font-mono)}
main{width:min(1540px,100%);margin:0 auto;padding:0 clamp(var(--space-3),3vw,var(--space-8)) var(--space-10)}.intro{min-height:124px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:var(--space-8);align-items:end;padding:var(--space-6) 0 var(--space-5)}.kicker,.meta-label{margin:0 0 var(--space-1);font:650 var(--text-xs)/1.2 var(--font-mono);letter-spacing:.08em;color:var(--color-muted)}h1{margin:0;font-size:var(--text-display);line-height:1.08;letter-spacing:-.035em;overflow-wrap:anywhere}h2{margin:0;font-size:var(--text-lg);line-height:1.2;letter-spacing:-.015em}h3{margin:0;font-size:var(--text-sm);line-height:1.3}.intro-copy{margin:0 0 2px;max-width:520px;color:var(--color-muted);font-size:var(--text-md)}
.toolbar{min-height:58px;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:var(--rule);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-white)}.toolbar-group{display:flex;gap:var(--space-2)}.recipe-tools{padding-left:var(--space-2);border-left:var(--rule)}.button{min-height:44px;padding:0 14px;border:1px solid var(--color-light-border);border-radius:var(--radius-sm);background:var(--color-white);font-size:var(--text-sm);font-weight:650;white-space:nowrap;cursor:pointer}.button:hover{background:var(--color-surface)}.button:active{transform:translateY(1px)}.button.primary{border-color:var(--color-dark-text);background:var(--color-dark-text);color:var(--color-white)}.button.primary:hover{background:var(--color-panel)}.button.action{margin-left:auto;border-color:var(--color-action);background:var(--color-action);color:var(--color-white)}.button.action:hover{background:var(--color-action-hover)}.button.quiet{border-color:transparent;color:var(--color-muted)}.button.small{min-height:44px;padding-inline:10px}.button:disabled,.ratio-button:disabled,input:disabled,textarea:disabled,select:disabled{opacity:.48;cursor:not-allowed}.button:focus-visible,.ratio-button:focus-visible,.drop-zone:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.preview-slot:focus-visible{outline:0;box-shadow:var(--focus)}
.status,.errors{margin:var(--space-3) 0 0;padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.status:empty{display:none}.status{background:var(--color-info-bg);color:var(--color-dark-text)}.errors{background:var(--color-danger-bg);color:var(--color-danger)}
.desk{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,330px);min-height:650px;border:var(--rule);border-top:0}.image-stage{min-width:0;padding:var(--space-5);background:var(--color-stage);color:var(--color-light-text)}.stage-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.stage-head .meta-label{color:var(--color-stage-muted)}.ratio-switch{display:flex;padding:3px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel)}.ratio-button{min-width:72px;min-height:44px;padding:0 10px;border:0;border-radius:3px;background:transparent;color:var(--color-stage-slot-text);font-size:var(--text-xs);cursor:pointer}.ratio-button.is-active{background:var(--color-surface);color:var(--color-dark-text)}.drop-zone{min-height:48px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-stage-text);cursor:pointer}.drop-zone:hover,.drop-zone.drag{border-color:var(--color-stage-hover);background:var(--color-panel)}.drop-detail{font:500 var(--text-xs)/1 var(--font-mono);color:var(--color-stage-dim)}
.preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.preview-slot{min-width:0;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel);color:var(--color-light-text);text-align:left;overflow:hidden;cursor:pointer}.preview-slot:hover{border-color:var(--color-stage-border-hover)}.preview-slot.is-selected{border-color:var(--color-stage-selected);box-shadow:0 0 0 1px var(--color-stage-selected)}.preview-slot canvas{display:block;width:100%;height:auto;background:var(--color-paper)}.slot-empty{aspect-ratio:1/1;display:grid;place-items:center;background:var(--color-stage-empty);color:var(--color-stage-empty-text);font:600 var(--text-sm)/1 var(--font-mono)}.preview-grid.is-wide .slot-empty{aspect-ratio:16/9}.slot-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:center;padding:9px 10px;border-top:1px solid var(--color-border);font-size:var(--text-xs)}.slot-number{font:600 var(--text-xs)/1 var(--font-mono);color:var(--color-stage-number)}.slot-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-summary{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(0,1fr);gap:var(--space-6);align-items:end;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.export-summary .meta-label{display:block;color:var(--color-stage-number)}.export-summary strong{font:600 var(--text-sm)/1.3 var(--font-mono)}.export-summary p{margin:0;color:var(--color-stage-muted);font-size:var(--text-xs);text-align:right}
.inspector{background:var(--color-surface);border-left:var(--rule)}.inspector-head{min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:var(--rule)}.selection-count{font:600 var(--text-xs)/1 var(--font-mono);color:var(--color-muted)}.inspector-section{padding:var(--space-4);border-bottom:var(--rule)}.inspector-section h3{margin-bottom:var(--space-4)}.field{display:block;margin-top:var(--space-3);font-size:var(--text-xs);font-weight:650}.field input[type=color]{display:block;width:100%;height:38px;margin-top:6px;padding:3px;border:var(--rule);border-radius:var(--radius-sm);background:var(--color-white)}.inline-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:6px}.text-button{min-height:44px;padding:0 6px;border:0;background:transparent;color:var(--color-muted);font-size:var(--text-xs);text-decoration:underline;cursor:pointer}.items:empty::before{content:"Select an image from the contact sheet.";display:block;color:var(--color-muted);font-size:var(--text-sm)}.item-card{display:block}.item-card img{display:none}.item-fields{display:grid;gap:var(--space-2)}.item-fields input,.item-fields textarea{width:100%;border:var(--rule);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-dark-text);padding:10px 11px;font-size:var(--text-sm)}.item-fields textarea{min-height:106px;resize:vertical}.counter{margin-top:-5px;text-align:right;color:var(--color-muted);font:500 var(--text-xs)/1 var(--font-mono)}.remove{width:100%;min-height:44px;margin-top:var(--space-3);border:1px solid var(--color-light-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-danger);font-size:var(--text-xs);cursor:pointer}.data-note p{margin:0;color:var(--color-muted);font-size:var(--text-xs)}
.plain-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);padding:var(--space-8) 0}.plain-notes div{border-top:var(--rule);padding-top:var(--space-3)}.plain-notes h2{margin-bottom:var(--space-2);font-size:var(--text-md)}.plain-notes p{margin:0;color:var(--color-muted);font-size:var(--text-sm)}footer{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) clamp(var(--space-4),4vw,var(--space-10));border-top:var(--rule);background:var(--color-white);color:var(--color-muted);font-size:var(--text-xs)}
@media(max-width:900px){.desk{grid-template-columns:minmax(0,1fr)}.inspector{border-left:0;border-top:var(--rule)}.intro{grid-template-columns:1fr;gap:var(--space-2);align-items:start}.toolbar{flex-wrap:wrap}.button.action{margin-left:0}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.utility-header{padding-inline:var(--space-3)}.wordmark span,.local-note{display:none}main{padding-inline:var(--space-2)}.intro{min-height:112px;padding:var(--space-5) var(--space-2) var(--space-4)}.toolbar{align-items:stretch}.toolbar-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.recipe-tools{padding-left:0;border-left:0}.toolbar .button{width:100%;min-height:44px}.button.action{width:100%}.image-stage{padding:var(--space-3)}.stage-head{align-items:flex-start}.ratio-button{min-width:62px;min-height:44px}.drop-zone{min-height:52px;flex-direction:column;gap:2px}.preview-grid{gap:var(--space-2)}.slot-meta{padding:8px}.export-summary{grid-template-columns:1fr;gap:var(--space-2);align-items:start}.export-summary p{text-align:left}.plain-notes{grid-template-columns:1fr;gap:var(--space-5);padding-inline:var(--space-2)}footer{flex-direction:column}}
@media(max-width:360px){.preview-grid{grid-template-columns:1fr}.stage-head{display:grid}.ratio-switch{width:100%}.ratio-button{flex:1}.header-tools{gap:var(--space-2)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
