*{box-sizing:border-box} :root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#252c29;background:#f5f6f2;font-synthesis:none}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #a6c3ad;outline-offset:3px}button{border:1px solid #e1e6de;background:#fff;color:inherit;border-radius:9px;transition:background .15s}button:hover:not(:disabled){background:#eef2ea}main{max-width:1240px;margin:auto;padding:42px 32px 0}.workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);gap:24px;align-items:start}.panel{background:#fff;border:1px solid #e0e5dd;border-radius:17px;overflow:hidden;box-shadow:0 4px 18px #23352b03}.panel-title{height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0e9}h2{font-size:15px;display:flex;align-items:center;gap:10px;margin:0}.text-button{border:0;background:none;font-size:12px;color:#55714f}.stage{margin:22px 22px 0;height:410px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background-color:#f3f5f0;background-image:radial-gradient(#d6ded2 .7px,transparent .7px);background-size:14px 14px;border:1px solid #e7ebe3;border-radius:10px}.stage.dragover{outline:3px solid #6c916a}.upload{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 10px;width:100%}.upload-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:#e6eddf;font-size:32px;color:#64805b;margin-bottom:8px}.upload strong{font-size:19px;font-weight:600}.upload>span:not(.upload-icon){font-size:12px;color:#7a8474}canvas{display:block;touch-action:none;cursor:grab;box-shadow:0 3px 18px #0002;max-width:100%;max-height:100%}canvas:active{cursor:grabbing}.grid{position:absolute;pointer-events:none;background:linear-gradient(to right,transparent 33.1%,#ffffff90 33.1%,#ffffff90 33.5%,transparent 33.5%,transparent 66.4%,#ffffff90 66.4%,#ffffff90 66.8%,transparent 66.8%),linear-gradient(to bottom,transparent 33.1%,#ffffff90 33.1%,#ffffff90 33.5%,transparent 33.5%,transparent 66.4%,#ffffff90 66.4%,#ffffff90 66.8%,transparent 66.8%)}[hidden]{display:none!important}.canvas-caption{margin:12px 24px 20px;display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#92998e}.canvas-caption span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#size-badge{white-space:nowrap;font-variant-numeric:tabular-nums}.toolbar{display:flex;justify-content:center;gap:12px}.toolbar button{font-size:20px;padding:8px 14px;display:flex;align-items:center;gap:6px;border-color:#e9ece5}.toolbar span{font-size:11px}.toolbar button[aria-pressed=true]{background:#e5eddf}.zoom-row{display:flex;align-items:center;gap:12px;margin:24px 30px 0;font-size:12px;color:#7b8576}.zoom-row input{flex:1;min-width:0}.zoom-row button{width:29px;height:29px;border:0;background:#f5f6f2}.zoom-row output{width:38px;font-size:11px;text-align:right}input[type=range]{accent-color:#58764c;width:100%;height:20px}.gesture-hint{text-align:center;color:#9aa191;font-size:10px;margin:16px 0 23px}.settings-content{padding:24px}.section-label{font-size:13px;font-weight:600;display:flex;justify-content:space-between}.section-label>span{font-size:10px;letter-spacing:1px;color:#9aa18e;font-weight:400}.dimensions{display:flex;align-items:end;gap:12px;margin:16px 0 12px}.dimensions label{flex:1;min-width:0;font-size:11px;color:#87917e}.dimensions input{display:block;margin-top:8px;width:100%;height:46px;border:1px solid #dfe5d9;border-radius:8px;padding:0 13px;font-size:20px;color:#34432e;background:#fafbf8}.dimensions button{height:46px;border:none;background:none;font-size:23px;color:#829075}.presets{display:flex;gap:6px}.presets button{flex:1;font-size:11px;white-space:nowrap;padding:8px 4px;background:#f8faf5;border:1px solid #edf0e8}.space{margin-top:25px}.modes{display:flex;gap:8px;margin-top:13px}.modes button{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 4px;background:#fff}.modes strong{font-size:11px;font-weight:500}.modes .selected{border-color:#77966b;background:#f3f7ed}.color-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-top:16px}input[type=color]{border:0;background:none;width:50px}details{margin:22px 0;padding:16px 0;border-top:1px solid #edf0e8;border-bottom:1px solid #edf0e8}summary{font-size:12px;cursor:pointer}summary span{float:right;font-size:10px;color:#969f8e}.adjust{display:flex;align-items:center;gap:12px;font-size:11px;margin-top:15px;white-space:nowrap}.adjust output{min-width:35px}.check{font-size:12px;display:flex;align-items:center;margin-top:14px;gap:6px}.export-options{display:flex;gap:18px}.export-options label{flex:1;min-width:0;font-size:11px}.export-options select{display:block;width:100%;margin-top:10px;padding:9px;border-radius:7px;border:1px solid #e1e6db;background:#fafbf8;font-size:11px}.export-options input{margin-top:14px}.export-options output{float:right;color:#89947e}#notice{font-size:11px;color:#7e8974;line-height:1.7;min-height:36px;margin:18px 0 12px}#notice.error{color:#ac4437}.primary{width:100%;height:49px;color:#fff;background:#345a43;border:0;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px}.primary:hover:not(:disabled){background:#274a35}.primary>span:first-child{font-size:22px}.primary #export-size{font-size:10px;opacity:.65;margin-left:10px}@media(min-width:900px){.editor{position:sticky;top:20px}}@media(max-width:760px){main{padding:27px 16px 0}.workspace{grid-template-columns:1fr;gap:18px}.panel-title{height:57px;padding:0 18px}.stage{margin:14px 14px 0;height:330px}.canvas-caption{margin:11px 16px 16px}.toolbar{gap:8px}.toolbar button{padding:9px 12px}.zoom-row{margin:18px 20px 0}.gesture-hint{margin-bottom:18px}.settings-content{padding:20px}.download-area{position:sticky;bottom:0;background:#fff;padding:12px 0 max(8px,env(safe-area-inset-bottom))}.upload strong{font-size:18px}.primary{height:52px}.dimensions input{font-size:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Compact, task-focused workspace. */
.photo-preset{display:block;margin:14px 0 10px;font-size:12px}
.photo-preset>span{display:flex;justify-content:space-between;align-items:center;gap:8px}
.photo-preset small{font-size:10px;color:#87917e}
.photo-preset select{display:block;width:100%;min-height:44px;margin-top:8px;padding:10px;border:1px solid #dfe5d9;border-radius:8px;background:#fafbf8;color:inherit;font:inherit}
:root{background:#f7f7f7;color:#272b28}
main{max-width:1060px;padding:20px;margin:auto}
.workspace{gap:16px}
.panel{border-color:#e7e9e5;border-radius:12px;box-shadow:none}
.panel-title{height:50px;padding:0 18px}
h2{font-size:14px;font-weight:600}
.text-button{min-height:40px;padding:0 8px}
.stage{margin:16px 16px 0;background:#f4f5f3;border:0;border-radius:8px}
.upload{gap:8px;min-height:180px}
.upload-icon{width:auto;height:auto;background:none;color:#6e7a68;font-size:32px;margin:0}
.upload strong{font-size:14px;font-weight:500}
.canvas-caption{margin:10px 18px 14px}
.toolbar{gap:8px}
.toolbar button{min-height:42px;border:0;background:#f5f6f3}
.zoom-row{margin:16px 20px 0}
.zoom-row button{min-width:40px;height:40px}
.gesture-hint{margin:8px 0 16px;font-size:11px}
.settings-content{padding:18px}
.dimensions{margin:12px 0 10px}
.presets button{min-height:38px}
.space{margin-top:20px}
.modes{gap:0;background:#f4f5f3;border-radius:8px;padding:3px;margin-top:10px}
.modes button{border:0;background:transparent;padding:12px 4px;border-radius:6px}
.modes strong{font-size:12px}
.modes .selected{background:#fff;box-shadow:0 1px 4px #0000000d;color:#345a43}
details{margin:18px 0;padding:14px 0}
summary{font-size:13px}
.export-options select{font-size:14px;min-height:42px}
#notice{min-height:0;margin:14px 0 0}
#notice:empty{display:none}
.download-area{padding-top:18px}
@media(max-width:760px){
 main{padding:10px 10px max(14px,env(safe-area-inset-bottom))}
 .workspace{gap:10px}
 .panel-title{height:46px;padding:0 14px}
 .stage{margin:10px 10px 0;height:clamp(220px,36svh,320px)}
 .settings-content{padding:16px}
 .canvas-caption{margin:8px 14px 10px}
 .toolbar button{padding:8px 12px}
 .zoom-row{margin:10px 16px 0}
 .gesture-hint{margin:4px 0 12px}
 .download-area{padding-top:14px}
}
