*{box-sizing:border-box}body{margin:0;color:#1f2937;font:14px/1.45 'Prompt Noto cjk','Prompt Noto latin','Microsoft YaHei',sans-serif;background:linear-gradient(110deg,#eff6ff,#eef2ff 55%,#faf5ff)}button,input,textarea,a{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #7c3aed;outline-offset:3px}::selection{background:#ddd6fe}button{background:transparent;border:0}a{color:#2563eb}header{height:64px;background:white;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;padding:0 28px;gap:30px;box-shadow:0 4px 6px -1px #00000018}header>a:first-of-type{font-size:23px;font-weight:700;color:#6d28d9;text-decoration:none}header nav{display:flex;gap:24px;flex:1}header>a:last-child{font-size:13px}#nav-toggle{display:none}#sidebar{position:fixed;top:64px;bottom:0;left:0;width:256px;background:#fff;border-right:1px solid #f1f5f9;z-index:15}.brand{height:70px;display:flex;align-items:center;padding:16px 20px;gap:8px;border-bottom:1px solid #f1f5f9}.brand-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:12px;background:linear-gradient(120deg,#8b5cf6,#06b6d4);color:white}.brand small{display:block;color:#526278;font-size:10px}details{padding:8px}summary{padding:12px;cursor:pointer;list-style:none;font-weight:600}summary:after{content:'›';float:right;color:#526278}summary small{color:#cbd5e1;margin-left:6px}details>button{display:block;text-align:left;width:100%;padding:12px 20px;border-radius:12px;margin:3px 0;color:#526278;font-weight:600}details>button small{display:block;font-size:11px;font-weight:400;color:#526278}details>.nav-active{color:white;background:linear-gradient(110deg,#8b5cf6,#d946ef);box-shadow:0 2px 4px #8b5cf633}.nav-active small{color:#f3e8ff}#sidebar footer{position:absolute;bottom:0;padding:14px;font-size:10px;color:#526278;border-top:1px solid #f1f5f9;width:100%}main{margin-left:256px;padding:96px 32px 48px;max-width:1200px;box-sizing:border-box}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.creation{background:#ffffffd9;border-radius:16px;padding:24px}h1,h2,p{margin:0}h1,h2{font-size:16px;font-weight:600}h1{display:flex;align-items:center;gap:8px}svg{width:18px;height:18px;vertical-align:middle;flex-shrink:0}h1 svg,.text-blue svg{color:#2563eb}.intro{color:#526278;margin-top:4px}.prompt-label{display:flex;align-items:center;gap:8px;margin:27px 0 10px;font-size:12px;white-space:nowrap}.prompt-label label{font-size:14px;font-weight:500}.prompt-label>span{color:#526278}.badge{background:linear-gradient(110deg,#3b82f6,#6366f1);color:white;border-radius:20px;padding:6px 10px;font-weight:600}.text-blue{color:#2563eb;padding:0;display:flex;align-items:center;gap:8px}#prompt{width:100%;height:120px;min-height:120px;resize:vertical;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;line-height:20px;background:#ffffffad;caret-color:#7c3aed}.helper{display:flex;justify-content:space-between;color:#526278;margin-top:3px}.model-heading{font-size:14px;margin:23px 0 10px;display:flex;gap:16px}.models{display:grid;grid-template-columns:1fr 1fr;gap:12px}.models button{text-align:left;height:120px;border:2px solid #e5e7eb;border-radius:12px;padding:16px}.models button.selected{border-color:#3b82f6;background:#eff6ff}.models strong{display:flex;gap:8px;align-items:center;margin-bottom:10px}.models svg{color:#2563eb}.models button>span{display:block;color:#9a3412;font-size:12px;line-height:16px}.models small{display:block;color:#526278;font-size:12px;margin-top:3px}.models .selected small{color:#7e22ce}.size-heading{font-size:14px;color:#475569;margin:24px 0 12px}.size-tabs{height:44px;border:1px solid #e5e7eb;border-radius:12px;display:flex;padding:3px;background:#fff}.size-tabs button{flex:1;border-radius:10px;color:#526278}.size-tabs button[aria-selected=true]{border:1px solid #ede0ff;background:#faf5ff;color:#9333ea}.size-picker{position:relative;margin-top:12px}.size-trigger{height:44px;border:1px solid #dbe0e8;border-radius:9px;background:white;width:100%;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left}.size-trigger:after{content:'⌄';margin-left:auto;color:#526278}.size-options{position:absolute;top:48px;left:0;right:0;z-index:30;max-height:320px;overflow:auto;background:white;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px #17255420;padding:4px}.size-options button{display:flex;align-items:center;gap:14px;width:100%;padding:10px;text-align:left;border-radius:6px}.size-options button:hover,.size-options button[aria-selected=true]{background:#faf5ff;color:#9333ea}.shape-wrap{width:30px;display:flex;justify-content:center}.shape{border:1.5px solid currentColor;border-radius:2px;display:inline-block}.size-options small{margin-left:auto;color:#526278}.custom-fields{display:flex;gap:12px;margin-top:12px}.custom-fields label{flex:1}.custom-fields input{width:100%;height:44px;border:1px solid #dbe0e8;border-radius:9px;padding:10px}#validation{font-size:12px;color:#b45309;min-height:0;margin-top:6px}#validation:empty{display:none}#generate,#run{height:46px;min-height:46px;background:linear-gradient(100deg,#2563eb,#a855f7);color:white;border-radius:12px;width:100%;margin-top:24px;font-weight:650;display:flex;gap:14px;align-items:center;justify-content:center;box-shadow:0 8px 18px #7c3aed28}.service-note{font-size:11px;color:#526278;margin-top:7px}.membership{margin-top:20px;padding:12px;background:#fffbeb;border-radius:12px;color:#b45309;display:flex;align-items:center;justify-content:space-between;font-size:12px}.membership button{font-size:11px;border:1px solid #fde68a;border-radius:10px;padding:5px 10px}.history{min-width:0;padding:8px 0}.history-heading{display:flex;justify-content:space-between;align-items:center}.history-heading button,#recover{color:#2563eb}.history-heading h2{font-size:18px}#request-status{font-size:12px;color:#92400e;margin-top:12px;overflow-wrap:anywhere}#history-list{margin-top:16px;color:#526278}.history-empty{padding:90px 20px;text-align:center;background:#ffffff70;border-radius:16px;border:1px dashed #e2e8f0;color:#526278}.job{background:#ffffffd9;border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid #e8ecf4;box-shadow:0 6px 18px rgba(15,23,42,.04)}.job img{width:100%;max-height:280px;object-fit:contain;border-radius:8px}.job-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.job-actions button{color:#2563eb;border:1px solid #e5e7eb;border-radius:8px;padding:5px 8px}.job details{padding:8px 0}.job pre{white-space:pre-wrap;font:inherit}.examples{background:#ffffff70;border-radius:12px;margin-top:24px;padding:24px}.examples h2{display:flex;gap:10px;align-items:center}.examples>p{color:#526278;margin-top:8px}#example-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:24px 0}.example-group h3{font-size:14px}.example-group button{display:block;text-align:left;line-height:1.7;width:100%;padding:10px 0;border-bottom:1px solid #e5e7eb;color:#475569}.example-group button:hover{color:#7c3aed}.tips{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}.tips p{color:#526278;line-height:1.9;margin-top:8px}dialog{border:0;border-radius:16px;padding:24px;max-width:min(560px,calc(100vw - 32px));box-shadow:0 20px 70px #0f172a40}dialog::backdrop{background:#0f172a60}dialog p{margin:14px 0;line-height:1.7}dialog [data-close]{float:right;color:#2563eb}#preview-dialog{max-width:90vw}#preview-image{display:block;max-width:80vw;max-height:75vh;margin:20px auto}#download-link{display:block;text-align:center}#assistant{position:fixed;inset:0 0 0 auto;margin:0;width:448px;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:0;flex-direction:column;background:linear-gradient(#f8fafc,#fff)}#assistant[open]{display:flex}.assistant-head{background:linear-gradient(120deg,#6d4aff,#13b8ca);color:white;padding:24px 20px;height:100px}.assistant-head button{color:white!important}.assistant-head h2{display:inline}.assistant-head p{margin:5px 0;font-size:11px}#assistant-messages{padding:16px;flex:1;overflow:auto}#assistant-messages p{background:white;border:1px solid #e2e8f0;border-radius:16px;padding:12px;font-size:13px;margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}.quick-prompts{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px}.quick-prompts button{border:1px solid #e2e8f0;border-radius:14px;font-size:11px;text-align:left;padding:10px;background:white}#assistant-form{display:flex;align-items:center;gap:8px;margin:0 12px;border:1px solid #e2e8f0;border-radius:16px;padding:8px}#assistant-input{border:0;background:transparent;flex:1;width:0;resize:none;height:36px;line-height:18px}#assistant-form>button{color:#7c3aed}#assistant>small{font-size:10px;color:#526278;padding:8px 16px}.attach-button{cursor:pointer;color:#526278}#attachments{padding:0 16px;display:flex;gap:8px}#attachments button{font-size:11px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7c3aed}#environment{position:fixed;top:64px;left:256px;right:0;z-index:19;background:#fff3c4;color:#92400e;text-align:center;font-size:12px;padding:4px}#auth-notice{background:#fffbeb;padding:12px;margin-bottom:20px;border-radius:10px;color:#92400e}[hidden]{display:none!important}@media(max-width:1100px){main{padding:96px 24px 32px}.workspace{grid-template-columns:1fr}.prompt-label{flex-wrap:wrap}#example-groups{grid-template-columns:1fr}.history{min-height:250px}}@media(max-width:700px){header{padding:0 16px;gap:16px}header nav{display:none}header>a:last-child{margin-left:auto}#nav-toggle{display:block}#sidebar{display:none}#sidebar.open{display:block;box-shadow:8px 0 30px #0f172a25}main{margin-left:0;padding:88px 16px 36px;max-width:none}.creation,.examples{padding:20px}.models button{padding:12px;height:136px}.models strong{font-size:13px}.prompt-label>span{display:none}.prompt-label{gap:6px}.badge{font-size:11px}.text-blue{font-size:11px}.helper{font-size:11px}.membership{gap:10px}.tips{grid-template-columns:1fr}#environment{left:0;font-size:10px}.size-tabs{font-size:12px}}


.shape-svg{width:auto;height:auto;flex-shrink:0}#sidebar{overflow-y:auto;padding-bottom:44px}#sidebar footer{position:fixed;bottom:0;width:255px;background:white}

/* Measured desktop corrections from the frozen source and controller render. */
html::-webkit-scrollbar{width:10px}html::-webkit-scrollbar-thumb{background:#c5c7cb;border-radius:6px;border:2px solid #f5f5f5}html::-webkit-scrollbar-track{background:#f5f5f5}
.prompt-label{margin-top:23px}.model-heading{margin-top:21px}#generation-form{position:relative}.service-note{position:absolute;bottom:60px;left:0;right:0;margin:0;font-size:10px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.membership{margin-top:24px;min-height:52px}.history{background:#ffffffd9;border-radius:12px;padding:24px;min-height:770px}.history-empty{background:transparent;padding:90px 0}.history-heading h2{font-size:16px}
#sidebar details{padding:4px 8px}#sidebar details>button{position:relative;padding:10px 16px 10px 50px}#sidebar summary{display:flex;gap:8px;align-items:center}#sidebar summary:after{margin-left:auto}#sidebar summary>svg{border-radius:12px;color:#526278}#sidebar details:first-of-type summary>svg{color:#7e22ce}.nav-icon{position:absolute;left:12px;top:18px;display:grid;place-items:center;width:28px;height:28px;background:#f1f5f9;border-radius:50%;color:#526278}.nav-active .nav-icon{background:#ffffff33;color:white}.hot{display:inline-block;color:#9a3412;background:#fff7ed;border-radius:3px;font-size:9px;padding:1px 3px;margin-left:6px}
@media(max-width:1100px){.history{min-height:350px}}@media(max-width:700px){.service-note{font-size:9px}.models button{height:136px}}

.size-tabs button{display:flex;align-items:center;justify-content:center;gap:6px}.size-tabs svg,.size-icon{width:16px;height:16px}.assistant-head #assistant-clear{float:right;padding:0;color:white;font-size:12px}

/* Source-observed menu collision and public history geometry. */
.size-options{top:calc(100% + 4px);padding:3px;border-radius:10px}.size-options.above{top:auto;bottom:calc(100% + 4px)}.size-options.below{bottom:auto}.size-options button{height:44px;min-height:44px;padding:10px 12px;font-size:14px;line-height:20px}.ratio-options button{font-weight:600}.purpose-options button{font-weight:400}.size-options .shape-wrap,.size-options .size-icon{color:#9ca3af}.size-options .shape-wrap{width:28px}.purpose-options small{font-size:12px;color:#526278}.models strong{font-size:16px;font-weight:500;line-height:23px}.history-heading h2{font-size:24px;font-weight:600;line-height:32px}.history-description{font-size:14px;line-height:20px;color:#526278;margin-top:4px}#request-status:empty{display:none}#history-list{margin-top:28px}.job{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:16px}.job-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.job-title strong{font-weight:500;color:#334155}.job-title small{font-size:11px;color:#526278}.job-status{font-size:12px;color:#526278;margin-top:10px}.job-prompt{margin:12px 0;padding:10px!important;background:#f8fafc;border-radius:8px}.job-prompt summary{display:flex;padding:0;font-size:12px;font-weight:400;color:#526278;gap:8px}.job-prompt summary:after{display:none}.job-prompt summary>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.job-prompt summary>b{font-size:11px;font-weight:400;color:#2563eb;flex-shrink:0}.job-prompt[open] summary>span{display:none}.job-prompt pre{font-size:12px;margin-bottom:0}.job-media img{margin-top:8px}#sidebar summary>span[data-icon]{width:24px;height:24px;display:grid;place-items:center;background:#f1f5f9;color:#526278;border-radius:50%;flex-shrink:0}#sidebar summary>span[data-icon] svg{width:16px;height:16px}#sidebar details:first-of-type summary>span[data-icon]{background:#a855f7;color:white}#sidebar summary{color:#526278;font-weight:600}#sidebar details:first-of-type summary{color:#334155}.nav-active:before{content:'';position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:4px;background:#fff}
.size-options.menu-limit-4{max-height:4px}
.size-options.menu-limit-8{max-height:8px}
.size-options.menu-limit-12{max-height:12px}
.size-options.menu-limit-16{max-height:16px}
.size-options.menu-limit-20{max-height:20px}
.size-options.menu-limit-24{max-height:24px}
.size-options.menu-limit-28{max-height:28px}
.size-options.menu-limit-32{max-height:32px}
.size-options.menu-limit-36{max-height:36px}
.size-options.menu-limit-40{max-height:40px}
.size-options.menu-limit-44{max-height:44px}
.size-options.menu-limit-48{max-height:48px}
.size-options.menu-limit-52{max-height:52px}
.size-options.menu-limit-56{max-height:56px}
.size-options.menu-limit-60{max-height:60px}
.size-options.menu-limit-64{max-height:64px}
.size-options.menu-limit-68{max-height:68px}
.size-options.menu-limit-72{max-height:72px}
.size-options.menu-limit-76{max-height:76px}
.size-options.menu-limit-80{max-height:80px}
.size-options.menu-limit-84{max-height:84px}
.size-options.menu-limit-88{max-height:88px}
.size-options.menu-limit-92{max-height:92px}
.size-options.menu-limit-96{max-height:96px}
.size-options.menu-limit-100{max-height:100px}
.size-options.menu-limit-104{max-height:104px}
.size-options.menu-limit-108{max-height:108px}
.size-options.menu-limit-112{max-height:112px}
.size-options.menu-limit-116{max-height:116px}
.size-options.menu-limit-120{max-height:120px}
.size-options.menu-limit-124{max-height:124px}
.size-options.menu-limit-128{max-height:128px}
.size-options.menu-limit-132{max-height:132px}
.size-options.menu-limit-136{max-height:136px}
.size-options.menu-limit-140{max-height:140px}
.size-options.menu-limit-144{max-height:144px}
.size-options.menu-limit-148{max-height:148px}
.size-options.menu-limit-152{max-height:152px}
.size-options.menu-limit-156{max-height:156px}
.size-options.menu-limit-160{max-height:160px}
.size-options.menu-limit-164{max-height:164px}
.size-options.menu-limit-168{max-height:168px}
.size-options.menu-limit-172{max-height:172px}
.size-options.menu-limit-176{max-height:176px}
.size-options.menu-limit-180{max-height:180px}
.size-options.menu-limit-184{max-height:184px}
.size-options.menu-limit-188{max-height:188px}
.size-options.menu-limit-192{max-height:192px}
.size-options.menu-limit-196{max-height:196px}
.size-options.menu-limit-200{max-height:200px}
.size-options.menu-limit-204{max-height:204px}
.size-options.menu-limit-208{max-height:208px}
.size-options.menu-limit-212{max-height:212px}
.size-options.menu-limit-216{max-height:216px}
.size-options.menu-limit-220{max-height:220px}
.size-options.menu-limit-224{max-height:224px}
.size-options.menu-limit-228{max-height:228px}
.size-options.menu-limit-232{max-height:232px}
.size-options.menu-limit-236{max-height:236px}
.size-options.menu-limit-240{max-height:240px}
.size-options.menu-limit-244{max-height:244px}
.size-options.menu-limit-248{max-height:248px}
.size-options.menu-limit-252{max-height:252px}
.size-options.menu-limit-256{max-height:256px}
.size-options.menu-limit-260{max-height:260px}
.size-options.menu-limit-264{max-height:264px}
.size-options.menu-limit-268{max-height:268px}
.size-options.menu-limit-272{max-height:272px}
.size-options.menu-limit-276{max-height:276px}
.size-options.menu-limit-280{max-height:280px}
.size-options.menu-limit-284{max-height:284px}
.size-options.menu-limit-288{max-height:288px}
.size-options.menu-limit-292{max-height:292px}
.size-options.menu-limit-296{max-height:296px}
.size-options.menu-limit-300{max-height:300px}
.size-options.menu-limit-304{max-height:304px}
.size-options.menu-limit-308{max-height:308px}
.size-options.menu-limit-312{max-height:312px}
.size-options.menu-limit-316{max-height:316px}
.size-options.menu-limit-320{max-height:320px}#assistant{width:min(448px,100%);max-width:100%;right:0;left:auto;margin:0}

.custom-fields label{display:flex;align-items:center;gap:6px;min-width:0;height:36px;border:1px solid #e5e7eb;border-radius:9px;padding:0 12px;color:#9ca3af;font-size:14px}.custom-fields input{flex:1;width:0;min-width:0;height:34px;padding:0;border:0;background:transparent;border-radius:0;color:#334155;appearance:textfield}.custom-fields input::-webkit-inner-spin-button,.custom-fields input::-webkit-outer-spin-button{appearance:none;margin:0}.custom-fields label:focus-within{outline:2px solid #7c3aed;outline-offset:2px}.custom-fields input:focus-visible{outline:none}

/* Enhanced preview transforms affect display only; download remains original Blob. */
#preview-dialog{inset:0;margin:0;padding:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;background:#080a0d;color:#f1f5f9;overflow:hidden}#preview-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) 384px}.preview-close{position:absolute;right:24px;top:20px;z-index:5;background:#070b14!important;color:white!important;border-radius:24px;padding:10px 14px}#preview-stage{position:relative;overflow:auto;min-width:0;height:100%;cursor:grab;touch-action:none;scrollbar-width:thin;scrollbar-color:#475569 #111827}.preview-canvas{width:200%;height:200%;display:flex;align-items:center;justify-content:center}.preview-canvas #preview-image{display:block;flex-shrink:0;max-width:calc(50% - 40px);max-height:calc(50% - 40px);width:auto;height:auto;margin:0;transform:scale(var(--preview-zoom,1)) rotate(var(--preview-rotation,0deg));transform-origin:center;user-select:none}.preview-toolbar{position:fixed;left:calc((100% - 384px)/2);bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#34383ecc;border-radius:24px;padding:8px 14px;z-index:3;font-size:13px;white-space:nowrap}.preview-toolbar button{color:#f1f5f9;padding:4px}.preview-toolbar output{min-width:38px;text-align:center}.preview-rail{background:#111827;height:100%;overflow:auto;padding:24px;padding-top:84px}.preview-rail h2{font-size:14px;color:#cbd5e1;margin-bottom:14px}.preview-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}.preview-tools button{min-height:56px;background:#1f2937;color:#e2e8f0;border-radius:12px;font-size:14px}.preview-tools button:hover{background:#334155}.preview-rail>p{color:#94a3b8;font-size:12px}.preview-download{display:grid;gap:12px;margin-top:24px}.preview-download strong{font-size:13px}.preview-download>button,.preview-download>a{display:block;padding:12px;border-radius:12px;text-align:center;background:#2563eb;color:#fff;text-decoration:none;font-weight:500}.preview-download #preview-source{background:#16a34a}.preview-download>button:disabled{background:#334155;color:#cbd5e1;font-size:12px}#source-dialog{width:512px;padding:24px;color:#334155;background:#faf9f6}#source-dialog h2{text-align:center;font-size:18px}#source-dialog h3{font-size:14px;margin:22px 0 12px}.source-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.source-choices button{border:2px solid #e5e7eb;border-radius:12px;padding:16px;font-size:14px;min-height:56px}.source-choices small{display:block;font-size:12px;color:#526278;margin-top:6px}.source-choices .selected{border-color:#3b82f6;background:#eff6ff;color:#2563eb}#source-status{font-size:12px;color:#526278}#source-dialog>small,#source-footnote{display:block;font-size:11px;color:#526278;line-height:1.7;margin-top:18px}.source-ack{display:flex;align-items:flex-start;gap:8px;margin:14px 0 8px;font-size:13px;color:#475569;line-height:1.5}.source-ack input{margin-top:3px}#source-asset-note{font-size:12px;color:#b45309;min-height:0;margin:6px 0}#source-asset-note:empty{display:none}.source-deeplink{margin:10px 0 0;font-size:13px}.source-deeplink a{color:#2563eb}#source-make{display:block;width:100%;padding:10px;border-radius:9px;background:#2563eb;color:white;margin-top:8px}#source-make:disabled{background:#94a3b8;color:#f8fafc}@media(max-width:700px){#preview-dialog[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 230px}.preview-rail{padding:16px;display:flex;flex-direction:column}.preview-rail .preview-tools,.preview-rail>h2,.preview-rail>p{display:none}.preview-download{margin-top:0;grid-template-columns:1fr 1fr;gap:8px}.preview-download>strong{grid-column:1/-1}.preview-download>button:disabled{grid-column:1/-1}.preview-toolbar{left:50%;bottom:246px;font-size:12px;gap:8px}.preview-close{right:12px;top:12px}.preview-canvas #preview-image{max-width:calc(50% - 24px);max-height:calc(50% - 24px)}}
.preview-z50{--preview-zoom:0.5}
.preview-z75{--preview-zoom:0.75}
.preview-z100{--preview-zoom:1.0}
.preview-z125{--preview-zoom:1.25}
.preview-z150{--preview-zoom:1.5}
.preview-z175{--preview-zoom:1.75}
.preview-z200{--preview-zoom:2.0}
.preview-z225{--preview-zoom:2.25}
.preview-z250{--preview-zoom:2.5}
.preview-z275{--preview-zoom:2.75}
.preview-z300{--preview-zoom:3.0}
.preview-z325{--preview-zoom:3.25}
.preview-z350{--preview-zoom:3.5}
.preview-z375{--preview-zoom:3.75}
.preview-z400{--preview-zoom:4.0}
.preview-z425{--preview-zoom:4.25}
.preview-z450{--preview-zoom:4.5}
.preview-z475{--preview-zoom:4.75}
.preview-z500{--preview-zoom:5.0}
.preview-r0{--preview-rotation:0deg}
.preview-r90{--preview-rotation:90deg}
.preview-r180{--preview-rotation:180deg}
.preview-r270{--preview-rotation:270deg}
/* Settled 448px assistant reference: original brand avatars, no online claim. */
#assistant .assistant-head{position:relative;flex-shrink:0;height:100px;padding:0;background:linear-gradient(120deg,#7048f5,#2465ed 58%,#19b8c4)}.assistant-avatar{position:absolute;left:20px;top:28px;width:48px;height:48px;border-radius:50%;background:white;color:#6d28d9;display:grid;place-items:center;font-size:22px;font-weight:600}.assistant-head h2{position:absolute;left:80px;top:27px;font-size:16px;line-height:24px;font-weight:600}.assistant-head>p{position:absolute;left:80px;top:55px;margin:0;font-size:11px;line-height:18px;color:#e0e7ff}.assistant-head>[data-close]{position:absolute;right:14px;top:22px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:2px solid #ffffff40;border-radius:14px;color:white}.assistant-head>[data-close] svg{width:16px;height:16px}.assistant-head #assistant-clear{position:absolute;right:24px;top:69px;display:flex;align-items:center;gap:10px;font-size:12px;line-height:18px;padding:0;color:#e0e7ff}.assistant-head #assistant-clear svg{width:16px;height:16px}#assistant-messages{padding:16px;min-height:0}#assistant-messages p{position:relative;width:312px;max-width:calc(100% - 36px);margin:0 0 12px 36px;padding:10px 14px;font-size:13px;line-height:21px;border-radius:16px;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0f172a08}#assistant-messages .assistant-welcome:before{content:'岸';position:absolute;left:-37px;top:0;width:28px;height:28px;border-radius:50%;border:1px solid #e2e8f0;background:white;color:#7c3aed;display:grid;place-items:center;font-size:12px;font-weight:600}.quick-label{display:flex;align-items:center;gap:5px;padding:0 16px 8px;font-size:11px;line-height:16px;color:#526278}.quick-label svg{width:12px;height:12px}#assistant .quick-prompts{padding:0 16px 8px;gap:8px;flex-shrink:0}.quick-prompts button{height:36px;min-width:0;display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:14px;font-size:11px;line-height:20px}.quick-copy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.quick-icon{flex-shrink:0;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;color:white;background:#a855f7}.quick-icon svg{width:14px;height:14px}.quick-prompts button:nth-child(2) .quick-icon{background:#f59e0b}.quick-prompts button:nth-child(3) .quick-icon{background:#10b981}.quick-prompts button:nth-child(4) .quick-icon{background:#0ea5e9}#assistant-form{flex-shrink:0;min-height:50px;margin-top:12px;padding:6px 8px;border-radius:16px}#assistant-input{height:32px;line-height:20px;font-size:14px;padding:5px 0}#assistant-send{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;padding:0;border-radius:12px;background:#8b5cf6;color:white!important}#assistant-send:disabled{background:#c4b5fd;opacity:.65}#assistant>small{flex-shrink:0;min-height:28px;padding:8px 16px;font-size:10px}

.job-actions .job-recovery-note{display:block;flex-basis:100%;color:#92400e;font-size:11px;line-height:18px}.job-actions button:disabled{color:#526278}

/* Confirmed public navigation; current workspace does not invent other pages. */
header{gap:32px;padding:0 20px}header .header-brand{display:flex;align-items:center;gap:8px;width:126.5px;min-width:126.5px;height:36px;font-size:16px!important;font-weight:600;color:#334155!important;white-space:nowrap}header .header-brand svg{width:28px;height:28px}header nav{gap:32px;align-items:center;min-width:0}header nav>a,header nav>button,.header-menu-trigger{display:flex;align-items:center;justify-content:center;height:36px;font-size:14px;font-weight:500;text-decoration:none;color:#334155;padding:0;white-space:nowrap;border-radius:8px}header nav>a:hover,header nav>button:hover,.header-menu-trigger:hover,.header-menu-trigger[aria-expanded=true]{background:#f5f3ff;color:#7c3aed}.header-home{width:52px;flex-shrink:0}.header-group{position:relative;flex-shrink:0}.header-menu-trigger{width:108px;gap:4px}.header-group:first-of-type .header-menu-trigger{width:92.53px}.header-menu-trigger svg{width:14px;height:14px}.header-template{width:66px;flex-shrink:0}.header-history,.header-drafts{width:80px;flex-shrink:0}.header-free{color:#16a34a;background:#f0fdf4;font-size:8px;line-height:12px;padding:1px 3px;border-radius:3px;position:absolute;top:-1px;right:9px}.header-menu{position:absolute;top:calc(100% + 6px);left:0;width:420px;max-width:calc(100vw - 40px);padding:0;display:block;background:white;border-radius:16px;box-shadow:0 16px 40px #0f172a24;border:1px solid #eef2ff;z-index:30}.header-menu button{padding:12px;text-align:left;font-size:14px;border-radius:8px;color:#475569}.header-menu button:hover,.header-menu button:focus-visible{background:#f5f3ff;color:#7c3aed}.header-return{font-size:13px;white-space:nowrap;flex-shrink:0}#header-notice a{display:inline-block;margin-top:12px}@media(max-width:1100px){header nav{display:none}header .header-return{margin-left:auto}#nav-toggle{display:block}}@media(max-width:700px){header{padding:0 16px;gap:16px}.header-brand{width:126.5px!important;min-width:126.5px!important}header .header-return{font-size:12px}}

.creation,.history{scroll-margin-top:100px}
/* wave17: public header-only shell (no tool sidebar) */
body.shell-header-only #sidebar{display:none!important}
body.shell-header-only main,body.shell-header-only .shell-page-main{margin-left:0}

/* wave23 · mega-menu wide panel + public pixel polish */
.header-mega{width:min(720px,calc(100vw - 48px));padding:14px 16px 16px;animation:qianMegaIn .16s ease-out}
.header-group:nth-of-type(2) .header-mega,.header-group:nth-of-type(3) .header-mega{left:50%;transform:translateX(-35%)}
.header-group:nth-of-type(4) .header-mega{left:auto;right:0;transform:none}
@keyframes qianMegaIn{from{opacity:0;margin-top:-4px}to{opacity:1;margin-top:0}}
.header-group:nth-of-type(2) .header-mega[style],.header-group:nth-of-type(3) .header-mega{/* keep */ }
.mega-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:2px 4px 12px;border-bottom:1px solid #f1f5f9;margin-bottom:12px}
.mega-head strong{font-size:13px;font-weight:700;color:#0f172a;letter-spacing:.02em}
.mega-head span{font-size:11px;color:#526278}
.mega-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.header-menu#header-menu-0 .mega-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.header-menu#header-menu-3 .mega-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.mega-item{display:flex!important;align-items:flex-start;gap:10px;min-height:64px;padding:12px 12px!important;border-radius:12px!important;text-align:left;color:#334155!important;background:transparent;border:1px solid transparent;position:relative;width:100%}
.mega-item:hover,.mega-item:focus-visible{background:#f5f3ff!important;border-color:#ede9fe;color:#6d28d9!important;box-shadow:0 4px 14px #7c3aed12}
.mega-item .mega-ico{flex-shrink:0;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#fff}
.mega-item .mega-ico svg{width:18px;height:18px}
.mega-copy{display:flex;flex-direction:column;gap:3px;min-width:0;padding-top:1px}
.mega-copy strong{font-size:13px;font-weight:600;line-height:1.25;color:inherit}
.mega-copy small{font-size:11px;line-height:1.35;color:#526278;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mega-hot{position:absolute;top:8px;right:8px;font-size:9px;line-height:1;padding:2px 5px;border-radius:4px;background:#fff7ed;color:#ea580c;font-weight:700}
.mega-pending{opacity:.78}
/* wave28 · P1-17 brand mark + P1-02 mega promo placeholder */
header .header-brand .qian-brand-mark{width:28px;height:28px;flex-shrink:0;display:block}
.brand .qian-brand-mark{flex-shrink:0;border-radius:0;background:transparent}
.header-mega{width:min(880px,calc(100vw - 48px))}
.mega-body{display:grid;grid-template-columns:minmax(0,1fr) 168px;gap:14px;align-items:stretch}
.mega-promo{min-width:0}
.mega-promo-card{height:100%;min-height:140px;border-radius:14px;border:1px dashed #d1d5db;background:#f1f5f9;padding:14px 12px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}
.mega-promo-card strong{font-size:12px;font-weight:700;color:#526278;letter-spacing:.02em}
.mega-promo-empty{flex:1;min-height:72px;border-radius:10px;background:repeating-linear-gradient(135deg,#e2e8f0,#e2e8f0 6px,#f8fafc 6px,#f8fafc 12px);display:grid;place-items:center;font-size:11px;font-weight:700;color:#526278;letter-spacing:.06em}
.mega-promo-card small{font-size:10px;color:#526278;line-height:1.35}
@media(max-width:1100px){.mega-body{grid-template-columns:minmax(0,1fr) 140px}.header-mega{width:min(640px,calc(100vw - 32px))}}
@media(max-width:700px){.mega-body{grid-template-columns:1fr}.mega-promo-card{min-height:96px}}

.mega-item.tint-violet .mega-ico{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.mega-item.tint-indigo .mega-ico{background:linear-gradient(135deg,#818cf8,#4f46e5)}
.mega-item.tint-sky .mega-ico{background:linear-gradient(135deg,#38bdf8,#0284c7)}
.mega-item.tint-blue .mega-ico{background:linear-gradient(135deg,#60a5fa,#2563eb)}
.mega-item.tint-cyan .mega-ico{background:linear-gradient(135deg,#22d3ee,#0891b2)}
.mega-item.tint-teal .mega-ico{background:linear-gradient(135deg,#2dd4bf,#0d9488)}
.mega-item.tint-emerald .mega-ico{background:linear-gradient(135deg,#34d399,#059669)}
.mega-item.tint-orange .mega-ico{background:linear-gradient(135deg,#fb923c,#ea580c)}
.mega-item.tint-amber .mega-ico{background:linear-gradient(135deg,#fbbf24,#d97706)}
.mega-item.tint-pink .mega-ico{background:linear-gradient(135deg,#f472b6,#db2777)}
.mega-item.tint-rose .mega-ico{background:linear-gradient(135deg,#fb7185,#e11d48)}
.mega-item.tint-slate .mega-ico{background:linear-gradient(135deg,#94a3b8,#475569)}
header .header-login{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 16px;border-radius:999px;background:linear-gradient(100deg,#3b82f6 0%,#6366f1 45%,#8b5cf6 100%);color:#fff!important;font-size:13px;font-weight:500;letter-spacing:.01em;text-decoration:none;box-shadow:0 3px 10px #6366f128;flex-shrink:0;white-space:nowrap}
header .header-login:hover{filter:brightness(1.06);box-shadow:0 4px 14px #6366f133}
header .header-user{position:relative;flex-shrink:0}
header .header-user-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 4px;border-radius:999px;background:#fff;border:1px solid #e8ecf4;color:#334155;font-weight:650}
header .header-user-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);font-size:13px}
header .header-user-menu{position:absolute;right:0;top:44px;z-index:40;min-width:168px;padding:6px;border-radius:14px;background:#fff;border:1px solid #e8ecf4;box-shadow:0 16px 40px rgba(15,23,42,.14);display:flex;flex-direction:column}
header .header-user-menu[hidden]{display:none}
header .header-user-menu a,header .header-user-menu button{height:40px;padding:0 12px;border-radius:10px;text-align:left;text-decoration:none;color:#334155;background:transparent;font-weight:650}
header .header-user-menu a:hover,header .header-user-menu button:hover{background:#f5f3ff;color:#6d28d9}
@media(max-width:1100px){.mega-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header-mega{width:min(520px,calc(100vw - 32px))}}
@media(max-width:700px){.header-mega{position:fixed;left:12px!important;right:12px;top:64px;width:auto;transform:none!important;max-height:calc(100vh - 80px);overflow:auto}.mega-grid{grid-template-columns:1fr}}

/* wave24 · P1-01 公开页像素约定（对照 formal-align-ref/*.png）
   顶栏 height:64 已在文件头 header{height:64px}；登录/注册 CTA 高 36、pill。
   本轮不改工作台侧栏宽 256；仅确认公开页固定顶栏尺寸与阴影克制。 */
body.shell-header-only header{height:64px;box-shadow:0 1px 0 #eef2f7,0 4px 12px #0f172a08}

/* wave26 · P1-13 方案 B：workshop 为 shell-header-only（无壳 #sidebar）；
   sticky 叠层细节在 index.html（壳顶 z=30 / SPA top-subnav z=25）。
   保留公开页 header-only；mount+侧栏页（profile/credits 等）不受影响。 */
body.shell-header-only[data-shell-active="workshop"] > header{z-index:30}

/* wave27 · P2-05 登录/注册 CTA 收紧；P2-07 顶栏桌面版下拉；公开页脚 PENDING */
.header-desk-group{flex-shrink:0}
.header-desk-trigger{width:auto!important;min-width:108px;padding:0 10px!important;gap:4px;font-size:13px}
.header-desk-menu{width:280px;max-width:calc(100vw - 32px);padding:10px 10px 12px;left:auto;right:0}
.desk-dd-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 8px 10px;border-bottom:1px solid #f1f5f9;margin-bottom:8px}
.desk-dd-head strong{font-size:12px;font-weight:700;color:#0f172a}
.desk-dd-head span{font-size:10px;color:#526278}
.header-desk-menu .desk-dd-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#334155;font-size:13px;font-weight:500}
.header-desk-menu .desk-dd-item:hover,.header-desk-menu .desk-dd-item:focus-visible{background:#f5f3ff;color:#6d28d9}
.header-desk-menu .desk-dd-item small{font-size:10px;color:#526278;font-weight:600;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:6px;padding:2px 6px}
.header-desk-menu .desk-dd-page{justify-content:center;margin-top:4px;border:1px solid #eef2ff;font-weight:600;color:#6d28d9}
.qian-site-footer{position:static;width:auto;left:auto;right:auto;bottom:auto;margin:0;padding:28px 24px 40px;background:#fff;border-top:1px solid #eef2ff;color:#526278;font-size:12px}
.qian-site-footer-inner{max-width:1120px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.qian-site-footer a{color:#526278;text-decoration:none;font-weight:500}
.qian-site-footer a:hover{color:#6d28d9}
body.shell-header-only .qian-site-footer{padding-bottom:48px}
@media(max-width:1100px){
  .header-desk-group{margin-left:auto}
  header .header-login{margin-left:8px}
}

/* wave31 · 公开壳手感：mega / 顶栏 / token 与 64 顶栏约定对齐
   Token 约定（公开 shell-header-only，与 wave29/30 wrap 视觉统一）：
   - header height: 64px（文件头 + body.shell-header-only header）
   - header pad: 0 20px；nav gap: 32px；brand 字重 600→650 视觉（用 600 + tracking）
   - 登录 pill 高 32；桌面下拉 / 登录/注册 不回归
   - mega 面板圆角 18、阴影克制、入场 .16s；推广位仍 PENDING 空态（无假大图）
   - 悬浮条样式在 workspace-shell.js 注入；仍全部 disabled+PENDING
   - workshop 仍 data-shell-mode=header（方案 B）；本波不改 SPA 侧栏 */

/* 顶栏 brand + 导航字重 / hover 下划线 */
header .header-brand{font-weight:650!important;letter-spacing:-.01em;color:#1e293b!important}
header .header-brand span{font-weight:650}
@supports not (font-weight:650){header .header-brand,header .header-brand span{font-weight:600!important}}
header nav>a,header nav>button,.header-menu-trigger{font-weight:550;position:relative}
@supports not (font-weight:550){header nav>a,header nav>button,.header-menu-trigger{font-weight:500}}
header nav>a:hover,header nav>button:hover,.header-menu-trigger:hover,
header nav>a:focus-visible,header nav>button:focus-visible,.header-menu-trigger:focus-visible,
.header-menu-trigger[aria-expanded=true]{
  background:#f5f3ff;color:#6d28d9
}
header nav>a:not(.header-login)::after,
header nav>button:not(.header-login)::after,
.header-menu-trigger::after{
  content:'';position:absolute;left:12%;right:12%;bottom:4px;height:2px;border-radius:2px;
  background:transparent;transition:background .14s ease
}
header nav>a:not(.header-login):hover::after,
header nav>button:not(.header-login):hover::after,
.header-menu-trigger:hover::after,
.header-menu-trigger[aria-expanded=true]::after{
  background:#a78bfa
}
/* 登录 pill / 桌面下拉：去掉下划线伪元素，避免回归 */
header .header-login::after,.header-desk-trigger::after{display:none!important}
header .header-login{height:32px;font-weight:600}

/* mega-menu 手感再收：阴影/圆角/入场、列间距、ico 对齐 */
.header-mega{
  width:min(900px,calc(100vw - 48px));
  padding:16px 18px 18px;
  border-radius:18px!important;
  border:1px solid #e8ecf7!important;
  box-shadow:0 18px 48px rgba(15,23,42,.14),0 4px 14px rgba(15,23,42,.06)!important;
  animation:qianMegaIn .16s cubic-bezier(.2,.7,.2,1);
}
.header-group:nth-of-type(2) .header-mega,.header-group:nth-of-type(3) .header-mega{
  left:50%;transform:translateX(-35%)
}
.header-group:nth-of-type(2) .header-mega[hidden],.header-group:nth-of-type(3) .header-mega[hidden]{/* keep */ }
.mega-head{padding:2px 6px 14px;margin-bottom:14px}
.mega-grid{gap:10px 12px}
.mega-item{align-items:center!important;gap:12px;min-height:68px;padding:12px 14px!important;border-radius:14px!important}
.mega-item .mega-ico{width:40px;height:40px;border-radius:12px;align-self:center}
.mega-item .mega-ico svg{width:19px;height:19px}
.mega-copy{padding-top:0;gap:4px}
.mega-copy strong{font-size:13.5px;font-weight:650;letter-spacing:-.01em}
@supports not (font-weight:650){.mega-copy strong{font-weight:600}}
.mega-body{grid-template-columns:minmax(0,1fr) 176px;gap:16px}
.mega-promo-card{border-radius:16px;min-height:148px;padding:16px 14px;background:#f8fafc;border:1px dashed #cbd5e1}
.mega-promo-empty{min-height:78px;border-radius:12px;letter-spacing:.08em}
@media(prefers-reduced-motion:reduce){
  .header-mega{animation:none}
}
@media(max-width:1100px){
  .mega-body{grid-template-columns:minmax(0,1fr) 148px;gap:12px}
  .header-mega{width:min(660px,calc(100vw - 32px))}
}
@media(max-width:700px){
  .header-mega{top:64px;border-radius:16px!important}
  .mega-body{grid-template-columns:1fr}
}

/* === wave33 · mini-tool / workspace shared polish (2026-10-31 Asia/Shanghai) ===
   CTA46 · creation/job 16 · empty dashed; does not alter shell-mode or APIs. */
#generate:disabled{box-shadow:none}
.slot{border-radius:16px}
.creation > h1{font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:#0f172a}
.creation .intro{color:#526278;line-height:1.55;margin-top:6px}
@media(max-width:700px){
  #generate{height:46px;min-height:46px}
}
/* wave34 · remaining mount tool pages: main 1200/32 · #generate/#run 46 · creation/job 16 already; no new static file */

/* wave36 · 1101–1480 视口：导航完整展开，收紧间距避免溢出 */
@media(min-width:1101px) and (max-width:1480px){header{gap:20px}header nav{gap:4px}}
/* wave36 · 顶栏一级项对齐参考稿（8 项止于「稿件管理」）：个人中心/算力充值/购买会员/公司介绍 在 ≥1101 视口原本溢出叠压（1280–1600 均叠），先隐藏。
   ⚠ 待站长/用户确认入口去向；回退＝删本条。 */
@media(min-width:1101px){header nav .header-profile,header nav .header-credits,header nav .header-member,header nav .header-about{display:none}}

/* wave39 · SHELL-P1-01 顶栏字号略抬（1280 展开已由 wave36 ≤1100 断点保障） */
header nav>a,header nav>button,.header-menu-trigger{font-size:15px;font-weight:500}

/* ========== wave40 · SHELL-P1 主按钮 36h r10（登录/注册胶囊） ========== */
header .header-login{
  height:36px;min-width:102px;padding:0 18px;border-radius:10px;
  font-size:13.5px;font-weight:600;
  background:linear-gradient(100deg,#3b82f6 0%,#6366f1 45%,#8b5cf6 100%);
  box-shadow:0 3px 12px #6366f12a;
}
header .header-login:hover{filter:brightness(1.05);box-shadow:0 4px 14px #6366f133}

/* ========== wave41 · SHELL-P1-02 顶栏激活胶囊 ==========
   参考稿：浅灰胶囊 rgba(15,15,16,.04) r999 高 36；由 workspace-shell 打 .nav-pill-active */
header nav>a.nav-pill-active,
header nav>button.nav-pill-active,
.header-menu-trigger.nav-pill-active{
  height:36px;border-radius:999px;padding:0 14px;
  background:rgba(15,15,16,.04);color:#0F0F10;
  font-weight:600;
}
header nav>a.nav-pill-active:hover,
header nav>button.nav-pill-active:hover,
.header-menu-trigger.nav-pill-active:hover,
.header-menu-trigger.nav-pill-active[aria-expanded=true]{
  background:rgba(15,15,16,.07);color:#0F0F10;
}
/* 激活项去掉 hover 下划线伪元素，避免与胶囊叠 */
header nav>a.nav-pill-active::after,
header nav>button.nav-pill-active::after,
.header-menu-trigger.nav-pill-active::after{
  background:transparent !important;
}
/* 首页固定宽按钮：激活时允许胶囊水平 padding */
.header-home.nav-pill-active{width:auto;min-width:52px;padding:0 14px}

/* ========== wave45 · SHELL-P1-01 顶栏字号/主钮再贴 ==========
   对照参考稿：一级导航 ≈16px/500；登录胶囊 36h r10 ≈102 起 */
header nav>a,header nav>button,.header-menu-trigger{
  font-size:16px;font-weight:500;letter-spacing:.01em;
}
header .header-login{
  height:36px;min-height:36px;min-width:102px;padding:0 18px;border-radius:10px;
  font-size:14px;font-weight:600;letter-spacing:.01em;
  background:linear-gradient(100deg,#3b82f6 0%,#6366f1 48%,#8b5cf6 100%);
  box-shadow:0 3px 12px #6366f12e;
  display:inline-flex;align-items:center;justify-content:center;
}
header .header-login:hover{filter:brightness(1.05);box-shadow:0 4px 14px #6366f138}
/* 激活胶囊与 16px 字号同档 */
header nav>a.nav-pill-active,
header nav>button.nav-pill-active,
.header-menu-trigger.nav-pill-active{
  height:36px;font-size:16px;font-weight:600;
}

/* ========== wave46 · SHELL mega 手感再收（无真大图；PENDING 占位保留） ==========
   面板暖边/阴影克制；项 hover 浅紫；推广位暖虚线空态；不编营销大图 */
.header-mega{
  width:min(920px,calc(100vw - 48px));
  padding:18px 18px 20px;
  border-radius:20px !important;
  border:1px solid #ebe4dc !important;
  background:#fff !important;
  box-shadow:0 20px 52px rgba(15,23,42,.12),0 4px 16px rgba(15,23,42,.05) !important;
  animation:qianMegaIn .18s cubic-bezier(.2,.7,.2,1);
}
.mega-head{
  padding:2px 6px 14px;margin-bottom:14px;
  border-bottom:1px solid #f0ebe4;
}
.mega-head strong{font-size:13.5px;font-weight:700;color:#0F0F10;letter-spacing:.01em}
.mega-head span{font-size:11px;color:#9ca3af}
.mega-grid{gap:10px 14px}
.mega-item{
  align-items:center !important;gap:12px;min-height:70px;
  padding:12px 14px !important;border-radius:14px !important;
  border:1px solid transparent;
  transition:background .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.mega-item:hover,.mega-item:focus-visible{
  background:#f7f4ff !important;border-color:#e9e0ff;color:#5b21b6 !important;
  box-shadow:0 6px 16px rgba(124,58,237,.08);
}
.mega-item .mega-ico{
  width:42px;height:42px;border-radius:13px;align-self:center;
  box-shadow:0 4px 10px rgba(15,23,42,.12);
}
.mega-item .mega-ico svg{width:19px;height:19px}
.mega-copy strong{font-size:13.5px;font-weight:650;letter-spacing:-.01em}
.mega-copy small{font-size:11px;color:#526278;line-height:1.4}
.mega-body{grid-template-columns:minmax(0,1fr) 180px;gap:16px}
.mega-promo-card{
  border-radius:16px;min-height:152px;padding:16px 14px;
  background:linear-gradient(165deg,#faf8f5 0%,#f3f0ea 100%);
  border:1.5px dashed #d6cfc4;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.mega-promo-card strong{font-size:12px;font-weight:700;color:#78716c;letter-spacing:.04em}
.mega-promo-empty{
  min-height:82px;border-radius:12px;letter-spacing:.1em;
  background:repeating-linear-gradient(135deg,#ebe6df,#ebe6df 6px,#faf8f5 6px,#faf8f5 12px);
  color:#a8a29e;font-size:11px;font-weight:700;
}
.mega-promo-card small{font-size:10px;color:#a8a29e;line-height:1.4}
.mega-pending{opacity:.82}
.mega-hot{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
@media(prefers-reduced-motion:reduce){.header-mega{animation:none}}
@media(max-width:1100px){
  .mega-body{grid-template-columns:minmax(0,1fr) 152px;gap:12px}
  .header-mega{width:min(680px,calc(100vw - 32px))}
}
@media(max-width:700px){
  .header-mega{border-radius:16px !important;padding:14px}
  .mega-body{grid-template-columns:1fr}
  .mega-item{min-height:64px}
}

/* ========== wave47 · WS-P1 workspace/工具区主钮与卡圆角再贴公开壳
   #generate/#run → 40h/r10；creation/job 暖边；不改 API / shell-mode / PENDING */
#generate,#run{
  height:40px;min-height:40px;max-height:40px;
  border-radius:10px;
  box-shadow:0 6px 14px #7c3aed24;
  font-size:.92rem;
}
@media(max-width:700px){
  #generate,#run{height:40px;min-height:40px;max-height:40px}
}
.creation{
  border:1px solid #e7e0d8;
  border-radius:16px;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}
.job{
  border-color:#e7e0d8;
  border-radius:16px;
}
.history-empty{
  border-color:#e7e0d8;
  background:#faf8f5;
  border-radius:16px;
}

/* ========== wave48 · mini 工具页共享档（candidate only · 0 元）
   body 暖米；creation/slot/chip 暖边 r16；主钮档沿用 wave47 40h/r10
   不改门控/API；PENDING/disabled 保留；不编【尚未公布】 */
body.shell-header-only,
body[data-shell-mode="mount"]{
  background:#F6F3EF !important;
}
.creation{
  border:1px solid #e7e0d8;
  border-radius:16px;
  background:#fff;
  box-shadow:0 6px 18px rgba(15,23,42,.045),0 1px 2px rgba(15,23,42,.03);
}
.slot{
  border-radius:16px;
  border-color:inherit;
}
.chip{
  border-color:#e7e0d8;
  background:#faf8f5;
  border-radius:999px;
}
.chip.selected{
  background:#fff;
}
.asset-card{
  border-radius:14px;
}
.asset-card img{
  border-color:#e7e0d8 !important;
}
.history-empty{
  border:1px dashed #e7e0d8;
  background:#faf8f5;
  border-radius:16px;
  color:#526278;
}
#prompt,textarea#prompt{
  border-color:#e7e0d8;
  background:#fffcf8;
  border-radius:10px;
}
.models button{
  border-color:#e7e0d8;
  border-radius:14px;
  background:#fff;
}
.size-tabs,.size-trigger{
  border-color:#e7e0d8;
  background:#fff;
}

/* Keep wide mega panels inside the viewport, independent of trigger position. */
header .header-group .header-menu.header-mega{
  position:fixed;left:24px!important;right:24px;top:64px;
  margin-inline:auto;transform:none!important;
  max-height:calc(100dvh - 80px);overflow:auto;
}

/* ========== wave49 · 窄屏顶栏 / header-only 汉堡抽屉（0 元） ==========
   390 视口：桌面下载+教学台挤爆顶栏 → 窄屏隐藏；登录缩胶囊；
   shell-header-only 无 #sidebar 时汉堡打开 header-nav 面板（不编【尚未公布】） */
@media(max-width:700px){
  header{
    padding:0 12px;gap:8px;
    overflow:visible;
  }
  header .header-desk-group,
  header .header-return{display:none !important}
  header .header-brand{
    width:auto !important;min-width:0 !important;flex:1 1 auto;
    max-width:calc(100% - 130px);
  }
  header .header-login,header .header-user{
    margin-left:auto;flex-shrink:0;
  }
  header .header-login{
    min-width:72px;width:auto;padding:0 12px;font-size:13px;
    height:34px;min-height:34px;border-radius:10px;
  }
  #nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;flex-shrink:0;border-radius:10px;
    color:#334155;background:transparent;
  }
  #nav-toggle:hover,#nav-toggle[aria-expanded="true"]{
    background:#f5f3ff;color:#6d28d9;
  }
}
@media(max-width:1100px){
  /* Match the breakpoint that collapses the horizontal navigation. */
  body.shell-header-only header.header-nav-open nav,
  body.shell-header-only header.header-nav-open > nav{
    display:flex !important;
    flex-direction:column;align-items:stretch;gap:4px;
    position:fixed;left:12px;right:12px;top:68px;z-index:45;
    max-height:calc(100dvh - 84px);overflow:auto;
    padding:10px;border-radius:16px;
    background:#fffcf8;border:1px solid #ebe4dc;
    box-shadow:0 18px 44px rgba(15,23,42,.16);
  }
  body.shell-header-only header.header-nav-open nav > a,
  body.shell-header-only header.header-nav-open nav > button,
  body.shell-header-only header.header-nav-open nav .header-menu-trigger{
    width:100%;justify-content:flex-start;
    height:44px;min-height:44px;padding:0 12px;border-radius:12px;
    font-size:15px;
  }
  body.shell-header-only header.header-nav-open nav .header-group{
    position:static;width:100%;height:auto;min-height:44px;padding:0;
  }
  body.shell-header-only header.header-nav-open .header-mega,
  body.shell-header-only header.header-nav-open .header-menu{
    position:static !important;transform:none !important;
    width:100% !important;max-width:none !important;
    margin:4px 0 8px;box-shadow:none !important;
    border:1px solid #f0ebe4 !important;border-radius:12px !important;
  }
}
/* 720 仍可能挤：仅藏教学台，保留登录；桌面下载在 ≤700 已藏 */
@media(min-width:701px) and (max-width:900px){
  header .header-return{display:none !important}
  header{gap:12px;padding:0 16px}
  header .header-login{min-width:88px;padding:0 14px;font-size:13.5px}
}

.creation #channel-note.service-note{position:static;inset:auto;white-space:normal;overflow:visible;text-overflow:clip;margin-top:7px}

/* Keep record titles in their own card, outside the fixed site navigation. */
#history-list .history-item > header { all: unset; display: block; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }

/* These legacy forms keep status notes beside their controls. */
body[data-shell-active="image-compress"] .service-note,
body[data-shell-active="image-resize"] .service-note,
body[data-shell-active="background-removal"] .service-note,
body[data-shell-active="image-enhance"] .service-note,
body[data-shell-active="photo-restore"] .service-note { position: static; inset: auto; width: auto; max-width: none; transform: none; margin: 8px 0; white-space: normal; overflow-wrap: anywhere; }

/* Keep only these workspaces' status messages in their tool flow. */
body[data-shell-active="ai-arrangement"] #channel-note.service-note,
body[data-shell-active="ai-arrangement"] #service-note.service-note,
body[data-shell-active="brand-design"] #channel-note.service-note,
body[data-shell-active="brand-design"] #service-note.service-note,
body[data-shell-active="culture-wall"] #channel-note.service-note,
body[data-shell-active="culture-wall"] #service-note.service-note,
body[data-shell-active="extract-elements"] #channel-note.service-note,
body[data-shell-active="extract-elements"] #service-note.service-note,
body[data-shell-active="extract-text"] #channel-note.service-note,
body[data-shell-active="extract-text"] #service-note.service-note,
body[data-shell-active="free-enhance"] #channel-note.service-note,
body[data-shell-active="free-enhance"] #service-note.service-note,
body[data-shell-active="free-matting"] #channel-note.service-note,
body[data-shell-active="free-matting"] #service-note.service-note,
body[data-shell-active="free-prompt"] #channel-note.service-note,
body[data-shell-active="free-prompt"] #service-note.service-note,
body[data-shell-active="id-photo"] #channel-note.service-note,
body[data-shell-active="id-photo"] #service-note.service-note,
body[data-shell-active="image-blending"] #channel-note.service-note,
body[data-shell-active="image-blending"] #service-note.service-note,
body[data-shell-active="image-layering"] #channel-note.service-note,
body[data-shell-active="image-layering"] #service-note.service-note,
body[data-shell-active="image-modify"] #channel-note.service-note,
body[data-shell-active="image-modify"] #service-note.service-note,
body[data-shell-active="image-to-svg"] #channel-note.service-note,
body[data-shell-active="image-to-svg"] #service-note.service-note,
body[data-shell-active="image-zoom"] #channel-note.service-note,
body[data-shell-active="image-zoom"] #service-note.service-note,
body[data-shell-active="logo-design"] #channel-note.service-note,
body[data-shell-active="logo-design"] #service-note.service-note,
body[data-shell-active="menu-design"] #channel-note.service-note,
body[data-shell-active="menu-design"] #service-note.service-note,
body[data-shell-active="object-to-design"] #channel-note.service-note,
body[data-shell-active="object-to-design"] #service-note.service-note,
body[data-shell-active="planar-to-real"] #channel-note.service-note,
body[data-shell-active="planar-to-real"] #service-note.service-note,
body[data-shell-active="upload"] #channel-note.service-note,
body[data-shell-active="upload"] #service-note.service-note { position:static; inset:auto; width:auto; max-width:none; transform:none; margin:8px 0; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }

/* Company tile. The bitmap is only the rounded-square mark; the name stays in text. */
header .header-brand{width:auto;min-width:0;height:auto;max-height:48px}
header .header-brand .qian-brand-mark,
.brand .qian-brand-mark,
.footer-brand .qian-brand-mark{
  width:32px;height:32px;border-radius:0;background:transparent;box-shadow:none;
  object-fit:contain;display:block;flex-shrink:0;
}
header .header-brand .brand-lockup{display:flex;flex-direction:column;justify-content:center;line-height:1.05;min-width:0}
header .header-brand .brand-name{font-size:15px;font-weight:650;color:#1e293b;letter-spacing:-.02em}
header .header-brand .brand-sub{display:block;margin-top:1px;font-size:10px;font-weight:500;line-height:1.2;color:#3d6f86;letter-spacing:.01em}
.footer-brand{display:inline-flex;align-items:center;gap:8px;color:#334155 !important}
.footer-brand span{display:flex;flex-direction:column;line-height:1.15}
.footer-brand strong{font-size:13px;font-weight:700;color:#0f2740}
.footer-brand small{font-size:10px;font-weight:600;letter-spacing:.08em;color:#5b7c8a}
.qian-site-footer-inner{gap:16px 28px}
@media(max-width:700px){
  header .header-brand .brand-sub{display:none}
  header .header-brand .qian-brand-mark{width:28px;height:28px}
}
