@font-face{font-family:OPPOSans;src:url(/fonts/OPPOSans-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OPPOSans;src:url(/fonts/OPPOSans-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:OPPOSans;src:url(/fonts/OPPOSans-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{color:#0f1724;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--page-bg:#e9eef4;--panel-bg:#ffffffd1;--panel-border:#0f172a1f;--panel-shadow:0 24px 72px #0f172a1a;--text-strong:#0f172a;--text-soft:#4b5563;--accent-warm:#0a84ff;--accent-warm-deep:#005fd1;--accent-mint:#0a84ff;--accent-mint-soft:#0a84ff29;--surface-soft:#eff4faeb;--surface-strong:#fffffff7;background:#e9eef4;font-family:OPPOSans,Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-weight:500;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 12% 12%,#93c5fd47,#0000 20%),radial-gradient(circle at 88% 10%,#ffffff6b,#0000 18%),radial-gradient(circle at 72% 82%,#5e7ca62e,#0000 24%),repeating-linear-gradient(0deg,#0f172a08 0 1px,#0000 1px 24px),repeating-linear-gradient(90deg,#ffffff06 0 1px,#0000 1px 24px),linear-gradient(#e8eef5 0%,#dfe7f0 48%,#d6e0ea 100%);min-width:320px;min-height:100svh;margin:0;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;z-index:0;position:fixed;inset:auto}body:before{filter:blur(6px);background:radial-gradient(circle,#ffffffb3 0%,#bfdbfe24 62%,#0000 100%);border-radius:999px;width:24vw;min-width:260px;height:24vw;min-height:260px;animation:20s ease-in-out infinite floatPanel;top:6vh;left:-6vw}body:after{filter:blur(8px);background:radial-gradient(circle,#ffffffbd 0%,#cbd5e129 58%,#0000 100%);border-radius:999px;width:22vw;min-width:220px;height:22vw;min-height:220px;animation:22s ease-in-out infinite floatDiamond;bottom:10vh;right:-6vw}button,input,select{font:inherit}#root{z-index:1;width:100%;position:relative}@keyframes floatPanel{0%,to{transform:translate(0,0)rotate(18deg)}50%{transform:translate(30px,18px)rotate(23deg)}}@keyframes floatDiamond{0%,to{opacity:.82;transform:translate(0,0)rotate(0)}50%{opacity:1;transform:translate(-20px,-24px)rotate(12deg)}}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--panel-border);background:var(--panel-bg);width:min(100%,460px);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(22px)saturate(1.12);backdrop-filter:blur(22px)saturate(1.12);border-radius:26px;padding:28px}.auth-header h1{color:var(--text-strong);letter-spacing:-.03em;margin:0;font-size:clamp(28px,4vw,38px);line-height:1.04}.auth-subtitle{color:#374151e0;margin:10px 0 0}.auth-switch{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;display:grid}.auth-switch button,.auth-submit-button{font:inherit;cursor:pointer;border:0;border-radius:16px;font-weight:700}.auth-switch button{min-height:46px;color:var(--text-soft);background:#f8fafceb;border:1px solid #0f172a14}.auth-switch button.is-active{background:linear-gradient(135deg, var(--accent-warm), var(--accent-warm-deep));color:#fff9f3}.auth-switch button.is-locked{opacity:.72}.auth-form{gap:14px;margin-top:20px;display:grid}.auth-field{gap:8px;display:grid}.auth-field span{color:var(--text-soft);font-size:13px}.auth-field input{width:100%;min-height:48px;color:var(--text-strong);font:inherit;background:#ffffffeb;border:1px solid #0f172a14;border-radius:14px;padding:0 14px}.auth-message{color:#b95e2d;margin:0;font-size:13px}.auth-submit-button{background:linear-gradient(135deg, var(--accent-mint), #256d5b);color:#fff;min-height:52px}.auth-helper{color:var(--text-soft);margin:0;font-size:12px}.auth-locked-panel{color:var(--text-soft);background:#f8fafcf0;border:1px solid #0f172a14;border-radius:18px;gap:8px;margin-top:20px;padding:18px;display:grid}.site-footnote{color:#626a74c7;margin-top:14px;padding:12px 4px 0;font-size:11px;line-height:1.65}.site-footnote p{margin:0}.site-footnote p+p{margin-top:8px}.app-shell{width:min(1380px,100% - 32px);margin:0 auto;padding:12px 0 28px;position:relative}.top-auth-bar{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;min-height:24px;margin-bottom:10px;display:flex}.language-switch{white-space:nowrap;background:#ffffffb8;border:1px solid #0f172a0f;border-radius:999px;flex:none;order:-1;align-items:center;gap:0;padding:4px 8px;display:inline-flex;box-shadow:inset 0 1px #ffffff6b}.language-separator{color:#6f78848f;margin:0 2px;font-size:12px;line-height:1}.language-link{z-index:1;position:relative}.language-link.is-active{color:var(--text-strong);text-underline-offset:3px;text-decoration:underline}.top-auth-text{color:#374151f5;white-space:nowrap;font-size:12px;line-height:1}.hidden-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-panel,.status-strip,.workspace-panel,.preview-card,.summary-card,.stats-card{border:1px solid var(--panel-border);background:var(--panel-bg);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(22px)saturate(1.1);backdrop-filter:blur(22px)saturate(1.1)}.hero-panel{background:linear-gradient(135deg, #ffffffdb, #f8fafcad), var(--panel-bg);border-radius:18px;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:14px;padding:18px 20px;display:grid;position:relative;overflow:hidden}.hero-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.top-auth-link{color:#4b5563e6;font:inherit;cursor:pointer;box-shadow:none;background:0 0;border:0;padding:0;font-size:12px;line-height:1;transition:color .16s,opacity .16s,transform .16s,text-shadow .16s}.top-auth-link:hover{color:var(--text-strong);box-shadow:none;text-underline-offset:3px;text-shadow:0 0 16px #0a84ff1f;-webkit-text-decoration:underline #0a84ff6b;text-decoration:underline #0a84ff6b;transform:translateY(-1px)}.logout-button,.claim-button{width:auto;min-width:auto;min-height:auto}.claim-button.is-claimable{color:#215548}.auth-modal-layer{z-index:80;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0f172a3d;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-modal-card{width:min(100%,460px);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 34px 84px #0f172a29,inset 0 0 0 1px #ffffff6b}.auth-header{position:relative}.auth-close-button{width:34px;height:34px;color:var(--text-strong);cursor:pointer;background:#f8fafcf5;border:1px solid #0f172a14;border-radius:999px;font-size:22px;line-height:1;position:absolute;top:-4px;right:-4px}.hero-panel>*{z-index:2;position:relative}.hero-panel:after{content:"";opacity:.88;filter:blur(3px);pointer-events:none;background:radial-gradient(circle,#bfdbfe6b,#ffffff2e 55%,#0000 75%);border-radius:999px;width:180px;height:180px;position:absolute;top:18px;right:24px;transform:none}.eyebrow,.card-label,.status-label{letter-spacing:.22em;text-transform:uppercase;color:#0a84ffd1;margin:0 0 10px;font-size:12px;line-height:1}.hero-panel h1,.workspace-header h2,.summary-card h2,.stats-card h2{color:var(--text-strong);margin:0}.hero-panel h1{letter-spacing:-.03em;white-space:nowrap;max-width:none;font-size:clamp(24px,2.6vw,34px);line-height:1.02}.hero-subtitle{color:#374151eb;white-space:nowrap;margin:12px 0 0;font-size:clamp(14px,1.5vw,18px);line-height:1.1}.hero-badges,.status-meta{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.hero-badges span,.status-meta span{color:#374151e6;background:#f8fafcd6;border:1px solid #0f172a14;border-radius:999px;padding:9px 12px;font-size:13px}.upload-button,.secondary-button,.export-button,.source-switch button,.zoom-actions button{font:inherit;cursor:pointer;border:0;border-radius:18px;transition:transform .18s,box-shadow .18s,background-color .18s,border-color .18s,color .18s,opacity .18s}.upload-button,.secondary-button,.export-button{width:100%;min-height:52px;font-weight:700}.upload-button{color:#fff;z-index:3;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border-radius:14px;justify-content:center;align-items:center;width:auto;min-width:112px;min-height:44px;padding:0 14px;font-size:15px;display:inline-flex;position:relative;box-shadow:0 14px 32px #0074f047,inset 0 0 0 1px #ffffff42}.upload-button.is-subtle{color:#0f5fd6;background:linear-gradient(#eef5ff 0%,#dbeafe 100%);box-shadow:0 10px 22px #0a84ff1f,inset 0 0 0 1px #ffffff47}.upload-button.is-disabled,.secondary-button:disabled,.export-button:disabled,.source-switch button:disabled,.primary-action-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{color:#1f2937f5;background:#fffffff0;border:1px solid #0f172a1a;box-shadow:inset 0 1px #ffffffd1,0 1px 2px #0f172a0d}.primary-action-button{color:#fff;width:auto;min-width:136px;min-height:46px;font:inherit;letter-spacing:-.01em;cursor:pointer;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border:1px solid #0074f0e0;border-radius:14px;justify-content:center;align-items:center;padding:0 16px;font-weight:800;transition:transform .18s,box-shadow .18s,opacity .18s,background .18s,border-color .18s;display:inline-flex;box-shadow:0 16px 30px #0074f03d,inset 0 0 0 1px #ffffff2e}.primary-action-button.is-busy{cursor:progress}.upload-button:hover,.export-button:hover,.primary-action-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 34px #0074f04d,inset 0 0 0 1px #ffffff38}.secondary-button:hover,.source-switch button:hover,.zoom-actions button:hover{border-color:#0f172a24;transform:translateY(-1px);box-shadow:0 12px 24px #0f172a1a}.upload-button:active,.secondary-button:active,.export-button:active,.primary-action-button:active,.source-switch button:active,.zoom-actions button:active{transform:translateY(0)}.compact-button{width:148px;min-height:46px}.inline-upload-button{text-align:center;justify-content:center;justify-self:start;align-items:center;width:136px;min-height:38px;font-size:13px;line-height:1;display:inline-flex}.full-button{margin-top:18px}.status-strip{background:linear-gradient(180deg, #ffffffd1, #f8fafcb8), var(--panel-bg);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:8px 12px;display:flex}.status-strip strong{color:#1f2937e6;letter-spacing:-.01em;font-size:13px;font-weight:600;line-height:1.2;display:block}.status-main{flex:1;min-width:0}.status-main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.status-label{color:#64748bd1;letter-spacing:.18em;margin-bottom:4px;font-size:10px}.status-meta{flex-wrap:nowrap;gap:8px;margin-top:0;overflow:hidden}.status-meta span{white-space:nowrap;color:#64748beb;background:#ffffffb3;border-color:#0f172a0d;padding:6px 9px;font-size:11px}.workspace-panel{background:linear-gradient(180deg, #fffc, #f8fafcb3), var(--panel-bg);border-radius:16px;margin-top:12px;padding:16px}.workspace-header{justify-content:space-between;align-items:start;gap:14px;margin-bottom:10px;display:flex}.workspace-header-note{color:#64748be6;text-align:right;white-space:nowrap;max-width:380px;margin:0;font-size:12px;line-height:1.2}.card-header-inline{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.card-header-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.workspace-header h2{letter-spacing:-.02em;font-size:28px}.preview-grid{gap:10px;display:grid}.preview-grid-double{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-card{background:linear-gradient(180deg, #ffffffeb, #f8fafcd1), var(--panel-bg);border-radius:14px;padding:12px}.preview-card-plain{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.pattern-preview-card{gap:8px;display:grid}.pattern-source-bar{justify-content:center;margin-bottom:-2px;display:flex}.preview-card-accent{background:radial-gradient(circle at 100% 0,#bfdbfe57,#0000 34%),linear-gradient(#fffffff0,#f4f7fbdb)}.preview-card header{margin-bottom:10px}.preview-card h3{color:var(--text-strong);white-space:nowrap;margin:0;font-size:18px}.preview-card canvas{aspect-ratio:1;background-color:#0000;background-image:linear-gradient(45deg,#e2e8f07a 25%,#0000 25%),linear-gradient(-45deg,#e2e8f07a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e2e8f07a 75%),linear-gradient(-45deg,#0000 75%,#e2e8f07a 75%);background-position:0 0,0 11px,11px -11px,-12px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:22px 22px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #0f172a1a;border-radius:12px;width:100%;display:block}.crop-stage{touch-action:none;cursor:grab;border-radius:12px;position:relative;overflow:hidden}.crop-stage.is-empty{place-items:center;display:grid}.crop-frame{pointer-events:none;border:2px solid #fffcf7e6;position:absolute;inset:0;box-shadow:inset 0 0 0 999px #0f172a1f}.crop-placeholder{color:#374151e6;background:#ffffffeb;border:1px solid #0f172a1a;border-radius:999px;padding:8px 12px;font-size:14px;position:absolute}.crop-controls,.pattern-controls{gap:12px;margin-top:12px;display:grid}.pattern-controls-pro{gap:8px}.crop-controls span,.empty-state,.control-row span,.zoom-row span,.checkbox-row span,.progress-meta span,.summary-metrics span,.stats-tile p{color:var(--text-soft)}.control-row{grid-template-columns:max-content minmax(0,1fr) 34px;align-items:center;gap:10px;display:grid}.control-row span{white-space:nowrap}.pattern-toolbar-panel .control-row{grid-template-columns:max-content minmax(0,1fr) 52px;gap:6px}.pattern-toolbar-panel .control-row span,.pattern-toolbar-panel .zoom-row span{white-space:nowrap;color:#6a727ecc;font-size:10px;line-height:1}.pattern-toolbar-panel .control-row strong{color:#343f4ae0;font-size:10px;line-height:1}.size-control{gap:8px;display:grid}.pattern-toolbar-primary{background:linear-gradient(#fbfdfff0,#f3f6f9e6);border:1px solid #0f172a14;border-radius:9px;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:6px;padding:5px;display:flex;overflow-x:auto;box-shadow:inset 0 1px #ffffffd1}.pattern-toolbar-divider{background:#0f172a14;flex:none;width:1px;height:16px}.pattern-toolbar-secondary{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(200px,.9fr);gap:8px;display:grid}.pattern-toolbar-panel{background:linear-gradient(#fafbfdf0,#f5f7faeb);border:1px solid #0f172a14;border-radius:10px;gap:5px;min-width:0;padding:8px 9px;display:grid;box-shadow:inset 0 1px #ffffffb3}.pattern-toolbar-panel-title{color:#586370e0;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:700;line-height:1}.size-control.is-locked .control-row span:before,.preset-row.is-locked>.pattern-toolbar-panel-title:before{content:"🔒";margin-right:6px}.size-control.is-locked .control-row span,.preset-row.is-locked>.pattern-toolbar-panel-title{white-space:nowrap}.size-control.is-locked .control-row span,.preset-row.is-locked>.pattern-toolbar-panel-title,.size-control.is-locked strong{color:#6b51408f}.size-control.is-locked input,.size-control.is-locked .size-toggle,.size-control.is-locked .size-extra-options button,.preset-row.is-locked .preset-actions button{opacity:.48;cursor:not-allowed}.size-control-main{grid-template-columns:minmax(0,1fr) 56px;align-items:center;gap:6px;display:grid}.control-row-ghost-label{visibility:hidden;width:0;min-width:0;overflow:hidden}.size-toggle,.size-extra-options button{color:#374151e6;font:inherit;cursor:pointer;background:#f8fafcf0;border:1px solid #0f172a1a;border-radius:14px;font-weight:700}.size-toggle{border-radius:8px;height:30px;font-size:10px}.size-toggle.is-active,.size-extra-options button.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border-color:#0074f0e0}.size-extra-options{justify-content:flex-end;gap:8px;display:inline-flex}.size-extra-options button{border-radius:8px;min-width:62px;height:28px;font-size:10px}.control-row input,.crop-controls input{width:100%}.size-range-input{justify-self:stretch;width:100%;max-width:100%}.size-number-input{width:100%;min-width:0;height:24px;color:var(--text-strong);font:inherit;text-align:center;background:#fffffff5;border:1px solid #0f172a14;border-radius:6px;padding:0 6px;font-size:10px;line-height:1}.control-row strong{color:var(--text-strong);text-align:right;min-width:0}.pattern-stage{background:linear-gradient(180deg, #ffffffdb, #f5f7fac7), var(--surface-soft);touch-action:none;border:1px solid #0f172a1a;border-radius:20px;height:620px;min-height:620px;padding:12px;position:relative}.pattern-stage-scroll{touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:auto}.edit-mode-tip{z-index:2;color:var(--text-strong);pointer-events:none;background:#fffffff0;border:1px solid #0f172a14;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #0f172a14}.pattern-stage-undo{z-index:2;min-height:28px;color:var(--text-soft);background:#fff;border:1px solid #0f172a14;border-radius:10px;padding:0 10px;font-size:11px;font-weight:700;position:absolute;bottom:14px;left:14px}.pattern-stage-undo:disabled{opacity:.45;cursor:default}.pattern-workbench{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.pattern-workbench.has-edit-panel{grid-template-columns:minmax(0,1fr) 168px;align-items:stretch}.ai-preview-shell{border-radius:12px;position:relative;overflow:hidden}.ai-placeholder-overlay{pointer-events:none;-webkit-user-select:none;user-select:none;place-items:center;display:grid;position:absolute;inset:0}.ai-placeholder-image{object-fit:cover;opacity:.8;width:100%;height:100%;position:absolute;inset:0}.ai-placeholder-mark{z-index:1;color:#0f172ab8;letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.8;white-space:nowrap;background:#ffffff6b;border-radius:10px;justify-content:center;align-items:center;min-width:84px;min-height:34px;padding:0 12px;font-size:15px;font-weight:700;display:inline-flex;position:relative}.ai-mode-switch{background:#f3f4f6eb;border:1px solid #0f172a14;border-radius:14px;flex-wrap:nowrap;gap:6px;padding:4px;display:inline-flex;box-shadow:inset 0 1px #ffffffbd}.ai-mode-switch button{color:#374151e6;min-width:0;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:6px 8px;font-size:11px;font-weight:700;line-height:1}.ai-mode-switch button.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);box-shadow:0 10px 20px #0074f038}.progress-block{background:linear-gradient(#fffffff0,#f3f6fad6);border:1px solid #0f172a14;border-radius:16px;gap:12px;margin-top:16px;padding:14px 14px 12px;display:grid}.progress-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-meta strong{color:var(--text-strong);font-size:16px}.progress-track{background:linear-gradient(90deg,#b3d1ff70,#dfecffe0);border-radius:999px;height:12px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #3d60a814}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#7bb6ff 0%,#0d6de6 100%);height:100%;transition:width .26s;position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff6b,#0000);animation:2.2s linear infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.progress-fill.is-running{box-shadow:0 0 24px #3e74d838}.ai-save-hint{color:var(--text-soft);margin:0;font-size:12px}.ai-save-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.ai-save-button{border-radius:14px;flex:none;width:auto;min-width:116px;min-height:40px;padding:0 16px;font-size:14px}.ai-menu-layer{z-index:20;position:fixed;inset:0}.ai-menu{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border:1px solid #0f172a14;border-radius:16px;min-width:160px;padding:8px;position:fixed;transform:translate(12px,12px);box-shadow:0 20px 40px #0f172a24}.ai-menu button{text-align:left;width:100%;color:var(--text-strong);cursor:pointer;background:0 0;border:0;border-radius:12px;padding:10px 12px}.ai-menu button:hover{background:#f1f5f9eb}.preset-row{gap:8px;display:grid}.preset-row span{color:#6b5140;white-space:nowrap;font-size:10px;line-height:1}.preset-actions{flex-wrap:wrap;gap:6px;display:flex}.preset-actions button{color:#374151e6;cursor:pointer;background:#f8fafcf0;border:1px solid #0f172a1a;border-radius:8px;min-width:48px;height:28px;font-size:10px;font-weight:700}.preset-actions button.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border-color:#0074f0e0}.pattern-stage canvas{aspect-ratio:auto;background:#fff;width:auto;max-width:none;height:auto}.source-switch{background:#f3f4f6eb;border:1px solid #0f172a14;border-radius:14px;flex-wrap:nowrap;gap:6px;padding:4px;display:inline-flex;box-shadow:inset 0 1px #ffffffbd}.source-switch button{color:#374151e6;min-width:0;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:6px 8px;font-size:11px;font-weight:700;line-height:1}.source-switch-pattern{transform:translateY(2px)}.source-switch button.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);box-shadow:0 10px 24px #0074f038}.zoom-row,.zoom-actions,.checkbox-row,.stats-color{align-items:center;display:flex}.zoom-row,.checkbox-row{justify-content:space-between}.checkbox-row-compact{justify-content:flex-start;gap:8px}.checkbox-row-emphasis{background:#fffffff5;border:1px solid #0f172a14;border-radius:8px;min-height:30px;padding:0 10px}.edit-tools-row{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;display:flex;overflow-x:auto}.checkbox-icon{font-size:13px;line-height:1}.zoom-actions{gap:6px}.zoom-actions button{width:28px;height:28px;color:var(--text-strong);background:#f8fafcf0;border:1px solid #0f172a14;border-radius:8px}.zoom-actions strong{text-align:center;min-width:32px;color:var(--text-strong);font-size:10px;line-height:1}.zoom-slider{width:100%;accent-color:var(--accent-mint)}.pattern-toolbar-panel-zoom .zoom-slider{margin-top:2px}.edit-panel{background:linear-gradient(#fafcfffa,#f4f7fbf2);border:1px solid #0f172a0f;border-radius:12px;gap:8px;padding:8px;display:grid;box-shadow:inset 0 1px #ffffffb8,0 1px 2px #0f172a08}.edit-panel-sidebar{align-content:start;gap:8px;min-width:0;padding:8px}.edit-panel-header{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.edit-panel-header strong{color:var(--text-strong);white-space:nowrap;letter-spacing:.02em;flex:none;font-size:11px;line-height:1}.edit-panel-header span{color:var(--text-soft);white-space:nowrap;text-align:right;flex:auto;min-width:0;font-size:10px;line-height:1}.edit-panel-actions{justify-content:flex-start;align-items:center;gap:6px;display:flex}.edit-mini-button{min-height:28px;color:var(--text-soft);background:#f8fafcf0;border:1px solid #0f172a14;border-radius:8px;width:auto;padding:0 8px;font-size:10px;font-weight:700}.edit-mini-button:disabled{opacity:.45;cursor:default}.edit-tool-button{white-space:nowrap;width:auto;min-height:30px;color:var(--text-strong);background:#ffffffe6;border:1px solid #0f172a14;border-radius:8px;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.pattern-toolbar-tool{box-shadow:none;background:#ffffffe6;border-radius:8px;min-height:30px;font-size:11px}.pattern-toolbar-primary .pattern-toolbar-tool{min-height:28px;box-shadow:none;color:#1f2937f0;background:0 0;border-color:#0000;border-radius:7px;padding:0 10px}.pattern-toolbar-tool-toggle{justify-content:flex-start;gap:8px}.pattern-toolbar-tool-label{white-space:nowrap;flex:none;display:inline-block;color:#111827f5!important;opacity:1!important;visibility:visible!important}.pattern-toolbar-tool-toggle input{accent-color:#0a84ff;flex:none;width:13px;height:13px;margin:0 0 0 auto}.pattern-toolbar-primary .pattern-toolbar-tool:hover:not(:disabled){box-shadow:none;background:#ffffffd1;border-color:#0f172a14;transform:none}.pattern-toolbar-tool.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border-color:#0074f0eb;box-shadow:0 8px 18px #0074f02e}.pattern-toolbar-primary .pattern-toolbar-tool.is-active{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);border-color:#0074f0eb;box-shadow:0 6px 14px #0074f02e}.pattern-toolbar-tool-toggle.is-active,.pattern-toolbar-primary .pattern-toolbar-tool-toggle.is-active{color:#111827f5;box-shadow:none;background:#0a84ff14;border-color:#0a84ff38}.pattern-toolbar-tool.is-active .checkbox-icon{color:inherit}.pattern-toolbar-tool.is-active .pattern-toolbar-tool-label{color:#111827f5!important;opacity:1!important}.edit-color-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.edit-color-grid-vertical{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.edit-color-option{color:var(--text-strong);cursor:pointer;background:#ffffffeb;border:1px solid #0f172a1a;border-radius:14px;justify-items:center;gap:6px;padding:10px 6px;display:grid}.edit-panel-sidebar .edit-color-option{border-radius:10px;gap:4px;padding:6px 2px}.edit-panel-sidebar .edit-color-option strong{font-size:10px}.edit-panel-sidebar .color-chip-square{width:16px;height:16px}.edit-more-block{gap:8px;display:grid}.edit-more-toggle{min-height:34px;padding:0 10px;font-size:12px}.edit-color-grid-more{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.edit-empty-state{color:var(--text-soft);text-align:center;background:#f8fafcd1;border:1px dashed #0f172a1a;border-radius:12px;padding:10px 8px;font-size:11px;line-height:1.35}.edit-section{gap:6px;display:grid}.edit-section-title{color:#6c7682d6;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:700}.edit-color-option strong{font-size:12px;line-height:1}.edit-color-option.is-active{border-color:var(--accent-mint);box-shadow:0 0 0 2px #2d7c6624}.edit-color-option:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f172a14}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-row input{width:18px;height:18px}.delivery-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px;display:grid}.summary-card,.stats-card{background:linear-gradient(180deg, #ffffffeb, #f8fafcd1), var(--panel-bg);border-radius:14px;padding:16px}.summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.summary-metrics div{background:#f8fafce6;border:1px solid #0f172a0f;border-radius:12px;padding:14px}.summary-metrics strong{color:var(--text-strong);margin-top:8px;font-size:28px;line-height:1;display:block}.export-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.export-checkbox{justify-content:flex-start;gap:12px}.export-options{flex-wrap:wrap;align-items:center;gap:16px;margin-top:16px;display:flex}.export-button{color:#fff;background:linear-gradient(#1b9bff 0%,#0074f0 100%);box-shadow:0 18px 34px #0074f038}.export-button-alt{color:#1f2937;background:#fffffff5;border:1px solid #0f172a1a;box-shadow:inset 0 1px #ffffffd1,0 1px 2px #0f172a0d}.primary-export-button{border:1px solid #0074f0e0}.stats-header{margin-bottom:18px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;max-height:520px;padding-right:4px;display:grid;overflow:auto}.stats-tile{background:#f8fafceb;border:1px solid #0f172a0f;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.stats-color{gap:8px;min-width:0}.stats-color strong{color:var(--text-strong);white-space:nowrap;font-size:12px}.stats-tile span{color:var(--text-soft);white-space:nowrap;font-size:11px;font-weight:700}.color-chip{border:1px solid #583a2424;border-radius:999px;flex:none;width:20px;height:20px}.color-chip-square{border-radius:6px}@media (width<=1100px){.hero-panel,.preview-grid-double,.delivery-panel,.summary-metrics,.export-actions{grid-template-columns:1fr}.status-strip,.workspace-header,.card-header-inline{flex-direction:column;align-items:stretch}.card-header-actions{flex-wrap:wrap;justify-content:flex-start}.pattern-toolbar-secondary{grid-template-columns:1fr}}@media (width<=760px){.app-shell{width:min(100% - 20px,1380px);padding-top:18px}.pattern-stage{height:480px;min-height:480px}.pattern-workbench.has-edit-panel{grid-template-columns:minmax(0,1fr)}.hero-panel h1,.hero-subtitle{white-space:normal}.upload-button{min-height:76px;font-size:22px}.workspace-panel,.summary-card,.stats-card,.preview-card{padding:14px}.hero-panel,.status-strip,.workspace-panel,.summary-card,.stats-card,.preview-card{border-radius:16px}.control-row{grid-template-columns:1fr}.pattern-toolbar-primary{gap:6px;padding:6px}.pattern-toolbar-panel{padding:10px}.size-control-main{grid-template-columns:1fr}.size-extra-options{justify-content:flex-start}.status-strip{gap:10px;padding:12px 14px}.status-label{display:none}.status-strip strong{font-size:14px;line-height:1.35}.status-meta{gap:6px;margin-top:0}.status-meta span{padding:6px 9px;font-size:11px}.card-header-inline{gap:12px;min-height:0}.card-header-actions{gap:10px}.compact-button{width:100%;min-height:42px}.inline-upload-button{width:124px;min-height:36px;font-size:12px}.ai-mode-switch{gap:4px;padding:4px}.ai-mode-switch button{min-width:52px;padding:7px 8px;font-size:12px}.progress-block{gap:10px;padding:12px}.progress-meta strong{font-size:14px}.progress-track{height:10px}.edit-color-grid,.edit-color-grid-vertical{grid-template-columns:repeat(4,minmax(0,1fr))}.edit-tool-button{width:auto}.edit-tools-row{flex-wrap:wrap;overflow-x:visible}.ai-save-actions{flex-direction:column;align-items:stretch;gap:8px}.ai-save-button{width:100%;min-height:42px;font-size:15px}.ai-save-hint{font-size:11px}.source-switch{width:100%;padding:4px;overflow-x:auto}.pattern-source-bar{justify-content:flex-start}.source-switch-pattern{transform:none}.source-switch button{white-space:nowrap;min-width:0;padding:7px 8px;font-size:12px}.workspace-header-note{text-align:left;white-space:normal;max-width:100%;font-size:11px}}
