:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#242922;background:#f4f4f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,.dropzone:focus-within{outline:2px solid #5c765c;outline-offset:3px}[hidden]{display:none!important}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 5%;background:#fff;border-bottom:1px solid #e5e8e0}.topbar__brand{display:flex;align-items:center;gap:11px}.topbar__brand strong,.topbar__brand small{display:block}.topbar__brand strong{font-size:15px;letter-spacing:.03em}.topbar__brand small{font-size:8px;letter-spacing:.14em;color:#91998b;margin-top:3px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;color:#fff;background:#344d3b;font-size:17px;font-weight:700}.local-badge{color:#607a63;background:#eff5ef;padding:8px 12px;border-radius:20px;font-size:12px}.local-badge i,.preview-top i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#7b987d}.workspace{max-width:1600px;margin:0 auto;padding:42px 5% 50px}.page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:29px}.eyebrow{color:#829383;font-size:10px;font-weight:700;letter-spacing:.18em}h1{margin:9px 0 8px;font-size:clamp(25px,2.4vw,36px);line-height:1.3;letter-spacing:-.04em;font-weight:600}.page-heading p,.section-head p{margin:0;color:#8a9387;font-size:13px;line-height:1.6}.heading-number{color:#b7beb2;font-size:12px;letter-spacing:.14em}.layout{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:18px;align-items:start}.panel{background:#fff;border:1px solid #e6e8e2;border-radius:14px;box-shadow:0 10px 32px #2f392c09}.controls{padding:24px}.section-head{display:flex;align-items:start;gap:11px}.section-head h2{margin:0 0 4px;font-size:15px;font-weight:700}.section-head p{font-size:12px}.section-number{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:8px;color:#5e7b64;background:#eef3ed;font-size:11px;font-weight:700}.dropzone{display:grid;place-items:center;gap:8px;margin-top:19px;padding:24px 12px;min-height:147px;border:1px dashed #c6d4c5;border-radius:10px;background:#f8faf6;text-align:center;cursor:pointer}.dropzone.is-dragging{border-color:#53745a;background:#e9f2e8}.dropzone strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}.dropzone small{color:#9aa397;font-size:11px}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e7efe4;color:#53735a;font-size:22px}.file-stats{display:grid;gap:10px;margin-top:16px}.file-stats div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.file-stats span{color:#929a8e}.file-stats b{font-weight:600}.divider{border-top:1px solid #edf0e9;margin:23px 0}.mode-list{display:grid;gap:9px;border:0;padding:0;margin:18px 0 0}.mode{display:flex;align-items:start;gap:9px;padding:12px;border:1px solid #e5e9e1;border-radius:8px;cursor:pointer}.mode:has(input:checked){border-color:#91aa8e;background:#f7faf6}.mode input{accent-color:#526f58;margin:2px 0 0}.mode strong,.mode small{display:block}.mode strong{font-size:12px}.mode small{color:#929a8e;font-size:11px;line-height:1.65;margin-top:4px}.mode em{color:#65826b;font-size:10px;font-weight:500;font-style:normal;margin-left:5px}.settings{display:grid;gap:9px;margin:18px 0 2px}.settings label{display:flex;justify-content:space-between;font-size:12px;font-weight:600}.settings label b{color:#607d62}.settings select{width:100%;border:1px solid #dfe5db;border-radius:7px;background:#fff;padding:9px;color:#384439;font-size:12px}.settings input[type=range]{width:100%;accent-color:#5e8063}.range-caption{display:flex;justify-content:space-between;margin-top:-6px;color:#a3aaa0;font-size:10px}.hint{margin:1px 0;color:#8b9589;font-size:11px;line-height:1.6}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;border:0;border-radius:8px;font-weight:600;transition:background .15s}.button.primary{color:#fff;background:#344f3b}.button.primary:not(:disabled):hover{background:#47694d}.button.secondary{color:#4e5d4f;border:1px solid #e0e5dc;background:#fff}.button.secondary:not(:disabled):hover{background:#f5f8f3}.controls>.button{width:100%;min-height:43px;margin-top:16px;font-size:13px}.controls>.button span{margin-left:auto}.controls>.button.secondary{margin-top:8px}.status{min-height:18px;margin:11px 0 0;color:#8e988b;font-size:11px;line-height:1.6}.status.is-error{color:#b34d44}.result-panel{min-width:0;padding:24px}.result-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.result-actions{display:flex;flex-wrap:wrap;gap:7px}.button.small{min-height:36px;padding:0 12px;font-size:12px}.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-card{min-width:0;overflow:hidden;border:1px solid #e8ebe4;border-radius:10px;background:#f7f8f5}.preview-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 14px;background:#fcfdfa;font-size:12px;font-weight:600}.preview-top small{color:#9ba398;font-size:10px;font-weight:400}.preview-top i{background:#a8b2a4}.preview-top i.accent-dot{background:#5d8b62}.canvas-wrap{position:relative;height:clamp(280px,37vw,500px);background:#e9e8e4}.canvas-wrap canvas{display:block;width:100%;height:100%}.empty{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;gap:8px;background:#f6f7f3;color:#748172;pointer-events:none}.empty-cube{color:#b0c0af;font-size:54px;font-weight:300;line-height:1}.empty strong{font-size:12px}.empty span{font-size:11px;color:#a7b0a4}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;border:1px solid #e9ede5;border-radius:10px}.metrics>div{min-width:0;padding:15px 18px}.metrics>div+div{border-left:1px solid #e9ede5}.metrics span,.metrics strong,.metrics small{display:block}.metrics span{color:#929c8e;font-size:11px}.metrics strong{margin:6px 0 4px;font-size:20px;font-weight:600}.metrics small{color:#9ca499;font-size:10px;line-height:1.5}.review-note{display:flex;gap:11px;margin-top:16px;padding:13px 15px;border-radius:9px;background:#f4f7f1;color:#6e806d}.review-note>span{font-size:18px}.review-note p{margin:0;font-size:11px;line-height:1.7}.review-note strong{color:#536d55;font-size:12px}footer{padding:0 5% 30px;color:#a4aca1;font-size:11px}footer span{margin:0 5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media (max-width: 1050px){.layout{grid-template-columns:290px minmax(0,1fr)}.result-head{align-items:flex-start;flex-direction:column}.preview-grid{grid-template-columns:1fr}.canvas-wrap{height:330px}}@media (max-width: 700px){.topbar{height:64px}.local-badge{font-size:10px;padding:7px}.workspace{padding-top:27px}.layout{grid-template-columns:1fr}.controls,.result-panel{padding:18px}.heading-number{display:none}.canvas-wrap{height:280px}.metrics>div{padding:12px 9px}.metrics strong{font-size:16px}}
