.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{inset:0;position:absolute}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media(min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media(min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media(min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}:root{--bg: #303331;--panel: #505452;--panel-strong: #3f4341;--panel-soft: #626866;--text: #f7f8f8;--muted: #bdc4c4;--line: rgba(255, 255, 255, .14);--accent: #4b92ff;--danger: #cf3b47;--dock-h: 56px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{border:0;border-radius:7px;color:#fff;background:#25292b;min-height:34px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation}button:active{transform:translateY(1px)}.primary{background:linear-gradient(135deg,#ffb375,#d66be6)}.danger{background:var(--danger)}.app{height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{flex:0 0 auto;min-height:calc(50px + env(safe-area-inset-top,0px));height:auto;padding-top:env(safe-area-inset-top,0px);padding-right:max(10px,env(safe-area-inset-right,0px));padding-bottom:0;padding-left:max(10px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:8px;background:#202323;border-bottom:1px solid var(--line);box-sizing:border-box}.topbar-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin-left:auto}.topbar-actions button{min-height:30px;padding:0 10px;font-size:13px;white-space:nowrap}.app-embed .topbar{min-height:calc(44px + max(env(safe-area-inset-top,0px),var(--mp-safe-top, 0px)));padding-top:max(env(safe-area-inset-top,0px),var(--mp-safe-top, 0px));padding-right:max(10px,env(safe-area-inset-right,0px),var(--mp-safe-right, 0px),var(--mp-capsule-right, 0px));padding-left:max(10px,env(safe-area-inset-left,0px),var(--mp-safe-left, 0px))}.app-embed .toolbar{padding-right:max(8px,env(safe-area-inset-right,0px),var(--mp-safe-right, 0px));padding-left:max(8px,env(safe-area-inset-left,0px),var(--mp-safe-left, 0px))}.back{width:34px;padding:0;font-size:28px;background:transparent}.brand{flex:1;min-width:0;display:flex;flex-direction:column}.brand strong{font-size:16px}.brand span{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar>button:not(.back){min-height:30px;padding:0 10px;font-size:13px}.toolbar{flex:0 0 auto;height:45px;padding:6px 8px;display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;background:#0f1011;border-bottom:1px solid var(--line);scrollbar-width:none;touch-action:pan-x}.toolbar::-webkit-scrollbar{display:none}.toolbar button{flex:0 0 auto;min-width:52px;height:32px;padding:0 8px;font-size:12px}.toolbar button.active{background:var(--accent)}.workspace{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.side-panel{flex:0 0 300px;min-height:0;display:flex;flex-direction:column;background:var(--panel);overflow:hidden;border-right:1px solid var(--line)}.side-panel.right{flex-basis:280px;border-right:0;border-left:1px solid var(--line)}.panel-body{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.panel-edge-toggle{display:none}.app-panel-collapsible .side-panel{position:relative;transition:flex-basis .24s ease,width .24s ease,min-width .24s ease}.app-panel-collapsible .panel-edge-toggle{display:inline-flex;position:absolute;top:50%;z-index:3;width:22px;height:52px;min-height:52px;padding:0;border-radius:0 8px 8px 0;background:#3a3f3d;border:1px solid var(--line);border-left:0;font-size:18px;line-height:1;color:#eef2f2;box-shadow:2px 0 10px #0000002e;transform:translateY(-50%)}.app-panel-collapsible .panel-edge-toggle-left{right:-1px}.app-panel-collapsible .panel-edge-toggle-right{left:-1px;border-left:1px solid var(--line);border-right:0;border-radius:8px 0 0 8px;box-shadow:-2px 0 10px #0000002e}.app-panel-collapsible .side-panel.collapsed{flex:0 0 28px!important;min-width:28px;overflow:visible}.app-panel-collapsible .side-panel.collapsed .panel-body{opacity:0;visibility:hidden;pointer-events:none;flex:0;width:0;overflow:hidden}.app-panel-collapsible .side-panel.left.collapsed .panel-edge-toggle-left{right:auto;left:50%;transform:translate(-50%,-50%);border-left:1px solid var(--line);border-radius:8px}.app-panel-collapsible .side-panel.right.collapsed .panel-edge-toggle-right{left:50%;transform:translate(-50%,-50%);border-radius:8px}.app-panel-collapsible .canvas-frame{transition:width .24s ease,height .24s ease}.app-perspective.app-panel-collapsible .panel-edge-toggle{display:none}.panel-content{flex:1;min-height:0;padding:14px;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}h2,p{margin:0}h2{font-size:16px}p,.hint,.empty{color:var(--muted);font-size:12px}.search{flex:0 0 auto;width:100%;height:36px;margin:12px 0;padding:0 12px;border-radius:7px;border:1px solid var(--line);outline:0;background:#303534;color:#fff}.tabs,.category-strip,.quick-row{display:flex;gap:7px;align-items:center}.category-strip.sub{margin-top:-4px}.category-strip.sub button{font-size:11px;min-height:28px}.tabs button{flex:1}.tabs .active,.category-strip .active,.dock .active{background:var(--accent);color:#fff}.category-strip{flex-wrap:wrap;padding:10px 0}.category-strip button{height:30px;min-height:30px;padding:0 10px;background:var(--panel-soft);font-size:12px}.asset-grid{display:flex;flex-wrap:wrap;gap:9px;padding-bottom:20px}.asset-card{flex:1 1 calc(50% - 5px);min-width:118px;padding:0;display:flex;flex-direction:column;background:var(--panel-strong);border:1px solid var(--line);overflow:hidden;cursor:pointer}.asset-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:contain;background:#1a1c1d}.asset-card span{padding:7px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-download{margin:0 7px 7px;height:28px;min-height:28px;font-size:12px}.canvas-shell{flex:1;min-width:0;min-height:0;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.canvas-frame{flex:0 0 auto;overflow:hidden;border-radius:8px;background:#111;box-shadow:0 18px 60px #0000005c,0 0 0 1px #ffffff29;touch-action:none}.canvas-foot{flex:0 0 auto;margin-top:8px;padding:7px;border-radius:8px;display:flex;gap:7px;align-items:center;background:#121416d1}.canvas-foot span{min-width:48px;text-align:center;font-size:12px;font-weight:700}.canvas-hint{flex:1;min-width:0;text-align:left;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-foot button{min-height:28px;padding:0 10px;font-size:12px}.layer-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.layer-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.layer-toolbar button{min-height:28px;padding:0 10px;font-size:12px;background:var(--panel-soft)}.layer-row-wrap{display:flex;gap:6px;align-items:stretch}.layer-row-wrap.nested{padding-left:18px}.layer-order{flex:0 0 auto;display:flex;flex-direction:column;gap:4px}.layer-order button{min-width:28px;width:28px;min-height:22px;padding:0;font-size:12px;background:var(--panel-soft)}.layer-order button:disabled{opacity:.35}.panel-tabs{flex:0 0 auto;display:none;gap:6px;padding:10px 12px 0}.panel-tabs button{flex:1;min-height:32px;background:var(--panel-soft);font-size:12px}.panel-tabs button.active{background:var(--accent)}.side-panel.right .panel-content{padding-top:10px}.layer-row{flex:1;min-width:0;min-height:48px;display:flex;gap:6px;align-items:center;background:var(--panel-strong);border:1px solid transparent;border-radius:7px}.layer-row.active{border-color:var(--accent)}.layer-main{flex:1;min-width:0;min-height:48px;padding:6px 8px;display:flex;gap:9px;align-items:center;justify-content:flex-start;text-align:left;background:transparent;border:0;color:inherit}.layer-meta{flex:1;min-width:0;display:flex;flex-direction:column}.layer-rename{width:100%;height:28px;padding:0 8px;border:1px solid var(--accent);border-radius:6px;outline:0;color:#fff;background:#303534;font:inherit;font-weight:700}.layer-actions{flex:0 0 auto;display:flex;gap:4px;padding-right:6px}.layer-icon-btn{width:28px;min-width:28px;min-height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#25292b;color:#d7e7ff}.layer-icon-btn.danger{color:#ffb4ba}.layer-icon-btn:hover{background:#31383b}.section-gap{margin-top:18px}.color-picker-row{display:flex;gap:8px;align-items:flex-end}.color-line.compact{flex:1;margin:0}.icon-tool-btn{min-height:34px;padding:0 10px;display:inline-flex;gap:6px;align-items:center;background:var(--panel-soft);font-size:12px}.stage-bg-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.stage-bg-preview{margin:8px 0 12px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#1a1c1d}.stage-bg-preview img{display:block;width:100%;max-height:140px;object-fit:contain}.color-line select{width:100%;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;outline:0;color:#fff;background:#303534}.layer-row-wrap .layer-row{flex:1;min-width:0}.layer-dot{flex:0 0 28px;width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:#171a1b;color:#fff;font-weight:700}.layer-meta strong,.layer-meta small{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.layer-meta small{color:var(--muted);font-size:11px}.form-grid{display:flex;flex-direction:column;gap:10px;margin-top:12px}.form-grid.two{flex-direction:row}.form-grid label,.color-line{flex:1;display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.form-grid input,.color-line input{width:100%;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;outline:0;color:#fff;background:#303534}.quick-row{flex-wrap:wrap;margin:10px 0}.dock{display:none;flex:0 0 auto;height:calc(var(--dock-h) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);gap:4px;background:#181a1b;border-top:1px solid var(--line)}.dock button{flex:1;min-height:var(--dock-h);background:transparent;color:var(--muted)}.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px;background:#0000009e}.crop-card{width:min(760px,100%);max-height:min(720px,92vh);display:flex;flex-direction:column;overflow:hidden;border-radius:10px;background:#2d3130}.download-card{width:min(520px,100%);display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:10px;background:#2d3130;box-shadow:0 18px 60px #00000059}.download-card header,.download-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.download-card textarea{min-height:110px;resize:vertical;color:#fff;background:#171b1c;border:1px solid var(--line);border-radius:8px;padding:10px;word-break:break-all}.crop-card header,.crop-card footer{flex:0 0 auto;min-height:52px;padding:10px;display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.crop-card footer{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.crop-area{min-height:0;padding:10px;overflow:hidden}.crop-area img{display:block;max-width:100%;max-height:62vh}.text-modal-body{padding:14px;display:flex;flex-direction:column;gap:10px;overflow:auto}.text-modal-body label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.text-modal-body input,.text-modal-body select,.text-modal-body textarea,.text-area{width:100%;padding:0 9px;border:1px solid var(--line);border-radius:7px;outline:0;color:#fff;background:#303534;font:inherit}.text-area{min-height:72px;padding:8px 9px;resize:vertical}.text-preview{min-height:72px;padding:14px;border-radius:8px;background:#1d2021;border:1px solid var(--line);line-height:1.35;word-break:break-word}.app-embed .dock{display:flex}@media(min-width:821px){.app-embed .dock{display:none}}.app-embed.app-desktop .dock{display:none}.app-desktop .workspace{flex-direction:row;gap:0}.app-desktop .side-panel.left{display:flex;flex:0 0 280px}.app-desktop .side-panel.right{display:flex;flex:0 0 300px}.app-desktop .panel-tabs{display:flex}@media(min-width:821px){.workspace{gap:0}.side-panel.left{display:flex;flex:0 0 280px}.side-panel.right{display:flex;flex:0 0 300px}.panel-tabs{display:flex}.dock{display:none}}@media(max-width:820px){.app-desktop .side-panel.left{flex:0 0 200px}.app-desktop .side-panel.right{flex:0 0 220px}.app-panel-collapsible.app-desktop .side-panel.left.collapsed,.app-panel-collapsible.app-desktop .side-panel.right.collapsed{flex:0 0 28px!important;min-width:28px}.app-desktop:not(.app-embed) .topbar{min-height:40px;padding:0 8px}.app-embed.app-desktop .topbar{min-height:calc(40px + max(env(safe-area-inset-top,0px),var(--mp-safe-top, 0px)))}.app-embed.app-panel-collapsible .side-panel.left{margin-left:max(0px,var(--mp-safe-left, 0px))}.app-embed.app-panel-collapsible .side-panel.right.collapsed{margin-right:max(0px,var(--mp-safe-right, 0px),var(--mp-capsule-right, 0px))}.app-desktop .toolbar{height:38px;padding:4px 6px}.app-desktop .canvas-shell{padding:4px}.app:not(.app-desktop) .topbar{height:calc(48px + env(safe-area-inset-top))}.app:not(.app-desktop) .toolbar{height:43px;padding:5px 8px}.app:not(.app-desktop) .workspace{flex-direction:column}.app:not(.app-desktop) .side-panel{display:none;order:2;position:relative;z-index:1;flex:0 0 min(46vh,380px);width:100%;max-height:min(46vh,380px);border:0;border-top:1px solid var(--line);border-radius:12px 12px 0 0;box-shadow:0 -10px 28px #00000047}.app:not(.app-desktop) .side-panel.open{display:flex}.app:not(.app-desktop) .canvas-shell{order:1;padding:8px 8px 5px}.app:not(.app-desktop) .canvas-foot{margin-top:6px}.app:not(.app-desktop) .dock{display:flex}.app-perspective:not(.app-desktop) .dock,.app-perspective:not(.app-desktop) .toolbar{display:none}.app-perspective:not(.app-desktop) .side-panel.open{display:none!important}.app-perspective:not(.app-desktop) .canvas-shell{flex:1;padding:4px}.app-perspective:not(.app-desktop) .canvas-frame{border-radius:6px}.app-perspective:not(.app-desktop) .canvas-foot{margin-top:4px;padding:5px 8px}.app-perspective.app-desktop .side-panel.left,.app-perspective.app-desktop .side-panel.right{display:none!important}.app-perspective.app-desktop .toolbar{display:none}.app-perspective.app-desktop .canvas-shell{flex:1;padding:4px}}.quick-build{--qb-bg: #1e1e1e;--qb-panel: #2b2b2b;--qb-panel-2: #333333;--qb-line: rgba(255, 255, 255, .08);--qb-text: #f0f0f0;--qb-muted: #9a9a9a;--qb-accent: #3d8bfd;--qb-canvas-bg: #141414;background:var(--qb-bg);color:var(--qb-text);flex-direction:column}.quick-build .topbar,.quick-build .toolbar,.quick-build .dock,.quick-build .side-panel,.quick-build .panel-edge-toggle{display:none!important}.qb-header{flex:0 0 44px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 20px;background:var(--qb-bg);border-bottom:1px solid var(--qb-line);gap:12px}.qb-header-left{display:flex;align-items:center;gap:16px;min-width:0}.qb-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.qb-member-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--qb-muted);white-space:nowrap}.qb-member-expire{color:#8ecbff}.qb-logout-btn{min-height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--qb-line);background:#ffffff0a;color:var(--qb-text);font-size:12px}.qb-auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--qb-bg);padding:24px}.qb-auth-boot{color:var(--qb-muted);font-size:14px}.qb-auth-card{width:min(420px,100%);padding:28px 24px;border-radius:14px;background:var(--qb-panel);border:1px solid var(--qb-line);box-shadow:0 16px 48px #00000059}.qb-auth-card h1{margin:0 0 8px;font-size:22px}.qb-auth-sub,.qb-auth-tip{margin:0 0 16px;color:var(--qb-muted);font-size:13px;line-height:1.5}.qb-auth-tip{margin-bottom:0;margin-top:12px}.qb-auth-error{margin-bottom:14px;padding:10px 12px;border-radius:8px;background:#ff60601f;color:#ff9a9a;font-size:13px}.qb-auth-card label{display:block;margin-bottom:14px}.qb-auth-card label span{display:block;margin-bottom:6px;font-size:13px;color:var(--qb-muted)}.qb-auth-card input{width:100%;min-height:42px;padding:0 12px;border-radius:8px;border:1px solid var(--qb-line);background:#1a1a1a;color:var(--qb-text)}.qb-auth-submit{width:100%;min-height:44px;margin-top:6px;border:none;border-radius:999px;background:linear-gradient(90deg,#f0a56e,#b8a0f5);color:#fff;font-size:15px;font-weight:600;cursor:pointer}.qb-auth-submit:disabled{opacity:.7;cursor:not-allowed}.qb-title{font-size:15px;font-weight:600;letter-spacing:.02em}.qb-close{width:36px;height:36px;padding:0;border-radius:50%;background:transparent;color:var(--qb-text);font-size:22px;line-height:1}.qb-close:hover{background:#ffffff14}.qb-body{flex:1;min-height:0;display:flex;overflow:hidden}.qb-left-shell{position:relative;flex:0 0 min(36vw,400px);min-width:348px;max-width:440px;display:flex;min-height:0;background:var(--qb-panel);border-right:1px solid var(--qb-line);transition:flex-basis .2s ease,min-width .2s ease,max-width .2s ease}.qb-left-shell.is-collapsed{flex:0 0 52px;min-width:52px;max-width:52px}.qb-left-edge-toggle{position:absolute;top:50%;right:-13px;z-index:6;transform:translateY(-50%);width:26px;height:52px;padding:0;border-radius:0 8px 8px 0;border:1px solid var(--qb-line);border-left:none;background:#333;color:var(--qb-text);font-size:18px;line-height:1;box-shadow:2px 0 8px #00000040}.qb-left-edge-toggle:hover{background:#3d8bfd;color:#fff}.qb-nav-rail{flex:0 0 52px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0;background:#252525;border-right:1px solid var(--qb-line)}.qb-nav-rail button{width:40px;height:40px;padding:0;border-radius:8px;background:transparent;color:var(--qb-muted)}.qb-nav-rail button.active{background:#3d8bfd2e;color:var(--qb-accent)}.qb-left-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.qb-library{--qb-lib-accent: #3d8bfd;--qb-lib-accent-soft: rgba(61, 139, 253, .16);--qb-lib-accent-border: rgba(61, 139, 253, .55);flex:1;min-height:0;display:flex;flex-direction:column}.qb-library.is-mine{--qb-lib-accent: #2563eb;--qb-lib-accent-soft: rgba(37, 99, 235, .18);--qb-lib-accent-border: rgba(37, 99, 235, .55)}.qb-library-source-tabs{display:flex;gap:4px;padding:8px 12px 0;flex:0 0 auto}.qb-library-source-tabs button{flex:1;padding:6px 8px;border-radius:6px;font-size:12px;background:var(--qb-panel-2);color:var(--qb-muted);border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.qb-library.is-public .qb-library-source-tabs button.active{background:#3d8bfd29;border-color:#3d8bfd59;color:#6eb0ff;font-weight:600}.qb-library.is-mine .qb-library-source-tabs button.active{background:#2563eb2e;border-color:#2563eb66;color:#93c5fd;font-weight:600}.qb-library-multibar{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--qb-line);font-size:12px;flex:0 0 auto}.qb-library-multibar button{padding:4px 8px;border-radius:4px;font-size:12px;background:var(--qb-panel-2)}.qb-library-multibar button.danger{color:#ff6b6b}.qb-library-actions button.active{background:var(--qb-lib-accent-soft);color:var(--qb-lib-accent)}.qb-library-empty-hint{padding:12px;font-size:12px;color:var(--qb-muted);text-align:center}.qb-asset-card.is-selectable{position:relative}.qb-asset-card.is-selected{outline:2px solid var(--qb-accent);outline-offset:1px}.qb-asset-check{position:absolute;top:8px;left:8px;z-index:2;width:18px;height:18px;border-radius:4px;border:2px solid rgba(255,255,255,.85);background:#00000059}.qb-asset-check.checked{background:var(--qb-accent);border-color:var(--qb-accent)}.qb-asset-check.checked:after{content:"✓";display:block;color:#fff;font-size:12px;line-height:14px;text-align:center}.qb-user-cat-modal{width:min(520px,92vw);max-height:80vh;overflow:auto}.qb-user-cat-tip{margin:0 0 10px;font-size:12px;color:var(--qb-muted)}.qb-user-cat-add{display:flex;gap:6px;margin:6px 0 10px}.qb-user-cat-add input{flex:1;min-width:0;padding:6px 8px;border-radius:6px;border:1px solid var(--qb-line);background:var(--qb-panel-2);color:inherit}.qb-user-cat-add-root{margin-bottom:12px}.qb-user-cat-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.qb-user-cat-label{font-size:13px;font-weight:600}.qb-user-cat-actions{display:flex;gap:4px;flex-wrap:wrap}.qb-user-cat-actions button{padding:2px 6px;font-size:11px;border-radius:4px;background:var(--qb-panel-2)}.qb-user-cat-actions button.danger{color:#ff6b6b}.qb-user-cat-edit{display:flex;gap:6px;flex:1;align-items:center}.qb-user-cat-edit input{flex:1;min-width:0;padding:4px 8px;border-radius:6px;border:1px solid var(--qb-line);background:var(--qb-panel-2);color:inherit}.qb-mine-upload-hint{padding:6px 12px;font-size:12px;color:var(--qb-muted);border-bottom:1px solid var(--qb-line);flex:0 0 auto}.qb-mine-upload-hint strong{color:var(--qb-lib-accent);font-weight:600}.qb-mine-upload-hint.is-warning{color:#ffb347}.qb-link-btn{padding:0;background:none;color:var(--qb-lib-accent, var(--qb-accent));text-decoration:underline;font-size:inherit}.qb-asset-card.is-mine .qb-asset-manage{position:absolute;top:6px;right:6px;z-index:2;display:flex;gap:4px}.qb-asset-manage button{padding:2px 6px;font-size:11px;border-radius:4px;background:#000000a6;color:#fff}.qb-asset-category{padding:0 6px 6px;font-size:10px;color:var(--qb-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qb-form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.qb-form-field label{font-size:12px;color:var(--qb-muted)}.qb-form-field input,.qb-form-field select{padding:8px 10px;border-radius:6px;border:1px solid var(--qb-line);background:var(--qb-panel-2);color:inherit}.qb-form-meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--qb-muted);margin-bottom:8px}.qb-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--qb-line)}.qb-modal-foot-right{display:flex;gap:8px}.qb-modal-foot button.primary{background:var(--qb-accent);color:#fff}.qb-modal-foot button.danger{color:#ff6b6b}.qb-member-material-modal{width:min(440px,92vw)}.qb-member-upload-modal{width:min(560px,94vw)}.qb-upload-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qb-upload-pick{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--qb-line);border-radius:8px;background:var(--qb-panel-2)}.qb-upload-pick-head{display:flex;flex-direction:column;gap:2px}.qb-upload-pick-head strong{font-size:13px}.qb-upload-pick-head span{font-size:11px;color:var(--qb-muted)}.qb-upload-pick-btn{width:100%;padding:8px 10px;border-radius:6px;font-size:12px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--qb-panel)}.qb-upload-preview{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;background:#111}.qb-upload-file-tag{padding:16px 8px;text-align:center;font-size:12px;color:var(--qb-muted);border-radius:6px;background:#0003}.qb-upload-status{margin:10px 0 0;font-size:12px;color:var(--qb-accent)}.qb-upload-auto-cover-tip{margin:0;font-size:11px;color:var(--qb-muted);line-height:1.4}.qb-cover-edit{display:flex;align-items:center;gap:12px}.qb-cover-edit-preview{width:120px;flex:0 0 120px}@media(max-width:640px){.qb-upload-pick-grid{grid-template-columns:1fr}}.qb-user-cat-empty{font-size:12px;color:var(--qb-muted);text-align:center;padding:16px 0}.qb-library-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--qb-line)}.qb-library-head-title{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--qb-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qb-template-select{flex:1;min-width:0;justify-content:space-between;padding:6px 10px;background:var(--qb-panel-2);border-radius:6px;font-size:13px}.qb-template-select i{font-style:normal;opacity:.6}.qb-template-menu{position:absolute;top:100%;left:12px;right:12px;z-index:20;background:#3a3a3a;border:1px solid var(--qb-line);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000059}.qb-template-menu button{width:100%;justify-content:flex-start;background:transparent;padding:8px 10px;border-radius:6px;font-size:13px}.qb-template-menu button:hover{background:#ffffff0f}.qb-library-actions{display:flex;gap:6px}.qb-library-actions button{min-height:30px;padding:0 8px;font-size:12px;background:#3a3a3a}.qb-library-actions .primary{background:var(--qb-lib-accent)}.qb-library-body{flex:1;min-height:0;display:flex;overflow:hidden}.qb-category-sidebar{flex:0 0 96px;display:flex;flex-direction:column;gap:1px;padding:6px 0;border-right:1px solid var(--qb-line);overflow-y:auto;scrollbar-width:thin}.qb-category-l1-group{display:flex;flex-direction:column}.qb-category-l1{width:100%;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:11px 8px;background:transparent;border-radius:0;font-size:14px;line-height:1.4;color:var(--qb-muted);text-align:center;word-break:break-all}.qb-category-l1 span{flex:1;min-width:0}.qb-category-l1 i{flex:0 0 auto;font-style:normal;opacity:.55;font-size:11px}.qb-library.is-public .qb-category-l1.active{background:#3d8bfd1f;color:#8ec0ff;font-weight:600}.qb-library.is-mine .qb-category-l1.active{background:#2563eb24;color:#93c5fd;font-weight:600}.qb-category-l2-list{display:flex;flex-direction:column;gap:1px;padding:0 0 4px}.qb-category-l2{width:100%;padding:9px 6px 9px 12px;background:transparent;border-radius:0;border-left:2px solid transparent;font-size:13px;line-height:1.4;color:var(--qb-muted);text-align:left;word-break:break-all}.qb-library.is-public .qb-category-l2.active{color:#cfe3ff;background:#3d8bfd1a;border-left-color:#3d8bfda6}.qb-library.is-mine .qb-category-l2.active{color:#bfdbfe;background:#2563eb1f;border-left-color:#2563eba6}.qb-venue-tabs{flex:0 0 104px;display:flex;flex-direction:column;gap:2px;padding:8px 4px;border-right:1px solid var(--qb-line);overflow-y:auto}.qb-venue-tabs button{width:100%;padding:10px 8px;background:transparent;border-radius:0;font-size:12px;line-height:1.35;color:var(--qb-muted);writing-mode:horizontal-tb;text-align:center;word-break:break-all}.qb-venue-tabs button.active{background:#ffffff1a;color:var(--qb-text);font-weight:600}.qb-library-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.qb-library-filter-bar{flex:0 0 auto;width:100%;display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.qb-leaf-tabs{display:flex;flex-direction:column;gap:4px;width:100%}.qb-leaf-tabs-row{display:grid;gap:4px;width:100%}.qb-leaf-tabs-row[data-cols="1"]{grid-template-columns:repeat(1,minmax(0,1fr))}.qb-leaf-tabs-row[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.qb-leaf-tabs-row[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.qb-leaf-tabs-row[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.qb-leaf-tabs-row button{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:26px;padding:3px 4px;border-radius:4px;font-size:12px;line-height:1.3;background:#3a3a3a;color:var(--qb-muted);text-align:center}.qb-leaf-tab-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qb-library-filter-bar .qb-search{width:100%;margin-bottom:0}.qb-library.is-public .qb-leaf-tabs-row button.active{background:#2d6cdf;color:#fff;font-weight:600}.qb-library.is-mine .qb-leaf-tabs-row button.active{background:#1d4ed8;color:#fff;font-weight:600}.qb-accordion{flex:0 0 140px;display:flex;flex-direction:column;gap:1px;padding:6px 4px;border-right:1px solid var(--qb-line);overflow-y:auto}.qb-accordion-group{display:flex;flex-direction:column}.qb-accordion-sub{display:flex;flex-direction:column;gap:1px;padding-left:10px;border-left:2px solid rgba(255,255,255,.06);margin-left:8px}.qb-accordion-sub button{padding:6px 8px;font-size:10px}.qb-accordion-sub button.active{color:#fff;background:#74233347}.qb-accordion button{width:100%;justify-content:space-between;padding:8px;background:transparent;border-radius:0;font-size:11px;line-height:1.35;color:var(--qb-muted);text-align:left;word-break:break-all}.qb-accordion button i{font-style:normal;opacity:.5;font-size:10px}.qb-accordion button.active{color:var(--qb-text);background:#ffffff0f}.qb-library-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:8px;overflow:hidden}.qb-search{flex:0 0 auto;width:100%;height:32px;margin-bottom:8px;padding:0 10px;border:1px solid var(--qb-line);border-radius:6px;background:#252525;color:var(--qb-text);font-size:12px}.qb-color-filters{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px;padding:2px 0}.qb-color-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;min-height:36px;padding:4px 5px;font-size:11px;line-height:1.25;border-radius:8px;border:1px solid #4a4a4a;background:#333;color:#d8d8d8;transition:background .15s ease,border-color .15s ease,color .15s ease}.qb-color-chip:hover{border-color:#666;background:#3d3d3d;color:#fff}.qb-library.is-public .qb-color-chip.active{border-color:var(--qb-lib-accent);background:#74233359;color:#fff;box-shadow:0 0 0 1px #74233373}.qb-color-chip-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 0 0 1px #0000001f}.qb-color-chip-label{min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-align:center;word-break:break-all}.qb-asset-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow-y:auto;align-content:start;-webkit-overflow-scrolling:touch}.qb-asset-card{position:relative;display:flex;flex-direction:column;border-radius:6px;overflow:hidden;background:#1a1a1a;cursor:pointer;border:1px solid rgba(255,255,255,.06)}.qb-asset-thumb{position:relative;aspect-ratio:1;background:#111}.qb-psd-progress{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;pointer-events:none}.qb-psd-progress svg{width:56px;height:56px;transform:rotate(-90deg)}.qb-psd-progress-track{fill:none;stroke:#ffffff2e;stroke-width:4}.qb-psd-progress-bar{fill:none;stroke:#4da3ff;stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .25s ease}.qb-psd-progress-text{position:absolute;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.qb-asset-card img{width:100%;height:100%;object-fit:cover;display:block}.qb-asset-name{flex:0 0 auto;min-height:34px;padding:5px 6px;font-size:11px;line-height:1.35;color:#f0f0f0;background:#252525;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-all}.qb-asset-type{position:absolute;left:4px;bottom:4px;padding:1px 5px;border-radius:4px;font-size:10px;line-height:1.4;color:#fff;background:#0000009e;pointer-events:none}.qb-asset-download{position:absolute;top:4px;right:4px;width:24px;height:24px;min-height:24px;padding:0;border-radius:4px;background:#0000008c;font-size:12px}.qb-source-tabs{flex:0 0 auto;display:flex;border-top:1px solid var(--qb-line)}.qb-source-tabs button{flex:1;min-height:36px;background:transparent;border-radius:0;font-size:12px;color:var(--qb-muted)}.qb-source-tabs button.active{color:var(--qb-accent);background:#3d8bfd1a}.qb-layers-wrap{flex:1;min-height:0;overflow:hidden}.qb-layers-wrap .panel-content{padding:12px;height:100%}.qb-layers-wrap h2{font-size:14px;margin-bottom:8px}.qb-canvas-zone{flex:1;min-width:0;min-height:0;position:relative;display:flex;background:var(--qb-canvas-bg)}.qb-canvas-zone.is-multi-select:after{content:"多选模式：点击图层可连续选中多个";position:absolute;top:56px;left:50%;transform:translate(-50%);z-index:5;padding:4px 12px;border-radius:999px;font-size:12px;color:#fff;background:#5957b8eb;pointer-events:none}.quick-build .canvas-shell{flex:1;padding:12px 56px 12px 12px;background:transparent}.quick-build .canvas-foot{display:none}.quick-build .canvas-frame{box-shadow:0 0 0 1px #ffffff1f;border-radius:4px}.qb-canvas-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:flex-end;gap:2px;max-width:calc(100% - 120px);padding:6px 10px;border-radius:8px;background:#1e1e1eeb;border:1px solid var(--qb-line);box-shadow:0 8px 24px #00000059;overflow-x:auto;scrollbar-width:none;pointer-events:auto}.qb-canvas-toolbar::-webkit-scrollbar{display:none}.qb-canvas-tool{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:auto;padding:4px 6px;background:transparent;border-radius:6px;color:var(--qb-text);font-size:10px;cursor:pointer}.qb-canvas-tool:hover{background:#ffffff14}.qb-canvas-tool.active{background:#409eff38;color:#7ec1ff}.qb-canvas-tool.danger{color:#ff8a8a}.qb-canvas-tool span{line-height:1.1}.qb-right-rail{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;gap:14px;align-items:center}.qb-rail-btn{width:56px;min-height:auto;padding:10px 6px;flex-direction:column;gap:6px;border-radius:10px;background:#2d2d2df2;border:1px solid var(--qb-line);font-size:10px;line-height:1.2;color:var(--qb-text);box-shadow:0 4px 16px #00000040}.qb-rail-btn.primary{background:linear-gradient(180deg,#4a9bff,#2d6fd4);border-color:#ffffff26}.qb-rail-btn.primary.active{box-shadow:0 0 0 2px #4a9bff73}.qb-rail-btn span{text-align:center;white-space:nowrap}.qb-rail-complete-wrap{position:relative}.qb-complete-menu{position:absolute;right:calc(100% + 14px);top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:#3a3a3afa;border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 10px 36px #00000073}.qb-complete-menu:after{content:"";position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid rgba(58,58,58,.98)}.qb-complete-menu button{min-width:148px;padding:13px 22px;border:none;border-radius:999px;background:linear-gradient(90deg,#f0a56e,#d8a8f0 55%,#b8a0f5);color:#fff;font-size:15px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;box-shadow:0 4px 14px #00000038;transition:transform .15s ease,filter .15s ease}.qb-complete-menu button:hover{filter:brightness(1.06);transform:translateY(-1px)}.qb-complete-menu button:active{transform:translateY(0)}.qb-modal-backdrop{position:fixed;inset:0;z-index:100;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:24px}.qb-modal-card{width:min(420px,100%);max-height:min(85vh,640px);overflow:auto;background:var(--qb-panel);border:1px solid var(--qb-line);border-radius:12px;padding:16px}.qb-modal-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.qb-modal-card header button{width:32px;height:32px;padding:0;background:transparent;font-size:20px}.qb-modal{width:min(420px,100%);max-height:min(85vh,640px);overflow:auto;background:var(--qb-panel);border:1px solid var(--qb-line);border-radius:12px;padding:16px}.qb-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.qb-modal-head h3{margin:0;font-size:15px}.qb-modal-close{width:32px;height:32px;padding:0;background:transparent;font-size:20px}.qb-modal-body{font-size:13px}.qb-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;padding:10px 18px;border-radius:8px;background:#000000d1;font-size:13px;pointer-events:none}@media(max-width:900px){.qb-left-shell:not(.is-collapsed){flex-basis:min(92vw,520px);min-width:320px}.qb-left-shell.is-collapsed{flex:0 0 52px;min-width:52px;max-width:52px}.qb-canvas-toolbar{max-width:calc(100% - 80px)}.qb-perspective-bar{flex-direction:column;align-items:stretch;bottom:12px;padding:12px}.qb-perspective-hint{text-align:center;white-space:normal}.qb-perspective-actions{justify-content:stretch}.qb-perspective-btn{flex:1}}.quick-build.app-perspective .qb-right-rail{display:none}.qb-perspective-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:14px;max-width:calc(100% - 24px);padding:10px 14px;border-radius:10px;background:#141414f0;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 28px #00000073}.qb-perspective-hint{color:#ffffffc7;font-size:13px;white-space:nowrap}.qb-perspective-actions{display:flex;align-items:center;gap:8px}.qb-perspective-btn{min-height:36px;padding:0 16px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#fff;font-size:13px;cursor:pointer}.qb-perspective-btn.primary{border-color:#409eff;background:#409eff;color:#fff;font-weight:600}.qb-perspective-btn:hover{filter:brightness(1.08)}.quick-build.app-perspective .canvas-shell{padding:8px}
