/* Workspace additions retain the existing colour system. */
#studio .wrap{max-width:1680px}
#studio{padding-block:14px 24px}
#studio .heading{margin-bottom:10px}
#studio .heading h2{margin-block:2px}
#studio .work-steps a{padding:4px 9px;font-size:13px}
.studio-intro{display:none}
.studio{
  position:relative;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:minmax(0,1fr);
  gap:12px;
  height:max(320px,calc(100dvh - var(--workspace-header-height,140px) - 10px));
}
.studio>.panel{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}
.studio .panel{min-width:0;padding:16px}
.template-panel{padding:0;margin-block:8px 12px}
.template-panel[open]>:not(summary){margin-inline:8px}
.template-panel summary{font-weight:700}
.workspace-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px 16px;
  padding:6px max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left));
  background:var(--bg);
  border-top:1px solid var(--line);
}
.workspace-switch{display:none}
.workspace-bar .btn{font-size:13px;min-height:40px;padding:5px 10px}
.workspace-bar #addStatus{margin:0;font-size:12px}
html{scroll-padding-block-start:var(--workspace-header-height,140px)}
.sheet-target,.sheet-group-align{display:flex;gap:6px;align-items:center;font-size:13px}
.sheet-target select,.sheet-group-align select{min-width:0;padding:4px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:7px}
.page-controls .sheet-move{flex:0 0 100%;min-height:36px}
.sheet-move span{flex:0 0 180px}
.sheet-move select{min-width:100px}
.source-sizes .btn{border-color:var(--accent);direction:ltr}
#sizeChoice{width:min(520px,95vw);color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:12px}
#sizeChoice::backdrop{background:#000a}
#sizeChoice .stack{display:flex;flex-wrap:wrap;gap:6px}
#sizeChoice input{width:100%}
#sizeChoice .fields{min-width:0}
#choiceName{overflow-wrap:anywhere}
#newCrop{flex-shrink:0;min-height:44px}
#newCrop[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.template-group{margin:14px 0 6px;color:var(--accent);font-size:13px}
.template-button{display:flex;align-items:center;justify-content:space-between;gap:5px;text-align:start;width:100%;padding:8px;margin:4px 0;font-size:12px}
.template-button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.template-selected{display:flex;gap:10px;align-items:center;margin:12px 0;font-size:12px}
#templateIcon{border:2px solid var(--accent);display:inline-block;width:28px;height:18px;flex:none}
#templateIcon.portrait{width:18px;height:28px}
#templateCustomName{display:block;width:100%;padding:8px;margin:4px 0;background:#091721;border:1px solid #30444d;color:white;border-radius:7px}
.template-panel .btn{font-size:12px;padding:8px}
.back-upload{padding:10px;margin-top:10px}
.crop-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.crop-options input{width:100%}
.sheet-tools{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.sheet-tools .btn{font-size:12px;padding:6px 9px}
.sheet-tools label{display:flex;align-items:center;gap:4px}
#sheetPreview{background:#27333b;padding:8px}
#sheetCanvasWrap{position:relative;line-height:0;width:min(100%,500px,max(200px,calc((100dvh - 165px - var(--workspace-header-height,140px)) * .707)));aspect-ratio:210/297}
#sheetCanvasWrap canvas{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill}
#sheetOverlay{touch-action:none;cursor:crosshair}
#sheetOverlay:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sheet-selection-tools{display:flex;align-items:center;gap:8px;order:-2;margin-block-start:6px}
.sheet-selection-tools output{font-variant-numeric:tabular-nums}
.sheet-selection-tools:has(output:empty){display:none}
.sheet-copy-pages{display:flex;flex-wrap:wrap;gap:4px;margin-block-start:4px}
.sheet-copy-pages .btn{min-height:26px;padding:2px 7px;font-size:12px}
.sheet-copy-pages .btn[aria-pressed=true]{border-color:var(--accent)}
#sheetPreview.empty #sheetCanvasWrap{display:none}
@media(max-width:900px){
  #studio .wrap{padding-inline:12px}
  #studio .heading{display:block}
  #studio .heading>p,#studio .work-steps{display:none}
  .studio{direction:ltr;grid-template-columns:repeat(2,100%);gap:0;overflow:hidden}
  html[dir=rtl] .studio>.panel{direction:rtl}
  .studio>.panel{padding:12px}
  .workspace-bar{display:grid;justify-content:stretch;grid-template-columns:minmax(0,1fr)}
  .workspace-switch,.workspace-bar .crop-list-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .workspace-bar .crop-list-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .workspace-bar .sheet-target{grid-column:1/-1}
  .workspace-bar .sheet-target select{flex:1}
  .workspace-bar .btn{font-size:12px;padding:4px}
  .workspace-switch .btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
  .workspace-bar #addStatus{text-align:center}
}

.sheet-panel{display:flex;flex-direction:column}
.sheet-panel>*{flex-shrink:0}
.sheet-panel>h3{order:-6}.sheet-panel>.sub{order:-5}.sheet-panel>.page-controls{order:-4}.sheet-panel>#sheetPreview{order:-3}.sheet-panel>.sheet-tools{order:-2}.sheet-panel>#sheetHint{order:-1}
@media(min-width:901px){
  .sheet-panel>.sub{margin-bottom:8px}
  #sheetCanvasWrap{max-width:max(200px,calc((100dvh - 285px - var(--workspace-header-height,140px)) * .707))}
}
#swapOrientation{margin-top:12px;padding:7px 10px}

#crop{touch-action:none;cursor:move}

#sourceList{display:grid;gap:7px;max-height:240px;overflow-y:auto;margin-top:10px}.source-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 10px;align-items:center;text-align:start;border:1px solid var(--line);border-radius:8px;background:#091721;color:var(--text);padding:7px;min-width:0}.source-row canvas{grid-row:span 2;width:40px;height:46px;object-fit:contain}.source-row span{overflow-wrap:anywhere;font-size:12px}.source-row bdi{font-size:12px;color:var(--muted)}.source-row[aria-pressed=true]{border-color:var(--accent)}#editingContext{border-inline-start:3px solid var(--accent);padding-inline-start:8px}#editStatus{font-variant-numeric:tabular-nums}
/* R0: existing visual tokens, with only the requested precision controls. */
.source-entry{display:grid;min-width:0;gap:2px;padding:3px 5px;border:1px solid var(--line);border-radius:8px}
.source-entry:has(.source-row[aria-pressed=true]){border-color:var(--accent)}
.source-entry .source-row{grid-template-columns:32px minmax(0,1fr);gap:7px;padding:2px;border-color:transparent;background:transparent}
.source-entry .source-row canvas{grid-row:auto;width:32px;height:24px}
.source-info{display:flex;align-items:center;gap:6px;min-width:0}
.source-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.source-info bdi{white-space:nowrap}
/* Crop-row badge mirrors the numbered rectangle on the crop stage. */
.source-badge{flex:none;min-width:20px;height:20px;padding:0 4px;border-radius:999px;border:1px solid var(--accent);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
/* Sheet delete-all sits directly under the sheet canvas, before the toolbars. */
.sheet-panel>#sheetClearRow{order:-3}
.source-actions,.crop-list-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.source-actions .btn{padding:2px 8px;min-height:28px;font-size:12px}
.crop-list-toolbar .btn{margin:0}
#addStatus:empty{display:none}
#zoomValue{align-self:center;font-variant-numeric:tabular-nums}
@media print{html,body{height:auto!important;padding:0!important}.workspace-bar{display:none!important}#print-area{direction:ltr}#print-area img{max-width:none!important;max-height:none!important;break-inside:avoid}}

/* The workflow links and disclosure controls keep secondary tools discoverable. */
[hidden]{display:none!important}
.work-steps{display:flex;flex-wrap:wrap;gap:8px;margin-block:0 16px}
.work-steps a,.work-details summary{border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--accent)}
.work-details{margin-block:12px}
.work-details summary{cursor:pointer}
.work-details summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.capture-button{margin-block-start:8px}
.paper-size{order:-5;margin:0 0 8px;color:var(--muted);font-size:13px}
#choose,#edit,#sheet-work{scroll-margin-top:90px}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.zoom-actions{align-items:center;gap:10px;margin-block-start:6px}
.zoom-actions button{min-width:44px;min-height:44px;padding:4px 10px;font-size:20px}

/* Requested crop sizing tools, using the existing visual tokens. */
.crop-measurements{border:1px solid var(--line);border-radius:8px;padding:10px;margin-block:12px}
.crop-measurements .fields{margin-block:8px}
.mm-adjust{display:flex;gap:6px;margin-block-start:6px}
.mm-adjust .btn{min-width:42px;min-height:36px;padding:3px 10px;font-size:18px}
.size-lock{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.source-basis select{width:100%;max-width:100%}
.crop-stage canvas{display:block;margin-inline:auto;max-width:min(100%,510px);max-height:560px;touch-action:none;user-select:none}
.crop-stage canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.crop-frame-toolbar{display:flex;align-items:center;gap:8px;margin-block:8px}
.crop-frame-toolbar p{margin:0}
.frame-ratio-lock{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;padding:0}
.frame-ratio-lock svg{width:20px;height:20px}
.frame-ratio-lock[aria-pressed="true"]{color:var(--accent);border-color:var(--accent)}
.frame-ratio-lock .lock-closed,.frame-ratio-lock[aria-pressed="true"] .lock-open{display:none}
.frame-ratio-lock[aria-pressed="true"] .lock-closed{display:block}
/* Image-first workspace: one scrolling surface per editor/sheet, no nested library. */
#studio{padding-block:6px}
#studio>.wrap{max-width:1920px;padding-inline:12px}
#studio .heading,#studio .work-steps{display:none}
.workspace-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start}
.template-sidebar{max-height:calc(100dvh - var(--workspace-header-height,140px) - 12px);overflow-y:auto;scrollbar-gutter:stable;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--panel)}
.template-sidebar .template-panel{margin:0;border:0}
.template-sidebar summary{pointer-events:none}
.studio{height:max(320px,calc(100dvh - var(--workspace-header-height,140px) - 12px))}
.editor-panel>.sub{margin-bottom:6px}
.editor-panel>.crop-stage{margin-top:0}
#sourceList{max-height:none;overflow:visible;margin-block:16px}
#preview{display:none!important}
.source-entry{padding:7px;gap:4px}
.source-actions .btn{min-height:36px;padding:4px 10px}
.editor-panel>.drop{margin-top:12px;padding:14px}
.crop-stage canvas{max-height:min(560px,60dvh)}
@media(min-width:901px){
  .nav{padding-block:8px}
  .template-sidebar .template-button{min-height:40px}
}
@media(min-width:901px) and (max-width:1200px){
  .workspace-shell{grid-template-columns:190px minmax(0,1fr);gap:8px}
  .studio{gap:8px}
  .studio>.panel{padding:10px}
}
@media(max-width:900px){
  .workspace-shell{display:block}
  .template-sidebar{display:none}
  .template-panel{margin-block:0 8px}
  .template-panel summary{min-height:44px;padding:8px 12px}
  .nav{padding:5px 12px}
  .brand{font-size:16px}
  .nav .brand>span:last-child{display:none!important}
  .workspace-bar{gap:4px;padding-block:4px}
  .workspace-bar .btn{min-height:44px}
  .workspace-bar .sheet-target{font-size:12px}
  .workspace-bar #addStatus{max-height:38px;overflow:auto}
  .source-actions .btn{min-height:44px}
  .source-entry .source-row canvas{width:40px;height:36px}
  .source-entry .source-row{grid-template-columns:40px minmax(0,1fr)}
  .source-info{flex-wrap:wrap;gap:2px}
  .source-info span{white-space:normal}
  .source-info bdi{direction:ltr}
  .crop-frame-toolbar{flex-wrap:wrap}
  .crop-frame-toolbar p{flex-basis:100%;text-align:start}
  .crop-stage canvas{max-height:52dvh}
  .sheet-move span{flex:1}
  .sheet-tools .btn{min-height:44px}
}
.template-sidebar{line-height:1.45}
.template-sidebar .template-group{margin-top:10px}
.template-sidebar .template-panel>p{font-size:11px}
@media(min-width:1201px){.workspace-shell{grid-template-columns:260px minmax(0,1fr)}}
