:root{font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#243832;background:#f5f8f7;font-synthesis:none;--green:#176056;--muted:#71837d;--line:#e1e9e5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,label.upload-label{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.43;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.upload-label:focus-within{outline:3px solid #65a99b;outline-offset:3px}a{color:var(--green)}.header{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.brand{display:flex;align-items:center;gap:12px;color:#203d34;text-decoration:none;font-weight:750;font-size:23px;letter-spacing:-.8px}.brand-caption{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:1px;margin-left:10px}.brand-icon{display:grid;grid-template-columns:repeat(2,11px);gap:3px;transform:rotate(-8deg)}.brand-icon i{height:11px;background:var(--green);border-radius:2px}.brand-icon i:nth-child(2){background:#b5d3a7}.local-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:#61756d}.local-badge span{width:7px;height:7px;background:#4e987a;border-radius:50%}main{max-width:1400px;padding:0 48px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;padding:38px 0 32px;gap:20px}h1{font-size:32px;letter-spacing:-1px;font-weight:650;margin:0 0 10px}.intro p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.primary,.secondary{border-radius:8px;padding:12px 20px;border:1px solid transparent;display:inline-flex;justify-content:center;align-items:center;gap:9px;font-weight:600;font-size:14px;text-decoration:none}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:#114d45}.secondary{background:#fff;border-color:#cddbd4;color:#31594d}.secondary:hover:not(:disabled){background:#edf5f0}.full{width:100%}.upload-label{position:relative;cursor:pointer;overflow:hidden}.upload-label input{position:absolute;opacity:0;width:1px;height:1px;left:0;bottom:0}.intro .primary span{font-size:22px;font-weight:350}.workbench{display:grid;grid-template-columns:300px minmax(0,1fr);border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 7px 28px #244d3505}.controls{border-right:1px solid var(--line)}.control-section{padding:24px 22px;border-bottom:1px solid var(--line)}.control-section:last-child{border-bottom:0}h2{font-size:14px;margin:0 0 17px;font-weight:650}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mode{background:#fff;text-align:left;padding:11px 9px;border:1px solid var(--line);border-radius:8px;color:#4b6359;min-width:0}.mode.selected{border-color:var(--green);background:#edf5f0;box-shadow:inset 0 0 0 .5px var(--green)}.mode-icon{display:block;font-size:25px;line-height:32px;color:#668877;font-family:Arial,sans-serif}.mode strong{font-size:12px;display:block;margin:6px 0}.mode small{font-size:10px;display:block;color:var(--muted);white-space:nowrap}.field{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 17px;font-size:12px;color:#52685d}.field select{max-width:165px}.field select,.field input[type=number]{min-height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#314d3f;font-size:11px}.field input[type=number]{width:85px}.field>span{display:flex;gap:8px;align-items:center}.field input[type=range]{accent-color:var(--green);width:120px}.field output{font-size:11px;min-width:16px}.color-field{border:1px solid var(--line);border-radius:5px;padding:4px 9px;font-size:11px}.color-field input{padding:0;border:0;background:none;width:22px;height:22px;cursor:pointer}.save-hint{text-align:center;color:var(--muted);font-size:10px;margin:12px 0 0}.workspace{padding:0 26px;min-width:0;background:#fcfdfc}.canvas-toolbar{height:65px;display:flex;align-items:center;justify-content:space-between;gap:10px}.canvas-toolbar strong{font-size:13px}.canvas-toolbar #dimensions{font-size:10px;color:var(--muted);margin-left:14px}.text-button{color:#697e72;background:none;border:0;padding:7px 0;font-size:12px}.text-button:hover:not(:disabled){color:var(--green)}.canvas-stage{min-height:455px;height:470px;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:28px;border:1px solid #e0e8e3;border-radius:8px;background-color:#f0f4f1;background-image:radial-gradient(#b8c8be 0.65px,transparent .65px);background-size:14px 14px;transition:background-color .15s}.canvas-stage.dragover{outline:2px dashed var(--green);background-color:#e0eee4}#preview{max-width:100%;height:auto;box-shadow:0 5px 25px #1f42361a;flex-shrink:0}#preview[hidden]{display:none}.empty{text-align:center;margin:auto;color:#5c7464}.empty-art{display:grid;grid-template-columns:repeat(3,31px);gap:5px;margin:0 auto 25px;width:max-content;transform:rotate(-7deg)}.empty-art div{height:31px;background:#fff;border:1px solid #ccdace;border-radius:3px}.empty-art div:nth-child(2),.empty-art div:nth-child(6){background:#b4cdb8}.empty-art div:nth-child(4){background:#d7dfab;transform:translate(-5px,1px)}.empty-art div:nth-child(9){background:#9bbeb1;transform:translate(4px,3px) rotate(11deg)}.empty h2{font-size:19px;margin-bottom:10px}.empty p{font-size:12px;line-height:1.9;color:#849489;margin-bottom:19px}.empty .secondary{font-size:12px;padding:10px 25px}.empty small{display:block;margin-top:15px;font-size:10px;color:#8b9b90}.photos-header{display:flex;justify-content:space-between;gap:10px;margin:25px 0 15px}.photos-header h2{margin:0;font-size:13px}.photos-header h2 span{margin-left:7px;color:#789887;font-weight:400}.photos-header p{font-size:10px;color:#8b9b90;margin:7px 0 0}.photos{list-style:none;display:flex;gap:10px;overflow-x:auto;padding:0 0 8px;margin:0}.photo{width:110px;flex-shrink:0;position:relative;border:1px solid var(--line);border-radius:7px;background:#fff;padding:5px}.photo img{width:98px;height:77px;display:block;object-fit:cover;border-radius:4px;background:#f0f3f1}.photo-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#6f8277;margin:5px 2px}.photo-actions{display:flex;justify-content:space-between}.photo-actions button{border:0;background:none;font-size:14px;color:#607c6b;min-width:24px;min-height:28px}.photo-actions button:hover{background:#eaf3ed}.photo-number{position:absolute;top:9px;left:9px;font-size:10px;background:#fff;padding:2px 5px;border-radius:3px;color:#466451}.empty-strip{border:1px dashed #dbe5dd;border-radius:6px;text-align:center;padding:24px;color:#9aa89e;font-size:11px;margin-bottom:8px}.workspace-note{font-size:10px;color:#8a9a90;text-align:center;margin:22px 0}.workspace-note span{margin-right:5px}.tip{font-size:11px;color:#71837b;line-height:1.8}.status{padding:11px 14px;margin-bottom:12px;background:#e8f3ec;border:1px solid #d2e7d9;color:#3c6750;font-size:12px;line-height:1.6;border-radius:6px}.status.error{background:#fff2ed;border-color:#f1c8b9;color:#9b432b}.seam{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.seam strong{font-size:11px;display:block;margin-bottom:8px}.seam .field{margin-bottom:5px;font-size:10px}.seam small{font-size:10px;color:#7c8b80}.seam .text-button{font-size:10px}footer{display:flex;justify-content:space-between;align-items:center;padding:23px 0 30px;color:#8c9c91;font-size:11px}dialog{border:1px solid var(--line);border-radius:12px;padding:27px;max-width:520px;width:calc(100% - 32px);color:#365044;box-shadow:0 20px 80px #173d3425}dialog::backdrop{background:#17382d65}dialog h2{font-size:20px}dialog p{font-size:12px;line-height:1.8}.dialog-bar{display:flex;justify-content:space-between;align-items:center}#largePreview{max-width:1000px;max-height:90vh}#largeImage{display:block;max-width:100%;height:auto}#largePreview p{color:var(--muted)}[hidden]{display:none!important}@media(min-width:1450px){.canvas-stage{height:530px}}@media(max-width:1000px){main{padding:0 24px}.workbench{grid-template-columns:265px minmax(0,1fr)}.control-section{padding:20px 16px}.workspace{padding:0 16px}.canvas-toolbar #dimensions{display:block;margin:5px 0 0}.brand-caption{display:none}.canvas-stage{height:440px;min-height:400px;padding:20px}.mode small{font-size:9px}}@media(max-width:700px){.header{height:64px;padding:0 20px}.brand{font-size:20px}.local-badge{font-size:10px}main{padding:0 16px}.intro{padding:26px 0 22px;align-items:flex-start;flex-wrap:wrap;gap:16px}h1{font-size:26px}.intro p{font-size:12px}.intro .primary{padding:10px 15px}.workbench{display:flex;flex-direction:column;overflow:visible}.controls{display:contents;border:0}.control-section{padding:19px 16px;border-bottom:1px solid var(--line)}.controls>.control-section:first-child{order:0}.controls>.control-section:nth-child(2){order:2}.controls>.export-section{order:3}.workspace{order:1;border-bottom:1px solid var(--line);padding:0 14px}.mode-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.mode{padding:8px 5px;text-align:center}.mode strong{font-size:11px}.mode small{display:none}.mode-icon{font-size:24px;line-height:28px}.control-section h2{margin-bottom:12px}.canvas-toolbar{height:59px}.canvas-stage{height:350px;min-height:300px;padding:16px}.empty-art{margin-bottom:16px;grid-template-columns:repeat(3,25px)}.empty-art div{height:25px}.empty h2{font-size:17px}.empty p{font-size:11px;margin-bottom:12px}.photos-header{margin-top:18px}.photos-header p{max-width:240px;line-height:1.5}.workspace-note{line-height:1.7;margin:16px 0}.field{font-size:13px}.field select{max-width:220px;font-size:12px}.field input[type=range]{width:165px}.export-section .primary{padding:14px}footer{font-size:10px}.empty-strip{padding:18px}.photo-actions button{min-height:32px}.canvas-toolbar strong{font-size:12px}}
