@font-face{font-family:JCS;src:url('./fonts/jcs-complete.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:JCSComplete;src:url('./fonts/jcs-complete.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:JCS;src:url('./fonts/jcs-medium.woff2') format('woff2');font-weight:500 900;font-display:swap}
:root{--native-toolbar:44px;color-scheme:light;--paper:#f4f4f4;--ink:#151515;--muted:#686868;--line:#d4d4d4;--panel:#e9e9e9;--stage:#e5e5e5;--top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));font-family:JCS,JCSComplete,'PingFang SC','Microsoft YaHei',system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;max-width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;transition:background .65s,color .65s}button,input,output{font:inherit}button{color:inherit;border:0;border-radius:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{color:color-mix(in srgb,var(--ink) 55%,transparent);cursor:default}button:focus,canvas:focus{outline:none}button,input{touch-action:manipulation}button{min-height:44px}h2,p{margin:0}h2{font-size:15px;font-weight:500}svg{display:block} [hidden]{display:none!important}.app-shell{width:100%;min-width:0;height:100vh;height:100dvh;max-width:1600px;margin:0 auto;padding:var(--top) clamp(20px,4vw,64px) max(12px,var(--bottom));display:flex;flex-direction:column;overflow:hidden}.topbar{flex:0 0 clamp(64px,12vh,112px);border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:16px;font-size:clamp(32px,4vw,54px);font-weight:500;letter-spacing:-.055em;line-height:1;white-space:nowrap}.brand svg{width:42px;height:42px}.top-actions{display:flex;align-items:center;gap:28px}.edition{font-size:11px;letter-spacing:.13em;color:var(--muted)}.text-button{font-size:13px;text-decoration:underline;text-underline-offset:5px;padding:4px 0;white-space:nowrap}.icon-button{width:36px;font-size:22px;line-height:1}.workspace{flex:1;min-width:0;max-width:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 352px;grid-template-rows:minmax(0,1fr) auto}.preview-column{min-width:0;max-width:100%;min-height:0;grid-column:1;grid-row:1/3;display:flex;flex-direction:column;padding:16px 28px 0 0}.preview-head{flex:0 0 44px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);gap:8px}.history-actions{display:flex;align-items:center;gap:6px}.history-actions .text-button{margin-left:8px}.stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--stage);isolation:isolate;transition:background .6s}.stage:before{content:'';position:absolute;inset:18px;border:1px solid #c9c9c9;z-index:-2}.stage:after{content:'';position:absolute;left:18px;right:18px;top:50%;border-top:1px solid #d6d6d6;z-index:-2}.stage-corner{position:absolute;left:30px;top:28px;font-size:10px;letter-spacing:.08em;color:#8a8a8a;pointer-events:none}.stage-bottom{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:10px;color:#8a8a8a;pointer-events:none}.tray{position:relative;display:grid;place-items:center;padding:0;transition:padding .6s,box-shadow .6s;isolation:isolate}.paper-wrap{position:relative;box-shadow:0 16px 24px #00000019;transform-origin:center;flex-shrink:0}.paper-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:6px}.paper-wrap canvas:active{cursor:grabbing}.empty-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;color:#8a8a80;text-align:center;font-size:12px;line-height:1.9}.empty-cross{font-size:25px;font-weight:400;margin-bottom:14px;color:#aaa}.selection{position:absolute;border:1px solid #545a50;pointer-events:none;transform-origin:center}.selection i{position:absolute;width:5px;height:5px;background:#f4f4f4;border:1px solid #545a50}.selection i:nth-child(1){left:-3px;top:-3px}.selection i:nth-child(2){right:-3px;top:-3px}.selection i:nth-child(3){right:-3px;bottom:-3px}.selection i:nth-child(4){left:-3px;bottom:-3px}.preview-footer{min-height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.sheet-number{font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.06em}.controls{grid-column:2;grid-row:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin;padding:32px 0 20px 26px;border-left:1px solid var(--line)}.control-section{min-width:0;max-width:100%;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}.section-heading>span{font-size:11px;color:var(--muted)}.source-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.source-options button{background:var(--panel);font-size:13px;padding:10px 4px;min-width:0;white-space:nowrap}.source-options button.active{background:var(--ink);color:var(--paper)}.material-tabs{display:flex;align-items:center;margin-bottom:14px;gap:12px;border-bottom:1px solid var(--line)}.material-tabs [role=tab]{font-size:14px;padding:0 0 8px;min-height:42px;white-space:nowrap;color:var(--muted);border-bottom:2px solid transparent}.material-tabs [role=tab][aria-selected=true]{border-bottom-color:var(--ink);color:var(--ink)}.material-tabs span{font-size:10px;margin-left:3px;color:var(--muted)}.material-tabs #shuffle{margin-left:auto;font-size:12px;padding-bottom:10px}.material-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.material-card{position:relative;min-width:0;background:#e7e7e5;border:1px solid transparent}.material-card.is-used{border-color:#aaa99f}.material-pick{width:100%;padding:10px 6px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:82px}.material-pick img{width:100%;height:44px;object-fit:contain;filter:drop-shadow(1px 2px 1px #00000019);pointer-events:none}.material-pick span{font-size:10px;color:#65655e;line-height:1.2;white-space:nowrap}.favorite{position:absolute;right:0;top:0;min-height:30px;width:30px;font-size:14px;color:#797b70;text-shadow:0 0 3px #e7e7e5;background:transparent}.favorite[aria-pressed=true]{color:#272e24}.box-empty{grid-column:1/-1;min-height:130px;display:grid;place-items:center;color:var(--muted);font-size:12px;line-height:1.8;text-align:center;border:1px dashed var(--line)}.small-note{font-size:11px;line-height:1.75;color:var(--muted);margin-top:12px}.slider-row{display:grid;grid-template-columns:4em minmax(0,1fr) 5ch;gap:12px;align-items:center;min-height:40px;font-size:13px}.slider-row output{text-align:right;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.slider-row input{appearance:none;-webkit-appearance:none;width:100%;min-width:0;margin:0;height:38px;background:transparent;cursor:ew-resize}.slider-row input::-webkit-slider-runnable-track{height:2px;background:#c8c8c8}.slider-row input::-webkit-slider-thumb{appearance:none;width:11px;height:20px;background:var(--ink);border:0;border-radius:0;margin-top:-9px}.slider-row input::-moz-range-track{height:2px;background:#c8c8c8}.slider-row input::-moz-range-thumb{width:11px;height:20px;background:var(--ink);border:0;border-radius:0}.slider-row input:disabled{opacity:.45}.inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:22px}.inline-actions button{font-size:12px}.object-section{border-bottom:0;margin-bottom:0;padding-bottom:0}.object-section .section-heading{margin-bottom:5px}.actions{grid-column:2;grid-row:2;display:flex;gap:6px;padding:12px 0 0 26px}.primary-button,.secondary-button{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;font-size:14px;border:1px solid var(--ink)}.primary-button{flex:1;background:var(--ink);color:var(--paper)}.primary-button:disabled{background:var(--panel);color:var(--muted);border-color:var(--line)}.primary-button>span:last-child{font-size:21px}.secondary-button{background:transparent}.actions .secondary-button{justify-content:center}.toast{position:fixed;z-index:90;left:50%;bottom:calc(86px + var(--bottom));transform:translate(-50%,10px);max-width:calc(100vw - 28px);width:max-content;background:var(--ink);color:var(--paper);padding:11px 15px;font-size:12px;line-height:1.6;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Dim reflected safelight, black surroundings and visible tray rims. */
body.dark{--paper:#080606;--ink:#c7aaa4;--muted:#98766e;--line:#34201d;--panel:#20100e;--stage:#080505;color-scheme:dark}.dark .brand{color:#a06a60}.dark .topbar{border-color:#44211c}.dark .edition{color:#74524c}.dark .controls{border-color:#2c1714}.dark .stage{background:radial-gradient(ellipse at 19% 12%,#4d070a22,transparent 65%),linear-gradient(132deg,#120505,#030303 75%)}.dark .stage:before{border:0;inset:0;background:radial-gradient(ellipse at 14% 18%,#780d1030,transparent 50%),repeating-linear-gradient(3deg,transparent 0 8px,#ba422103 9px 10px)}.dark .stage:after{border:0;inset:0;background:linear-gradient(100deg,transparent,#00000080)}.dark .stage-corner{color:#6f3830}.dark .stage-bottom{color:#845248}.safelight{display:none;position:absolute;top:9%;left:12%;width:30px;height:30px;z-index:1;pointer-events:none}.dark .safelight{display:block}.safelight:before{content:'';position:absolute;top:-100px;left:13px;width:3px;height:109px;background:#180607}.safelight:after{content:'';position:absolute;left:-54px;top:-48px;width:140px;height:140px;background:radial-gradient(ellipse,#e51b143a,transparent 65%);filter:blur(10px)}.safelight span{position:absolute;display:block;width:14px;height:14px;aspect-ratio:1;left:8px;top:9px;border-radius:50%;background:#ec4a35;filter:blur(1.5px);box-shadow:0 0 10px #c7211790,0 0 45px 18px #a0091130}.dark .tray{padding:22px;background:linear-gradient(145deg,#35100d,#120b0a 22%,#040404 75%);border-radius:7px;box-shadow:inset 2px 3px 2px #79251b88,inset -3px -4px 2px #55211877,4px 10px 22px #000,0 0 0 3px #180b08;transform:rotate(-1deg)}.dark .tray:before{content:'';position:absolute;inset:9px;border:1px solid #9f3a202d;border-radius:5px;box-shadow:inset 3px 3px 9px #000,inset 0 -2px 1px #a2381720;pointer-events:none;z-index:2}.dark .paper-wrap{filter:brightness(.26);box-shadow:0 0 4px #000;transition:filter .25s ease}.dark #paper{filter:grayscale(1)}.dark .paper-wrap:after{content:'';position:absolute;inset:0;background:#b02b20;opacity:.38;pointer-events:none;transition:opacity .25s ease}.dark.exposing .paper-wrap{filter:brightness(.82)}.dark.exposing .paper-wrap:after{opacity:0}.dark.exposing .stage{background:radial-gradient(ellipse at center,#50423b26,#080505 70%)}.dark .selection{border-color:#e48e77}.dark .selection i{background:#6d382b;border-color:#d69a8b}.dark .object-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.dark .slider-row input::-webkit-slider-runnable-track{background:#4b2a24}.dark .slider-row input::-moz-range-track{background:#4b2a24}.water{display:none;pointer-events:none;position:absolute;inset:12px;z-index:4;overflow:hidden;border-radius:4px;background:linear-gradient(165deg,#6e191112,transparent 50%,#b5401a0a)}.wet .water{display:block}.water:after{content:'';position:absolute;inset:-35%;border:1px solid #ee8b5b22;border-radius:45%;box-shadow:0 0 0 25px #d2502210,0 0 0 60px #d250220b;animation:ripples 5s ease-in-out infinite}.tongs{display:none;position:absolute;right:-20px;bottom:20px;width:12px;height:110px;border:2px solid #713324;border-top:0;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#230a08,#50251b,#160805);transform:rotate(26deg);box-shadow:1px 1px 3px #000;pointer-events:none;z-index:5}.dark .tongs{display:block}.dark-heading{display:flex;align-items:center;gap:8px}.dark-heading h2{font-size:16px}.dark-heading>span:last-child{margin-left:auto;font-size:11px;color:var(--muted)}.live-dot{width:5px;height:5px;border-radius:50%;background:#9f372c}.dark-instruction{font-size:12px;line-height:1.8;margin-top:15px;min-height:44px;color:var(--muted)}.timer{display:flex;align-items:baseline;gap:8px;margin:14px 0 12px}.timer>span{font-size:56px;line-height:1.1;font-weight:400;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.timer small{font-size:11px;color:var(--muted)}.progress-track{height:2px;background:#321a16;margin-bottom:12px}.progress-track i{height:100%;display:block;background:#9f5443;width:0}.exposure-record{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0 20px}#develop{width:100%;font-size:13px;border-color:#5c3229}.baths{display:flex;gap:8px;margin-top:24px}.baths span{flex:1;min-height:48px;display:grid;place-items:center;border:1px solid #3b211b;box-shadow:inset 2px 2px 0 #4f281a40;font-size:11px;color:#805448;border-radius:2px}.baths .active{border-color:#a05b45;color:#d5a091;background:#3f160f}.baths .done{color:#a3796c;border-color:#644030}.result-copy{font-size:21px;line-height:1.6;margin:22px 0 32px}.result-meta{display:grid;grid-template-columns:1fr auto;gap:18px;font-size:13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.result-meta span{color:var(--muted)}.result-meta b{font-weight:400}.result .stage{background:#dfdfdc}.result .paper-wrap{transform:none}.result .stage-bottom{color:#82827d}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:22px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;border-radius:0}dialog::backdrop{background:#000000a8;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.dialog-head h2{font-size:18px}.dialog-actions{display:flex;gap:8px;margin-top:18px}.dialog-actions>*{flex:1;font-size:13px;justify-content:center}.help-copy p{font-size:13px;line-height:1.9;margin:14px 0}.help-copy .small-note{font-size:11px;border-top:1px solid var(--line);padding-top:16px}#confirm-copy{font-size:13px;line-height:1.8;margin:18px 0}#camera-video{display:block;width:100%;max-height:55dvh;background:#171717;object-fit:contain}#export-image{display:block;max-width:100%;max-height:65dvh;margin:auto;object-fit:contain}
@keyframes ripples{0%,100%{transform:translate(1%,-1%) rotate(-8deg);opacity:.35}50%{transform:translate(-2%,2%) rotate(6deg);opacity:.8}}
@media(hover:hover){.source-options button:hover:not(.active){background:#ddd}.material-card:hover{border-color:#898d7e}.material-pick:hover img{transform:translateY(-2px)}.primary-button:hover:not(:disabled){filter:brightness(1.2)}}
@media(max-width:860px){.app-shell{padding:calc(var(--top) + var(--native-toolbar,0px)) max(12px,env(safe-area-inset-right,0px)) var(--bottom) max(12px,env(safe-area-inset-left,0px))}.topbar{flex-basis:64px;gap:12px}.brand{font-size:30px;gap:9px}.brand svg{width:30px;height:30px}.top-actions{gap:12px}.edition{display:none}.workspace{display:flex;flex-direction:column}.preview-column{flex:0 0 auto;padding:4px 0 0}.preview-head{flex-basis:38px}.stage{flex:none;height:clamp(180px,calc(100dvh - var(--top) - var(--bottom) - var(--native-toolbar,0px) - 430px),340px)}.stage:before{inset:12px}.stage:after{left:12px;right:12px}.stage-corner{left:22px;top:18px;font-size:9px}.stage-bottom{bottom:12px;font-size:9px}.preview-footer{min-height:30px;flex-basis:30px;font-size:10px}.controls{flex:1;min-height:0;border-left:0;border-top:1px solid var(--line);padding:12px 0 16px}.control-section{min-width:0;max-width:100%;padding-bottom:14px;margin-bottom:14px}.section-heading{margin-bottom:10px}.source-options button{min-height:42px}.material-tabs{margin-bottom:10px}.material-grid{gap:6px}.material-pick{min-height:80px}.material-pick img{height:44px}.actions{flex:0 0 auto;padding:8px 0;gap:6px;background:var(--paper)}.primary-button,.secondary-button{min-height:50px}.object-section{margin-bottom:0;padding-bottom:0}.dark .stage{height:clamp(220px,calc(100dvh - var(--top) - var(--bottom) - var(--native-toolbar,0px) - 440px),340px)}.dark .tray{padding:16px}.dark .controls{padding-top:14px}.dark .object-section{margin-bottom:14px;padding-bottom:12px}.dark .object-section .slider-row{min-height:36px}.dark .object-section .inline-actions{display:none}.dark-instruction{margin-top:8px;min-height:0}.timer{margin:12px 0 8px}.timer>span{font-size:42px}.exposure-record{margin:9px 0 12px}.baths{margin-top:16px}.baths span{min-height:36px}.dark .stage-corner{left:22px;top:14px}.dark .safelight{left:10%;top:12%}.dark .tongs{height:80px;right:-12px}.result .stage{height:clamp(260px,calc(100dvh - 330px),520px)}.result-copy{font-size:18px;margin:12px 0 16px}.result-meta{padding:12px 0;gap:12px}.result #controls{padding-top:16px}.result .small-note{margin-top:10px}}
@media(max-width:860px) and (max-height:650px){.topbar{flex-basis:52px}.brand{font-size:26px}.preview-head{flex-basis:32px}.preview-head button{min-height:32px}.stage{height:clamp(140px,calc(100dvh - 370px),210px)}.dark .stage{height:clamp(165px,calc(100dvh - 350px),230px)}.preview-footer{flex-basis:26px;min-height:26px}.stage-corner{top:12px}.stage-bottom{bottom:8px}.actions button{min-height:46px}.source-options button{min-height:38px}.controls{padding-top:8px}.result .stage{height:clamp(180px,calc(100dvh - 300px),330px)}}
@media(min-width:560px) and (max-width:860px) and (max-height:620px){.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,.8fr);grid-template-rows:minmax(0,1fr) auto}.preview-column{padding-right:14px;min-height:0}.stage,.dark .stage,.result .stage{flex:1;height:auto}.controls{border-top:0;border-left:1px solid var(--line);padding:12px 0 12px 14px}.actions{padding-left:14px}.stage-corner{font-size:8px}.stage-bottom{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.film-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.film-card{display:flex;align-items:center;gap:7px;padding:6px;border:1px solid var(--line);min-width:0;font-size:11px;text-align:left}.film-card img{width:34px;height:38px;object-fit:contain;background:#ddd}.film-card[aria-pressed="true"]{border-color:var(--ink)}.film-card span{white-space:nowrap}.source-section .small-note{margin-top:10px;line-height:1.7}

.film-frame-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;font-size:13px}.film-frame-row[hidden]{display:none}.film-frame-row>div{display:flex;gap:6px}.film-frame-row button{padding:8px 12px;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}.film-frame-row button[aria-pressed="true"]{background:#171717;color:#f4f4f4}.dark .film-frame-row button[aria-pressed="true"]{background:#b65b51;color:#100807}

.brand .brand-logo{width:160px;height:auto;max-height:72px}.material-pick{justify-content:center;padding:12px 5px 7px}.material-pick img{height:58px}
@media(max-width:860px){.brand .brand-logo{width:128px;max-height:51px}.material-pick img{height:56px}}
@media(max-width:860px) and (max-height:650px){.brand .brand-logo{width:105px;max-height:42px}}

/* Copy revision: preserve number alignment when the caption is omitted. */
.sheet-number{margin-left:auto}.result-meta{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:8px}.result-stat{display:flex;flex-direction:column;gap:8px;min-width:0;text-align:center}.result-stat span{font-size:11px}.result-stat b{white-space:nowrap;font-variant-numeric:tabular-nums}.result-meta .stat-divider{align-self:end;line-height:normal}

.history-actions #undo,.history-actions #redo{width:auto;min-width:44px;padding:4px 6px;font-size:13px;line-height:1.3;white-space:nowrap}

/* All operation panels and dialogs keep their content inside the viewport. */
.controls,dialog{overscroll-behavior-x:none}
#prep-controls,#dark-controls,#result-controls,#object-sliders{min-width:0;max-width:100%}
.controls .section-heading,.film-frame-row,.dialog-head,.dialog-actions{min-width:0;max-width:100%;flex-wrap:wrap}
.film-frame-row>div{min-width:0;max-width:100%;flex-wrap:wrap}
.film-card img{flex-shrink:0}.film-card span{min-width:0;white-space:normal;overflow-wrap:anywhere}
.controls .small-note,.help-copy p,#confirm-copy{overflow-wrap:anywhere}
.slider-row input[type=range]{touch-action:none}
#result-controls .result-meta{border-top:0;padding-top:0}
@media(max-width:360px){.film-frame-row{gap:8px}.film-frame-row button{padding-inline:8px}.film-card{gap:4px;padding:4px}.film-card img{width:26px}.history-actions{gap:2px}.history-actions .text-button{margin-left:4px}}

.source-section .film-frame-row{margin:12px 0 0}
.result-reuse{width:100%;margin-top:14px;justify-content:center}

.order-row{display:grid;grid-template-columns:4em minmax(0,1fr);align-items:center;gap:12px;min-width:0;max-width:100%;margin:8px 0;font-size:13px}.order-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;min-width:0}.order-buttons button{min-width:0;min-height:44px;padding:5px 2px;border:1px solid var(--line);font-size:12px;line-height:1.3;white-space:nowrap}.order-buttons button:not(:disabled){border-color:var(--muted)}
.lock-button{margin-left:auto;min-width:52px;padding:4px 8px}.lock-button[aria-pressed=true]{color:var(--paper);background:var(--ink);text-decoration:none}.selection.is-locked{border-style:dashed}.selection.is-locked i{display:none}.placed-list{min-width:0;margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.placed-list summary{cursor:pointer;min-height:44px;line-height:44px;font-size:13px}.placed-list summary span{font-size:11px;color:var(--muted);margin-left:6px}.placed-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding-bottom:8px}.placed-item{position:relative;min-width:0;min-height:54px;padding:6px;border:1px solid var(--line);background:var(--panel)}.placed-item[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.placed-item img{display:block;width:100%;height:42px;object-fit:contain;pointer-events:none}.lock-mark{position:absolute;right:3px;top:3px;width:12px;height:14px;fill:var(--paper);stroke:var(--ink);stroke-width:1.2;pointer-events:none}#export-image{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;touch-action:auto}

/* Additional UI glyphs */
@font-face{font-family:JCS;src:url('./fonts/jcs-ui-extra.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+3002,U+300C,U+300D,U+4EAB,U+4ECE,U+53D1,U+6301,U+652F,U+677F,U+7565,U+89E3,U+8D77,U+9501,U+9762}
@font-face{font-family:JCS;src:url('./fonts/jcs-medium-extra.woff2') format('woff2');font-weight:500 900;font-display:swap;unicode-range:U+3002,U+300C,U+300D,U+4EAB,U+4ECE,U+53D1,U+6301,U+652F,U+677F,U+7565,U+89E3,U+8D77,U+9501,U+9762}
/* End additional UI glyphs */

.paper-options{grid-template-columns:repeat(2,minmax(0,1fr))}

.top-actions a{color:inherit;display:inline-flex;align-items:center;min-height:44px}.portfolio-meta{flex:0 0 22px;display:flex;align-items:end;justify-content:center;font-size:10px;line-height:1.4;color:var(--muted)}.portfolio-meta a{color:inherit;text-decoration:none}.portfolio-meta a:hover{text-decoration:underline}
@font-face{font-family:PortfolioMeta;src:url(fonts/portfolio-meta.woff2) format("woff2");font-display:swap}#portfolio-return,.portfolio-meta{font-family:PortfolioMeta,system-ui,sans-serif}


@media(min-width:761px){.portfolio-meta{justify-content:flex-end;text-align:right}}

/* Finished-print actions: only Colour Lab uses a filled button and arrow. */
.result .actions{display:grid;grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) minmax(123px,1.35fr);grid-gap:6px;gap:6px}
#result-secondary-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:6px;gap:6px;margin-bottom:2px}
.result .actions #result-secondary-actions .secondary-button{width:100%;background:transparent;color:var(--ink)}


.no-flex-gap.result .actions>*+*{margin-left:0}



/* Finished artwork stays visible; the action block owns its required height. */
.result #controls{display:none}
@media(max-width:860px){.result .preview-column{flex:1;min-height:0}.result .stage{flex:1;height:auto;min-height:100px}}

/* One footer-button rule shared by every processing stage and the colour lab.
   Metrics come from the original Enter Darkroom button. */
.actions>button,.result .actions>button,.result #result-secondary-actions>button,.lab-actions>button{min-width:0;min-height:52px;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:400;line-height:normal;letter-spacing:normal;align-items:center;justify-content:center;grid-gap:12px;gap:12px;white-space:nowrap}
.actions>#primary.primary-button,.actions>#open-colour-lab,.lab-actions>#lab-share{justify-content:space-between}
#primary-arrow,#open-colour-lab>span,#lab-share>span{font-size:21px;line-height:normal}
.no-flex-gap .actions>.primary-button>*+*,.no-flex-gap .lab-actions>.primary-button>*+*{margin-left:12px}
@media(max-width:860px){.actions>button,.result .actions>button,.result #result-secondary-actions>button,.lab-actions>button{min-height:50px}}
/* Keep the same type and padding on narrow screens; let Colour Lab occupy the final row. */
@media(max-width:360px){.result .actions{grid-template-columns:repeat(2,minmax(0,1fr))}.result .actions #open-colour-lab{grid-column:1/-1}}

@media(min-width:560px) and (max-width:860px) and (max-height:620px){.result .actions{grid-template-columns:repeat(2,minmax(0,1fr))}.result .actions #open-colour-lab{grid-column:1/-1}}

/* Shrink only arrow ink; retain its layout box and centre. */
.primary-button>.button-arrow{transform:scale(.92);transform-origin:50% 50%}
