.curve-control{display:grid;gap:8px;padding:12px;border:1px solid #eadfd7;border-radius:13px;background:#fff9f5}.curve-control>span{display:flex;justify-content:space-between;align-items:baseline}.curve-control b{color:#5d5a63}.curve-control small{color:#8b7f7a;font-size:12px;font-weight:500}.curve-control svg{width:100%;aspect-ratio:1.45;background:#403d3e;border-radius:8px;touch-action:none}.curve-grid{stroke:#fff3;stroke-width:.6}.curve-line{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.curve-dot{fill:#fff;stroke:#df7d66;stroke-width:2;filter:drop-shadow(0 1px 2px #0008)}:root{font-family:PingFang SC,Hiragino Sans GB,system-ui,sans-serif;color:#393b4c;background:#fffaf5}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 12% 8%,#ffe8dc 0 8%,transparent 25%),radial-gradient(circle at 86% 12%,#e2f5ec 0 7%,transparent 23%),#fffaf5}button,input,select{font:inherit}button{cursor:pointer}.loading{min-height:100dvh;display:grid;place-items:center;color:#9a776e}.login-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-panel{width:min(100%,440px);padding:42px;background:#fffdfb;border:1px solid #f2e7df;border-radius:26px;box-shadow:0 18px 60px #a8755a18}.petal{color:#c87868;font-size:14px;font-weight:700;letter-spacing:.08em}.login-panel h1{font-size:32px;letter-spacing:-.04em;margin:12px 0}.login-panel p{line-height:1.7;color:#77788a}.login-panel form{display:grid;gap:14px;margin-top:28px}.login-panel label,.control{display:grid;gap:7px;font-size:14px;font-weight:600}.login-panel input,.control input{height:48px;border:1px solid #eadfd7;border-radius:13px;padding:0 13px;background:#fff}.login-panel .remember-login{display:flex;align-items:center;gap:9px;font-weight:500;color:#77788a}.login-panel .remember-login input{appearance:auto;width:18px;height:18px;margin:0;padding:0;accent-color:#d88470}.login-panel button,.soft-button{min-height:48px;border:0;border-radius:14px;background:#d88470;color:#fff;font-weight:700}.login-panel small{min-height:18px;color:#a76c62}.workbench{max-width:1140px;margin:auto;padding:52px 28px}.workbench header,.editor-header{display:flex;align-items:end;justify-content:space-between;gap:24px}.workbench h1,.editor h1{margin:10px 0 6px;font-size:34px;letter-spacing:-.04em}.workbench p{margin:0;color:#747789}.soft-button{padding:0 18px}.home-actions{display:flex;align-items:center;gap:16px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;margin-top:36px}.new-template,.template-card{min-height:230px;text-align:left;border:1px solid #eee0d6;border-radius:22px;background:#fffdfb;padding:18px;color:#3d4052}.new-template{display:grid;place-content:center;gap:8px;text-align:center;border-style:dashed;background:#fff8f2}.new-template b{font-size:35px;color:#d88470;font-weight:400}.new-template small,.template-card small{color:#838395}.thumbnail{height:170px;width:100%;object-fit:contain;object-position:center;border-radius:14px;margin-bottom:14px;background:#f6ece5}.template-card{display:grid;align-content:start;gap:6px}.template-card-actions{display:flex;gap:8px;margin-top:8px}.template-card-actions button{flex:1;min-height:36px;border:1px solid #e7d8cf;border-radius:9px;background:#fff;color:#665e63;font-weight:650}.template-card-actions .template-delete{color:#b96150;background:#fff7f4}.temporary-note{margin-top:28px!important;font-size:13px;color:#a48c82!important}.draft-section{margin-top:28px;padding:18px;border:1px solid #ecdfd6;border-radius:20px;background:#fffdfb}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px}.section-heading h2{margin:6px 0 0;font-size:20px}.section-heading small{color:#8d7f7b;font-size:12px}.draft-list{display:flex;gap:10px;overflow-x:auto;margin-top:14px;padding-bottom:2px}.draft-card{flex:0 0 min(360px,82vw);display:grid;gap:6px;padding:14px;border:1px solid #eadfd7;border-radius:14px;background:#fff8f3;text-align:left;color:#554f58}.draft-card img{width:100%;height:104px;margin-bottom:4px;border-radius:10px;object-fit:cover;background:#f6ece5}.draft-card small{color:#887d7d;line-height:1.45}.editor{max-width:1440px;margin:auto;padding:30px 28px 60px}.editor-header{align-items:center}.editor-actions{display:flex;align-items:center;gap:10px}.draft-button{min-height:48px;padding:0 15px;border:1px solid #d8c8bf;border-radius:14px;background:#fffdfb;color:#765f59;font-weight:700}.text-button{border:0;background:none;color:#806d69;padding:8px 0;font-weight:600}.steps{margin:24px 0 12px;padding:15px;display:flex;align-items:stretch;gap:12px;border:1px solid #ecdfd6;border-radius:18px;background:#fffdfa}.steps label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#625d68}.steps .drop-zone{min-width:230px;min-height:58px;padding:8px 11px;border:1px dashed #dcc8bb;border-radius:12px;background:#fff9f5;transition:.15s ease}.steps .drop-zone span{font-size:12px;font-weight:500;color:#987c72}.steps .drop-zone.drag-over{border-color:#d88470;background:#ffefe7;box-shadow:0 0 0 3px #f4c8ba66}.steps input{width:145px;font-size:12px}.steps .export-size{min-width:150px;padding:8px 11px;border:1px solid #dcc8bb;border-radius:12px;background:#fff9f5}.steps .export-size select{min-width:92px;border:0;background:transparent;color:#765f59;font:inherit}.steps .export{margin-left:auto;background:#6e9f8d}.steps .save-photos{margin-left:0;background:#d88470}.preview-strip{margin:0 0 14px;padding:15px;border:1px solid #ecdfd6;border-radius:18px;background:#fffdfa}.preview-strip>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.preview-strip small{color:#857e83;font-size:12px}.preview-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:3px}.preview-wrap{position:relative;flex:0 0 92px}.preview-item{width:92px;padding:0;border:1px solid #eadfd7;border-radius:12px;overflow:hidden;background:#fff;color:#555}.preview-item img{display:block;width:90px;height:70px;object-fit:cover;background:#f6ece5}.preview-item span{position:absolute;transform:translate(5px,-23px);width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#ffffffd9;font-size:11px;font-weight:700}.preview-item small{display:block;overflow:hidden;padding:5px 6px;white-space:nowrap;text-overflow:ellipsis;font-size:11px}.preview-item.active{border:2px solid #d88470;box-shadow:0 0 0 2px #f6cbbd55}.preview-delete{position:absolute;top:-7px;right:-7px;z-index:2;display:grid;width:25px;height:25px;place-items:center;border:2px solid #fff;border-radius:50%;background:#c96f5d;color:#fff;font-size:21px;line-height:1;box-shadow:0 2px 7px #563b3333}.editor-message{margin:12px 0 22px;color:#8d6c63;font-size:14px}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}.canvas-area{height:min(68dvh,680px);min-height:440px;overflow:hidden;padding:20px;border:1px solid #ece0d7;border-radius:24px;background:#fffdfb;display:grid;place-items:center}.canvas-stage{position:relative;width:100%;height:100%;min-height:0;display:grid;place-items:center}.canvas-stage canvas:not(.brush-lens){display:block;max-width:100%;max-height:100%;width:auto;height:auto;background:#f7f0ec;box-shadow:0 10px 36px #72574d1c}.canvas-stage .brush-lens{position:absolute;z-index:2;width:132px;height:132px;box-sizing:border-box;border:3px solid #fff;border-radius:50%;background:#fff;pointer-events:none;opacity:0;transition:opacity .1s ease;box-shadow:0 0 0 2px #d88470,0 8px 22px #563b3355}.editor-dock{overflow:hidden;border:1px solid #ecdfd6;border-radius:18px;background:#fffdfb}.template-picker-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:24px;background:#352d2a66}.template-picker{width:min(780px,100%);max-height:min(760px,calc(100dvh - 48px));overflow:auto;border:1px solid #ecded5;border-radius:22px;background:#fffdfb;box-shadow:0 24px 80px #392a2550}.template-picker-header{position:sticky;z-index:1;top:0;display:flex;justify-content:space-between;gap:18px;padding:20px 22px 16px;border-bottom:1px solid #f0e4dc;background:#fffdfb}.template-picker-header h2{margin:3px 0 4px;color:#3d4052;font-size:22px}.template-picker-header p,.template-picker-empty{margin:0;color:#82777b;font-size:13px;line-height:1.45}.template-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:14px;padding:18px 22px 22px}.template-picker-item{display:grid;gap:5px;min-width:0;padding:10px;border:1px solid #eadcd4;border-radius:14px;background:#fff;text-align:left;color:#494555}.template-picker-item.selected{border-color:#d88470;box-shadow:0 0 0 2px #f9dcd2}.template-picker-item img{width:100%;height:132px;border-radius:9px;object-fit:contain;background:#f6ece5}.template-picker-item strong,.template-picker-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-picker-item small{color:#b97868}.template-picker-empty{padding:0 22px 24px}@media(min-width:761px){.editor.has-background{max-width:none;padding-right:clamp(24px,3vw,56px);padding-left:clamp(24px,3vw,56px)}.editor.has-background.has-foregrounds .editor-message{margin:10px 0 14px}.editor.has-background.has-foregrounds .editor-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px}.editor.has-background.has-foregrounds .preview-strip{grid-column:1 / -1;margin:0}.editor.has-background.has-foregrounds .canvas-area{height:min(78dvh,900px);min-height:560px}.editor.has-background.has-foregrounds .editor-dock{position:sticky;top:14px}}@media(min-width:1180px){.editor.has-background.has-foregrounds .editor-layout{grid-template-columns:224px minmax(520px,1fr) 334px;align-items:stretch}.editor.has-background.has-foregrounds .preview-strip{grid-column:auto;display:flex;flex-direction:column;min-height:0;max-height:min(78dvh,900px);margin:0}.editor.has-background.has-foregrounds .preview-strip>div:first-child{display:block;margin-bottom:10px}.editor.has-background.has-foregrounds .preview-strip>div:first-child small{display:block;margin-top:4px;line-height:1.4}.editor.has-background.has-foregrounds .preview-list{flex:1 1 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto;padding:2px 4px 4px 0}.editor.has-background.has-foregrounds .preview-wrap{flex:0 0 auto;width:100%}.editor.has-background.has-foregrounds .preview-item{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;width:100%;min-height:68px;text-align:left}.editor.has-background.has-foregrounds .preview-item img{grid-row:1 / 3;width:70px;height:66px}.editor.has-background.has-foregrounds .preview-item span{position:static;align-self:end;width:auto;height:auto;margin:0 8px;transform:none;background:transparent;color:#b86c59;font-size:11px}.editor.has-background.has-foregrounds .preview-item small{align-self:start;padding:1px 8px 0;white-space:nowrap}.editor.has-background.has-foregrounds .canvas-area{height:min(78dvh,900px);min-height:560px}.editor.has-background.has-foregrounds .editor-dock{max-height:min(78dvh,900px);overflow-y:auto}.editor.has-background.has-foregrounds{display:grid;grid-template-columns:246px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:18px;align-items:start;padding-top:16px}.editor.has-background.has-foregrounds .editor-header{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:13px}.editor.has-background.has-foregrounds .editor-heading{display:block}.editor.has-background.has-foregrounds .editor-heading h1{margin:4px 0 0;font-size:23px;line-height:1.25}.editor.has-background.has-foregrounds .editor-actions{display:grid;grid-template-columns:1fr;gap:8px}.editor.has-background.has-foregrounds .editor-actions button{width:100%}.editor.has-background.has-foregrounds .steps{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr;gap:9px;margin:14px 0 0;padding:11px}.editor.has-background.has-foregrounds .steps .drop-zone,.editor.has-background.has-foregrounds .steps .export-size{min-width:0;width:100%}.editor.has-background.has-foregrounds .steps .drop-zone{display:grid;grid-template-columns:auto 1fr}.editor.has-background.has-foregrounds .steps .drop-zone input{grid-column:1 / -1;width:100%}.editor.has-background.has-foregrounds .steps .export{width:100%;margin-left:0}.editor.has-background.has-foregrounds .editor-message{grid-column:1;grid-row:3;margin:12px 0 0;font-size:12px;line-height:1.5}.editor.has-background.has-foregrounds .editor-layout{grid-column:2;grid-row:1 / span 3;display:grid;grid-template-columns:minmax(0,1fr) 326px;grid-template-rows:auto auto;gap:16px;height:auto;min-height:0}.editor.has-background.has-foregrounds .canvas-area{grid-column:1;grid-row:1 / -1;height:auto;min-height:0}.editor.has-background.has-foregrounds .canvas-stage{display:block;height:auto}.editor.has-background.has-foregrounds .canvas-stage canvas:not(.brush-lens){width:100%;height:auto;max-height:none}.editor.has-background.has-foregrounds .editor-dock{position:static;grid-column:2;grid-row:1;max-height:min(42dvh,390px)}.editor.has-background.has-foregrounds .brush-panel{grid-template-columns:1fr 1fr;gap:8px}.editor.has-background.has-foregrounds .brush-panel>button:nth-child(3),.editor.has-background.has-foregrounds .brush-panel .control{grid-column:1 / -1}.editor.has-background.has-foregrounds .preview-strip{grid-column:2;grid-row:2;align-self:start;max-height:min(66dvh,720px);overflow:hidden}}.dock-tabs,.adjustment-tabs{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:12px 14px;scrollbar-width:none}.dock-tabs::-webkit-scrollbar,.adjustment-tabs::-webkit-scrollbar{display:none}.dock-tabs button,.adjustment-tabs button{flex:0 0 auto;min-height:40px;padding:0 13px;border:1px solid #e6d9d0;border-radius:10px;background:#fff;color:#655e65;font-weight:650}.dock-tabs button.active,.adjustment-tabs button.active{border-color:#d88470;background:#d88470;color:#fff}.dock-content{min-height:62px;padding:0 14px 14px}.dock-content>p{margin:0;color:#857e83;font-size:12px;line-height:1.45}.adjustment-dock{padding:0 0 14px}.adjustment-dock .adjustment-tabs{border-top:1px solid #f0e4dc;background:#fff8f3}.adjustment-dock .control,.adjustment-dock .curve-control{margin:0 14px}.brush-panel{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:end;gap:12px}.brush-panel>button{min-height:40px;padding:0 13px;border:1px solid #e6d9d0;border-radius:10px;background:#fff;color:#655e65}.brush-panel>button:disabled{opacity:.45;cursor:not-allowed}.brush-panel>button.active{border-color:#d88470;background:#ffede6;color:#b9604d}.tool-row button,.brush-box button{border:1px solid #e6d9d0;background:#fff;border-radius:9px;min-height:34px;padding:0 10px;color:#655e65}.tool-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.tool-row button.active{background:#d88470;color:#fff;border-color:#d88470}.control{gap:6px!important}.control span{display:flex;justify-content:space-between;font-weight:600;color:#5d5a63}.control b{font-variant-numeric:tabular-nums;color:#ca806f}.control input{accent-color:#d88470;width:100%}@media(max-width:760px),(hover:none)and (pointer:coarse){.workbench,.editor{padding:28px 16px}.workbench header,.editor-header{align-items:start;flex-direction:column}.workbench h1,.editor h1{font-size:29px}.soft-button{width:100%}.home-actions{width:100%;gap:12px}.home-actions .text-button{width:auto;padding:8px}.template-grid{grid-template-columns:1fr 1fr;gap:12px}.section-heading{align-items:start;flex-direction:column;gap:5px}.new-template,.template-card{min-height:190px;padding:13px}.thumbnail{height:110px}.steps{display:grid;grid-template-columns:1fr;gap:10px}.steps .drop-zone{min-width:0;justify-content:space-between}.steps .export-size{justify-content:space-between}.steps input{width:170px}.steps .export{margin-left:0}.preview-strip>div:first-child{display:block}.preview-strip>div:first-child small{display:block;margin-top:5px}.editor-layout{grid-template-columns:1fr}.canvas-area{height:52dvh;min-height:300px;padding:12px}.dock-tabs,.adjustment-tabs{padding:10px 12px}.dock-tabs button,.adjustment-tabs button{min-height:38px;font-size:13px}.dock-content{padding:0 12px 12px}.adjustment-dock{padding-bottom:12px}.adjustment-dock .control,.adjustment-dock .curve-control{margin:0 12px}.brush-panel{grid-template-columns:1fr}.editor-header .soft-button{width:100%}.editor.has-background{display:flex;flex-direction:column}.editor.has-background .editor-header{order:1;flex-direction:row;align-items:center;width:100%}.editor.has-background .editor-header .editor-heading{display:none}.editor.has-background .editor-header .editor-actions{display:flex;margin-left:auto}.editor.has-background .editor-header .soft-button{width:auto}.editor.has-background .editor-header .draft-button,.editor.has-background .editor-header .soft-button{min-height:42px;padding:0 10px;font-size:13px}.editor.has-background .editor-layout{order:2;width:100%;margin-top:10px}.editor.has-background .steps{order:3;width:100%}.editor.has-background .preview-strip{order:4;width:100%}.editor.has-background .editor-message{order:5;width:100%}.editor.has-background.has-foregrounds{display:flex;grid-template-columns:none;grid-template-rows:none;column-gap:0;align-items:stretch}.editor.has-background.has-foregrounds .editor-header{display:flex;grid-column:auto;grid-row:auto;flex-direction:row;align-items:center;gap:10px}.editor.has-background.has-foregrounds .editor-heading{display:none}.editor.has-background.has-foregrounds .editor-actions{display:flex;grid-template-columns:none;margin-left:auto}.editor.has-background.has-foregrounds .editor-actions button{width:auto}.editor.has-background.has-foregrounds .steps,.editor.has-background.has-foregrounds .editor-message{grid-column:auto;grid-row:auto;margin:12px 0 0}.editor.has-background.has-foregrounds .editor-layout{display:flex;flex-direction:column;grid-column:auto;grid-row:auto;width:100%;height:auto;margin-top:10px}.editor.has-background.has-foregrounds .canvas-area{order:1;width:100%;height:52dvh;min-height:300px;grid-column:auto;grid-row:auto}.editor.has-background.has-foregrounds .canvas-stage{display:grid;height:100%}.editor.has-background.has-foregrounds .canvas-stage canvas:not(.brush-lens){width:auto;height:auto;max-width:100%;max-height:100%}.editor.has-background.has-foregrounds .editor-dock{order:2;width:100%;max-height:none;grid-column:auto;grid-row:auto}.editor.has-background.has-foregrounds .preview-strip{order:3;width:100%;max-height:none;margin:0;grid-column:auto;grid-row:auto}.template-picker-backdrop{padding:14px}.template-picker{max-height:calc(100dvh - 28px);border-radius:18px}.template-picker-header{padding:16px}.template-picker-header h2{font-size:18px}.template-picker-grid{grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px 18px}.template-picker-item img{height:118px}}@media(max-width:390px){.template-grid{grid-template-columns:1fr}.steps input{width:150px}.preview-wrap{flex-basis:80px}.preview-item{width:80px}.preview-item img{width:78px;height:62px}}
