:root{--ink:#203c33;--muted:#697970;--line:#dce4db;--paper:#fffefb;--bg:#f3f3ec;--green:#285d48;--lime:#def08e;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.55}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:9px 13px;min-height:42px}button:hover:not(:disabled){border-color:var(--green);background:#eef5e8}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #94bc87;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--green);text-decoration:none}.topbar{min-height:78px;background:var(--paper);border-bottom:1px solid var(--line);padding:12px max(24px,calc((100vw - 1500px)/2));display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted)}nav{display:flex;align-items:center;gap:20px}main{max-width:1500px;margin:auto;padding:32px 24px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 25px}h1{font-size:clamp(23px,3vw,33px);letter-spacing:-.04em;margin:8px 0}h2{font-size:16px;margin:0 0 12px}h3{font-size:15px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:750;color:#688578}.page-heading p{margin:0;color:var(--muted)}.preview-label{white-space:nowrap;border:1px solid #cbd5c5;background:#e7eddf;padding:7px 12px;border-radius:20px;font-size:11px}.journey{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:0 0 25px;gap:12px}.journey li{font-size:12px;color:var(--muted);border-bottom:2px solid var(--line);padding:0 0 13px}.journey span{display:inline-grid;place-items:center;border-radius:50%;background:var(--green);color:white;width:24px;height:24px;margin-right:8px}.studio-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 22px #203c3304}.controls section{padding:22px;border-bottom:1px solid var(--line)}.controls section:last-child{border:0}.controls h2 span{font-size:11px;color:var(--muted);margin-right:10px}.craft-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.craft-picker button{display:grid;place-items:center;padding:10px 3px;font-size:11px;min-height:66px}.craft-picker i{font-style:normal;font-size:23px;line-height:1.1;margin-bottom:5px}.craft-picker button[aria-pressed=true],.quality-picker button[aria-pressed=true]{background:#eaf0df;border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.muted,small{color:var(--muted);font-size:12px}.upload{border:1px dashed #9aaa96;background:#f8faf3;width:100%;padding:20px 8px;display:flex;align-items:center;flex-direction:column;gap:4px}.upload>span{font-size:25px}.text-button{border:0;background:transparent;width:100%;padding:8px;color:var(--green);font-size:12px}.quality-picker{display:grid;gap:7px}.quality-picker button{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px}.quality-picker small{font-size:10px}.quality-picker b{font-size:12px}label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin:12px 0}input:not([type=checkbox]):not([type=range]),select{min-width:0;max-width:100%;border:1px solid #d4ded0;background:white;border-radius:7px;padding:8px;color:var(--ink)}input[type=number]{width:82px}.input-unit{display:flex;align-items:center;gap:5px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pair label{display:block}.pair input{width:100%;margin-top:5px}.check{justify-content:start}.primary{background:var(--green);color:white;border-color:var(--green);font-weight:650}.primary:hover:not(:disabled){background:#1d4637;color:white}.controls .primary{width:100%;margin-top:12px}#generationStatus{font-size:11px;color:var(--muted)}#generationStatus[data-state=error],#planError{color:#a43d2d;font-size:12px}details{font-size:12px;margin-top:10px}details p{line-height:1.7}summary{cursor:pointer;color:var(--muted)}.workbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);gap:15px}.workbar h2{margin-bottom:3px}.workbar label{margin:0}.image-pair{display:grid;grid-template-columns:1fr 2fr;min-height:450px;background:#eef0e7}figure{margin:0;position:relative;min-width:0}figcaption{font-size:10px;color:var(--muted);position:absolute;left:18px;top:14px;z-index:1}.source-figure{border-right:1px solid #d6dfd0;display:grid;place-items:center;padding:50px 22px 26px}.source-figure img{max-width:100%;max-height:370px;object-fit:contain;border-radius:8px}.source-figure #sourceEmpty{font-size:11px;color:#94a08e}.canvas-stage{display:flex;justify-content:center;align-items:center;min-height:450px;height:450px;overflow:auto;padding:46px 24px 24px;position:relative}.canvas-stage canvas{max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;touch-action:pan-x pan-y;border:1px solid #d4ddcf;background:white;cursor:crosshair;flex:none}#empty{text-align:center}#empty>span{font-size:65px;color:#a2b69b}#empty p{font-size:12px;color:var(--muted)}.view-toolbar{display:flex;align-items:center;gap:9px;padding:12px 18px;border-top:1px solid var(--line);flex-wrap:wrap}.view-toolbar button,.view-toolbar select{font-size:11px;min-height:34px;padding:6px 9px}.view-toolbar label{margin:0;font-size:11px}.view-toolbar input{width:75px}input[type=range]{accent-color:var(--green)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.metrics>div{padding:16px 20px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics small,.metrics b{display:block}.metrics small{font-size:10px;margin-bottom:4px}.metrics b{font-size:14px}.quality-review{margin:0;background:#f5f6ee;border-top:1px solid var(--line);padding:12px 20px;font-size:11px;color:var(--muted)}.making-panel{margin-top:22px}.panel-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:22px 22px 8px}.panel-heading h2{margin-top:5px}.workspace-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);padding:0 22px}.workspace-tabs button{border:0;border-radius:0;background:none;font-size:12px;padding:10px 0;border-bottom:3px solid transparent}.workspace-tabs button[aria-selected=true]{border-bottom-color:var(--green);font-weight:700}.making-panel [role=tabpanel]{padding:20px 22px}#materialNotice,.notice{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto;max-height:350px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;background:#f3f5ee;color:var(--muted);position:sticky;top:0}th,td{padding:10px 12px;border-bottom:1px solid var(--line)}td:first-child{min-width:140px}td .swatch{display:inline-block;width:20px;height:20px;border-radius:5px;border:1px solid #adb8a6;vertical-align:middle;margin-right:8px}td button{min-height:32px;font-size:11px;padding:5px 9px}.coordinate-editor{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.coordinate-editor input{width:64px}.coordinate-editor button{font-size:11px}.export-actions{border-top:1px solid var(--line);padding:18px 22px 8px;display:flex;gap:8px;flex-wrap:wrap}.export-actions button{font-size:12px}.export-actions .primary{margin-left:auto}.export-note{padding:0 22px 10px;font-size:10px;color:var(--muted)}#recipeSteps ol{padding-left:20px}#recipeSteps li{margin-bottom:10px}#planDetails{font-size:12px;background:#f0f4e9;border-radius:10px;padding:13px}.notice{background:#fbf5e7;border-radius:10px;padding:12px}#rowDetail{font-family:monospace;overflow-wrap:anywhere;font-size:12px;max-height:170px;overflow:auto}progress{width:100%;accent-color:var(--green);height:9px;margin:15px 0}#progressText{display:block}.progress-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}footer{max-width:1450px;margin:0 auto 30px;padding:18px 24px;font-size:11px;color:var(--muted);display:flex;gap:15px;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:18px;padding:26px;width:min(460px,calc(100vw - 32px));color:var(--ink);box-shadow:0 20px 70px #0003}dialog::backdrop{background:#15322566}dialog>div{display:flex;gap:10px;justify-content:end}dialog p{font-size:13px}[hidden]{display:none!important}
@media(min-width:1700px){.canvas-stage{height:560px;min-height:560px}.source-figure img{max-height:450px}}@media(max-width:900px){.studio-layout{grid-template-columns:270px minmax(0,1fr);gap:14px}.controls section{padding:16px}.image-pair{grid-template-columns:1fr}.source-figure{display:none}.metrics{grid-template-columns:1fr 1fr}.metrics>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.workbar{align-items:start;flex-direction:column}.topbar nav{gap:8px}nav a{font-size:11px}.page-heading{align-items:start;flex-direction:column}.export-actions .primary{margin-left:0}}@media(max-width:720px){main{padding:22px 14px}.studio-layout{grid-template-columns:1fr}.topbar{padding:12px 14px;flex-wrap:wrap}.topbar nav{width:100%;justify-content:space-between;flex-wrap:wrap}.journey{grid-template-columns:1fr 1fr;gap:8px}.journey li{font-size:11px}.controls{display:grid;grid-template-columns:1fr}.craft-picker{grid-template-columns:repeat(3,1fr)}.canvas-stage{min-height:360px;height:360px}.view-toolbar{padding:12px}.metrics>div{padding:12px}.panel-heading{align-items:start;flex-direction:column}.export-actions button{flex:1}.export-actions .primary{flex-basis:100%}.workspace-tabs{gap:25px}footer{display:block}.quality-picker button small{font-size:11px}}
@media print{body>*{display:none!important}body{background:white}}
/* Export labels must remain horizontal even in the narrow production column. */
.export-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.export-actions button{width:100%;white-space:normal;min-height:44px;line-height:1.5}.export-actions .primary{grid-column:1/-1;margin-left:0}td:first-child{min-width:100px}td:nth-child(2){white-space:nowrap}td button{white-space:nowrap}#saveStatus{overflow-wrap:anywhere}
.settings-toggle{display:none}@media(max-width:720px){.settings-toggle{display:block;text-align:left;margin:0;padding:14px 16px;border:0;border-radius:0;background:#edf3e5;font-weight:650;width:100%}.controls.mobile-collapsed section{display:none}}
.photo-discovery-note{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 0 6px}.controls .photo-disclosure{margin-top:0;border:1px solid #b9cfab;background:#f5f9ee;border-radius:10px;padding:0 10px}.controls .photo-disclosure>summary{padding:12px 0;color:var(--green);font-size:13px;font-weight:700;min-height:44px}.photo-disclosure[open]{padding-bottom:10px}.materials-summary{font-size:12px;font-weight:650;line-height:1.6;margin:0 0 8px}.materials-toggle{width:100%;margin-top:10px;background:#edf4e5;border-color:#b9cfab;font-weight:650;font-size:12px}.making-panel .materials-condensed .table-wrap{max-height:none;overflow:auto}.materials-condensed tbody tr:nth-child(n+4){display:none}.materials-condensed .coordinate-editor{display:none}
.procurement-entry{padding:14px 22px;border-top:1px solid var(--line);display:flex;align-items:center;gap:15px}.procurement-entry p{font-size:11px;color:var(--muted);margin:0}.procurement-entry button{flex:none;font-size:12px}dialog{max-height:85vh;overflow:auto}@media(max-width:720px){.procurement-entry{flex-direction:column;align-items:start}}
@media(max-width:900px){.source-figure{display:grid;min-height:130px;padding:35px 15px 12px;border-right:0;border-bottom:1px solid var(--line)}.source-figure img{max-height:115px}.image-pair{grid-template-columns:1fr}}
.craft-strip{padding:16px 20px;margin-bottom:20px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 16px;align-items:center}.craft-strip h2{margin:4px 0}.craft-strip .craft-picker{grid-template-columns:repeat(9,minmax(0,1fr))}.craft-strip .craft-picker button{min-height:58px}.craft-strip p{grid-column:2;margin:0}.update-overlay{position:absolute;inset:35px 10px 10px;background:#f3f5edee;z-index:3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;padding:20px}.update-overlay small{max-width:260px}.release-check{padding:16px 22px;border-top:1px solid var(--line);background:#f1f5e8;font-size:12px}.release-check p{margin:5px 0}#requestedSize{font-size:11px}#restoreRevision{font-size:11px;width:100%}.controls input[type=range]{width:135px;min-width:0}.workspace{min-width:0}.making-panel{min-width:0}.preview-panel{min-width:0}.canvas-stage[aria-busy=true] canvas{opacity:.25;pointer-events:none}.making-panel[data-stale=true] .table-wrap{opacity:.35}.making-panel[data-stale=true] [data-color]{pointer-events:none}.controls details>summary{font-weight:600}.page-heading{margin-bottom:15px}.journey{margin-bottom:18px}
@media(min-width:1280px){main{max-width:1800px}.studio-layout{grid-template-columns:290px minmax(0,1fr)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}.making-panel{margin-top:0}.making-panel [role=tabpanel]{padding:16px}.making-panel .panel-heading{padding:18px 16px 8px;display:block}.workspace-tabs{padding:0 16px;gap:16px}.table-wrap{max-height:420px}th,td{padding:8px 6px}.coordinate-editor{gap:6px}.export-actions .primary{margin-left:0;width:100%}.export-actions button{flex:1}.procurement-entry{display:block}.procurement-entry p{margin-top:8px}.canvas-stage{height:550px;min-height:550px}.image-pair{grid-template-columns:1fr 2.3fr}.source-figure{padding:40px 12px 18px}.metrics>div{padding:12px}.metrics b{font-size:13px}.view-toolbar{padding:10px}.quality-review{padding:12px}}
@media(max-width:1100px){.craft-strip{grid-template-columns:1fr}.craft-strip .craft-picker{grid-template-columns:repeat(5,minmax(0,1fr))}.craft-strip p{grid-column:1}}
@media(max-width:720px){.craft-strip{padding:14px}.craft-strip .craft-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.craft-strip .craft-picker button{min-height:48px;display:flex;justify-content:center;gap:8px}.craft-picker i{font-size:18px;margin:0}.controls section{padding:16px}.controls #photoControls:not([open]){margin-bottom:0}.controls .quality-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.quality-picker button{display:block;padding:9px 5px;min-height:70px;text-align:center}.quality-picker b,.quality-picker small{display:block}.quality-picker button small{font-size:10px}.preview-panel{scroll-margin-top:15px}.making-panel{scroll-margin-top:15px}.controls label{margin:9px 0}.controls section:first-child{padding-bottom:10px}.controls .upload{padding:12px}.journey{display:none}.preview-label{white-space:normal}.page-heading{gap:8px}.page-heading h1{font-size:23px}.topbar nav a{display:none}.topbar nav{width:auto;flex:1;justify-content:end}.topbar .brand{font-size:16px}.topbar .brand small{display:none}.topbar nav button{font-size:11px;padding:6px}.workbar{flex-direction:row;flex-wrap:wrap}.canvas-stage{padding:40px 12px 16px}.source-figure img{max-height:95px}.controls input[type=range]{width:160px}}

/* Keep the approved workflow; reduce surplus column height, not image detail. */
#specControls{margin-top:0}#specControls>summary{padding:3px 0;font-size:12px;line-height:1.6;color:var(--ink)}
@media(min-width:901px){.controls section{padding:18px 22px}.controls label{margin:9px 0}.controls h2{margin-bottom:10px}.controls .muted{line-height:1.5}.controls #revisionNotice{margin-bottom:0}}
@media(min-width:1280px) and (min-height:640px){
 .workspace{align-self:stretch}
 .preview-panel{position:sticky;top:16px;align-self:start;--preview-stage:clamp(220px,calc(100svh - 410px),720px)}
 .preview-panel .image-pair{min-height:0}
 .preview-panel .canvas-stage{height:var(--preview-stage);min-height:0}
 .preview-panel .source-figure img{max-height:calc(var(--preview-stage) - 80px)}
 .making-panel .table-wrap{max-height:320px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Overlay only: preserve approved page controls, columns and responsive breakpoints. */
#cleanupDialog{width:min(700px,calc(100vw - 28px));max-height:90svh;overflow:auto}
.cleanup-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cleanup-comparison figure{margin:0;min-width:0}.cleanup-comparison canvas{display:block;width:100%;height:auto;max-height:280px;object-fit:contain;image-rendering:pixelated;background:white}.cleanup-comparison figcaption{position:static;font-size:12px;margin-bottom:7px}#cleanupDialog>div:last-child{display:flex;gap:8px;flex-wrap:wrap}
#advancedDialog{width:min(760px,calc(100vw - 28px));max-height:90svh;overflow:auto}#advancedDialog select{width:100%;min-width:0}#advancedDialog label{min-width:0}#advancedDialog .pair{min-width:0}#advancedDialog .pair label{margin:4px 0}#advancedDialog input[type=number]{width:100%;min-width:0}.advanced-actions{display:flex;gap:8px;flex-wrap:wrap}
