@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap";/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-slate-700:oklch(37.2% .044 257.287);--color-white:#fff;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-brand-100:#dbe5ff;--color-brand-500:#4775ee;--color-brand-700:#2f54ae}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.isolate{isolation:isolate}.block{display:block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.bg-\[\#c43e4a\]{background-color:#c43e4a}.text-slate-700{color:var(--color-slate-700)}.text-white{color:var(--color-white)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select-none{-webkit-user-select:none;user-select:none}.selection\:bg-brand-100 ::selection{background-color:var(--color-brand-100)}.selection\:bg-brand-100::selection{background-color:var(--color-brand-100)}.selection\:text-brand-700 ::selection{color:var(--color-brand-700)}.selection\:text-brand-700::selection{color:var(--color-brand-700)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-4:focus-visible{outline-offset:4px}.focus-visible\:outline-brand-500:focus-visible{outline-color:var(--color-brand-500)}.focus-visible\:outline-white:focus-visible{outline-color:var(--color-white)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}:root{font-family:Inter,Noto Sans TC,sans-serif;color:#172033;background:#f4f6fb;font-synthesis:none;--blue: #5e81f4;--blue-dark: #2f54ae;--blue-soft: #edf2ff;--line: #d9e1f5;--white: #fff;--steel-400: #B4B3B8;--graphite-600: #727175;--linen-100: #F3F1EE;--ease: cubic-bezier(.4, 0, .2, 1);--rim: inset 0 -4px 4px 0 rgb(0 0 0 / 25%);--hover-solid: var(--white);--hover-ink: var(--graphite-600);--press-solid: var(--linen-100);--press-ink: #5A595D}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit}button{border:0;cursor:pointer}.blue-button{border-radius:50px;background:#c7c8cc;color:#727175;box-shadow:inset 0 -4px 4px #00000040,0 0 10px #f3f1ee;font-weight:600;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.blue-button:hover,.blue-button:focus-visible{outline:0;transform:translateY(-2px);background:var(--hover-solid);color:var(--hover-ink);box-shadow:var(--rim),0 8px 18px -4px #72717566,0 0 0 4px #c7c8cc59}.blue-button:active{transform:translateY(0) scale(.97);background:var(--press-solid);color:var(--press-ink);box-shadow:inset 0 3px 6px #00000024,inset 0 1px #fff9;transition:background .05s var(--ease),color .05s var(--ease),box-shadow .05s var(--ease),transform .05s var(--ease)}.login-shell{display:grid;min-height:100vh}.login-card{display:grid;grid-template-columns:55% 45%;overflow:hidden;background:#fff;box-shadow:0 35px 90px #0000004d}.login-form-side{position:relative;z-index:2;display:grid;place-items:center;overflow:hidden;padding:64px;background:#fff;border-radius:0 20px 20px 0}.login-copy{position:relative;z-index:1;width:min(373px,100%)}.eyebrow{margin:0 0 14px;color:#727175;font-size:11px;font-weight:700;letter-spacing:.13em}.login-copy h1{margin:0;color:#000;font-size:20px;line-height:1.28;font-weight:500}.login-subtitle{margin:11px 0 62px;font-size:11px;color:#727175;font-weight:500}.modern-login-form{display:grid;gap:13px}.modern-login-form label{display:grid;gap:8px;font-size:14px}.modern-login-form label span{color:#727175;font-weight:500}.line-input{width:373px}.line-input input{min-width:100%;border:.5px #727175 solid;outline:0;border-radius:50px;background:#fbfaf6;box-shadow:inset 2px 2px 4.5px #c7c8cc;height:38px;color:#727175;padding:0 12px;font-size:14px;font-weight:500}.line-input input::placeholder{color:#b4b3b8}.line-input input:focus{background:#fff;box-shadow:0 0 0 5px #e4e1da,2px 3px 6px #0000001f}.line-input input:-webkit-autofill,.line-input input:-webkit-autofill:hover,.line-input input:-webkit-autofill:active{-webkit-box-shadow:inset 2px 2px 4.5px 0 #C7C8CC,0 0 0 1000px #FBFAF6 inset;-webkit-text-fill-color:#727175;caret-color:#727175}.line-input input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 5px #E4E1DA,2px 3px 6px 0 rgb(0 0 0 / 12%),0 0 0 1000px #fff inset;-webkit-text-fill-color:#727175}.form-error{margin:0;color:#c43e4a;font-size:13px}.login-button{justify-self:center;width:373px;min-height:38px;margin-top:57px}.login-art{position:fixed;overflow:hidden;background:url(/images/login_bg.svg) center / cover no-repeat;width:47%;height:100%;right:0;top:0}.application-shell{display:grid;grid-template-columns:232px 1fr;grid-template-rows:64px 1fr;height:100vh;overflow:hidden;background:#fff}.workspace-header{position:relative;z-index:20;grid-column:2;display:flex;align-items:center;justify-content:space-between;min-height:69px;padding:0 28px;background:#fff;color:#fff;box-shadow:0 3px 12px #565a6226}.workspace-header strong{font-size:20px}.logout-button{display:flex;align-items:center;gap:8px;background:transparent;color:#727175;font-size:14px}.logout-button svg,.logout-button img{width:16px;height:16px;object-fit:contain}.logout-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.flow-stage{position:relative;grid-column:2;min-height:0;overflow:hidden;background:#c7c8cc80}.flow-stage .vue-flow{background:transparent}.side-nav{position:relative;z-index:30;grid-row:1 / -1;grid-column:1;display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;padding:24px 0;box-shadow:2px 0 12px #0000001f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#b4b3b8}.side-nav button{display:flex;align-items:center;gap:12px;min-height:44px;border-radius:50px;background:transparent;margin:0 8px;padding:0 14px;color:#fff;font-size:14px;font-weight:500;text-align:left}.side-nav button.active{background:#f2f0e4;color:#727175;box-shadow:inset -4px -4px 2.4px #e4e1da,0 4px 4px #0000001a}.side-nav button:hover{background:#fff;color:#727175}.side-nav svg,.side-nav img{width:20px;height:20px;object-fit:contain}.side-nav svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.side-nav .logo{width:192px;height:28px;margin:0 24px 28px}.side-nav .nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-nav .nav-icon{display:block;flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--nav-icon) center / contain no-repeat;mask:var(--nav-icon) center / contain no-repeat}.side-nav .nav-profile{display:flex;align-items:center;gap:12px;min-height:56px;margin:auto 12px 0;padding:7px 16px;border-radius:50px;background:#f2f0e4;box-shadow:inset -4px -4px 2.4px #e4e1da,0 4px 4px #0000001a;text-align:left}.side-nav .nav-profile:hover{background:#fff}.side-nav .nav-avatar{width:32px;height:32px;flex:none;border-radius:50%;object-fit:cover}.nav-profile-text{display:grid;gap:1px;min-width:0}.nav-profile-text strong{overflow:hidden;color:#5a595d;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.nav-profile-text small{color:#727175;font-size:10px}.empty-flow{position:absolute;z-index:4;top:50%;left:50%;display:grid;place-items:center;gap:20px;color:#727175;transform:translate(-50%,-58%);cursor:pointer}.empty-icon{display:block;width:120px;height:120px;object-fit:contain}.empty-flow strong{font-size:20px}.vue-flow__node-search,.vue-flow__node-fabric{border:0;background:transparent;box-shadow:none}.search-node{position:relative;display:grid;width:min(318px,calc(100vw - 48px));min-width:318px;gap:13px;border:1px solid #dbe3f4;border-radius:14px;background:#fff;padding:18px;box-shadow:0 4px 5px #f2f0e4cc}.search-node header{display:flex;align-items:center;gap:8px;color:#727175}.search-node header button{margin-left:auto;background:transparent;color:#727175;font-size:21px;font-weight:300}.search-node header button img{display:block;width:26px;height:26px;object-fit:contain}.tool-symbol{display:grid;width:28px;height:28px;place-items:center;border-radius:10px;background:linear-gradient(155deg,#f2f0e4b3,#727175b3);font-size:20px}.tool-symbol img{display:block;width:16px;height:16px;object-fit:contain}.search-node label{display:grid;gap:5px}.search-node label>span:first-child{color:#727175;font-size:11px;font-weight:600}.search-node input{width:100%;height:34px;border:.5px solid #727175;border-radius:50px;outline:0;background:#fbfaf6;padding:0 12px;color:#727175;font-size:12px}.paired-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.composition-section{display:grid;gap:7px;min-width:0;border:0;margin:0;padding:0}.composition-section>span{color:#727175;font-size:11px;font-weight:600}.composition-fields{display:grid;grid-template-columns:minmax(0,1fr) 83px 26px 26px;align-items:center;gap:px}.percent-input{position:relative;display:block;padding:0 5px}.percent-input input{padding-right:20px}.percent-input i{position:absolute;top:50%;right:8px;color:#536078;font-size:11px;font-style:normal;transform:translateY(-50%);pointer-events:none}.composition-action{display:grid;width:24px;height:30px;place-items:center;background:transparent;color:#30384a;padding:0;font-size:20px}.composition-action:hover{color:#727175}.composition-action svg{width:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.composition-action img{display:block;width:26px;height:26px;object-fit:contain}.composition-action-placeholder{width:24px}.composition-total{color:#64708a;font-size:10px;text-align:right}.composition-total.invalid{color:#c43e4a}.spec-message{margin:0;font-size:10px;line-height:1.5}.spec-message.error{color:#c43e4a}.spec-message.warning{color:#b7791f}.search-button:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:none}.search-button{min-height:38px;margin-top:4px}.search-button:focus-visible{outline:0}.vue-flow__handle{width:10px;height:10px;border:2px solid white;background:#727175}.vue-flow__connectionline .vue-flow__edge-path,.vue-flow__edge-path{stroke:#727175}.fabric-node{position:relative;width:318px;min-width:318px;overflow:visible;border:1px solid #d6deef;border-radius:15px;background:#fff;box-shadow:0 4px 5px #f2f0e4cc}.fabric-node>header{display:flex;gap:8px;align-items:center;border-radius:14px 14px 0 0;height:60px;padding:0 16px;color:#727175;font-size:14px;font-weight:600;text-align:center}.fabric-swatch{position:relative;height:230px;margin:0 0 10px;overflow:hidden;border-radius:0;background:#f2f0e4;background-size:cover;background-position:center}.fabric-swatch img{display:block;width:100%;height:100%;object-fit:cover}.swatch-lens{position:absolute;z-index:3;width:120px;height:120px;border:4px solid #fff;border-radius:50%;background-origin:border-box;background-repeat:no-repeat;box-shadow:0 6px 18px #0000004d;transform:translate(-50%,-50%);pointer-events:none}.swatch-zoom{all:unset;box-sizing:border-box;position:absolute;z-index:4;right:12px;bottom:12px;width:40px;height:40px;border-radius:12px;border:1px solid var(--white);background:linear-gradient(155deg,var(--steel-400),var(--graphite-600));box-shadow:inset -4px -4px 2.8px #00000040,0 0 5px var(--linen-100);display:flex;align-items:center;justify-content:center;color:var(--white);cursor:pointer;transition:transform .16s var(--ease),background .12s var(--ease),color .12s var(--ease),box-shadow .16s var(--ease)}.swatch-zoom svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2}.swatch-zoom:hover{transform:scale(1.1);background:var(--hover-solid);color:var(--hover-ink);box-shadow:0 0 0 5px #c7c8cc7f,0 6px 14px -2px #00000059}.swatch-zoom-layer{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#080c148c;padding:24px}.swatch-zoom-dialog{display:grid;width:min(720px,92vw);overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 24px 80px #0b122066}.swatch-zoom-dialog>header{display:flex;align-items:center;gap:12px;padding:18px 20px}.swatch-zoom-dialog>header strong{color:#5a595d;font-size:18px;font-weight:700}.swatch-zoom-dialog>header button{display:grid;width:32px;height:32px;place-items:center;margin-left:auto;border-radius:50%;background:transparent;color:#727175}.swatch-zoom-dialog>header button:hover{background:#f2f0e4}.swatch-zoom-dialog>header button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2}.swatch-zoom-figure{position:relative;background:#f2f0e44d}.swatch-zoom-figure img{display:block;width:100%;max-height:62vh;object-fit:contain}.swatch-zoom-chip{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:#424144c7;color:#fff;font-size:13px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.swatch-zoom-chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2}.swatch-zoom-dialog>p{margin:0;padding:16px 20px 18px;color:#727175;font-size:14px}.fabric-badge{position:absolute;top:6px;right:6px;padding:2px 7px;border-radius:999px;background:#4974eaeb;color:#fff;font-size:10px;letter-spacing:.02em}.fabric-badge.recommended{right:auto;left:6px;background:#2e8c57eb}.pattern-dark{background:repeating-linear-gradient(90deg,#4d4d4d 0,#4d4d4d 1px,#757575 1px,#757575 2px),repeating-linear-gradient(0deg,transparent 0 1px,rgb(255 255 255 / 35%) 1px 2px)}.pattern-light{background:repeating-linear-gradient(105deg,#e9e9e8 0,#e9e9e8 2px,#cfcfcd 2px,#cfcfcd 3px,#f8f8f7 3px,#f8f8f7 5px)}.fabric-node dl{display:grid;grid-template-columns:70px 1fr;gap:4px;margin:0;padding:0 30px 15px;font-size:12px}.fabric-node dt{font-weight:600;color:#2e2d2d}.fabric-node dd{margin:0;color:#2e2d2d;text-align:right;font-weight:300}.node-add-control{position:absolute;z-index:20;top:70%;right:-15px;display:flex;align-items:center}.node-add-control:after{position:absolute;top:50%;left:100%;width:10px;height:54px;content:"";transform:translateY(-50%)}.node-add{position:relative;z-index:2;display:grid;width:30px;height:32px;flex:0 0 30px;place-items:center;border-radius:5px;border:1px solid var(--white);background:linear-gradient(155deg,var(--steel-400),var(--graphite-600));color:var(--white);font-size:21px;box-shadow:inset -4px -4px 2.8px #00000040,0 0 5px var(--linen-100);transition:transform .16s var(--ease),background .12s var(--ease),color .12s var(--ease),box-shadow .16s var(--ease)}.fabric-add-menu{position:absolute;top:50%;left:calc(100% + 8px);width:120px;overflow:hidden;border-radius:12px;background:#fff;opacity:0;transform:translate(8px,-50%);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;visibility:hidden;pointer-events:none}.fabric-add-menu:after{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset -4px -4px 5px #00000040;content:"";pointer-events:none}.node-add-control:hover .fabric-add-menu,.node-add-control:focus-within .fabric-add-menu{opacity:1;transform:translateY(-50%);visibility:visible;pointer-events:auto}.fabric-add-menu button{display:flex;gap:12px;width:100%;min-height:32px;align-items:center;background:#fff;color:#727175;padding:0 10px;text-align:left;opacity:.3}.fabric-add-menu button:not(:disabled):hover{background:#f2f0e4;opacity:1}.fabric-add-menu button:disabled{cursor:not-allowed;opacity:.25}.fabric-add-full{color:#fff;font-size:11px;text-align:center;padding:2px 0}.fabric-add-menu svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.fabric-add-menu span{font-size:14px;font-weight:500}.fabric-node>.vue-flow__handle-right{opacity:0}.vue-flow__node-solid{border:0;background:transparent;box-shadow:none}.solid-color-node{position:relative;display:grid;width:318px;min-width:318px;gap:16px;border:1px solid #e2e7f2;border-radius:15px;background:#fff;padding:20px;box-shadow:0 4px 5px #f2f0e4cc}.solid-color-node header{display:flex;align-items:center;gap:10px;color:#727175}.extension-drag-handle{cursor:grab;-webkit-user-select:none;user-select:none}.extension-drag-handle:active{cursor:grabbing}.solid-color-node header strong{font-size:14px}.solid-color-node header button{display:grid;width:28px;height:28px;place-items:center;margin-left:auto;background:transparent}.solid-color-node header button img{width:26px;height:26px}.solid-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:7px;background:linear-gradient(180deg,#f2f0e44d,#7271754d)}.solid-icon svg{width:22px;height:22px;fill:none;stroke:#727175;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.solid-preview{display:grid;height:210px;place-items:center;background:#d6d6d6;color:#fff;font-size:18px}.solid-color-node label{display:grid;gap:6px;color:#727175;font-size:13px}.solid-color-node input{width:100%;height:42px;border:.5px solid #727175;border-radius:50px;outline:0;background:#fbfaf6;padding:0 14px;color:#727175}.solid-color-node input::placeholder{color:#b4b3b8}.solid-hint{margin:-2px 0 0;color:#e2533a;font-size:12px}.solid-search{min-height:42px}.solid-preview-button{position:absolute;z-index:2;top:50%;right:-18px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--white);background:linear-gradient(155deg,var(--steel-400),var(--graphite-600));color:var(--white);box-shadow:inset -4px -4px 2.8px #00000040,0 0 5px var(--linen-100);transform:translateY(-50%);transition:transform .16s var(--ease),background .12s var(--ease),color .12s var(--ease),box-shadow .16s var(--ease)}.solid-preview-button svg{width:26px;height:26px}.solid-preview-button:disabled{cursor:not-allowed;opacity:.4;box-shadow:none}.solid-color-node>.vue-flow__handle-right{opacity:0}.vue-flow__node-builtin,.vue-flow__node-upload{border:0;background:transparent;box-shadow:none}.extension-node{position:relative;display:grid;width:318px;min-width:318px;gap:14px;border:1px solid #e2e7f2;border-radius:15px;background:#fff;padding:18px;box-shadow:0 4px 5px #f2f0e4cc}.extension-node header{display:flex;align-items:center;gap:10px;color:#727175}.extension-node header strong{font-size:16px}.extension-node header>button{display:grid;width:28px;height:28px;place-items:center;margin-left:auto;background:transparent}.extension-node header>button img{width:26px;height:26px;object-fit:contain}.extension-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;background:linear-gradient(155deg,#f2f0e4b3,#727175b3)}.extension-icon svg{width:21px;height:21px;fill:none;stroke:#727175;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.extension-node label{display:grid;gap:5px;color:#727175;font-size:12px}.extension-node input{width:100%;height:40px;border:.5px solid #727175;border-radius:50px;outline:0;background-color:#fbfaf6;padding:0 14px;color:#727175}.app-select{position:relative;width:100%}.app-select__trigger{display:flex;align-items:center;gap:8px;width:100%;height:var(--select-height, 38px);border:.5px solid #727175;border-radius:50px;outline:0;background:#fbfaf6;padding:0 var(--select-padding, 14px);color:#727175;font-size:var(--select-font-size, 14px);text-align:left;cursor:pointer}.app-select__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select__value.is-placeholder{color:#b4b3b8}.app-select__chevron{flex:none;width:16px;height:16px;transition:transform .16s ease}.app-select.is-open .app-select__trigger{background:#c7c8cc;color:#5a595d}.app-select.is-open .app-select__chevron{transform:rotate(180deg)}.app-select__trigger:focus-visible{background-color:#fff;box-shadow:0 0 0 5px #e4e1da,2px 3px 6px #0000001f}.app-select.is-open .app-select__trigger:focus-visible{background-color:#c7c8cc}.app-select.is-disabled .app-select__trigger{cursor:not-allowed;opacity:.5}.app-select__panel{position:absolute;z-index:40;top:calc(100% + 8px);right:0;left:0;display:grid;max-height:260px;overflow-y:auto;border-radius:12px;background:#fff;padding:6px 0;box-shadow:0 12px 30px #0b12202e;scrollbar-color:#727175 #E4E1DA;scrollbar-width:thin}.app-select__option{border:0;border-radius:0;background:transparent;padding:11px var(--select-option-padding, 22px);color:#3f3e42;font-size:var(--select-font-size, 14px);text-align:left;cursor:pointer}.app-select__option.is-active{background:#f2f0e4}.app-select__option.is-selected{color:#727175;font-weight:600}.app-select__option.is-disabled{color:#b4b3b8;cursor:not-allowed}.app-select__option.is-disabled.is-active{background:transparent}.search-node .app-select{--select-height: 34px;--select-font-size: 12px;--select-padding: 12px;--select-option-padding: 14px}.preview-setting-group .app-select{--select-height: 36px;--select-font-size: 13px;--select-option-padding: 16px}.extension-node .app-select{--select-height: 40px}.library-tools .app-select{--select-height: 34px;width:170px}.search-node input:focus,.extension-node input:focus,.solid-color-node input:focus{background:var(--white);box-shadow:0 0 0 3px #c7c8cca6}.library-tools .search-box:focus-within{background-color:#fff;box-shadow:0 0 0 3px #c7c8cca6}.preview-setting-group input[type=range]:focus-visible,.search-box input:focus{outline:0}.preview-download:hover,.preview-download:focus-visible,.upload-dropzone:hover,.upload-dropzone:focus-visible{box-shadow:0 0 0 5px #e4e1da,0 6px 14px #00000014}.solid-preview-button:not(:disabled):hover,.solid-preview-button:focus-visible{transform:translateY(-50%) scale(1.1);background:var(--hover-solid);color:var(--hover-ink);box-shadow:0 0 0 5px #c7c8cc7f,0 6px 14px -2px #00000059}.node-add:hover,.node-add:focus-visible{transform:scale(1.1);background:var(--hover-solid);color:var(--hover-ink);box-shadow:0 0 0 5px #c7c8cc7f,0 6px 14px -2px #00000059}.extension-node>.vue-flow__handle-right{opacity:0}.extension-submit{min-height:42px}.builtin-pattern-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:320px;overflow-y:scroll;padding-right:5px}@supports (-moz-appearance: none){.builtin-pattern-grid{scrollbar-color:#727175 #E4E1DA;scrollbar-width:thin}}.builtin-pattern-grid::-webkit-scrollbar{width:8px}.builtin-pattern-grid::-webkit-scrollbar-track{border-radius:999px;background:#e4e1da}.builtin-pattern-grid::-webkit-scrollbar-thumb{border-radius:999px;background:#727175}.builtin-pattern-grid::-webkit-scrollbar-thumb:hover{background:#5a595d}.pattern-thumb{position:relative;min-height:122px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:8px;background-color:#d7d7d7;background-size:cover;background-position:center}.pattern-thumb.selected{border-color:#727175}.pattern-thumb img{display:block;width:100%;height:122px;object-fit:cover}.pattern-thumb span{position:absolute;right:0;bottom:0;left:0;padding:3px 6px;background:#131c308c;color:#fff;font-size:10px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pattern-empty{grid-column:1 / -1;padding:24px 0;color:#8290ad;font-size:12px;text-align:center}.pattern-thumb.motion{background:repeating-linear-gradient(105deg,#0f4262 0,#0f4262 8px,#78c7ed 9px,#78c7ed 15px,#e4f7ff 16px,#e4f7ff 22px,#145273 23px,#145273 31px)}.pattern-thumb.botanical{background:radial-gradient(ellipse at 18% 22%,#7b9b72 0 7px,transparent 8px),radial-gradient(ellipse at 70% 65%,#a8bd92 0 9px,transparent 10px),radial-gradient(ellipse at 38% 72%,#eac4a0 0 7px,transparent 8px),#f8f3e7}.pattern-thumb.paint{background:repeating-linear-gradient(160deg,#eff9f7 0,#eff9f7 9px,#068e9e 10px,#068e9e 24px,#f36d33 25px,#f36d33 31px,#11495e 32px,#11495e 47px)}.pattern-thumb.strokes{background:repeating-linear-gradient(68deg,#faf7ed 0,#faf7ed 14px,#5f341b 15px,#5f341b 17px,#faf7ed 18px,#faf7ed 27px,#ed315f 28px,#ed315f 31px)}.pattern-thumb.flowers{background:radial-gradient(circle at 20% 30%,#75298d 0 9px,#f7d041 10px 18px,transparent 19px),radial-gradient(circle at 74% 68%,#f04f26 0 12px,#facd40 13px 21px,transparent 22px),repeating-linear-gradient(115deg,#f2e366 0,#f2e366 22px,#3b853b 23px,#3b853b 27px,#fff9b5 28px,#fff9b5 42px)}.pattern-thumb.blue-knit{background:radial-gradient(circle at 30% 0,#c7ecff 0 8%,transparent 9%),repeating-linear-gradient(100deg,#60a8ed 0,#60a8ed 4px,#86c6fa 4px,#86c6fa 8px)}.upload-dropzone{display:grid;min-height:135px;place-items:center;align-content:center;gap:7px;border:1px dashed #727175;border-radius:10px;background:#fff;color:#8290ad}.upload-dropzone svg{width:30px;height:30px;fill:none;stroke:#8290ad;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.upload-dropzone strong{font-size:13px;font-weight:600}.upload-dropzone span{font-size:11px}.upload-dropzone:hover{background:#fbfaf6;border-style:solid;box-shadow:0 0 0 5px #e4e1da,0 6px 14px #00000014}.upload-preview{display:block;width:100%;height:133px;object-fit:contain}.upload-size-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vue-flow__node-preview{border:0;background:transparent;box-shadow:none}.preview-settings-node{position:relative;display:grid;grid-template-columns:318px 600px;align-items:center;gap:34px;width:952px}.preview-settings-panel{display:grid;min-width:318px;gap:13px;border:1px solid #e1e7f2;border-radius:15px;background:#fff;padding:18px;box-shadow:0 4px 5px #f2f0e4cc}.preview-settings-panel>header{display:flex;align-items:center;gap:9px;color:#727175;cursor:grab;-webkit-user-select:none;user-select:none}.preview-settings-panel>header:active{cursor:grabbing}.preview-settings-panel>header strong{font-size:15px}.preview-settings-panel>header button{display:grid;width:28px;height:28px;place-items:center;margin-left:auto;background:transparent}.preview-settings-panel>header button img{width:26px;height:26px}.preview-title-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:6px;background:linear-gradient(180deg,#f2f0e44d,#7271754d)}.preview-title-icon img{width:20px;height:20px}.preview-settings-panel h3{margin:0;color:#727175;font-size:13px;font-weight:400}.preview-fabric-info{display:grid;gap:9px;padding:4px 0 14px;border-bottom:1px solid #e4e9f4}.preview-info-content{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:start}.preview-info-swatch{width:42px;height:42px;border-radius:6px;background-position:center;background-size:cover}.preview-info-content dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;margin:0;font-size:12px;align-items:baseline}.preview-info-content dt{color:#5a595d;font-weight:600;white-space:nowrap}.preview-info-content dd{min-width:0;margin:0;color:#727175;overflow-wrap:anywhere}.preview-info-content .info-code{white-space:nowrap}.preview-info-content .info-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.preview-setting-group{display:grid;gap:9px}.setting-heading{display:flex;justify-content:space-between;color:#727175;font-size:13px}.setting-heading strong{color:#2e3441}.preview-setting-group input[type=range]{width:100%;height:16px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.preview-setting-group input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,#727175 0 var(--range-fill, 0%),#F3F6FE var(--range-fill, 0%) 100%)}.preview-setting-group input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#f3f6fe}.preview-setting-group input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:#727175}.preview-setting-group input[type=range]::-webkit-slider-thumb{width:16px;height:16px;-moz-appearance:none;appearance:none;-webkit-appearance:none;margin-top:-5px;border-radius:50%;background:#727175;box-shadow:0 1px 3px #00000040}.preview-setting-group input[type=range]::-moz-range-thumb{width:16px;height:16px;border:0;border-radius:50%;background:#727175;box-shadow:0 1px 3px #00000040}.preview-setting-group label{display:grid;gap:5px;color:#727175;font-size:13px}.preview-switch{display:grid;grid-template-columns:1fr auto;align-items:center;color:#30384a!important}.preview-switch input{width:38px;height:21px;accent-color:#727175}.toggle-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.toggle-track{position:relative;flex:0 0 auto;width:52px;height:30px;border-radius:999px;background:#f2f0e4;transition:background .2s ease}.toggle-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #243d7647;transition:transform .2s ease}.toggle-switch.is-on .toggle-track{background:#b4b3b8}.toggle-switch.is-on .toggle-knob{transform:translate(22px)}.toggle-switch input:focus-visible+.toggle-track{box-shadow:0 0 0 3px #4974ea4d}.toggle-switch.is-disabled{opacity:.5;cursor:not-allowed}.toggle-label{color:inherit;font-size:14px}.preview-save,.preview-download{display:flex;min-height:42px;align-items:center;justify-content:center;gap:9px;border-radius:50px;font-weight:600}.preview-save img{width:18px;height:18px;filter:brightness(0) invert(1)}.preview-download{background:#e4e1da;color:#727175;box-shadow:inset 0 -4px 4px #00000040,0 0 10px #f3f1ee}.preview-download:hover,.preview-download:focus-visible{background:#fff}.preview-three-panel{width:600px;height:600px;overflow:hidden;border-radius:20px;background:#fff}.preview-three-panel .three-canvas{width:600px;height:600px;min-height:600px}.preview-three-panel canvas{display:block;width:100%;height:100%}.preview-settings-node>.vue-flow__handle-right{opacity:0}.result-dialog-layer{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#080c1473}.result-toast{display:grid;width:270px;gap:28px;border-radius:15px;background:#fff;padding:34px 20px 18px;box-shadow:0 20px 70px #0b122061;text-align:center}.result-toast-note{margin-top:-20px;color:#727175;font-size:12px;line-height:1.5}.result-ok{min-height:38px}.library-content{position:relative;grid-column:2;min-height:0;overflow:auto;padding:34px max(30px,calc((100% - 1120px)/2));background:#c7c8cc80}.gallery-empty-state{display:grid;min-height:calc(100vh - 137px);place-items:center}.gallery-empty-state p{margin:0;color:#8c94a7;font-size:20px;font-weight:600;letter-spacing:.06em}.library-tools{display:flex;gap:12px;margin-bottom:18px}.library-tools .search-box{width:170px;height:34px;border:.5px solid #727175;border-radius:50px;outline:0;background:#fbfaf6;padding:0 14px;color:#727175}.search-box{display:flex;align-items:center;gap:7px}.search-box svg,.search-box img{width:18px;height:18px;object-fit:contain}.search-box svg{fill:none;stroke:#727175;stroke-width:2}.search-box input{min-width:0;border:0;outline:0;background:transparent;color:#727175}.search-box input::placeholder{color:#b4b3b8}.fabric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.fabric-card{overflow:hidden;border-radius:8px;background:#b4b3b8;padding:12px;color:#fff}.gallery-pattern{position:relative;height:143px;overflow:hidden;background-color:#333}.fabric-card footer{display:flex;align-items:flex-start;justify-content:space-between;height:46px;padding-top:8px;gap:8px}.fabric-card footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fabric-card footer button{background:transparent;color:#fff;font-size:16px}.fabric-card footer button img{display:block;width:18px;height:18px;object-fit:contain}.gallery-pattern.blue-knit{background:radial-gradient(circle at 30% 0,#c7ecff 0 8%,transparent 9%),repeating-linear-gradient(100deg,#60a8ed 0,#60a8ed 4px,#86c6fa 4px,#86c6fa 8px)}.gallery-pattern.strokes{background:repeating-linear-gradient(68deg,#faf7ed 0,#faf7ed 14px,#5f341b 15px,#5f341b 17px,#faf7ed 18px,#faf7ed 27px,#ed315f 28px,#ed315f 31px)}.gallery-pattern.flowers{background:radial-gradient(circle at 20% 30%,#75298d 0 9px,#f7d041 10px 18px,transparent 19px),radial-gradient(circle at 74% 68%,#f04f26 0 12px,#facd40 13px 21px,transparent 22px),repeating-linear-gradient(115deg,#f2e366 0,#f2e366 22px,#3b853b 23px,#3b853b 27px,#fff9b5 28px,#fff9b5 42px)}.gallery-pattern.botanical{background:radial-gradient(ellipse at 18% 22%,#7b9b72 0 7px,transparent 8px),radial-gradient(ellipse at 70% 65%,#a8bd92 0 9px,transparent 10px),radial-gradient(ellipse at 38% 72%,#eac4a0 0 7px,transparent 8px),#f8f3e7}.gallery-pattern.motion{background:repeating-linear-gradient(105deg,#0f4262 0,#0f4262 8px,#78c7ed 9px,#78c7ed 15px,#e4f7ff 16px,#e4f7ff 22px,#145273 23px,#145273 31px);filter:blur(.3px)}.gallery-pattern.paint{background:repeating-linear-gradient(160deg,#eff9f7 0,#eff9f7 9px,#068e9e 10px,#068e9e 24px,#f36d33 25px,#f36d33 31px,#11495e 32px,#11495e 47px)}.gallery-pattern.selected{outline:5px solid #803cff;outline-offset:-5px}.gallery-pattern.loading{display:grid;place-items:center}.spinner{width:32px;height:32px;border:4px dotted white;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.new-fabric-card{display:grid;min-height:205px;place-items:center;align-content:center;gap:8px;border:10px solid #7c7c7c;border-radius:8px;background:#2e2e2e;color:#fff;font-size:16px;font-weight:600}@media (max-width: 900px){.login-shell{padding:0}.login-card{grid-template-columns:1fr;min-height:100vh;border-radius:0}.login-art{display:none}.login-form-side{padding:40px 24px}.fabric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.application-shell{grid-template-columns:68px 1fr}.side-nav{padding:14px 10px}.side-nav button{justify-content:center;margin:0 10px;padding:0}.side-nav .nav-label{display:none}.side-nav .nav-profile{justify-content:center;margin:auto 10px 0;padding:7px}.nav-profile-text{display:none}}@media (max-width: 560px){.workspace-header{padding:0 16px}.fabric-grid{grid-template-columns:1fr}.library-tools{flex-wrap:wrap}.empty-flow{width:90%;text-align:center}}.workspace-header strong{letter-spacing:-.015em}.workspace-header .logout-button{transition:opacity .18s ease,transform .18s ease}.workspace-header .logout-button:hover{opacity:.78;transform:translate(2px)}.fabric-card,.new-fabric-card{transition:transform .2s ease,box-shadow .2s ease}.fabric-card:hover,.new-fabric-card:hover{box-shadow:0 14px 34px #23438a2e}
