:root{font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif;color:#202c2c;background:#f6f7f3;font-synthesis:none;--green:#247b68;--line:#e3e8e1;--muted:#77817b}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,label:focus-visible{outline:3px solid #a8d9c9;outline-offset:3px}button{border:0;background:none;color:inherit}header{height:84px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 4vw;background:#fff}.brand{text-decoration:none;color:#202c2c;display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700;letter-spacing:.4px}.logo{width:42px;height:42px;background:#e2f1e9;border-radius:13px;display:grid;place-items:center;color:var(--green);font-size:24px}.brand-sub{display:block;font-size:10px;font-weight:400;letter-spacing:2px;color:#869189;margin-top:3px}.header-right{display:flex;align-items:center;gap:18px}.tag{font-size:11px;padding:5px 9px;border:1px solid var(--line);border-radius:5px;color:#6b7b73;white-space:nowrap}.quiet{font-size:12px;color:#60756a;padding:6px}.quiet:hover{color:var(--green);background:#edf5ef;border-radius:5px}main{max-width:1640px;padding:40px 4vw 20px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--green);margin-bottom:12px}h1{font-size:30px;letter-spacing:-.7px;font-weight:650;margin:0}h2{font-size:14px;margin:0 0 18px;font-weight:650}h3{font-size:20px;font-weight:500;margin:30px 0 12px}p{line-height:1.8}.intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.intro p{font-size:12px;color:var(--muted);margin:10px 0 0}.steps{display:flex;align-items:center;gap:16px;font-size:11px;color:#7c887e}.steps b{display:inline-grid;place-items:center;width:24px;height:24px;background:#eaf0e6;color:#4d775b;border-radius:50%;font-size:9px;margin-right:8px}.steps i{font-style:normal;color:#d4ddd2}.layout{display:grid;grid-template-columns:324px minmax(0,1fr);gap:24px;align-items:start}aside{display:grid;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px;box-shadow:0 3px 12px #2d392704}.number{color:#7d9888;font-size:11px;margin-right:10px}.section-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.section-head h2{margin-bottom:16px}.drop-zone{border:1px dashed #cbd9cd;border-radius:9px;padding:22px 12px;display:flex;align-items:center;text-align:center;gap:9px;flex-direction:column;background:#fcfdfb;cursor:pointer;margin:0}.drop-zone:hover,.drop-zone.dragging{background:#edf6ef;border-color:#6faa86}.upload-icon{font-size:24px;line-height:30px;color:var(--green);width:38px;height:38px;background:#eaf2e8;border-radius:50%;margin-bottom:5px}.drop-zone strong{font-size:12px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-zone>span:last-child{font-size:10px;color:#8a958b}.privacy{font-size:10px;color:#8c968d;margin:13px 0 0}.primary,.secondary,.download{border-radius:7px;padding:12px 15px;font-size:12px;font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:.15s}.primary{background:var(--green);color:#fff;width:100%}.primary:hover:not(:disabled){background:#1d6555;box-shadow:0 3px 10px #247b6822}.primary span{font-size:15px}.secondary{border:1px solid #dfe6df;width:100%;justify-content:center;background:#fff}.secondary:hover:not(:disabled){background:#f2f7f1}.small{width:auto;white-space:nowrap;margin-top:20px;padding:10px;font-size:11px}.hint{font-size:11px;color:#8a958d;line-height:1.7;margin:12px 0 0}label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#627466;margin:14px 0}input,select,textarea{border:1px solid #dfe6de;border-radius:7px;padding:11px;color:#34423a;background:#fff;outline:none;min-width:0;width:100%;font-size:12px}textarea{resize:vertical;line-height:1.9;min-height:130px;background:#fcfdfb}input:focus,textarea:focus,select:focus{border-color:#67aa91;box-shadow:0 0 0 3px #67aa9110}input::placeholder,textarea::placeholder{color:#a2aca2}textarea:disabled{opacity:.55}.ai-info{font-size:10px;color:#8a988b;margin:12px 0}.or{border-top:1px solid #edf0eb;text-align:center;height:16px;margin-top:24px}.or span{position:relative;top:-8px;font-size:10px;padding:0 10px;color:#a4ada2;background:white}.viewer-panel{padding:0;overflow:hidden;position:sticky;top:18px}.viewer-toolbar{min-height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:12px}.segmented{display:flex;background:#f2f4ef;border-radius:7px;padding:3px;gap:3px}.segmented button{font-size:11px;padding:7px 15px;border-radius:5px;color:#889588}.segmented .active{color:#2b5c43;background:white;box-shadow:0 1px 4px #23382012}.zoom{display:flex;align-items:center;gap:6px;color:#8b978c;font-size:11px}.zoom>button{padding:5px}.zoom>span{min-width:35px;text-align:center}.download{background:#e9f3ea;text-decoration:none;color:#39764c;font-size:11px;padding:10px 13px}.disabled{opacity:.35;pointer-events:none}#viewer{height:655px;max-height:72vh;min-height:360px;overflow:auto;background-color:#f4f5f1;background-image:radial-gradient(#cdd6ca 1px,transparent 1px);background-size:20px 20px;padding:36px;display:grid;align-items:start;justify-items:center}#empty{text-align:center;align-self:center;margin:40px 0}#empty p{font-size:11px;color:#8d998c;line-height:2}.empty-art{width:260px;height:270px;background:white;border:1px solid #e1e7dc;box-shadow:0 12px 30px #3f4d3110;border-radius:4px;margin:auto;transform:rotate(-3deg);padding:35px 22px;text-align:left;position:relative}.empty-art>span{font-family:Georgia,serif;color:#c4d1bf;font-size:60px;display:block;margin-bottom:40px}.empty-art>div{font-family:monospace;font-size:10px;color:#8b9686;border-bottom:1px solid #dce4d9;padding-bottom:10px;white-space:nowrap}.empty-art b{font-weight:400}.empty-art .replacement{position:absolute;left:10px;right:-30px;bottom:25px;background:#f5faf4;border:1px solid #9cc3a4;box-shadow:0 3px 8px #a2b29a11;padding:16px 12px;transform:rotate(3deg);color:#487a55;border-radius:6px}.replacement span{float:right;border-radius:50%;background:#69a07a;color:white;padding:0px 4px}#imageStage{position:relative;line-height:0;box-shadow:0 5px 28px #21302418;background:white;max-width:none;touch-action:none}#image{width:100%;display:block;user-select:none}#overlay{position:absolute;inset:0;width:100%;height:100%;touch-action:none;overflow:visible}#overlay rect{fill:#43896718;stroke:#439570;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer}#overlay rect.selected{fill:#dfad3022;stroke:#c79b33}#imageStage.drawing{cursor:crosshair}.viewer-footer{border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;gap:10px;color:#9aa391;font-size:10px}.status{display:flex;align-items:center;gap:8px;margin:23px 0 0;font-size:12px;color:#6f7f71}#statusDot{width:6px;height:6px;background:#63a583;border-radius:50%}.busy #statusDot{animation:pulse 1s infinite;background:#cc9e4a}.error #statusDot{background:#cb6557}.footnote{font-size:10px;color:#a4ada1;margin:12px 0}.edit-card{background:#f8faf6;border:1px solid #e3e9de;border-radius:8px;padding:12px;margin:0 0 12px;cursor:pointer}.edit-card.selected{border-color:#adcaad}.edit-title{display:flex;justify-content:space-between;font-size:10px;color:#7d917e}.edit-card label{margin:8px 0;font-size:10px}.edit-card input,.edit-card select{padding:7px;font-size:11px}.edit-card .coords{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.coords label{font-size:9px}.coords input{padding:5px;width:100%}.edit-old{font-size:10px;color:#929c8d;word-break:break-all;line-height:1.8}.method{font-size:10px;color:#738c75}.warning{color:#b28b36;font-size:10px;line-height:1.8}.gate{position:relative;min-height:70vh;padding:60px 6vw}.gate h1{font-size:52px;line-height:1.5;font-weight:500}.lead{color:#8b978b;font-size:14px;line-height:2.2;margin-top:28px}.gate-form{position:absolute;right:6vw;top:40px;width:360px}.gate-form .primary{margin-top:20px}.gate-form h2{font-size:18px}.gate>.hint{max-width:400px}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:500px;max-width:95vw;box-shadow:0 25px 100px #14292033;color:#344333}dialog::backdrop{background:#17291e55;backdrop-filter:blur(4px)}.grow{flex:1}.settings-actions{display:flex;gap:10px;margin-top:20px}.settings-actions button{width:50%}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#263e31;color:white;border-radius:8px;padding:15px 22px;font-size:12px;max-width:90vw;z-index:10;box-shadow:0 5px 30px #102b2222}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@keyframes pulse{50%{opacity:.35}}@media(min-width:1550px){#viewer{height:760px}}@media(max-width:1050px){.steps{display:none}.layout{grid-template-columns:290px minmax(0,1fr);gap:16px}.panel{padding:18px}.viewer-panel{padding:0}.viewer-toolbar{padding:12px}.zoom .quiet{display:none}.zoom{gap:0}.segmented button{padding:7px 10px}#viewer{padding:20px}.gate{padding:20px 0}.gate h1{font-size:36px}.gate-form{right:0;top:0}}@media(max-width:750px){header{height:70px;padding:0 20px}.header-right{gap:6px}.header-right>.tag{display:none}main{padding:28px 16px}.intro{margin-bottom:20px}h1{font-size:24px}.layout{display:flex;flex-direction:column}.layout>aside{width:100%}.viewer-panel{position:static;width:100%}#viewer{height:480px;max-height:60vh;min-height:300px}.viewer-toolbar{gap:5px}.zoom{font-size:10px}.download{font-size:10px;padding:9px}.gate h1{font-size:36px}.gate-form{position:static;width:100%;margin-top:30px}.gate{padding:12px 0}.lead{font-size:12px}.empty-art{width:220px;height:240px}.viewer-footer{font-size:9px}.settings-actions{flex-direction:column}.settings-actions button{width:100%}}
