@font-face{font-family:Fusion Pixel;src:url(/pindo/fonts/fusion-pixel/fusion-pixel-12px-proportional-latin.ttf.woff2) format("woff2");font-display:swap;unicode-range:U+0000-024F,U+2000-206F,U+20A0-20CF}@font-face{font-family:Fusion Pixel;src:url(/pindo/fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.ttf.woff2) format("woff2");font-display:swap;unicode-range:U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF}@font-face{font-family:ZCOOL KuaiLe;src:url(/pindo/fonts/zcool-kuaile/zcool-kuaile.ttf) format("truetype");font-display:swap}@font-face{font-family:Ma Shan Zheng;src:url(/pindo/fonts/ma-shan-zheng/ma-shan-zheng.ttf) format("truetype");font-display:swap}@font-face{font-family:ZCOOL QingKe HuangYou;src:url(/pindo/fonts/zcool-qingke-huangyou/zcool-qingke-huangyou.ttf) format("truetype");font-display:swap}:root{--color-primary: #ff385c;--color-primary-active: #e00b41;--color-primary-disabled: #ffd1da;--color-error: #c13515;--color-error-hover: #b32505;--color-purple: #460479;--color-magenta: #92174d;--color-ink: #222222;--color-body: #3f3f3f;--color-muted: #6a6a6a;--color-muted-soft: #929292;--color-hairline: #dddddd;--color-hairline-soft: #ebebeb;--color-border-strong: #c1c1c1;--color-canvas: #ffffff;--color-surface-soft: #f7f7f7;--color-surface-strong: #f2f2f2;--color-on-primary: #ffffff;--color-link: #428bff;--pixel-border: 2px;--pixel-border-strong: 4px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--shadow-hard: 4px 4px 0 var(--color-ink);--shadow-hard-soft: 3px 3px 0 var(--color-border-strong);--shadow-inset: inset 0 0 0 2px var(--color-ink);--font-display: Zpix, "Press Start 2P", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--checker-grid: linear-gradient(45deg, rgba(34, 34, 34, .045) 25%, transparent 25%), linear-gradient(-45deg, rgba(34, 34, 34, .045) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(34, 34, 34, .045) 75%), linear-gradient(-45deg, transparent 75%, rgba(34, 34, 34, .045) 75%);color:var(--color-ink);background:var(--color-canvas);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(var(--color-hairline-soft) 1px,transparent 1px),linear-gradient(90deg,var(--color-hairline-soft) 1px,transparent 1px),var(--color-canvas);background-size:32px 32px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.history-card:focus-visible,.preview-stage:focus-visible,.color-row:focus-visible{outline:var(--pixel-border) solid var(--color-primary);outline-offset:3px}.app-shell{width:min(1280px,100%);margin:0 auto;padding:20px}.app-shell-with-header{width:min(1280px,100%);padding-top:12px}.global-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px;margin-bottom:16px;padding:6px 10px;border:var(--pixel-border-strong) solid var(--color-ink);background:var(--color-canvas);box-shadow:var(--shadow-hard-soft)}.global-header-left,.global-nav,.global-header-account{display:flex;align-items:center;gap:8px}.global-header-left{min-width:0}.global-brand,.global-nav button,.global-header-account button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:var(--pixel-border) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);cursor:pointer;font-weight:900;white-space:nowrap}.global-brand{padding:0 10px 0 4px;color:var(--color-primary);font-size:17px}.global-nav button{padding:0 10px;color:var(--color-muted);font-size:13px}.global-nav button:hover:not(:disabled),.global-nav button.active{border-color:var(--color-ink);background:var(--color-primary);color:var(--color-canvas);box-shadow:3px 3px 0 var(--color-ink)}.global-nav button:disabled{color:var(--color-primary-disabled);cursor:not-allowed}.global-header-account{flex:0 0 auto;color:var(--color-muted);font-size:12px;font-weight:800}.global-header-account>span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-header-account strong{display:inline-flex;align-items:center;gap:4px;color:var(--color-purple)}.global-header-account button{width:32px;padding:0;border-color:var(--color-ink);background:var(--color-surface-soft)}.global-header-account button:hover{background:var(--color-primary);color:var(--color-canvas)}.app-shell.repository-shell{padding-top:0}.repository-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:10px 0 18px;border-bottom:var(--pixel-border-strong) solid var(--color-ink)}.repository-page-heading h1{margin:0;font-size:28px}.repository-page-heading>span{color:var(--color-muted);font-size:13px;font-weight:800}.repository-toolbar{display:flex;width:100%;margin:16px 0 14px}.repository-toolbar .admin-search-field{width:100%}.repository-empty{display:flex;min-height:240px;align-items:center;justify-content:center;gap:10px;border:var(--pixel-border) dashed var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-muted);font-weight:800}.pattern-repository-grid{display:grid;grid-template-columns:repeat(auto-fill,172px);gap:14px;justify-content:center}.pattern-repository-preview{display:grid;grid-template-columns:minmax(220px,420px) minmax(0,1fr);gap:20px;margin:16px 0 20px;padding:14px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft);box-shadow:var(--shadow-hard-soft)}.pattern-repository-preview-canvas{display:grid;place-items:center;min-height:220px;padding:10px;border:var(--pixel-border) solid var(--color-border-strong);background:var(--color-surface-strong)}.pattern-repository-preview-canvas .pattern-thumbnail-canvas{width:min(100%,420px);max-height:420px}.pattern-repository-preview-info{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;min-width:0;padding:8px 4px}.pattern-repository-preview-info>div{display:grid;gap:8px;min-width:0}.pattern-repository-preview-info h2{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.pattern-repository-preview-info span{color:var(--color-muted);font-size:13px;font-weight:700}.pattern-repository-card,.history-card{width:172px;min-height:248px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:inherit;text-align:left;box-shadow:var(--shadow-hard-soft)}.pattern-repository-card:hover,.pattern-repository-card.active,.history-card:hover,.history-card.active{background:var(--color-surface-soft);box-shadow:var(--shadow-hard)}.pattern-repository-card.active,.history-card.active{border-color:var(--color-primary)}.pattern-repository-card{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;padding:10px}.pattern-repository-open{display:grid;grid-template-rows:132px minmax(0,1fr) auto auto;align-content:start;gap:10px;min-width:0;padding:0;border:0;background:transparent;color:var(--color-ink);text-align:left;cursor:pointer}.pattern-repository-open:hover{background:transparent}.pattern-repository-open strong{display:-webkit-box;overflow:hidden;color:var(--color-ink);font-size:14px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.pattern-repository-open span{overflow:hidden;color:var(--color-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.pattern-repository-open .pattern-thumbnail-frame{display:flex;align-items:center;justify-content:center;width:100%;height:132px;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.pattern-repository-open .pattern-thumbnail-canvas{flex:0 0 auto;width:100%;max-width:none;height:auto;max-height:none;aspect-ratio:auto;border:0;background:transparent}.pattern-repository-open .pattern-thumbnail-empty{flex-direction:column;gap:6px;color:var(--color-muted)}.pattern-repository-open .pattern-thumbnail-empty span{font-size:12px;font-weight:800}.pattern-thumbnail-canvas{display:block;width:100%;aspect-ratio:1;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft);image-rendering:pixelated}.pattern-repository-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.auth-shell{display:grid;min-height:100vh;place-items:center}.customer-service{position:fixed;z-index:20;width:44px;height:44px}.customer-service-button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:var(--pixel-border) solid var(--color-ink);border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-hard);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.customer-service-button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--color-ink)}.customer-service-button:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--color-ink)}.customer-service.dragging .customer-service-button{transform:none;box-shadow:var(--shadow-hard);cursor:grabbing}.customer-service-card{position:fixed;width:140px;max-height:calc(100vh - 24px);padding:12px;overflow:auto;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:var(--shadow-hard)}.customer-service-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.customer-service-card header div{display:grid;gap:3px}.customer-service-card header strong{font-size:15px}.customer-service-card header span{color:var(--color-muted);font-size:12px}.customer-service-card header button{display:grid;flex:0 0 auto;width:28px;height:28px;padding:0;place-items:center;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.customer-service-card>img{display:block;width:100%;height:auto;border:1px solid var(--color-hairline)}.login-panel,.control-panel,.preview-panel,.pattern-controls,.pattern-preview-panel{background:var(--color-canvas);border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);box-shadow:var(--shadow-hard)}.login-panel{width:min(420px,100%);padding:24px}.login-panel svg{color:var(--color-primary)}.auth-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:16px;padding:4px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.auth-mode-switch button{height:38px;border:var(--pixel-border) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);cursor:pointer;font-weight:900}.auth-mode-switch button.active{border-color:var(--color-ink);background:var(--color-primary);color:var(--color-on-primary);box-shadow:3px 3px 0 var(--color-ink)}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;align-items:stretch}.control-panel{padding:14px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel-heading.compact{align-items:center}.workspace-account{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-top:12px;padding:7px 8px 7px 10px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft)}.workspace-account>div:first-child{display:grid;min-width:0;gap:2px}.workspace-account>div:first-child>span{overflow:hidden;color:var(--color-muted);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.workspace-account strong{display:inline-flex;align-items:center;gap:5px;color:var(--color-purple);font-size:13px;font-weight:900}.workspace-account-actions{display:flex;flex:0 0 auto;gap:6px}.workspace-account-actions button,.admin-recharge-dialog>header>button{display:inline-grid;width:32px;height:32px;padding:0;place-items:center;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.workspace-account-actions button:hover,.admin-recharge-dialog>header>button:hover{background:var(--color-primary);color:var(--color-canvas)}.eyebrow{margin:0 0 6px;color:var(--color-magenta);font-size:12px;font-weight:800;letter-spacing:0;line-height:1.33;text-transform:uppercase}h1,h2{margin:0;color:var(--color-ink);font-family:var(--font-display);font-weight:800;letter-spacing:0}h1{font-size:24px;line-height:1.15}h2{font-size:22px;line-height:1.25}.generator-form{display:grid;gap:10px;margin-top:14px}.source-image-field{gap:8px}.source-image-control{position:relative;display:grid;place-items:center;min-height:92px;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background-color:var(--color-surface-soft);background-image:var(--checker-grid);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;color:var(--color-muted);cursor:pointer;text-align:center;transition:background-color .12s ease,box-shadow .12s ease,transform .12s ease}.source-image-control:hover{background-color:var(--color-canvas);box-shadow:var(--shadow-hard-soft);transform:translate(-1px,-1px)}.source-image-control.dragging{border-color:var(--color-primary);background-color:#ffe9ee}.source-image-control.has-preview{min-height:112px;background:var(--color-surface-strong)}.source-image-control input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:0;opacity:0;background:transparent;cursor:pointer}.source-image-control img{width:100%;height:100%;max-height:150px;image-rendering:pixelated;object-fit:contain}.source-image-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;padding:8px}.source-image-preview-grid>span{position:relative;display:block;min-width:0;aspect-ratio:1;overflow:hidden;border:1px solid var(--color-ink);background:var(--color-canvas)}.source-image-preview-grid img{display:block;max-height:none;height:100%}.source-image-preview-grid button,.admin-config-test-images button{position:absolute;top:3px;right:3px;display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--color-ink);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;z-index:2}.source-image-empty{display:grid;gap:5px;place-items:center;padding:12px 10px;pointer-events:none}.source-image-empty svg{color:var(--color-primary)}.source-image-empty strong{color:var(--color-ink);font-size:14px}.source-image-empty small{color:var(--color-muted);font-size:12px}.source-image-actions{position:absolute;right:8px;bottom:8px;left:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px 7px 10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-canvas);font-size:13px;font-weight:800;pointer-events:none}.source-image-actions button{display:inline-grid;place-items:center;width:26px;height:26px;border:var(--pixel-border) solid var(--color-canvas);border-radius:var(--radius-sm);background:transparent;color:var(--color-canvas);cursor:pointer;pointer-events:auto}.source-image-actions button:hover{background:var(--color-primary)}label{display:grid;gap:8px;color:var(--color-ink);font-size:14px;font-weight:800}.generator-choice-field{min-width:0;margin:0;padding:0;border:0}.generator-choice-field legend{margin-bottom:8px;padding:0;color:var(--color-ink);font-size:14px;font-weight:800}.generator-choice-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px}.generator-choice-group button{min-width:0;height:42px;padding:0 10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.generator-group-select{width:100%;height:42px;padding:0 10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);font-weight:800}.aspect-ratio-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.aspect-ratio-option{display:grid;grid-template-rows:38px auto;align-items:center;justify-items:center;min-width:0;min-height:66px;padding:6px 4px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;font-size:12px;font-weight:900;line-height:1;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.aspect-ratio-option:hover:not(.active){background:var(--color-surface-strong);box-shadow:2px 2px 0 var(--color-border-strong);transform:translate(-1px,-1px)}.aspect-ratio-option.active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:3px 3px 0 var(--color-ink);transform:translate(-1px,-1px)}.aspect-ratio-option:active{box-shadow:none;transform:translate(0)}.aspect-ratio-preview{display:block;border:2px solid currentColor;background:transparent}.generator-group-switcher{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px}.generator-group-switcher button{display:grid;place-items:center;width:40px;height:42px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.generator-group-switcher strong{text-align:center}.generator-choice-group button:hover:not(.active){background:var(--color-surface-strong);box-shadow:2px 2px 0 var(--color-border-strong);transform:translate(-1px,-1px)}.generator-choice-group button.active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:3px 3px 0 var(--color-ink);transform:translate(-1px,-1px)}.generator-choice-group button:active{box-shadow:none;transform:translate(0)}textarea,select,input{width:100%;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);outline:none}textarea{min-height:190px;resize:vertical;padding:12px;line-height:1.55}select,input{height:42px;padding:0 12px}.email-code-row{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:8px;align-items:center}.email-code-button{min-width:104px;height:42px;padding:8px 10px;white-space:nowrap}textarea:focus,select:focus,input:focus{border-color:var(--color-primary);box-shadow:3px 3px 0 var(--color-primary-disabled)}.primary-button,.secondary-button,.icon-button,.text-button,.download-link,.mini-action,.more-toggle,.undo-clear-button,.reset-adjustments{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);cursor:pointer;font-weight:800;text-decoration:none;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.primary-button{height:48px;border-width:var(--pixel-border-strong);background:var(--color-primary);color:var(--color-on-primary);font-size:16px;box-shadow:var(--shadow-hard)}.primary-button:hover:not(:disabled){background:var(--color-primary-active);transform:translate(1px,1px);box-shadow:2px 2px 0 var(--color-ink)}.primary-button:disabled,.secondary-button:disabled,.text-button:disabled,.mini-action:disabled,.more-toggle:disabled,.undo-clear-button:disabled,.reset-adjustments:disabled{background:var(--color-primary-disabled);color:var(--color-canvas);cursor:not-allowed;box-shadow:none;transform:none}.secondary-button,.text-button,.download-link,.mini-action,.more-toggle,.undo-clear-button,.reset-adjustments{min-height:38px;padding:9px 12px;background:var(--color-canvas);color:var(--color-ink);box-shadow:var(--shadow-hard-soft)}.secondary-button:hover:not(:disabled),.text-button:hover:not(:disabled),.download-link:hover,.mini-action:hover:not(:disabled),.more-toggle:hover,.undo-clear-button:hover:not(:disabled),.reset-adjustments:hover{background:var(--color-surface-strong);transform:translate(1px,1px);box-shadow:1px 1px 0 var(--color-border-strong)}.text-button{min-height:34px;padding:7px 10px;color:var(--color-primary);font-size:13px;white-space:nowrap}.icon-button{width:40px;height:40px;background:var(--color-canvas);color:var(--color-ink)}.preview-panel{display:grid;grid-template-rows:auto minmax(240px,1fr) auto;min-height:450px;overflow:hidden}.pattern-repository-preview{grid-template-columns:1fr;grid-template-rows:auto minmax(300px,1fr) auto;min-height:620px;margin:16px 0 20px;padding:0;border:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas);box-shadow:var(--shadow-hard-soft)}.pattern-repository-preview .preview-header{align-items:flex-start}.pattern-repository-preview .preview-header h2{margin:4px 0 0;font-size:18px}.pattern-repository-preview-stage{min-height:420px}.pattern-repository-preview-stage .pattern-export-content-embedded{align-self:stretch;width:100%;height:100%;min-height:inherit;padding:0;background:none}.pattern-repository-preview-meta{border-top:var(--pixel-border) solid var(--color-ink)}.pattern-repository-export-type.active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:inset 0 -3px 0 var(--color-primary-active)}.pattern-share-button{min-width:132px}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.preview-stage,.pattern-preview-stage{position:relative;display:grid;place-items:center;padding:24px;background-color:var(--color-surface-soft);background-image:linear-gradient(var(--color-hairline) 1px,transparent 1px),linear-gradient(90deg,var(--color-hairline) 1px,transparent 1px),var(--checker-grid);background-position:0 0,0 0,0 0,0 4px,4px -4px,-4px 0;background-size:24px 24px,24px 24px,8px 8px,8px 8px,8px 8px,8px 8px;outline:none}.preview-stage{padding:12px;touch-action:pan-y}.preview-stage:focus-visible{box-shadow:inset 0 0 0 3px var(--color-primary-disabled)}.preview-carousel{position:relative;display:grid;place-items:center;width:100%;min-height:240px}.preview-carousel img{width:min(100%,52vh,520px);height:auto;max-width:100%;max-height:52vh;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);image-rendering:pixelated;object-fit:contain;box-shadow:var(--shadow-hard)}.preview-image-surface{position:relative;display:grid;place-items:center;width:min(100%,52vh,520px);overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);line-height:0;box-shadow:var(--shadow-hard)}.preview-image-surface img{display:block;width:100%;max-height:52vh;border:0;border-radius:0;box-shadow:none}.preview-image-surface.source-crop-active{touch-action:none}.carousel-arrow{position:absolute;top:50%;z-index:2;display:inline-grid;place-items:center;width:42px;height:42px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;transform:translateY(-50%);box-shadow:var(--shadow-hard-soft)}.carousel-arrow:hover{background:var(--color-primary);color:var(--color-canvas)}.carousel-arrow.previous{left:18px}.carousel-arrow.next{right:18px}.carousel-counter{position:absolute;right:18px;bottom:18px;z-index:2;min-width:54px;padding:6px 10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-canvas);font-size:12px;font-weight:800;line-height:1;text-align:center}.empty-preview{display:grid;place-items:center;gap:12px;padding:24px;border:var(--pixel-border) dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-muted);text-align:center}.empty-preview svg{color:var(--color-primary)}.job-meta{display:grid;gap:12px;padding:18px 22px;border-top:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.job-meta p{margin:0;color:var(--color-body);line-height:1.5}.job-details{display:flex;flex-wrap:wrap;gap:8px}.job-details span{padding:5px 9px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-body);font-size:12px;font-weight:700}.download-link{justify-self:start;background:var(--color-ink);color:var(--color-canvas)}.action-row,.sample-method-row,.history-card-actions,.more-actions{display:flex;flex-wrap:wrap;gap:10px}.source-crop-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.source-crop-actions strong{min-height:38px;padding:8px 11px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-primary-active);font-size:13px;line-height:18px}.source-crop-actions .primary-button,.source-crop-actions .secondary-button{min-height:38px;padding:8px 12px}.sample-method-row{gap:8px}.sample-method-row button,.adjustment-tabs button,.noise-connectivity button,.noise-strategy button,.noise-apply-button,.background-action button{min-height:34px;padding:0 12px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;font-size:12px;font-weight:800}.sample-method-row button.active,.adjustment-tabs button.active,.noise-connectivity button.active,.noise-strategy button.active,.noise-apply-button{background:var(--color-primary);color:var(--color-canvas)}.history-section{margin-top:24px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading span{color:var(--color-muted);font-size:14px;font-weight:700}.history-search-row{width:min(100%,916px);margin:0 auto 14px}.history-search-row input{width:100%}.history-grid{display:grid;grid-template-columns:repeat(5,172px);gap:14px;justify-content:center;width:min(100%,916px);margin:0 auto}.history-load-more{display:flex;justify-content:center;margin-top:16px}.history-empty{width:min(100%,916px);margin:0 auto;padding:18px;border:var(--pixel-border) dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-muted);font-size:14px;font-weight:800;text-align:center}.history-card{display:grid;grid-template-rows:auto auto auto auto auto;gap:10px;padding:10px;cursor:pointer}.thumb{display:grid;place-items:center;width:100%;aspect-ratio:1;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background-color:var(--color-surface-strong);background-image:var(--checker-grid);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;color:var(--color-muted);font-size:13px;font-weight:800}.thumb img{width:100%;height:100%;image-rendering:pixelated;object-fit:cover}.history-card strong{display:-webkit-box;overflow:hidden;color:var(--color-ink);font-size:14px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.history-card>span{overflow:hidden;color:var(--color-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mini-action{min-height:32px;padding:6px 9px;color:var(--color-primary);font-size:12px}.mini-action.danger-action{color:var(--color-error)}.mini-action.danger-action:hover:not(:disabled){color:var(--color-error-hover)}.history-card-actions{flex-wrap:nowrap;gap:6px}.history-card-actions .mini-action,.pattern-repository-actions .mini-action{gap:4px;width:100%;min-width:0;padding:5px 4px;font-size:10px;white-space:nowrap}.publish-action{color:var(--color-purple)}.publish-action.published{color:var(--color-magenta)}.error-text{border:var(--pixel-border) solid var(--color-error);border-radius:var(--radius-sm);padding:10px 12px;background:#fff0ed;color:var(--color-error);font-size:13px;font-weight:700;line-height:1.45}.admin-shell{width:min(1440px,100%);min-height:100vh;padding:24px}.admin-user-detail-shell{width:min(1280px,100%)}.admin-user-detail-header h1{max-width:min(720px,100%);overflow-wrap:anywhere}.admin-user-detail-header>div:first-child>span{color:var(--color-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-user-preview-panel{margin-top:18px}.admin-user-preview-panel .preview-stage{min-height:360px}.admin-user-preview-panel .preview-stage>img{display:block;max-width:100%;max-height:540px;object-fit:contain}.admin-user-history-section{margin-top:18px}.admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:4px 0 18px;border-bottom:var(--pixel-border-strong) solid var(--color-ink)}.admin-header>div:first-child{display:grid;gap:4px}.admin-header h1{font-size:28px}.admin-header>div:first-child>span{color:var(--color-muted);font-size:13px;font-weight:800}.admin-header-actions,.admin-access-actions{display:flex;align-items:center;gap:10px}.admin-current-user{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:8px 10px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft);color:var(--color-purple);font-size:12px;font-weight:900}.admin-users-panel{margin-top:18px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.admin-toolbar{display:grid;grid-template-columns:minmax(240px,420px) auto 1fr;align-items:center;gap:12px;padding:14px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft)}.admin-card-keys-panel .admin-toolbar{grid-template-columns:1fr;min-height:58px}.admin-card-keys-panel .admin-user-count{justify-self:start}.admin-config-panel .admin-toolbar{grid-template-columns:auto 1fr}.admin-config-panel .admin-user-count{justify-self:end}.admin-group-list{display:grid;gap:8px;padding:14px;border-bottom:var(--pixel-border) solid var(--color-ink)}.admin-group-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--color-ink);background:var(--color-surface-soft)}.admin-group-item>div:first-child{display:flex;flex:1;align-items:baseline;gap:10px}.admin-group-item>div:first-child span,.admin-config-hint{color:var(--color-muted);font-size:12px}.admin-config-table{min-width:1220px}.admin-config-table th:nth-child(1){width:190px}.admin-config-table th:nth-child(2){width:130px}.admin-config-table th:nth-child(3){width:90px}.admin-config-table th:nth-child(4){width:150px}.admin-config-table th:nth-child(5){width:280px}.admin-config-table th:nth-child(6){width:140px}.admin-config-table th:nth-child(7){width:120px}.admin-config-table th:nth-child(8){width:250px}.admin-config-url{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-config-default{display:inline-block;margin-left:6px;padding:2px 5px;border:1px solid var(--color-primary);color:var(--color-primary);font-size:10px;font-weight:900}.admin-config-table td>small{display:block;margin-top:3px;color:var(--color-muted);font-size:10px}.admin-config-form-grid label{display:grid;gap:5px;color:var(--color-body);font-size:12px;font-weight:800}.admin-config-transfer-actions{display:flex;gap:10px;margin-bottom:14px}.admin-config-paste{display:grid;gap:5px;margin-bottom:10px;color:var(--color-body);font-size:12px;font-weight:800}.admin-config-paste textarea{min-height:104px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-config-test-prompt{display:grid;gap:5px;color:var(--color-body);font-size:12px;font-weight:800}.admin-config-image-dropzone{display:flex;min-height:92px;align-items:center;justify-content:center;gap:8px;padding:12px;border:var(--pixel-border) dashed var(--color-ink);background-color:var(--color-canvas);background-image:linear-gradient(45deg,var(--color-surface-strong) 25%,transparent 25%),linear-gradient(-45deg,var(--color-surface-strong) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-surface-strong) 75%),linear-gradient(-45deg,transparent 75%,var(--color-surface-strong) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;color:var(--color-muted);cursor:pointer;font-size:13px;font-weight:800;text-align:center}.admin-config-image-dropzone.dragging{border-style:solid;border-color:var(--color-primary);background-color:#ffe9ee;color:var(--color-primary-active)}.admin-config-image-dropzone input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}.admin-config-test-images{display:flex;flex-wrap:wrap;gap:6px}.admin-config-test-images>span{position:relative;display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 30px 4px 8px;border:1px solid var(--color-ink);background:var(--color-surface-soft);color:var(--color-body);font-size:12px;font-weight:700}.admin-config-test-images button{position:absolute;top:2px;right:2px;width:20px;height:20px}.admin-config-test-submit{min-width:118px}.admin-config-test-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto}.admin-config-test-form{display:grid;gap:14px}.admin-config-test-result{display:block;width:min(480px,calc(100% - 28px));max-height:480px;margin:0 14px 14px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas);image-rendering:pixelated;object-fit:contain}.admin-config-test-body h3{margin:0 14px 6px;color:var(--color-ink);font-size:13px;font-weight:700}.admin-config-test-error{max-height:300px;margin:0 14px 14px;padding:12px;overflow:auto;border:var(--pixel-border) solid var(--color-error);background:var(--color-canvas);color:var(--color-error);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.admin-config-test-response{max-height:300px;margin:0 14px 14px;padding:12px;overflow:auto;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft);color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.admin-config-dialog{width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto}.admin-config-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-config-form-wide{grid-column:1 / -1}.admin-config-form-grid textarea{min-height:88px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-config-checkbox{display:flex!important;align-items:center;grid-template-columns:auto 1fr;gap:8px!important;min-height:42px}.admin-config-checkbox input{width:18px;height:18px}.admin-search-field{position:relative}.admin-search-field svg{position:absolute;top:50%;left:12px;color:var(--color-muted);pointer-events:none;transform:translateY(-50%)}.admin-search-field input{width:100%;padding-left:38px;background:var(--color-canvas)}.admin-status-filter{display:inline-grid;grid-template-columns:repeat(3,minmax(64px,1fr));padding:3px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.admin-status-filter button{min-height:34px;padding:6px 12px;border:0;background:transparent;color:var(--color-muted);cursor:pointer;font-size:12px;font-weight:900}.admin-status-filter button.active{background:var(--color-primary);color:var(--color-canvas)}.admin-user-count{justify-self:end;color:var(--color-muted);font-size:13px;white-space:nowrap}.admin-error{margin:12px 14px 0}.admin-table-scroll{overflow-x:auto}.admin-user-table{width:100%;min-width:1260px;border-collapse:collapse;table-layout:fixed;font-size:13px}.admin-user-table th,.admin-user-table td{height:56px;padding:9px 12px;border-right:1px solid var(--color-hairline);border-bottom:1px solid var(--color-hairline);text-align:left;vertical-align:middle}.admin-user-table th:last-child,.admin-user-table td:last-child{border-right:0}.admin-user-table th{height:42px;background:var(--color-surface-strong);color:var(--color-body);font-size:11px;font-weight:900;text-transform:uppercase}.admin-user-table th:nth-child(1){width:160px}.admin-user-table th:nth-child(2){width:220px}.admin-user-table th:nth-child(3),.admin-user-table th:nth-child(4){width:110px}.admin-user-table th:nth-child(5){width:120px}.admin-user-table th:nth-child(6),.admin-user-table th:nth-child(7){width:165px}.admin-user-table th:nth-child(8){width:280px}.admin-user-table tbody tr:hover{background:#fff8fa}.admin-card-key-table{min-width:820px}.admin-card-key-table th:nth-child(1){width:390px}.admin-card-key-table th:nth-child(2),.admin-card-key-table th:nth-child(3){width:150px}.admin-card-key-table th:nth-child(4){width:220px}.admin-card-key-code{color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:800;letter-spacing:.02em;white-space:nowrap}.admin-user-id,.admin-user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-id{color:var(--color-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.admin-user-email{color:var(--color-ink);font-weight:800}.admin-role-badge,.admin-status-badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 7px;border:var(--pixel-border) solid var(--color-ink);font-size:11px;font-weight:900;white-space:nowrap}.admin-role-badge.premium{background:#f3f3f3;color:var(--color-body)}.admin-role-badge.super-admin{background:#f2e9fa;color:var(--color-purple)}.admin-status-badge.enabled{border-color:#147d64;background:#e7f7f2;color:#0c624e}.admin-status-badge.disabled{border-color:var(--color-error);background:#fff0ed;color:var(--color-error)}.admin-enable-action{color:#0c624e}.admin-credit-balance{color:var(--color-purple);font-weight:900;white-space:nowrap}.admin-user-actions{display:flex;align-items:center;gap:6px;min-width:0}.admin-protected-label{color:var(--color-muted-soft);font-size:12px;font-weight:800}.admin-table-message{height:160px!important;color:var(--color-muted);font-size:14px;font-weight:800;text-align:center!important}.admin-table-message svg{margin-right:8px;vertical-align:middle}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;padding:12px 14px;background:var(--color-surface-soft)}.admin-pagination>span{color:var(--color-muted);font-size:13px;font-weight:800}.admin-pagination>div{display:flex;gap:10px}.admin-dialog-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;padding:20px;place-items:center;background:#0000008f}.admin-recharge-dialog{width:min(440px,100%);border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-canvas);box-shadow:8px 8px 0 var(--color-ink)}.admin-recharge-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border-bottom:var(--pixel-border) solid var(--color-ink)}.admin-recharge-dialog h2{font-size:19px}.admin-recharge-summary{display:grid;gap:4px;padding:14px 16px;border-bottom:1px solid var(--color-hairline);background:var(--color-surface-soft)}.admin-recharge-summary strong{overflow:hidden;color:var(--color-ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.admin-recharge-summary span{color:var(--color-purple);font-size:13px;font-weight:900}.admin-recharge-dialog form{display:grid;gap:14px;padding:16px}.admin-recharge-dialog form label{display:grid;gap:7px}.admin-card-key-dialog{width:min(560px,100%)}.generated-card-keys{display:grid;max-height:min(65vh,640px);gap:8px;padding:16px;overflow-y:auto}.generated-card-keys>p{margin:0 0 4px;color:var(--color-muted);font-size:13px;font-weight:700}.generated-card-keys code{display:none}.generated-card-keys-textarea{width:100%;min-height:180px;resize:vertical;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-soft);color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.8;white-space:pre}.generated-card-keys-actions,.admin-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.admin-loading-panel,.admin-forbidden-panel{display:grid;justify-items:start;gap:16px}.admin-loading-panel{grid-template-columns:auto 1fr;align-items:center;width:min(390px,100%)}.admin-loading-panel svg,.admin-forbidden-panel>svg{color:var(--color-primary)}.admin-forbidden-panel>p{margin:0;color:var(--color-muted);font-size:14px;line-height:1.55}.public-home-shell{width:min(1180px,100%);min-height:100vh;padding:24px}.public-home-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 0 18px;border-bottom:var(--pixel-border-strong) solid var(--color-ink)}.public-home-header h1{overflow-wrap:anywhere}.public-preview-panel{margin-top:18px;min-height:620px}.public-preview-panel .preview-stage{min-height:450px}.public-preview-panel .preview-carousel{min-height:420px}.public-preview-panel .preview-carousel img{max-height:66vh}.public-history-section{padding-bottom:24px}.public-home-error{width:min(100%,916px);margin:0 auto 14px}.spin{animation:spin .85s steps(8) infinite}@keyframes spin{to{transform:rotate(360deg)}}.pattern-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:20px;align-items:start}.pattern-controls{display:grid;gap:16px;padding:20px}.source-card span,.source-card small,.pattern-controls small{color:var(--color-muted);font-size:12px;font-weight:700}.source-card,.background-action{display:grid;gap:6px;padding:10px 12px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.source-card strong{overflow:hidden;color:var(--color-ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.background-action button:disabled,.background-action .reset-pattern-button:disabled{background:var(--color-surface-strong);color:var(--color-muted-soft);cursor:not-allowed}.background-action .reset-pattern-button{color:var(--color-ink)}.stepper-control{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas)}.stepper-control button{border:0;background:var(--color-surface-strong);color:var(--color-ink);cursor:pointer;font-size:18px;font-weight:900}.stepper-control button:hover:not(:disabled){background:var(--color-primary);color:var(--color-canvas)}.stepper-control button:disabled{color:var(--color-muted-soft);cursor:not-allowed}.stepper-control input{height:38px;border-width:0 var(--pixel-border);border-radius:0;text-align:center}.range-input,.active-adjustment-control input[type=range]{accent-color:var(--color-primary)}.pattern-preview-panel{display:grid;grid-template-rows:auto minmax(430px,1fr) auto;min-height:680px;overflow:hidden}.pattern-preview-stage{overflow:auto}.noise-tool-popover,.pattern-action-menu{position:absolute;z-index:5;display:grid;gap:10px;padding:12px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:var(--shadow-hard)}.noise-tool-popover{left:62px;top:50%;width:min(260px,calc(100% - 84px));transform:translateY(-50%)}.color-noise-menu{width:210px;transform:none}.noise-tool-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.noise-tool-heading strong{color:var(--color-ink);font-size:14px}.noise-tool-heading button{display:inline-grid;place-items:center;width:28px;height:28px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.noise-tool-heading button:hover{background:var(--color-primary);color:var(--color-canvas)}.noise-tool-popover label{display:grid;gap:5px}.noise-tool-popover label span,.noise-strategy span{color:var(--color-muted);font-size:12px;font-weight:800}.noise-tool-popover input{height:34px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);font:inherit;font-size:13px;text-align:center}.noise-connectivity,.noise-strategy div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.noise-strategy{display:grid;gap:6px}.noise-apply-button:disabled{background:var(--color-surface-strong);color:var(--color-muted-soft);cursor:not-allowed}.pattern-preview-stage canvas{max-width:100%;max-height:62vh;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);image-rendering:pixelated;box-shadow:var(--shadow-hard)}.pattern-color-tooltip{position:absolute;z-index:3;pointer-events:none;min-width:34px;padding:5px 8px;border:var(--pixel-border) solid var(--color-canvas);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-canvas);font-size:12px;font-weight:900;line-height:1.2;text-align:center;box-shadow:var(--shadow-hard-soft);white-space:nowrap}.pattern-action-menu{z-index:4;min-width:118px;padding:6px;gap:0}.pattern-action-menu button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);cursor:pointer;font-size:13px;font-weight:900;white-space:nowrap}.pattern-action-menu button:hover{background:var(--color-primary);color:var(--color-canvas)}.pattern-action-menu button:disabled{color:var(--color-muted-soft);cursor:not-allowed}.pattern-action-menu button:disabled:hover{background:transparent;color:var(--color-muted-soft)}.pattern-summary-panel{position:relative;display:grid;gap:12px;padding:14px 20px 16px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.summary-heading h2{margin:0;color:var(--color-ink);font-size:18px}.summary-metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 12px;color:var(--color-muted);font-size:12px;font-weight:700}.summary-metrics strong{color:var(--color-ink);font-variant-numeric:tabular-nums}.more-options{display:grid;gap:12px;padding:14px 20px 18px;border-top:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.more-actions{align-items:center}.more-toggle,.undo-clear-button,.reset-adjustments{min-height:34px;padding:0 12px;font-size:13px}.more-toggle{justify-self:start;color:var(--color-primary)}.adjustment-workbench{display:grid;gap:14px;padding:0}.adjustment-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 6px}.adjustment-tabs button{flex:0 0 auto;white-space:nowrap}.active-adjustment-control{grid-template-columns:minmax(72px,auto) 42px minmax(0,1fr);align-items:center;gap:12px;margin:0}.active-adjustment-control span,.active-adjustment-control strong{font-size:13px}.active-adjustment-control span{color:var(--color-muted)}.active-adjustment-control strong{color:var(--color-ink);font-variant-numeric:tabular-nums;text-align:right}.active-adjustment-control input[type=range]{width:100%}.reset-adjustments{justify-self:end;color:var(--color-primary)}.color-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));grid-auto-rows:minmax(30px,auto);gap:6px;max-height:70px;overflow-x:hidden;overflow-y:auto;padding-right:2px}.color-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:5px;align-items:center;min-width:0;min-height:30px;padding:4px 6px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);cursor:pointer;font-family:inherit;font-size:11px;line-height:1.2;text-align:left}.color-row:hover,.color-row:focus-visible,.color-row[aria-expanded=true]{border-color:var(--color-primary);background:var(--color-surface-strong);outline:0}.color-row.locked{border-color:var(--color-purple);background:#f5effa}.color-row.highlighted{border-color:var(--color-primary);background:#fff0f4}.color-row i{width:14px;height:14px;border:var(--pixel-border) solid var(--color-ink);border-radius:0}.color-row strong{overflow:hidden;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap}.color-row span{display:inline-flex;align-items:center;gap:3px;color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.color-row.locked span{color:var(--color-purple);font-weight:900}.color-row.highlighted span{color:var(--color-primary-active);font-weight:900}.color-action-menu{position:absolute}.empty-side{padding:24px 0;color:var(--color-muted);font-size:13px;font-weight:700;text-align:center}.canvas-workspace{position:relative;display:block;min-height:calc(100vh - 48px)}.canvas-preview-panel{position:relative;display:block;min-height:calc(100vh - 48px);overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-md);background:linear-gradient(var(--color-hairline-soft) 1px,transparent 1px),linear-gradient(90deg,var(--color-hairline-soft) 1px,transparent 1px),var(--color-canvas);background-size:32px 32px;box-shadow:var(--shadow-hard)}.canvas-topbar,.floating-tool-palette,.floating-color-panel,.floating-adjustments,.canvas-error{position:absolute;z-index:8;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:var(--shadow-hard)}.canvas-topbar{top:16px;left:16px;right:16px;z-index:10;display:block;align-items:center;min-height:0;padding:8px}.topbar-controls{display:flex;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:8px;scrollbar-width:thin}.pattern-save-status{display:inline-flex;align-items:center;min-height:30px;padding:0 5px;color:var(--color-muted);font-size:11px;font-weight:900;white-space:nowrap}.pattern-save-status.dirty{color:var(--color-error)}.pattern-save-backdrop,.auth-dialog-backdrop{position:fixed;z-index:80;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#000000ad}.pattern-save-dialog,.auth-dialog{width:min(440px,100%);border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-canvas);box-shadow:8px 8px 0 var(--color-ink)}.pattern-save-dialog>header,.auth-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft)}.pattern-save-dialog h2,.auth-dialog h2{margin:0;font-size:20px}.pattern-save-dialog>header>button,.auth-dialog>header>button{display:inline-grid;width:34px;height:34px;place-items:center;padding:0;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);cursor:pointer}.pattern-save-dialog>header>button:hover,.auth-dialog>header>button:hover{background:var(--color-primary);color:var(--color-canvas)}.pattern-save-dialog>form,.auth-dialog>form{padding:18px}.pattern-save-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.auth-dialog .auth-mode-switch{margin:16px 18px 0}.redeem-purchase-link{display:block;margin-top:-5px;color:var(--color-legal-link);font-size:12px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}.redeem-dialog{max-height:calc(100vh - 40px);overflow-y:auto}.personal-settings-dialog{width:min(420px,100%)}.personal-settings-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.watermark-editor-backdrop{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#000000ad}.watermark-editor{width:min(720px,100%);height:min(600px,calc(100vh - 28px));max-height:calc(100vh - 28px);display:flex;flex-direction:column;overflow:hidden;border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-canvas);box-shadow:8px 8px 0 var(--color-ink)}.watermark-editor-header,.watermark-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft)}.watermark-editor-header h2{margin:0;font-size:20px}.watermark-toggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:6px 11px;border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-soft);color:var(--color-ink);font-size:13px;font-weight:900;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:3px 3px 0 var(--color-ink)}.watermark-toggle.enabled{background:var(--color-primary);color:var(--color-on-primary);box-shadow:3px 3px 0 var(--color-ink)}.watermark-toggle input{position:absolute;opacity:0;pointer-events:none}.watermark-toggle-track{position:relative;display:inline-flex;width:42px;height:24px;align-items:center;padding:2px;border:var(--pixel-border) solid var(--color-ink);border-radius:999px;background:var(--color-surface-strong);transition:background .15s ease}.watermark-toggle-track span{width:17px;height:17px;border-radius:50%;background:var(--color-canvas);box-shadow:1px 1px 0 var(--color-ink);transition:transform .15s ease}.watermark-toggle input:checked+.watermark-toggle-track{background:var(--color-canvas)}.watermark-toggle input:checked+.watermark-toggle-track span{transform:translate(17px)}.watermark-toggle input:focus-visible+.watermark-toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.watermark-editor-header>button{display:inline-grid;width:34px;height:34px;place-items:center;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);cursor:pointer}.watermark-editor-header>button:hover{background:var(--color-primary);color:var(--color-canvas)}.watermark-editor-body{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px;padding:12px;overflow:auto;flex:1;min-height:0}.watermark-editor-stage{min-width:0;display:flex;flex-direction:column;gap:8px}.watermark-canvas-frame{min-height:340px;display:grid;place-items:center;padding:18px;border:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft);overflow:auto}.watermark-canvas{display:block;width:min(100%,560px);height:auto;aspect-ratio:1 / 1;max-height:58vh;border:1px solid #70777b;background:transparent;box-shadow:var(--shadow-hard-soft);touch-action:none;-webkit-user-select:none;user-select:none}.watermark-canvas-meta{color:var(--color-muted);font-size:12px}.watermark-editor-panel{display:flex;flex-direction:column;gap:9px;align-self:start}.watermark-editor-actions{display:flex;gap:7px}.watermark-editor-actions button{flex:1}.watermark-size-field{display:grid;gap:7px;color:var(--color-muted);font-size:12px}.watermark-size-field>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}.watermark-size-field input,.watermark-properties input,.watermark-properties select{width:100%;min-height:34px;padding:5px 8px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink)}.watermark-properties select{cursor:pointer}.watermark-editor-panel h3{margin:4px 0 0;color:var(--color-ink);font-size:12px;font-weight:900}.watermark-shape-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.watermark-shape-grid button{display:grid;place-items:center;gap:3px;min-height:52px;padding:5px 3px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-muted);cursor:pointer;font-size:10px}.watermark-shape-grid button:hover{background:var(--color-surface-strong);color:var(--color-ink)}.watermark-properties{display:grid;gap:9px}.watermark-properties label{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:7px;color:var(--color-muted);font-size:12px}.watermark-properties .danger{width:100%;color:var(--color-error)}.watermark-editor-footer{justify-content:space-between;border-top:var(--pixel-border) solid var(--color-ink);border-bottom:0;flex-shrink:0;padding:8px 12px 12px}.watermark-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}.watermark-footer-actions .primary-button{width:auto;min-width:132px;height:42px}.watermark-selection{fill:transparent;stroke:var(--color-primary);stroke-width:1;stroke-dasharray:3 2;pointer-events:none}.watermark-resize{fill:var(--color-primary);stroke:#fff;stroke-width:1.5;cursor:nwse-resize}@media(max-width:700px){.watermark-editor-body{grid-template-columns:1fr}.watermark-canvas-frame{min-height:260px;padding:16px}.watermark-canvas{max-height:none}.watermark-editor{max-height:calc(100vh - 20px)}}.redeem-description{display:grid;gap:7px;padding:11px 12px;border:1px solid var(--color-hairline);background:var(--color-surface-soft)}.redeem-description>strong{color:var(--color-ink);font-size:13px;font-weight:900}.redeem-description ul{display:grid;gap:5px;margin:0;padding-left:18px;color:var(--color-muted);font-size:12px;font-weight:700;line-height:1.5}.redeem-success{display:grid;justify-items:center;gap:10px;padding:24px 18px 18px;text-align:center}.redeem-success>svg{color:var(--color-primary)}.redeem-success>strong{color:var(--color-ink);font-family:var(--font-display);font-size:20px}.redeem-success>span{color:var(--color-purple);font-size:14px;font-weight:900}.redeem-customer-service{display:grid;justify-items:center;gap:7px;margin-top:2px;padding:12px;border:1px solid var(--color-hairline);background:var(--color-surface-soft);text-align:center}.redeem-customer-service strong{color:var(--color-magenta);font-size:14px;font-weight:900}.redeem-customer-service span{color:var(--color-muted);font-size:12px;font-weight:700}.redeem-customer-service img{display:block;width:min(180px,100%);height:auto;border:1px solid var(--color-hairline);image-rendering:pixelated}.redeem-success .primary-button{width:100%;margin-top:6px}.compact-field{display:grid;grid-template-columns:auto 128px;flex:0 0 auto;align-items:center;gap:6px;margin:0}.width-update-status{grid-column:1 / -1;color:var(--color-primary-active);font-size:10px;font-weight:900}.compact-field span{display:inline-flex;align-items:center;justify-content:center;color:var(--color-muted);font-size:12px;font-weight:900}.mini-stepper{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas)}.mini-stepper button,.topbar-back-button,.topbar-actions button,.topbar-mode-toggle,.floating-tool-palette>button{display:inline-grid;place-items:center;border:0;background:var(--color-surface-strong);color:var(--color-ink);cursor:pointer}.mini-stepper button{height:30px}.mini-stepper input{width:100%;height:30px;min-width:0;border-width:0 var(--pixel-border);border-radius:0;padding:0 4px;text-align:center}.mini-stepper button:hover:not(:disabled),.topbar-actions button:hover:not(:disabled),.topbar-mode-toggle:hover,.floating-tool-palette>button:hover:not(:disabled),.floating-tool-palette>button.active{background:var(--color-primary);color:var(--color-canvas)}.mini-stepper button:disabled,.topbar-actions button:disabled,.floating-tool-palette>button:disabled{color:var(--color-muted-soft);cursor:not-allowed}.resize-algorithm-wrap{position:relative;display:inline-block}.resize-algorithm-button{display:inline-grid;place-items:center;width:30px;height:30px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.resize-algorithm-button:hover:not(:disabled){background:var(--color-primary);color:var(--color-canvas)}.resize-algorithm-button:disabled{color:var(--color-muted-soft);cursor:not-allowed}.resize-algorithm-menu{position:absolute;z-index:20;min-width:140px}.resize-algorithm-check{display:inline-grid;place-items:center;width:15px}.topbar-actions{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:6px}.topbar-back-button,.topbar-actions button,.topbar-mode-toggle{width:34px;height:34px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm)}.canvas-topbar:not(.collapsed) .topbar-back-button,.canvas-topbar:not(.collapsed) .resize-algorithm-button,.canvas-topbar:not(.collapsed) .topbar-actions button{display:inline-flex;width:auto;min-width:52px;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap}.canvas-topbar:not(.collapsed) .resize-algorithm-button{min-width:80px;height:34px}.topbar-mode-toggle{flex:0 0 34px;padding:0}.topbar-actions .visibility-action{color:var(--color-purple)}.topbar-actions .visibility-action.public{color:var(--color-magenta)}.topbar-actions .visibility-action:hover:not(:disabled){color:var(--color-canvas)}.topbar-actions .visibility-action:disabled{color:var(--color-muted-soft)}.floating-adjustments{top:0;left:calc(100% + 10px);display:grid;gap:12px;width:min(560px,calc(100vw - 186px));padding:12px}.floating-tool-palette{top:78px;left:16px;display:grid;gap:8px;width:126px;padding:8px;transition:width .16s steps(2,end)}.floating-tool-palette>button{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;width:100%;min-height:34px;padding:6px 8px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);font-size:12px;font-weight:900;line-height:1.25;white-space:nowrap}.tool-palette-toggle{justify-content:center!important;padding:0!important}.floating-tool-palette.collapsed{width:52px}.floating-tool-palette.collapsed>button:not(.tool-palette-toggle){justify-content:center;padding:6px}.floating-tool-palette.collapsed .selected-color-label,.floating-tool-palette.collapsed .eraser-width-control>span,.floating-tool-palette.collapsed .eraser-width-control>div,.floating-tool-palette.collapsed .zoom-readout,.floating-tool-palette.collapsed .tool-divider{display:none}.floating-tool-palette.collapsed .selected-color-chip{justify-content:center;padding:0}.floating-tool-palette.collapsed .selected-color-chip i{width:20px;height:20px}.eraser-width-control{display:grid;gap:5px;width:100%}.crop-control-popover{position:absolute;top:0;left:calc(100% + 10px);display:grid;gap:6px;width:184px;padding:10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);color:var(--color-ink)}.crop-control-popover strong{font-size:13px}.crop-control-popover span{color:var(--color-primary-active);font-size:16px;font-weight:900}.crop-control-popover small{color:var(--color-muted);font-size:10px;font-weight:900}.crop-control-popover>div{display:grid;grid-template-columns:1fr 58px;gap:6px}.crop-control-popover button{min-height:34px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-canvas);font-size:11px;font-weight:900;cursor:pointer}.crop-control-popover button:last-child{background:var(--color-surface-strong);color:var(--color-ink)}.crop-control-popover button:disabled{border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-muted-soft);cursor:not-allowed}.eraser-width-control span{color:var(--color-muted);font-size:10px;font-weight:900;line-height:1;text-align:center}.eraser-width-control div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.eraser-width-control button{display:inline-grid;place-items:center;width:100%;height:24px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-ink);font-size:11px;font-weight:900;cursor:pointer}.eraser-width-control button.active{background:var(--color-primary);color:var(--color-canvas)}.tool-divider{height:2px;background:var(--color-ink)}.zoom-readout{color:var(--color-muted);font-size:11px;font-weight:900;line-height:1.1;text-align:center}.selected-color-chip{display:inline-flex;width:100%;height:34px;align-items:center;justify-content:flex-start;gap:7px;padding:0 8px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);cursor:pointer}.selected-color-picker{position:relative;display:flex;width:100%}.selected-color-chip span{color:var(--color-ink);font-size:12px;font-weight:900;white-space:nowrap}.selected-color-chip:hover:not(:disabled),.selected-color-chip:focus-visible{border-color:var(--color-primary);outline:0;box-shadow:inset 0 0 0 1px var(--color-primary)}.selected-color-chip:disabled{cursor:not-allowed;opacity:.65}.selected-color-chip i{width:18px;height:18px;flex:0 0 auto;border:var(--pixel-border) solid var(--color-ink)}.mard-color-picker{position:absolute;left:calc(100% + 10px);bottom:0;z-index:20;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px;width:min(360px,calc(100vw - 186px));max-height:min(500px,calc(100vh - 140px));overflow:hidden;padding:10px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:var(--shadow-hard)}.mard-color-picker-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--color-ink)}.mard-color-picker-heading strong{font-size:13px;font-weight:900}.mard-color-picker-heading span{color:var(--color-primary-active);font-size:11px;font-weight:900}.mard-color-group-tabs{display:flex;flex-wrap:wrap;gap:4px;max-height:70px;overflow-y:auto;padding:2px}.mard-color-group-tabs button{display:inline-grid;place-items:center;min-width:28px;height:26px;padding:0 5px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-ink);cursor:pointer;font-size:11px;font-weight:900}.mard-color-group-tabs button:hover,.mard-color-group-tabs button:focus-visible,.mard-color-group-tabs button.active{border-color:var(--color-ink);background:var(--color-primary);color:var(--color-canvas);outline:0}.mard-color-grid{display:grid;grid-template-columns:repeat(6,minmax(42px,1fr));gap:5px;min-height:0;overflow-y:auto;padding:2px}.mard-color-option{display:grid;grid-template-rows:26px auto;justify-items:center;gap:3px;min-width:0;min-height:48px;padding:4px 3px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.mard-color-option:hover,.mard-color-option:focus-visible,.mard-color-option.selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);outline:0}.mard-color-option i{display:block;width:26px;height:26px;border:var(--pixel-border) solid var(--color-ink)}.mard-color-option span{overflow:hidden;width:100%;color:var(--color-ink);font-size:10px;font-weight:900;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap}.floating-color-panel{top:78px;right:16px;display:grid;grid-template-rows:auto minmax(92px,1fr) auto;width:min(248px,calc(100vw - 116px));max-height:calc(100vh - 130px);gap:8px;padding:10px;border-bottom:var(--pixel-border) solid var(--color-ink)}.floating-color-panel .summary-heading{align-items:flex-start;flex-direction:column;gap:5px}.floating-color-panel .summary-heading h2{font-size:15px;line-height:1.15}.floating-color-panel .summary-metrics{gap:4px 8px;justify-content:flex-start;font-size:10px;line-height:1.2}.floating-color-panel .color-scroll{grid-template-columns:1fr;gap:4px;max-height:min(34vh,calc(100vh - 360px));min-height:92px;padding-right:3px}.floating-color-panel .color-row{grid-template-columns:14px minmax(0,1fr) auto 22px;gap:4px;min-height:30px;padding:3px 5px;font-size:11px}.floating-color-panel .color-row i{width:14px;height:14px}.color-row.selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.color-row em{display:inline-grid;place-items:center;width:22px;height:22px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-ink);font-style:normal}.color-row em:hover,.color-row em:focus-visible{border-color:var(--color-ink);background:var(--color-primary);color:var(--color-canvas);outline:0}.layer-panel{display:grid;gap:6px;min-height:0;border-top:var(--pixel-border) solid var(--color-ink);padding-top:8px}.layer-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.layer-heading h3{margin:0;color:var(--color-ink);font-size:13px;line-height:1.1}.layer-heading span{color:var(--color-muted);font-size:10px;font-weight:900;white-space:nowrap}.layer-scroll{display:grid;gap:5px;overflow-y:auto;max-height:min(28vh,220px);padding-right:3px}.layer-row{display:grid;grid-template-columns:24px 42px minmax(0,1fr) 24px;align-items:center;gap:6px;min-height:50px;padding:4px;border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-canvas);cursor:pointer}.layer-row:hover,.layer-row:focus-visible{border-color:var(--color-primary);background:var(--color-surface-strong);outline:0}.layer-row.active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.layer-row.hidden{color:var(--color-muted-soft);background:var(--color-surface-soft)}.layer-row img{width:42px;height:42px;border:var(--pixel-border) solid var(--color-ink);object-fit:contain;image-rendering:pixelated;background:linear-gradient(45deg,#eeeeee 25%,transparent 25%),linear-gradient(-45deg,#eeeeee 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eeeeee 75%),linear-gradient(-45deg,transparent 75%,#eeeeee 75%),#fff;background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.layer-row strong,.layer-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-row strong{color:var(--color-ink);font-size:12px;line-height:1.2}.layer-row span{color:var(--color-muted);font-size:10px;font-weight:800;line-height:1.2}.layer-visibility,.layer-delete{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;line-height:0}.layer-visibility svg,.layer-delete svg{display:block}.layer-visibility{border:var(--pixel-border) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-ink);cursor:pointer}.layer-visibility:hover,.layer-visibility:focus-visible{border-color:var(--color-ink);background:var(--color-primary);color:var(--color-canvas);outline:0}.layer-delete{border:var(--pixel-border) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-error);cursor:pointer}.layer-delete:hover:not(:disabled),.layer-delete:focus-visible{border-color:var(--color-error);background:var(--color-canvas);color:var(--color-error-hover);outline:0}.layer-delete:disabled{color:var(--color-muted-soft);cursor:not-allowed}.canvas-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;min-height:100%;padding:0;touch-action:none;overscroll-behavior:none}.canvas-stage.panning{cursor:grab}.canvas-stage.panning:active{cursor:grabbing}.canvas-stage.brush{cursor:crosshair}.canvas-stage.eraser,.canvas-stage.regionErase{cursor:cell}.canvas-stage.fill,.canvas-stage.replaceColor{cursor:copy}.canvas-stage.crop{cursor:default}.canvas-transform-layer{position:absolute;top:0;left:0;transform-origin:top left;will-change:transform}.eraser-preview-box{position:absolute;z-index:2;box-sizing:border-box;border:2px solid var(--color-primary);background:repeating-linear-gradient(45deg,#ff4e6b38 0,#ff4e6b38 6px,#ffffff2e 6px,#ffffff2e 12px);box-shadow:inset 0 0 0 1px var(--color-canvas);pointer-events:none}.crop-selection-overlay{--crop-inverse-scale: 1;position:absolute;z-index:4;box-sizing:border-box;border:calc(2px * var(--crop-inverse-scale)) solid var(--color-primary);background:#ffffff0a;box-shadow:0 0 0 9999px #1218268f,inset 0 0 0 calc(1px * var(--crop-inverse-scale)) var(--color-canvas);cursor:move;touch-action:none}.crop-selection-overlay.passthrough{pointer-events:none}.pattern-export-backdrop{position:fixed;z-index:60;top:0;right:0;bottom:0;left:0;display:grid;padding:20px;place-items:center;background:#000000ad}.pattern-export-dialog{display:grid;grid-template-rows:auto auto minmax(0,1fr);width:min(1180px,100%);height:min(820px,calc(100vh - 40px));overflow:hidden;border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-canvas);box-shadow:8px 8px 0 var(--color-ink)}.pattern-export-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-surface-soft)}.pattern-export-dialog>header h2{margin-top:2px;font-size:21px}.pattern-export-dialog>header>button{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);cursor:pointer;box-shadow:var(--shadow-hard-soft)}.pattern-export-dialog>header>button:hover{background:var(--color-primary);color:var(--color-canvas);transform:translate(1px,1px);box-shadow:1px 1px 0 var(--color-ink)}.pattern-export-type-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 14px;border-bottom:var(--pixel-border) solid var(--color-ink);background:var(--color-canvas)}.pattern-export-type-switch button{min-height:38px;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface-strong);color:var(--color-ink);cursor:pointer;font-weight:900}.pattern-export-type-switch button:hover,.pattern-export-type-switch button.active{background:var(--color-primary);color:var(--color-canvas)}.pattern-export-type-switch button.active{box-shadow:inset 0 -3px 0 var(--color-primary-active)}.pattern-export-content{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding:14px;background:linear-gradient(var(--color-hairline-soft) 1px,transparent 1px),linear-gradient(90deg,var(--color-hairline-soft) 1px,transparent 1px),var(--color-surface-soft);background-size:24px 24px}.pattern-export-preview-frame{position:relative;width:100%;height:100%;min-width:0;min-height:0}.pattern-export-preview{position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;align-items:center;justify-content:center;border:var(--pixel-border) solid var(--color-ink);background:linear-gradient(45deg,var(--color-surface-strong) 25%,transparent 25%),linear-gradient(-45deg,var(--color-surface-strong) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-surface-strong) 75%),linear-gradient(-45deg,transparent 75%,var(--color-surface-strong) 75%),var(--color-canvas);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;touch-action:none;-webkit-user-select:none;user-select:none}.pattern-export-preview.interactive{cursor:grab}.pattern-export-preview.static{touch-action:pan-y;user-select:none;-webkit-user-select:none}.pattern-export-preview.dragging{cursor:grabbing}.pattern-export-preview img{display:block;flex:0 0 auto;image-rendering:pixelated;pointer-events:auto;user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default;transform-origin:center;will-change:transform}.pattern-export-preview.static img{user-select:none;-webkit-user-select:none;-webkit-touch-callout:default}.pattern-export-mobile-hint{display:none}.pattern-export-status{display:grid;justify-items:center;gap:10px;max-width:360px;padding:24px;color:var(--color-body);text-align:center}.pattern-export-status.error strong,.pattern-export-status.error span{color:var(--color-error)}.pattern-export-floating-download{position:absolute;z-index:3;top:12px;right:12px;display:inline-grid;width:46px;height:46px;place-items:center;border:var(--pixel-border-strong) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;box-shadow:var(--shadow-hard)}.pattern-export-floating-download:hover:not(:disabled){background:var(--color-primary-active);transform:translate(1px,1px);box-shadow:2px 2px 0 var(--color-ink)}.pattern-export-floating-download:disabled{background:var(--color-primary-disabled);color:var(--color-canvas);cursor:not-allowed;box-shadow:none}.pattern-export-content-wechat-h5 .pattern-export-floating-download{display:inline-grid}.pattern-export-content-wechat-h5 .pattern-export-mobile-hint{display:none}@media(hover:none)and (pointer:coarse){.pattern-export-floating-download{display:inline-grid}.pattern-export-mobile-hint{position:absolute;z-index:3;bottom:10px;left:50%;display:block;max-width:calc(100% - 24px);margin:0;padding:6px 9px;overflow:hidden;border:var(--pixel-border) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-body);box-shadow:var(--shadow-hard-soft);font-size:12px;font-weight:800;line-height:1.2;pointer-events:none;text-overflow:ellipsis;transform:translate(-50%);white-space:nowrap}}.crop-handle{position:absolute;z-index:2;width:calc(16px * var(--crop-inverse-scale));height:calc(16px * var(--crop-inverse-scale));margin:0;padding:0;border:calc(2px * var(--crop-inverse-scale)) solid var(--color-ink);border-radius:0;background:var(--color-primary);box-shadow:0 0 0 calc(1px * var(--crop-inverse-scale)) var(--color-canvas);touch-action:none}.crop-handle-nw,.crop-handle-w,.crop-handle-sw{left:0}.crop-handle-ne,.crop-handle-e,.crop-handle-se{right:0}.crop-handle-nw,.crop-handle-n,.crop-handle-ne{top:0}.crop-handle-sw,.crop-handle-s,.crop-handle-se{bottom:0}.crop-handle-n,.crop-handle-s{left:50%}.crop-handle-w,.crop-handle-e{top:50%}.crop-handle-nw{cursor:nwse-resize;transform:translate(-50%,-50%)}.crop-handle-n{cursor:ns-resize;transform:translate(-50%,-50%)}.crop-handle-ne{cursor:nesw-resize;transform:translate(50%,-50%)}.crop-handle-e{cursor:ew-resize;transform:translate(50%,-50%)}.crop-handle-se{cursor:nwse-resize;transform:translate(50%,50%)}.crop-handle-s{cursor:ns-resize;transform:translate(-50%,50%)}.crop-handle-sw{cursor:nesw-resize;transform:translate(-50%,50%)}.crop-handle-w{cursor:ew-resize;transform:translate(-50%,-50%)}.canvas-stage canvas{display:block;max-width:none;max-height:none;background:transparent;transform:none}.canvas-error{left:50%;bottom:18px;z-index:9;max-width:min(520px,calc(100% - 32px));padding:10px 12px;color:var(--color-error);font-size:13px;font-weight:900;transform:translate(-50%)}@media(max-width:1180px){.pattern-workspace{grid-template-columns:300px minmax(0,1fr)}.floating-color-panel{top:78px;max-height:calc(100vh - 130px)}.floating-color-panel .color-scroll{max-height:min(34vh,calc(100vh - 360px))}}@media(max-width:860px){.app-shell{padding:14px}.admin-header{align-items:stretch;flex-direction:column}.admin-header-actions{flex-wrap:wrap}.admin-config-form-grid{grid-template-columns:1fr}.admin-config-transfer-actions{flex-direction:column}.admin-config-transfer-actions .secondary-button,.admin-config-test-submit{width:100%}.admin-config-form-wide{grid-column:auto}.global-header{align-items:stretch;flex-direction:column;gap:6px}.global-header-left,.global-nav,.global-header-account{flex-wrap:wrap}.global-header-account{justify-content:flex-end}.workspace,.pattern-workspace{grid-template-columns:1fr}.admin-header{align-items:flex-start}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end}.admin-toolbar{grid-template-columns:minmax(220px,1fr) auto}.admin-user-count{grid-column:1 / -1;justify-self:start}.login-panel,.control-panel,.preview-panel,.pattern-controls,.pattern-preview-panel,.history-card,.pattern-repository-card{box-shadow:3px 3px 0 var(--color-ink)}h1{font-size:24px}h2{font-size:20px}.panel-heading{align-items:flex-start}.preview-panel,.pattern-preview-panel{min-height:520px}.preview-stage,.pattern-preview-stage{min-height:360px;padding:16px}.preview-carousel{min-height:320px}.preview-carousel img{width:min(100%,62vh);max-height:62vh}.preview-image-surface{width:min(100%,62vh)}.preview-image-surface img{width:100%;max-height:62vh}.carousel-arrow{width:38px;height:38px}.carousel-arrow.previous{left:8px}.carousel-arrow.next{right:8px}.carousel-counter{right:10px;bottom:10px}.history-grid,.pattern-repository-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.history-card,.pattern-repository-card{width:100%}.pattern-summary-panel,.more-options{padding:14px}.summary-heading{align-items:flex-start;flex-direction:column}.summary-metrics{justify-content:flex-start}.color-scroll{grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}.active-adjustment-control{grid-template-columns:minmax(70px,auto) 38px minmax(0,1fr);gap:10px}.reset-adjustments{justify-self:stretch}.floating-color-panel{top:78px;max-height:calc(100vh - 130px)}.floating-color-panel .color-scroll{max-height:min(34vh,calc(100vh - 360px))}.pattern-export-backdrop{padding:8px}.pattern-export-dialog{width:100%;height:calc(100vh - 16px)}.pattern-export-content{grid-template-columns:1fr;padding:10px}}@media(max-width:700px){.admin-header{align-items:stretch;flex-direction:column}.admin-header-actions{justify-content:flex-start}.public-home-header{align-items:stretch;flex-direction:column}.public-preview-panel{min-height:520px}.public-preview-panel .preview-stage{min-height:360px}.pattern-repository-preview{grid-template-columns:1fr}.pattern-repository-preview-info{flex-direction:column}.pattern-repository-preview-info .primary-button{align-self:flex-start}.floating-color-panel{top:auto;right:12px;bottom:12px;left:150px;width:auto;max-height:28vh;padding:9px}.floating-color-panel .summary-heading{align-items:flex-start;flex-direction:column}.floating-color-panel .color-scroll{max-height:10vh;min-height:58px}.mard-color-picker{left:calc(100% + 8px);width:min(320px,calc(100vw - 174px));max-height:min(50vh,420px)}.mard-color-grid{grid-template-columns:repeat(5,minmax(38px,1fr))}.layer-scroll{max-height:10vh}.layer-row{grid-template-columns:24px 34px minmax(0,1fr) 24px;min-height:42px}.layer-row img{width:34px;height:34px}}@media(max-width:520px){.app-shell{padding:10px}.customer-service-card{width:min(140px,calc(100vw - 32px))}.pattern-repository-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-repository-open{grid-template-rows:auto minmax(0,1fr) auto auto}.pattern-repository-open .pattern-thumbnail-frame{height:auto;aspect-ratio:1}.app-shell.repository-shell{padding-top:0}.control-panel,.pattern-controls,.login-panel{padding:16px}.admin-shell,.public-home-shell{padding:10px}.admin-header-actions,.admin-access-actions,.admin-pagination,.admin-pagination>div{align-items:stretch;flex-direction:column}.admin-current-user{justify-content:center}.admin-toolbar{grid-template-columns:1fr}.admin-user-count{grid-column:auto}.admin-status-filter{width:100%}.admin-pagination>div{width:100%}.panel-heading{flex-direction:column}.text-button,.primary-button,.secondary-button,.download-link{width:100%}.section-heading{align-items:flex-start;flex-direction:column;gap:4px}.active-adjustment-control{grid-template-columns:1fr 42px}.active-adjustment-control input[type=range]{grid-column:1 / -1}.noise-tool-popover{left:12px;width:calc(100% - 24px)}.canvas-preview-panel,.canvas-workspace{min-height:calc(100vh - 28px)}.topbar-controls{justify-content:flex-start}.compact-field{grid-template-columns:auto 112px}.floating-tool-palette{top:78px;left:12px}.floating-adjustments{left:calc(100% + 8px);width:min(520px,calc(100vw - 174px))}.crop-control-popover{left:calc(100% + 8px);width:min(184px,calc(100vw - 172px))}.mard-color-picker{width:min(250px,calc(100vw - 174px))}.mard-color-grid{grid-template-columns:repeat(4,minmax(38px,1fr))}.pattern-export-dialog>header{padding:10px 12px}.pattern-export-dialog>header h2{font-size:18px}.pattern-export-type-switch{gap:5px;padding:8px}.pattern-export-type-switch button{min-height:42px;padding:6px;font-size:12px}.pattern-export-floating-download{top:8px;right:8px}}@media(max-width:360px){.pattern-repository-actions .mini-action svg{display:none}}
