:root{--bg:#f2f4f7;--surface:#fff;--ink:#27313c;--muted:#79838f;--line:#e4e8ed;--accent:#167a70;--accent-soft:#e8f3f0;--warm:#b8663d;--shadow:0 12px 38px #152a3c0b;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);font-size:13px;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{min-height:80px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:16px 26px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:290px}.brand-symbol{width:42px;height:42px;border-radius:12px;background:var(--accent);color:white;display:grid;place-items:center;font-size:22px;font-weight:500;box-shadow:0 4px 12px #167a701f}.brand h1{font-size:17px;font-weight:500;letter-spacing:.02em}.brand-caption{display:block;font-size:9px;letter-spacing:.2em;color:var(--muted);margin-top:3px}.project-heading{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:170px;flex:1}.project-heading input{border:1px solid transparent;background:transparent;border-radius:5px;font-size:14px;font-weight:500;padding:5px;min-width:100px;width:170px;color:var(--ink)}.project-heading input:hover{border-color:var(--line)}.save-state{font-size:11px;color:var(--muted)}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.button{border:1px solid #dce2e7;background:white;border-radius:7px;padding:8px 13px;white-space:nowrap;min-height:35px;transition:background .15s}.button:hover{background:#f8fafb}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:#11695f}.button.subtle{border-color:transparent;background:transparent;color:var(--muted)}.button.danger{color:#b64745}.button.full{width:100%}.icon-button{border:1px solid transparent;border-radius:5px;background:transparent;width:30px;height:30px;display:inline-grid;place-items:center;font-size:18px}.icon-button:hover{background:#edf0f3}.text-button{border:0;background:transparent;color:var(--accent);padding:0}.workflow{display:flex;align-items:center;gap:6px;background:white;padding:12px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.step{background:transparent;border:1px solid transparent;border-radius:7px;padding:8px 12px;font-size:12px;color:#7a838c;display:flex;gap:9px;align-items:center;white-space:nowrap}.step span{font-size:10px;color:#9aa4ae;letter-spacing:.04em}.step[aria-current="step"]{background:var(--accent-soft);border-color:#c4e2d9;color:var(--accent);font-weight:500}.step[aria-current="step"] span{color:var(--accent)}.local-label{margin-left:auto;color:var(--muted);font-size:11px;display:flex;gap:6px;align-items:center}.status-dot{display:inline-block;flex:none;width:6px;height:6px;background:#3f9e81;border-radius:50%}
.workbench{display:grid;grid-template-columns:224px minmax(340px,1fr) 280px;gap:16px;padding:18px 22px;flex:1;min-height:670px}.resource-panel,.inspector{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-width:0;box-shadow:var(--shadow)}.panel-tabs,.inspector-tabs{display:flex;gap:4px;padding:12px 10px 0;border-bottom:1px solid var(--line)}.panel-tabs button,.inspector-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:9px 2px 12px;font-size:12px;white-space:nowrap}.panel-tabs [aria-selected="true"],.inspector-tabs [aria-selected="true"]{border-bottom-color:var(--accent);color:var(--accent);font-weight:500}.panel-content{padding:14px;flex:1;max-height:calc(100vh - 270px);min-height:460px;overflow:auto}.resource-footer{border-top:1px solid var(--line);padding:12px 14px;display:flex;gap:8px;font-size:10px;color:#8c959e;align-items:center;line-height:1.7}.privacy-mark{font-size:22px}.section-title{display:flex;justify-content:space-between;align-items:center;font-weight:500;margin-bottom:12px;font-size:12px}.section-title .count{color:var(--muted);font-size:10px;font-weight:400}.small{font-size:11px;color:var(--muted);line-height:1.7}.muted{color:var(--muted)}.divider-line{border:0;border-top:1px solid var(--line);margin:16px 0}.upload-area{display:grid;place-items:center;text-align:center;gap:8px;border:1px dashed #b8cfc8;border-radius:8px;padding:22px 12px;background:#f7fbf9;color:var(--accent);width:100%}.upload-area strong{font-weight:500}.upload-area .plus{font-size:28px;line-height:1}.thumb-card{border:1px solid var(--line);border-radius:8px;background:#f9fafb;margin-bottom:10px;overflow:hidden;position:relative}.thumb-card img{width:100%;height:150px;object-fit:contain;padding:8px;background:linear-gradient(45deg,#e9edf2 25%,transparent 25%,transparent 75%,#e9edf2 75%),linear-gradient(45deg,#e9edf2 25%,#fafbfc 25%,#fafbfc 75%,#e9edf2 75%);background-size:12px 12px;background-position:0 0,6px 6px}.thumb-caption{padding:9px;background:white;border-top:1px solid var(--line);font-size:11px;display:flex;justify-content:space-between;gap:6px}.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.asset-card{padding:0;border:1px solid var(--line);background:white;border-radius:7px;min-width:0;overflow:hidden;text-align:left}.asset-card:hover{border-color:#88b9ae}.asset-card img{width:100%;height:78px;object-fit:contain;padding:8px;background:#f6f8fa}.asset-card span{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px}.template-grid{display:grid;gap:10px}.template-card{background:white;border:1px solid var(--line);padding:12px;border-radius:8px;text-align:left;display:flex;gap:12px;align-items:center}.template-card[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}.template-symbol{width:48px;height:48px;background:#edf0f3;color:#5a6977;display:grid;place-items:center;font-size:23px;border-radius:5px}.template-card span span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.layer-list{display:grid;gap:5px}.layer-row{display:flex;gap:7px;align-items:center;border:1px solid transparent;border-radius:6px;padding:6px;background:white}.layer-row.selected{border-color:#add3c8;background:#f0f7f5}.layer-row img{width:33px;height:33px;object-fit:contain;background:#f2f4f6;border-radius:4px}.layer-row .layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;text-align:left;font-size:11px;padding:0}.mini-button{border:0;background:transparent;font-size:11px;padding:3px;color:#818b94}.mini-button[aria-pressed="true"]{color:var(--accent)}.layer-actions{display:flex;justify-content:space-between;gap:4px;margin-bottom:10px}
.editor{display:flex;flex-direction:column;min-width:0}.editor-heading{display:flex;justify-content:space-between;align-items:start;gap:8px;padding:2px 2px 15px}.eyebrow{color:#98a1aa;font-size:9px;letter-spacing:.18em;margin-bottom:5px}.editor-heading h2{font-size:19px;font-weight:500}.editor-heading p{color:var(--muted);font-size:11px;margin-top:5px}.mode-badge{font-size:10px;color:#779184;padding:4px 8px;border:1px solid #dce9e3;background:#f3f8f5;border-radius:5px;white-space:nowrap}.canvas-toolbar{background:white;border:1px solid var(--line);border-bottom:0;border-radius:9px 9px 0 0;padding:8px 10px;display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;align-items:center}.segmented{display:flex;gap:2px;flex-wrap:wrap}.segmented button{border:0;background:transparent;border-radius:5px;padding:6px 9px;color:#87909a;font-size:11px}.segmented [aria-pressed="true"]{background:#edf3f1;color:var(--accent)}.tool-group{display:flex;gap:2px;align-items:center}.divider{height:15px;width:1px;background:var(--line);margin:0 5px}.zoom-button{border:0;background:none;font-size:10px;color:#78828d;padding:5px}.canvas-area{position:relative;flex:1;min-height:470px;height:calc(100vh - 340px);border:1px solid var(--line);border-radius:0 0 9px 9px;background-color:#e9edf1;background-image:radial-gradient(#cbd2d8 .6px,transparent .6px);background-size:12px 12px;box-shadow:inset 0 1px 8px #1e314205;touch-action:none;overflow:hidden}.canvas-annotation{position:absolute;top:10px;left:12px;right:12px;display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#8d969f;pointer-events:none;z-index:1}#artboard{width:100%;height:100%;display:block;min-height:470px;user-select:none;touch-action:none}#artboard [data-layer-id]{cursor:move}#artboard [data-handle]{cursor:nwse-resize}.canvas-area.crop-mode{cursor:crosshair}.comparison-bar{background:#eaf4f1;border:1px solid #d1e5de;padding:8px 10px;font-size:10px;color:#4a796a;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.comparison-bar label{display:flex;align-items:center;gap:5px}.empty-canvas{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;padding:24px;background:#f7f9fb}.empty-canvas>span{font-size:44px;color:#94b8ae}.empty-canvas h3{font-size:18px;font-weight:500}.empty-canvas p{font-size:12px;color:var(--muted);max-width:300px}.stage-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding-top:14px}.stage-actions>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.stage-status{font-size:10px;color:#8a939c;max-width:52%;line-height:1.65}
.inspector-content{padding:16px;overflow:auto;max-height:calc(100vh - 230px);min-height:460px}.selection-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.selection-head h3{font-size:13px;font-weight:500;max-width:180px;overflow-wrap:anywhere}.type-label{font-size:9px;color:var(--accent);padding:3px 6px;border-radius:4px;background:var(--accent-soft)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:11px}.field label,.field>span{color:#8a939c;font-size:10px}.field input,.field select,.field textarea{width:100%;min-width:0;background:#f8fafb;border:1px solid #e1e6eb;padding:8px;border-radius:5px;color:var(--ink)}.field input:disabled{color:#9aa4ad;background:#f3f5f7}.field select{font-size:11px}.field textarea{resize:vertical;min-height:70px}.range-label{display:flex;justify-content:space-between}.field input[type=range]{accent-color:var(--accent);padding:0;border:0;min-height:18px}.check-label{display:flex;align-items:center;gap:7px;font-size:11px;margin:9px 0;color:#65717d}.check-label input{accent-color:var(--accent)}.align-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.align-tools button{border:1px solid var(--line);border-radius:5px;background:white;padding:7px 2px;font-size:10px}.align-tools button:hover{background:var(--accent-soft)}.group-title{font-size:11px;font-weight:500;margin:15px 0 10px}.density-line{display:flex;justify-content:space-between;font-size:10px;gap:8px;color:#8b949d}.density-line strong{font-weight:500;color:#748b81}.density-line.low strong{color:var(--warm)}.notice{border:1px solid #e4e8ec;border-radius:7px;padding:10px 11px;background:#f8fafb;font-size:10px;color:#87929a;line-height:1.8;margin:12px 0}.notice.warn{border-color:#efddca;background:#fffaf3;color:#a27c51}.review-item{border-bottom:1px solid var(--line);padding:12px 0}.review-item:first-child{padding-top:0}.review-item h4{font-size:11px;margin:0;display:flex;justify-content:space-between;gap:8px;font-weight:500}.review-item h4 span{font-weight:400;color:#97a0a8;font-size:10px}.review-item p{font-size:10px;color:#939ba3;margin-top:6px;line-height:1.75}.review-list{padding:0;list-style:none;font-size:10px;color:#8c765f}.review-list li{padding:6px 0;border-bottom:1px solid var(--line)}.seam-card{padding:10px;border:1px solid var(--line);border-radius:7px;margin:10px 0;font-size:11px}.output-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:9px 0;border-bottom:1px solid var(--line)}.output-row span:first-child{color:var(--muted)}.output-row strong{font-weight:500}.empty-properties{padding:35px 0;text-align:center;color:#98a3ad}.empty-properties .outline{font-size:35px;font-weight:400}.empty-properties p{font-size:11px;margin-top:12px;line-height:1.8}.frozen-label{color:var(--warm)}
.app-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 25px;background:white;border-top:1px solid var(--line);font-size:10px;color:#929aa3}.app-footer>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.footer-divider{color:#d4dae0}.toast{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100% - 32px));padding:13px 20px;background:#243b35;color:white;border-radius:8px;box-shadow:0 10px 30px #1e2e3430;font-size:12px;z-index:20}.busy{position:fixed;inset:0;background:#f3f6f8dc;display:grid;place-items:center;z-index:30;padding:30px}.busy>div{background:white;border:1px solid var(--line);border-radius:14px;padding:30px;min-width:270px;max-width:420px;box-shadow:var(--shadow);text-align:center}.busy strong{display:block;font-weight:500;font-size:16px;margin:13px 0}.busy p{font-size:12px;color:var(--muted);line-height:1.7}.busy progress{width:100%;margin-top:18px;height:6px;accent-color:var(--accent)}.spinner{display:inline-block;width:26px;height:26px;border:2px solid #d4e5df;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:0 20px 100px #1f333337;width:min(650px,calc(100% - 32px));max-height:90vh;color:var(--ink);background:white}dialog::backdrop{background:#20363b55}dialog header{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}dialog header h2{font-size:16px;font-weight:500}#dialog-content{padding:20px;overflow:auto;max-height:65vh}dialog footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dialog-copy{color:#77838d;line-height:1.9;font-size:12px}.dialog-copy p+p{margin-top:10px}.mask-canvas{display:block;max-width:100%;height:auto;margin:12px auto;background-color:#f7f7f7;background-image:linear-gradient(45deg,#dce0e4 25%,transparent 25%),linear-gradient(-45deg,#dce0e4 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dce0e4 75%),linear-gradient(-45deg,transparent 75%,#dce0e4 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;touch-action:none;cursor:crosshair}.recent-project{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.recent-project strong{font-weight:500}.recent-project small{display:block;color:var(--muted);margin-top:4px}.error-text{color:#a5433c}.model-file{font-size:11px}
@media(min-width:1700px){.workbench{grid-template-columns:250px minmax(400px,1fr) 300px;gap:20px;padding:22px 30px}.canvas-area,#artboard{min-height:590px}.app-header{padding-left:30px;padding-right:30px}}
@media(max-width:1180px){.app-header{gap:14px;padding:13px 18px}.brand{min-width:270px}.brand h1{font-size:15px}.header-actions .subtle{display:none}.workbench{grid-template-columns:190px minmax(290px,1fr) 240px;gap:10px;padding:12px}.workflow{padding:9px 12px;gap:2px}.step{padding:7px 9px}.local-label{display:none}.project-heading{flex-basis:140px}.project-heading input{width:140px}.header-actions{gap:5px}.header-actions .button{padding:7px 9px}.stage-status{max-width:100%}.stage-actions{align-items:start}}
@media(max-width:940px){.app-header{gap:12px}.project-heading{order:3;flex-basis:100%;justify-content:space-between}.project-heading input{width:220px}.header-actions{margin-left:auto}.workbench{grid-template-columns:180px minmax(0,1fr)}.inspector{grid-column:1/-1}.inspector-content{max-height:none;min-height:0}.inspector-content>.field-grid{grid-template-columns:repeat(4,1fr)}.resource-panel .panel-content{max-height:650px}.canvas-toolbar{padding:7px}.tool-group{margin-left:auto}.canvas-area,#artboard{min-height:510px;height:560px}.mode-badge{white-space:normal;max-width:110px;text-align:right}}
@media(max-width:620px){.app-header{padding:12px;align-items:start}.brand{min-width:0;flex:1}.brand h1{font-size:14px;max-width:240px}.brand-symbol{width:34px;height:34px;font-size:19px;border-radius:9px}.brand-caption{font-size:8px}.header-actions{order:4;width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.header-actions .button.subtle{display:none}.header-actions .button{padding:9px}.project-heading{order:3}.project-heading input{max-width:65%;font-size:13px}.workflow{padding:9px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.step{padding:8px 3px;justify-content:center;font-size:10px;gap:4px}.step span{font-size:8px}.workbench{grid-template-columns:minmax(0,1fr);gap:12px;padding:10px}.resource-panel{order:0}.editor{order:1}.inspector{order:2}.panel-tabs{padding-top:2px}.panel-content{min-height:0;max-height:255px!important;padding:12px}.resource-footer{display:none}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.asset-card img{height:58px;padding:5px}.asset-card span{font-size:9px;padding:6px}.section-title{margin-bottom:8px}.template-grid{grid-template-columns:1fr 1fr;gap:7px}.template-card{padding:7px;gap:7px}.template-symbol{width:30px;height:36px;font-size:18px}.template-card>span:last-child{font-size:11px}.template-card span span{font-size:9px}.thumb-card img{height:110px}.thumb-card{max-width:230px;margin:0 auto 8px}.upload-area{padding:12px}.upload-area .plus{font-size:20px}.layer-list{grid-template-columns:1fr 1fr}.layer-row{padding:4px}.layer-row img{width:25px;height:25px}.editor-heading{padding:4px 0 12px}.editor-heading h2{font-size:18px}.editor-heading p{font-size:10px;max-width:240px}.canvas-area,#artboard{height:460px;min-height:460px}.canvas-annotation{font-size:8px;top:7px;left:8px;right:8px}.canvas-annotation span:last-child{max-width:130px;text-align:right}.canvas-toolbar{gap:5px}.segmented button{padding:6px;font-size:10px}.tool-group{margin-left:0}.stage-actions>div:last-child{width:100%;display:grid;grid-template-columns:1fr 1fr}.stage-status{width:100%;font-size:10px}.inspector-content{padding:14px}.inspector-content>.field-grid{grid-template-columns:1fr 1fr}.app-footer{padding:12px;gap:8px;font-size:9px}.app-footer>div{gap:5px}.field input,.field select,.field textarea{font-size:16px}.button{min-height:39px}.mask-canvas{width:100%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
#artboard{position:absolute;inset:0;min-height:0}
.region-row{display:flex;align-items:center;gap:6px;margin:7px 0}.region-row input[type=checkbox]{accent-color:var(--accent);flex:none}.region-row input:not([type=checkbox]){width:100%;min-width:0;border:1px solid var(--line);border-radius:4px;padding:6px;background:#f8fafb;font-size:11px}
@media(min-width:941px){.app-shell{height:100dvh;min-height:790px}.app-header,.workflow,.app-footer{flex-shrink:0}.workbench{min-height:0}.editor,.resource-panel,.inspector{min-height:0}.canvas-area{height:auto;min-height:350px}.panel-content,.inspector-content{max-height:none;min-height:0;flex:1}}
