:root{color-scheme:light;--brand: #1e6bf5;--brand-hover: #1857d6;--brand-contrast: #ffffff;--accent: #c06a2b;--accent-soft: #f3e2d0;--success: #2f7a4d;--success-soft: #e7f3ec;--warn: #a6702a;--warn-soft: #fbf1de;--danger: #b23b3b;--danger-soft: #f7e5e5;--cut: rgb(255, 0, 255);--bg: #f6f3ec;--surface: #ffffff;--surface-2: #efe9dd;--surface-3: #e6dfce;--text: #211f1b;--text-muted: #625c51;--text-faint: #6f6859;--border: #ddd5c6;--border-strong: #c9bfa8;--ring: #3b3a8666;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-1: 6px;--r-2: 8px;--r-3: 10px;--r-4: 14px;--r-pill: 999px;--sh-1: 0 1px 2px #0000000f;--sh-2: 0 4px 14px #00000012;--sh-3: 0 10px 34px #0000001f;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", ui-monospace, "Roboto Mono", Menlo, monospace;--fs-display: 30px;--fs-h1: 22px;--fs-h2: 17px;--fs-body: 14px;--fs-sm: 13px;--fs-xs: 11px;--lh-tight: 1.15;--lh-body: 1.5;--z-rail: 20;--z-panel: 15;--z-toolbar: 25;--z-floating: 40;--z-overlay: 50;--z-toast: 60;--dv-1: #1e6bf5;--dv-2: #c06a2b;--dv-3: #2f7a4d;--dv-4: #4c7a9c;--dv-grid: #e6dfce;--dv-axis: #938c7e}[data-theme=dark]{color-scheme:dark;--brand: #5a9bff;--brand-hover: #74acff;--brand-contrast: #0d1424;--accent: #e2954f;--accent-soft: #3a2c1d;--success: #6bc48f;--success-soft: #16281d;--warn: #e0b56a;--warn-soft: #2a2113;--danger: #e58a8a;--danger-soft: #2a1717;--bg: #17161a;--surface: #201f25;--surface-2: #1a191e;--surface-3: #2a2932;--text: #ece9e2;--text-muted: #b0a99d;--text-faint: #918a7d;--border: #322f39;--border-strong: #423e4b;--ring: #9a99e688;--sh-1: 0 1px 2px #00000040;--sh-2: 0 4px 14px #00000055;--sh-3: 0 12px 40px #00000077;--dv-1: #5a9bff;--dv-2: #e2954f;--dv-3: #6bc48f;--dv-4: #7fb0d0;--dv-grid: #2a2932;--dv-axis: #726d64}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:var(--lh-tight);margin:0}a{color:var(--brand);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-soft)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-1)}.u-muted{color:var(--text-muted)}.u-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.u-tnum{font-variant-numeric:tabular-nums}.ui-btn{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:8px 14px;font-size:var(--fs-sm);font-weight:550;transition:background .12s,border-color .12s}.ui-btn.block{width:100%;justify-content:center}.ui-btn.s-sm{padding:5px 10px;font-size:var(--fs-xs)}.ui-btn:hover{border-color:var(--border-strong)}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn.v-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.ui-btn.v-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.ui-btn.v-ghost{background:transparent;border-color:transparent}.ui-btn.v-ghost:hover{background:var(--surface-2)}.ui-btn.v-danger{background:var(--danger);border-color:var(--danger);color:#fff}.ui-iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:var(--text-muted)}.ui-iconbtn:hover{background:var(--surface-2);color:var(--text)}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--sh-1)}.ui-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);overflow:hidden}.ui-panel-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.ui-panel-head h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.ui-panel-body{padding:var(--sp-4)}.ui-badge{display:inline-flex;align-items:center;font-size:var(--fs-xs);padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.ui-badge.t-success{background:var(--success-soft);border-color:transparent;color:var(--success)}.ui-badge.t-warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.ui-badge.t-danger{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.ui-badge.t-brand{background:color-mix(in srgb,var(--brand) 12%,transparent);border-color:transparent;color:var(--brand)}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-muted)}.ui-empty-title{font-weight:600;color:var(--text)}.ui-empty-hint{font-size:var(--fs-sm)}.ui-toolbar{display:flex;align-items:center;gap:var(--sp-3)}.ui-field{display:flex;flex-direction:column;gap:4px}.ui-field-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:550}.ui-field-hint{font-size:var(--fs-xs);color:var(--text-faint)}.ui-input,.ui-select{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text)}.ui-numwrap{position:relative;display:block}.ui-num-unit{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:var(--fs-xs);color:var(--text-faint);pointer-events:none}.ui-numwrap .ui-input{padding-right:34px}.ui-slider{display:flex;flex-direction:column;gap:4px}.ui-slider-label{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted)}.ui-slider input[type=range]{width:100%;accent-color:var(--brand)}.ui-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-sm)}.ui-toggle input{position:absolute;opacity:0;width:0;height:0}.ui-toggle-track{width:34px;height:20px;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border);position:relative;transition:background .15s;flex:none}.ui-toggle-thumb{position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform .15s}.ui-toggle input:checked+.ui-toggle-track{background:var(--brand);border-color:var(--brand)}.ui-toggle input:checked+.ui-toggle-track .ui-toggle-thumb{transform:translate(14px)}.ui-segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-2);padding:2px;gap:2px}.ui-segmented button{border:none;background:transparent;border-radius:6px;padding:5px 12px;font-size:var(--fs-sm);color:var(--text-muted)}.ui-segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-1)}.ui-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.ui-tab{border:none;background:transparent;padding:10px 14px;font-size:var(--fs-sm);color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.ui-tab.on{color:var(--text);border-bottom-color:var(--brand);font-weight:600}.ui-tab:hover{color:var(--text)}.ui-rail{display:flex;flex-direction:column;gap:4px;padding:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);width:76px}.ui-rail-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border:1px solid transparent;border-radius:var(--r-2);background:transparent;color:var(--text-muted);font-size:10px;letter-spacing:.02em}.ui-rail-item span{text-transform:uppercase}.ui-rail-item:hover{background:var(--surface-2);color:var(--text)}.ui-rail-item.on{background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 22%,transparent)}.ui-stat{display:flex;gap:var(--sp-3);align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:var(--sp-4)}.ui-stat-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-2);background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);flex:none}.ui-stat-value{font-size:24px;font-weight:700;line-height:1}.ui-stat-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.ui-stat-sub{font-size:var(--fs-xs);color:var(--text-faint)}.ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;display:grid;place-items:center;z-index:var(--z-overlay);padding:var(--sp-4)}.ui-modal{background:var(--surface);color:var(--text);border-radius:var(--r-4);box-shadow:var(--sh-3);width:460px;max-width:94vw;overflow:hidden}.ui-modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4);border-bottom:1px solid var(--border)}.ui-modal-head h3{font-size:var(--fs-h2)}.ui-modal-body{padding:var(--sp-4)}.ui-modal-foot{display:flex;gap:var(--sp-2);justify-content:flex-end;padding:var(--sp-4);border-top:1px solid var(--border)}.ui-section{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);box-shadow:0 1px 2px #0000000a}.ui-section-h{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:10px 12px;font:inherit;font-size:var(--fs-sm);font-weight:650;color:var(--text);text-align:left;background:none;border:none}.ui-section-i{color:var(--brand);flex:none}.ui-section.col>.ui-section-h{cursor:pointer}.ui-section.col>.ui-section-h:hover{color:var(--brand)}.ui-section-sum{margin-left:auto;font-weight:500;color:var(--text-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.ui-section-car{margin-left:var(--sp-2);color:var(--text-faint);transition:transform .15s;flex:none}.ui-section.col:not(.open)>.ui-section-h .ui-section-car{transform:rotate(-90deg)}.ui-section.open>.ui-section-h{border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.ui-section-b{padding:12px;display:flex;flex-direction:column;gap:10px}.ui-section-b .bld-rowbetween .ui-segmented button{padding:4px 10px;font-size:var(--fs-xs)}@media (pointer: coarse){.ui-btn{min-height:44px}.ui-iconbtn{min-width:44px;min-height:44px}.proof-qty button{width:44px;height:44px}.proof-qty input{height:44px}.bld-savestate,.bld-folder-btn,.bld-more-btn{min-height:44px}.bld-more-btn{min-width:44px}.tabbar-item{min-height:48px}}.app-shell{display:flex;flex-direction:column;height:100%}.backup-nudge{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#fef3e2;color:#92400e;border-bottom:1px solid #f5d9b0;font-size:var(--fs-sm);flex:none}.backup-nudge>span{flex:1}.backup-nudge-go{border:1px solid #d98a2b;background:#fff;color:#92400e;font-weight:600;font-size:var(--fs-xs);padding:3px 10px;border-radius:6px;cursor:pointer}.backup-nudge-go:disabled{opacity:.6;cursor:default}.backup-nudge-x{border:0;background:none;color:#92400e;cursor:pointer;font-size:13px;padding:2px 6px}.topbar{display:flex;align-items:center;gap:var(--sp-6);height:56px;padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--border);flex:none}.wordmark{display:inline-flex;align-items:center;color:var(--text)}.logo{display:inline-flex;align-items:center;gap:var(--sp-2)}.logo-word{font-weight:750;font-size:17px;letter-spacing:-.02em}.logo-word-b{color:var(--brand)}.topnav{display:flex;gap:2px}.topnav a{padding:7px 12px;border-radius:var(--r-2);color:var(--text-muted);font-size:var(--fs-sm);font-weight:550}.topnav a:hover{background:var(--surface-2);color:var(--text)}.topnav a.active{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.account{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.app-body{display:flex;flex:1;min-height:0}.sidenav{width:208px;flex:none;padding:var(--sp-3);border-right:1px solid var(--border);background:var(--surface);overflow:auto;display:flex;flex-direction:column;gap:2px}.sidenav-item{display:flex;align-items:center;gap:var(--sp-3);padding:8px 10px;border-radius:var(--r-2);color:var(--text-muted);font-size:var(--fs-sm);font-weight:550}.sidenav-item:hover{background:var(--surface-2);color:var(--text)}.sidenav-item.active{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}.content-main{flex:1;min-width:0;overflow:auto;padding:var(--sp-8)}.content-main>*{max-width:1080px;margin-inline:auto}.work-main{flex:1;min-width:0;overflow:auto;padding:var(--sp-5)}.tool-placeholder{display:grid;place-items:center;min-height:60vh}.work-gate{display:none}.work-gate-card{max-width:380px;text-align:center;padding:var(--sp-6);color:var(--text-muted)}.work-gate-card svg{color:var(--brand)}.work-gate-card h2{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-h1);color:var(--text)}.work-gate-card a{display:inline-block;margin-top:var(--sp-4);font-weight:600}.topbar-menu{display:none;border:0;background:none;color:var(--text);padding:6px;margin-left:-4px;cursor:pointer}.tabbar,.nav-drawer,.nav-drawer-backdrop{display:none}@media (max-width: 820px){.topbar{gap:var(--sp-3);padding:0 var(--sp-3)}.topbar-menu{display:inline-flex}.topnav,.sidenav{display:none}.content-main{padding:var(--sp-4);padding-bottom:calc(56px + env(safe-area-inset-bottom) + var(--sp-4))}.work-main{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.app-body.work--gated .work-main{display:none}.app-body.work--gated .work-gate{display:grid;place-items:center;flex:1}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;border:0;background:none;color:var(--text-muted);font-size:10px;font-weight:600;text-decoration:none;cursor:pointer}.tabbar-item.active{color:var(--brand)}.nav-drawer{display:flex;flex-direction:column;gap:2px;position:fixed;top:0;bottom:0;left:0;width:280px;max-width:82vw;padding:var(--sp-3);background:var(--surface);border-right:1px solid var(--border);transform:translate(-100%);transition:transform .22s ease;z-index:60;overflow:auto}.nav-drawer.open{transform:none}.nav-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:55}.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px var(--sp-3)}.nav-drawer-x{border:0;background:none;color:var(--text-muted);cursor:pointer;padding:6px}.nav-drawer-sep{height:1px;background:var(--border);margin:var(--sp-2) 0}}@media (max-width: 520px){.logo-word,.account{display:none}}.dash{display:flex;flex-direction:column;gap:var(--sp-8)}.dash-greeting h1{font-size:var(--fs-display)}.dash-greeting p{margin:var(--sp-2) 0 0}.dash-section-title{font-size:var(--fs-h2);margin-bottom:var(--sp-4)}.dash-primary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.dash-action{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2);transition:box-shadow .15s,transform .15s}.dash-action:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}.dash-action.dropping{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset;background:color-mix(in srgb,var(--brand) 8%,transparent)}.dash-action.dropping .dash-action-icon{background:var(--brand);color:#fff}.dash-action-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-3);background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);margin-bottom:var(--sp-2)}.dash-action-title{font-size:var(--fs-h2);font-weight:650}.dash-action-desc{font-size:var(--fs-sm)}.dash-action-cta{margin-top:var(--sp-2);color:var(--brand);font-size:var(--fs-sm);font-weight:600;display:inline-flex;align-items:center;gap:4px}.rot270{transform:rotate(-90deg)}.dash-row{display:grid;grid-template-columns:2fr 1.3fr;gap:var(--sp-4);align-items:stretch}.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.dash-chart-card{padding:var(--sp-4);display:flex}.dash-chart{display:flex;flex-direction:column;gap:var(--sp-2);width:100%}.dash-chart-head{display:flex;align-items:center;justify-content:space-between}.dash-chart-svg{width:100%;height:72px}.dash-chart-empty{text-align:center;font-size:var(--fs-xs);margin-top:-8px}.dash-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.dash-tool{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-4);transition:box-shadow .15s}.dash-tool:hover{box-shadow:var(--sh-2)}.dash-tool-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-2);background:var(--surface-2);color:var(--text-muted);flex:none}.dash-tool-title{font-weight:600;font-size:var(--fs-sm)}.dash-tool-desc{font-size:var(--fs-xs)}@media (max-width: 860px){.dash-primary,.dash-tools,.dash-stats,.dash-row{grid-template-columns:1fr}}.builder{display:flex;flex-direction:column;height:100%;gap:var(--sp-3)}.bld-toolbar{display:flex;flex-direction:column;gap:var(--sp-2);flex:none}.bld-toolbar-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.bld-toolbar-spacer{flex:1}.bld-name{min-width:120px;max-width:240px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);font-weight:600}.bld-dirty{font-size:var(--fs-xs);color:var(--text-faint)}.bld-folder-wrap{position:relative;display:inline-flex}.bld-folder-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text-muted);cursor:pointer;padding:7px 10px;font:inherit;font-size:var(--fs-sm)}.bld-folder-btn:hover{color:var(--text);border-color:var(--text-muted)}.bld-folder-wrap .bld-folder-menu{bottom:auto;top:calc(100% + 6px);right:auto;left:0;min-width:220px;padding:6px;box-shadow:var(--sh-3)}.bld-menu-head{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);padding:4px 10px 6px}.bld-folder-menu .fp-menu{min-width:0;max-height:260px;overflow:auto}.bld-dirty.on{color:var(--warn)}.bld-oversize{color:var(--danger);font-weight:700;text-shadow:0 0 7px color-mix(in srgb,var(--danger) 60%,transparent)}.ui-btn.bld-save.is-saved{background:var(--success);border-color:var(--success);color:#fff}.ui-btn.bld-save.is-saved:hover{background:color-mix(in srgb,var(--success) 88%,#000)}.ui-btn.bld-save.is-dirty{background:var(--danger);border-color:var(--danger);color:#fff}.ui-btn.bld-save.is-dirty:hover{background:color-mix(in srgb,var(--danger) 88%,#000)}.bld-mat-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);padding:4px 12px 4px 6px;font-size:var(--fs-sm);color:var(--text);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-mat-chip .dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--border);flex:none}.bld-process-toolbar{flex:none}.bld-process-toolbar .ui-segmented{padding:3px;background:var(--surface-2);border:1px solid var(--border)}.bld-process-toolbar .ui-segmented button{padding:5px 14px;font-size:var(--fs-sm);font-weight:600;color:var(--text-muted)}.bld-process-toolbar .ui-segmented button.on{background:var(--brand);color:var(--brand-contrast);box-shadow:none}.bld-process-note{margin:0 0 var(--sp-2)}.bld-price{position:relative;display:flex;flex-direction:column;align-items:flex-end;padding:4px 12px;border-radius:var(--r-2);cursor:pointer}.bld-price:hover{background:var(--surface-2)}.bld-price-ea{font-size:17px;font-weight:750}.bld-price-ea small{font-weight:500;color:var(--text-muted)}.bld-price-total{font-size:var(--fs-xs)}.bld-price-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:var(--z-floating);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--sh-3);padding:var(--sp-3);width:260px;max-width:calc(100vw - 24px);cursor:default}.bld-qty{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.bld-qty input{width:64px;padding:7px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface)}.bld-toolbar-actions{margin-left:auto;display:flex;gap:var(--sp-2)}.bld-export{position:relative}.bld-export-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-floating);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--sh-3);padding:6px;width:236px;display:flex;flex-direction:column;gap:1px}.bld-export-menu button{text-align:left;border:none;background:none;padding:8px 10px;border-radius:var(--r-1);font-size:var(--fs-sm);color:var(--text)}.bld-export-menu button:hover{background:var(--surface-2)}.bld-export-star{color:var(--brand)!important;font-weight:600}.bld-export-star:hover{background:color-mix(in srgb,var(--brand) 12%,transparent)!important}.bld-export-sep{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);padding:8px 10px 2px}.bld-tb-top,.bld-tb-bottom{align-items:center}.bld-tb-doc{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.bld-title{font-size:16px;font-weight:700;border:1px solid transparent;background:none;padding:6px 8px;border-radius:var(--r-2);min-width:150px;max-width:280px;color:var(--text)}.bld-title:hover{background:var(--surface-2)}.bld-title:focus{background:var(--surface);border-color:var(--border);outline:none}.bld-savestate{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);padding:5px 12px;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--success);cursor:pointer;white-space:nowrap}.bld-savestate .dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none}.bld-savestate.dirty{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent);background:var(--warn-soft)}.bld-savestate.dirty .dot{background:var(--warn)}.bld-more-wrap{position:relative}.bld-more-btn{width:30px;height:30px;border:none;background:none;border-radius:var(--r-2);color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}.bld-more-btn:hover{background:var(--surface-2);color:var(--text)}.bld-more-menu{position:absolute;left:0;top:calc(100% + 4px);z-index:var(--z-floating);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--sh-3);padding:6px;width:180px;display:flex;flex-direction:column;gap:1px}.bld-more-menu button{text-align:left;border:none;background:none;padding:8px 10px;border-radius:var(--r-1);font:inherit;font-size:var(--fs-sm);color:var(--text);cursor:pointer}.bld-more-menu button:hover{background:var(--surface-2)}.bld-tb-mode,.bld-tb-view{display:flex;align-items:center;gap:var(--sp-2)}.bld-viewgrp{display:inline-flex;align-items:center;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-2);padding:2px}.bld-viewgrp .ui-iconbtn{width:30px;height:30px}.bld-viewgrp.bld-zoom{border:1px solid var(--border)}.bld-body{display:grid;grid-template-columns:76px 340px 1fr 260px;gap:var(--sp-3);flex:1;min-height:0}.bld-panel{min-height:0}.bld-panel .ui-panel{height:100%;display:flex;flex-direction:column}.bld-panel .ui-panel-body{flex:1;min-height:0;overflow:auto}.bld-panel .ui-panel-body>.ui-segmented,.bld-panel .bld-stack>.ui-segmented:first-child{display:flex}.bld-panel .ui-panel-body>.ui-segmented>button,.bld-panel .bld-stack>.ui-segmented:first-child>button{flex:1}.bld-panel .ui-tabs+.ui-segmented{margin-top:var(--sp-3)}.bld-dockhead,.bld-docknav{display:none}.bld-body--cf{grid-template-columns:1fr 380px;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"canvas dockhead" "canvas dockbody" "canvas docknav"}.bld-body--cf>.ui-rail{display:none}.bld-body--cf>.bld-dockhead{grid-area:dockhead;display:flex;flex-direction:column;gap:var(--sp-2)}.bld-body--cf>.bld-panel{grid-area:dockbody;min-height:0}.bld-body--cf>.bld-right{grid-area:dockbody;min-height:0;overflow:auto}.bld-body--cf>.bld-canvas{grid-area:canvas}.bld-body--cf>.bld-docknav{grid-area:docknav;display:flex;gap:var(--sp-2)}.bld-body--cf>.bld-right .ui-panel{height:auto}.bld-dockhead .ui-segmented{display:flex}.bld-dockhead .ui-segmented>button{flex:1}.bld-steps{display:flex;gap:var(--sp-1)}.bld-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:var(--text-faint);font-size:10px;text-align:center;padding:2px 0;line-height:1.1}.bld-step-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums}.bld-step.on{color:var(--text);font-weight:650}.bld-step.on .bld-step-num{background:var(--brand);color:var(--brand-contrast);border-color:var(--brand)}.bld-step.done .bld-step-num{background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}.bld-step.is-optional{opacity:.45}.bld-review{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.bld-canvas-dropwrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:22px 0 0 22px;pointer-events:none}.bld-canvas-drop{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;padding:26px 34px;border:2px dashed var(--border-strong);border-radius:var(--r-3);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text-muted);font:inherit;text-align:center}.bld-canvas-drop:hover{border-color:var(--brand);color:var(--brand)}.bld-canvas-drop strong{color:var(--text);font-size:var(--fs-md, 15px)}.bld-canvas-drop span{font-size:var(--fs-xs)}.bld-tools-disabled{opacity:.45;pointer-events:none;filter:grayscale(.3)}.bld-sizeout{border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface-2);overflow:hidden}.bld-sizeout-row{display:flex;align-items:baseline;gap:8px;padding:8px 10px;font-size:var(--fs-sm);flex-wrap:wrap}.bld-sizeout-row+.bld-sizeout-row{border-top:1px solid var(--border)}.bld-sizeout-row .lbl{font-size:var(--fs-xs);color:var(--text-faint);font-weight:600;width:78px;flex:none}.bld-sizeout-row .note{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.bld-rev-prev{height:168px;border-radius:var(--r-2);background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;overflow:hidden}.bld-rev-prev img{max-width:92%;max-height:92%;object-fit:contain}.bld-rev-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.bld-rev-row+.bld-rev-row{border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);padding-top:8px;margin-top:2px}.bld-rev-row .k{color:var(--text-faint);font-size:var(--fs-xs);width:62px;flex:none}.bld-rev-row .v{font-weight:600}.bld-rev-row .edit{margin-left:auto;border:none;background:none;color:var(--brand);font:inherit;font-size:var(--fs-xs);font-weight:600;cursor:pointer}.bld-rev-exports{display:grid;grid-template-columns:1fr 1fr;gap:6px}.bld-rev-exports button{text-align:left;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:8px 10px;font:inherit;font-size:var(--fs-xs);color:var(--text);cursor:pointer}.bld-rev-exports button:hover{border-color:var(--brand);color:var(--brand)}.bld-rev-exports .bld-export-star{grid-column:1 / -1;color:var(--brand);font-weight:600;border-color:color-mix(in srgb,var(--brand) 40%,transparent)}.bld-handoffs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.bld-handoffs button{display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:10px 6px;font:inherit;font-size:var(--fs-xs);font-weight:600;color:var(--text);cursor:pointer}.bld-handoffs button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.bld-handoffs button:disabled{opacity:.45;cursor:default}.bld-canvas{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-3);position:relative;overflow:hidden}.patch-canvas-host{position:absolute;top:8px;right:8px;bottom:8px;left:8px;display:grid;grid-template-columns:22px auto;grid-template-rows:22px auto;line-height:0}.bld-canvas-hint{position:absolute;left:0;right:0;bottom:4px;text-align:center;z-index:5}.ruler-corner{background:var(--surface-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.ruler-top{border-bottom:1px solid var(--border)}.ruler-left{border-right:1px solid var(--border)}.patch-canvas-wrap{position:relative;line-height:0;min-width:0;min-height:0;overflow:hidden}.dim-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.patch-canvas{border-bottom-right-radius:var(--r-2);box-shadow:var(--sh-2)}.bld-zoom{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-2)}.bld-zoom .ui-iconbtn{width:28px;height:28px}.bld-zoom-val{border:none;background:none;font-size:var(--fs-xs);color:var(--text-muted);min-width:44px;font-variant-numeric:tabular-nums}.bld-zoom-val:hover{color:var(--text)}.bld-edit-float{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:20;display:flex;justify-content:center}.bld-cutline-btn.on{color:#d600d6;background:color-mix(in srgb,rgb(255,0,255) 12%,transparent)}.bld-canvas-hint{font-size:var(--fs-xs);color:var(--text-muted)}.bld-processing{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--surface-2) 55%,transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.bld-processing-card{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--r-3);background:var(--surface);border:1px solid var(--border);box-shadow:var(--sh-2, 0 8px 30px rgb(0 0 0 / .15));font-size:var(--fs-sm);color:var(--text)}.bld-spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--border-strong);border-top-color:var(--brand);animation:bld-spin .7s linear infinite}@keyframes bld-spin{to{transform:rotate(360deg)}}.bld-export-msg{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:5px 14px;font-size:var(--fs-sm);color:var(--brand);box-shadow:var(--sh-2)}.bld-right{display:flex;flex-direction:column;gap:var(--sp-3);min-height:0;overflow:auto}.bld-stack{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-3)}.bld-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:var(--sp-2) 0 0}.bld-fieldlabel{font-size:var(--fs-xs);color:var(--text-muted);font-weight:550}.bld-process{display:flex;flex-direction:column;gap:var(--sp-2);padding-bottom:var(--sp-3);margin-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.bld-process .bld-hint{margin-top:0}.bld-readout{font-size:var(--fs-xs);color:var(--text-muted)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.row2.alignEnd{grid-template-columns:1fr 1fr auto;align-items:end}.bld-chips{display:flex;flex-wrap:wrap;gap:6px}.bld-chips button{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);padding:5px 11px;font-size:var(--fs-xs);color:var(--text)}.bld-chips button:hover{border-color:var(--brand);color:var(--brand)}.bld-nudge{font-size:var(--fs-sm);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);color:var(--warn);border-radius:var(--r-2);padding:8px 10px}.bld-nudge.ok{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 30%,transparent);color:var(--success)}.bld-color{display:flex;align-items:center;justify-content:space-between}.bld-color input{width:44px;height:30px;border:1px solid var(--border);border-radius:var(--r-2);padding:0;background:none}.bld-mat-note{font-size:var(--fs-sm);color:var(--text-muted)}.bld-fontpicker{display:flex;flex-direction:column;gap:4px}.bld-fontlist{max-height:172px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);outline:none}.bld-fontlist:focus-visible{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 30%,transparent)}.bld-fontrow{display:flex;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.bld-fontrow:last-child{border-bottom:none}.bld-fontrow:hover{background:var(--surface-2)}.bld-fontrow.on{background:color-mix(in srgb,var(--brand) 16%,transparent)}.bld-fontitem{flex:1;min-width:0;text-align:left;border:none;background:none;color:var(--text);padding:7px 10px;font-size:15px;line-height:1.15;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-fontrow.on .bld-fontitem{color:var(--brand)}.bld-fontstar{flex:none;border:none;background:none;cursor:pointer;padding:4px 9px;font-size:14px;line-height:1;color:var(--text-faint);opacity:0}.bld-fontrow:hover .bld-fontstar,.bld-fontstar.on{opacity:1}.bld-fontstar.on,.bld-fontstar:hover{color:#e8a92b}.bld-fontgroup{position:sticky;top:0;z-index:1;padding:5px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border)}.bld-fontempty{padding:10px;font-size:var(--fs-xs);color:var(--text-faint)}.bld-mat-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--r-2);padding:6px 10px;background:var(--surface-2);color:var(--text-faint);margin-bottom:var(--sp-2)}.bld-mat-search input{flex:1;min-width:0;border:none;background:none;color:var(--text);font:inherit;outline:none}.bld-mat-search-x{border:none;background:none;color:var(--text-faint);cursor:pointer;display:inline-flex;padding:0}.bld-mat-search-x:hover{color:var(--text)}.bld-swatches{display:flex;flex-direction:column;gap:var(--sp-3);max-height:calc(100vh - 300px);overflow:auto}.bld-swatch-row{display:grid;grid-template-columns:repeat(auto-fill,30px);gap:6px;margin-top:4px}.bld-swatch{position:relative;width:30px;height:30px;border-radius:var(--r-2);border:1px solid var(--border);overflow:hidden;padding:0}.bld-swatch img{width:100%;height:100%;object-fit:cover;display:block}.bld-swatch.sel{outline:2px solid var(--accent);outline-offset:1px}.bld-layer-actions{display:flex;gap:2px}.bld-layers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bld-layers li{font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--r-2);padding:6px 8px;display:flex;gap:6px;align-items:center;cursor:pointer;background:var(--surface)}.bld-layers li:hover{border-color:var(--brand)}.bld-layers li.sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--surface-2)}.bld-layers li.hidden{opacity:.5}.bld-layers li.locked{background:var(--surface-2)}.bld-layer-grip{color:var(--text-faint);cursor:grab;font-size:11px;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.bld-layer-type{font-size:10px;text-transform:uppercase;background:var(--surface-2);color:var(--text-faint);border-radius:4px;padding:1px 6px;flex:none}.bld-layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-layer-rename{flex:1;min-width:0;border:1px solid var(--brand);border-radius:var(--r-1);padding:2px 6px;font:inherit;background:var(--surface);color:var(--text);outline:none}.bld-layer-btn{flex:none;border:none;background:none;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:var(--r-1);display:inline-flex}.bld-layer-btn:hover{color:var(--text);background:var(--surface-2)}.bld-properties{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.bld-align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-1)}.bld-align-grid .ui-iconbtn{width:100%}.bld-prop-head{display:flex;justify-content:space-between;align-items:center}.bld-brow{display:flex;justify-content:space-between;font-size:var(--fs-sm);padding:3px 0}.bld-brow.strong{font-weight:700;border-top:1px solid var(--border);margin-top:4px;padding-top:7px}.bld-cardgrid{display:grid;gap:var(--sp-2)}.bld-cardgrid.c3{grid-template-columns:repeat(3,1fr)}.bld-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text-muted)}.bld-card:hover{border-color:var(--border-strong);color:var(--text)}.bld-card.sel{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand)}.bld-card svg{color:var(--text)}.bld-card.sel svg{color:var(--brand)}.bld-card-label{font-size:var(--fs-xs);font-weight:600;text-align:center;line-height:1.1;color:var(--text)}.bld-card-label.sm{font-weight:500}.bld-card-sub{font-size:9px;color:var(--text-faint)}.bld-rowbetween{display:flex;align-items:center;justify-content:space-between}.bld-help{color:var(--text-muted);cursor:help;display:inline-flex;flex:none}.bld-help:hover{color:var(--brand)}.bld-diecut{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);border:1px dashed var(--border-strong);border-radius:var(--r-2);background:color-mix(in srgb,var(--brand) 4%,transparent)}.bld-diecut.sel{border-style:solid;border-color:var(--brand)}.bld-diecut.busy{opacity:.65}.bld-diecut-trace{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--brand);border-radius:var(--r-2);background:var(--brand);color:var(--brand-contrast);cursor:pointer;padding:10px 12px;font:inherit;font-weight:650;font-size:var(--fs-sm)}.bld-diecut-trace:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.bld-diecut-scissors{font-size:15px;line-height:1}.bld-diecut-side{display:flex;flex-flow:row wrap;align-items:center;justify-content:center;gap:var(--sp-2) 18px;padding:0 4px}.bld-diecut-opt{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;white-space:nowrap}.bld-diecut-opt input{accent-color:var(--brand)}.bld-diecut-traced{font-size:var(--fs-xs);color:var(--success);font-weight:600;white-space:nowrap;flex-basis:100%;text-align:center}.bld-adjust{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border)}.bld-linkbtn{border:none;background:none;color:var(--brand);font-size:var(--fs-xs);font-weight:600;cursor:pointer;padding:0}.bld-linkbtn:hover{text-decoration:underline}.bld-savedsizes{display:flex;flex-wrap:wrap;gap:6px}.bld-savedsize{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-2);overflow:hidden;background:var(--surface);font-size:var(--fs-xs)}.bld-savedsize.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.bld-savedsize-star{border:0;background:none;color:var(--amber, #d97706);cursor:pointer;padding:3px 2px 3px 6px;font-size:12px}.bld-savedsize-lbl{border:0;background:none;color:var(--text);cursor:pointer;padding:3px 4px;font:inherit}.bld-savedsize-x{border:0;background:none;color:var(--text-muted);cursor:pointer;padding:3px 6px 3px 2px;font-size:10px}.bld-savedsize-x:hover{color:#b91c1c}.bld-savesize-row{display:flex;gap:6px;align-items:center}.bld-savesize-row .ui-input{flex:1;min-width:0}.bld-hint-inline{font-weight:400;text-transform:none;color:var(--text-faint)}.bld-chips button.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand)}.bld-shapecat,.bld-matcat{border-top:1px solid var(--border)}.bld-matcat-head{display:flex;align-items:center;justify-content:space-between;padding:8px 2px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.bld-shapecat summary,.bld-matcat summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:8px 2px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.bld-shapecat summary::-webkit-details-marker,.bld-matcat summary::-webkit-details-marker{display:none}.bld-shapecat summary:after,.bld-matcat summary:after{content:"⌄";color:var(--text-faint)}.bld-shapecat[open] summary:after,.bld-matcat[open] summary:after{transform:rotate(180deg)}.bld-shapecat>.bld-cardgrid{padding-bottom:var(--sp-2)}.bld-count{background:var(--surface-2);color:var(--text-muted);border-radius:var(--r-pill);padding:0 7px;font-size:10px}.bld-mat-card{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--r-2);padding:8px 12px}.bld-mat-name{font-weight:600;font-size:var(--fs-sm)}.bld-mat-change{width:100%;cursor:pointer;text-align:left}.bld-mat-change:hover{border-color:var(--brand)}.bld-mat-change-cta{color:var(--brand);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.bld-mat-badge{font-size:10px;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-pill);padding:2px 8px}.bld-mswatch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);padding-bottom:var(--sp-2)}.bld-mswatch{display:flex;flex-direction:column;gap:2px;padding:0 0 6px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);overflow:hidden;text-align:left}.bld-mswatch:hover{border-color:var(--border-strong)}.bld-mswatch.sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.bld-mswatch-thumb{position:relative;display:block;height:46px;background-size:cover}.bld-mswatch-thumb img{width:100%;height:100%;object-fit:cover;display:block}.bld-mswatch-dot{position:absolute;right:4px;bottom:4px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1.5px #fff}.bld-mswatch-star{position:absolute;left:3px;top:2px;font-size:13px;line-height:1;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.6);cursor:pointer;opacity:0;transition:opacity .1s}.bld-mswatch:hover .bld-mswatch-star,.bld-mswatch-star.on{opacity:1}.bld-mswatch-star.on{color:#f5c518}.bld-mswatch-name{font-size:10px;font-weight:600;padding:3px 5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.bld-mswatch-price{font-size:9px;color:var(--text-muted);padding:0 5px}.bld-mswatch-engrave{font-size:9px;color:var(--text-faint);padding:0 5px}.ui-panel-titles h3{font-size:var(--fs-h2);text-transform:none;letter-spacing:0;color:var(--text)}.ui-panel-sub{font-size:var(--fs-xs);color:var(--text-muted);margin:2px 0 0}.bld-dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--sp-6) var(--sp-4);border:1.5px dashed var(--border-strong);border-radius:var(--r-3);background:var(--surface-2);color:var(--text-muted);text-align:center}.bld-dropzone:hover{border-color:var(--brand);color:var(--brand)}.bld-dropzone strong{color:var(--text);font-size:var(--fs-sm)}.bld-dropzone span{font-size:var(--fs-xs)}.bld-dropveil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--brand) 12%,transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:none}.bld-dropveil-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-8);border:2px dashed var(--brand);border-radius:var(--r-3);background:var(--surface);color:var(--brand);box-shadow:var(--shadow-2, 0 8px 30px rgb(0 0 0 / .15))}.bld-dropveil-card strong{color:var(--text);font-size:var(--fs-md, var(--fs-sm))}.bld-bius{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.bld-bius button{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-2);padding:7px;font-size:var(--fs-body);color:var(--text)}.bld-bius button.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand)}.bld-colorrow{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.bld-chip-color{width:22px;height:22px;border-radius:var(--r-1);border:1px solid var(--border)}.bld-chip-color.sel{outline:2px solid var(--brand);outline-offset:1px}.bld-colorrow input[type=color]{width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:var(--r-1);background:none}textarea.ui-input{resize:vertical;min-height:44px}.bld-colorlist{display:flex;flex-direction:column;gap:6px}.bld-colorrow2{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center;font-size:var(--fs-xs)}.bld-color-sw{width:20px;height:20px;border-radius:var(--r-1);border:1px solid var(--border)}.bld-colorrow2 .ui-select{padding:4px 8px;width:auto}.bld-layerpick{display:flex;gap:4px;align-items:center}.bld-layersw{width:22px;height:22px;border-radius:var(--r-1);border:1px solid var(--border);cursor:pointer;padding:0;display:grid;place-items:center;font-size:11px;color:var(--text-muted)}.bld-layersw.on{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}.bld-layerhide{background:var(--surface-2)}.bld-savedlist{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.bld-savedlist li{display:block}.bld-saveditem{width:100%;display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:var(--r-2);padding:8px 10px;color:var(--text-muted);background:var(--surface);cursor:pointer;font:inherit;text-align:left}.bld-saveditem:hover{border-color:var(--brand);background:var(--surface-2)}.bld-savedthumb{width:32px;height:32px;object-fit:contain;background:var(--surface-2);border-radius:6px;flex:none}.bld-saveditem>div{flex:1;min-width:0}.bld-savedopen{font-size:var(--fs-xs);color:var(--brand);font-weight:600;flex:none}.bld-savedlist strong{color:var(--text);font-size:var(--fs-sm);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bld-resume{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 1000);background:#0006;display:flex;align-items:center;justify-content:center;padding:20px}.bld-resume-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--sh-3);padding:var(--sp-4);width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--sp-2)}.bld-resume-card h3{margin:0;font-size:var(--fs-lg)}.bld-resume-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-2);aspect-ratio:3 / 2;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:var(--sp-1) 0}.bld-resume-preview img{max-width:100%;max-height:100%;object-fit:contain}.bld-resume-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-1)}@media (max-width: 1120px){.bld-body:not(.bld-body--cf){grid-template-columns:76px 300px 1fr}.bld-body:not(.bld-body--cf) .bld-right{display:none}}@media (max-width: 820px){.builder{height:auto}.bld-body--cf{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;grid-template-areas:"canvas" "dockhead" "dockbody" "docknav";flex:none;min-height:0}.bld-body--cf>.bld-canvas{height:56vh;min-height:360px}.bld-body--cf>.bld-panel .ui-panel,.bld-body--cf>.bld-right .ui-panel{height:auto}.bld-body--cf>.bld-panel .ui-panel-body{overflow:visible}.bld-body--cf>.bld-right{display:block;overflow:visible}.bld-toolbar{gap:var(--sp-2)}.bld-toolbar-row{flex-wrap:wrap;gap:8px;align-items:center}.bld-toolbar-spacer{display:none}.bld-tb-doc{flex:1 1 100%;min-width:0}.bld-title{flex:1;min-width:0}.bld-process-toolbar{flex:0 1 auto}.bld-process-toolbar .ui-segmented{display:flex}.bld-process-toolbar .ui-segmented button{white-space:nowrap}.bld-price{flex:0 1 auto;align-items:flex-start;padding-left:0}.bld-qty{flex:0 0 auto;margin-left:auto}.bld-tb-mode{display:none}.bld-tb-view{flex:1 1 100%;justify-content:flex-start}.bld-tb-view .bld-zoom{display:none}.bld-tb-view .bld-viewgrp:last-child button:last-child{display:none}.bld-steps{overflow-x:auto;scrollbar-width:none}.bld-steps::-webkit-scrollbar{display:none}}.laser-page{max-width:1100px;margin:0 auto;padding:var(--sp-4, 20px);display:flex;flex-direction:column;gap:var(--sp-3, 14px)}.laser-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3, 14px);flex-wrap:wrap}.laser-head h1{margin:0;font-size:var(--fs-xl, 22px)}.laser-sub{margin:2px 0 0;color:var(--text-muted);font-size:var(--fs-sm, 13px)}.laser-machine-pick{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs, 11px);color:var(--text-muted);min-width:240px}.laser-disclaimer{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--warn, #b8860b) 12%,transparent);border:1px solid color-mix(in srgb,var(--warn, #b8860b) 35%,transparent);color:var(--text);border-radius:var(--r-2, 8px);padding:8px 12px;font-size:var(--fs-sm, 13px)}.laser-filters{display:flex;align-items:flex-end;gap:var(--sp-2, 10px);flex-wrap:wrap}.laser-filters label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs, 11px);color:var(--text-muted)}.laser-filters input,.laser-search input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font:inherit}.laser-search{flex:1;min-width:180px}.laser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-3, 14px)}.laser-card{display:flex;flex-direction:column}.laser-src{font-size:var(--fs-xs, 11px);color:var(--text-muted);margin-bottom:6px}.laser-set{display:flex;align-items:baseline;gap:8px;padding:3px 0;flex-wrap:wrap}.laser-set-k{font-size:var(--fs-xs, 11px);color:var(--text-muted);width:54px;flex:none}.laser-set-raw{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--fs-sm, 13px);color:var(--text);background:var(--surface-2);padding:2px 6px;border-radius:6px}.laser-set-scaled{font-size:var(--fs-xs, 11px);color:var(--brand);font-weight:600}.laser-tips{font-size:var(--fs-sm, 13px);color:var(--text-muted);margin:8px 0 0}.laser-card-foot{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.laser-iters{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:5px;font-size:var(--fs-sm, 13px)}.laser-iters li{color:var(--text)}.laser-iter-at{color:var(--text-muted);font-size:var(--fs-xs, 11px);margin-right:6px}.laser-iter-rate{color:#d4af37;margin-right:6px}.laser-edit,.laser-iterform{display:flex;flex-direction:column;gap:6px;margin:4px 0}.laser-edit label,.laser-iterform label,.laser-machine-add label{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-xs, 11px);color:var(--text-muted)}.laser-edit input,.laser-iterform input,.laser-machine-add input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font:inherit}.laser-machines{display:flex;flex-direction:column;gap:var(--sp-3, 14px)}.laser-machine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.laser-machine-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface)}.laser-machine-add{display:flex;align-items:flex-end;gap:var(--sp-2, 10px);flex-wrap:wrap;padding:12px;border:1px dashed var(--border);border-radius:var(--r-2, 8px)}.laser-export-recipe{border:1px solid var(--border);border-radius:var(--r-2, 8px);padding:8px 10px;background:var(--surface-2);font-size:var(--fs-sm, 13px);display:flex;flex-direction:column;gap:4px}.laser-export-recipe .laser-set-raw{font-size:var(--fs-xs, 11px)}.laser-export-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.laser-lib{display:flex;flex-direction:column;gap:10px}.laser-lib-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.laser-lib-search{flex:1;min-width:200px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font:inherit}.laser-lib-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-2, 8px);overflow:hidden}.laser-lib-row{display:grid;grid-template-columns:2fr 1.6fr 1fr .8fr .7fr .8fr 1fr .9fr;gap:8px;align-items:center;padding:7px 10px;text-align:left;font-size:var(--fs-sm, 13px);border:0;background:none;color:inherit;width:100%;cursor:pointer}.laser-lib-head{font-size:var(--fs-xs, 11px);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:var(--surface-2);cursor:default;position:sticky;top:0}.laser-lib-item{border-top:1px solid var(--border)}.laser-lib-item:first-child{border-top:0}.laser-lib-item.open,.laser-lib-row:hover{background:var(--surface-2)}.laser-lib-mat{display:flex;flex-direction:column;min-width:0}.laser-lib-mat small{color:var(--text-muted);font-size:var(--fs-xs, 11px)}.laser-lib-detail{padding:4px 12px 12px;display:flex;flex-direction:column;gap:8px}.laser-lib-prov{font-size:var(--fs-xs, 11px);color:var(--text-muted)}.laser-lib-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.laser-lib-machines{padding-bottom:2px}.laser-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:var(--fs-xs, 12px);font-weight:600;padding:0;overflow:hidden;cursor:pointer}button.laser-chip{padding:5px 12px}.laser-chip.on{background:var(--text);color:var(--surface);border-color:var(--text)}.laser-chip small{opacity:.6;font-weight:500;margin-left:4px}.laser-chip-star{border:0;background:none;cursor:pointer;padding:5px 2px 5px 9px;color:var(--text-muted);font-size:13px}.laser-chip.fav .laser-chip-star{color:#e5a300}.laser-chip.on .laser-chip-star{color:inherit}.laser-chip-lbl{border:0;background:none;cursor:pointer;color:inherit;font:inherit;padding:5px 12px 5px 4px}.laser-fav-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0}.laser-fav-bar>.laser-sub:first-child{font-weight:600;margin-right:4px}.laser-fav-hint{font-weight:400}.laser-fav-browse{margin-left:auto}.laser-lib-mhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:4px 0 2px}.laser-lib-mhead h2{margin:0;font-size:1.25rem}.laser-lib-mhead span{font-size:var(--fs-sm, 13px);color:var(--text-muted)}.cal-page{max-width:820px;margin:0 auto;padding:var(--sp-4, 20px);display:flex;flex-direction:column;gap:var(--sp-3, 14px)}.cal-page h1{margin:0;font-size:var(--fs-xl, 22px)}.cal-sub{margin:2px 0 0;color:var(--text-muted);font-size:var(--fs-sm, 13px)}.cal-row{display:flex;align-items:flex-end;gap:var(--sp-2, 10px);flex-wrap:wrap;margin:8px 0}.cal-row label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs, 11px);color:var(--text-muted)}.cal-row input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font:inherit}.cal-name{flex:1;min-width:180px}.cal-readout{padding:6px 8px;border:1px dashed var(--border);border-radius:var(--r-2, 8px);background:var(--surface-2);color:var(--text-muted);font:inherit;font-variant-numeric:tabular-nums;min-width:90px}.cal-eq{font-size:var(--fs-xs, 11px);color:var(--text-muted);font-variant-numeric:tabular-nums}.cal-preview{font-size:var(--fs-sm, 13px);color:var(--text);padding-bottom:6px}.cal-preview b{color:var(--brand)}.cal-msg,.cal-hint{font-size:var(--fs-sm, 13px);color:var(--text-muted)}.cal-steps{margin:8px 0;padding-left:20px;font-size:var(--fs-sm, 13px);color:var(--text);display:flex;flex-direction:column;gap:4px}.cal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cal-list li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface)}.cal-list-main{display:flex;align-items:center;gap:8px}.cal-list-meta{grid-column:1;font-size:var(--fs-xs, 11px);color:var(--text-muted)}.cal-list-actions{grid-row:1 / span 2;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.cal-edit{grid-column:1;display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}.cal-edit label{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-xs, 11px);color:var(--text-muted)}.cal-edit input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font:inherit}.cal-nudge{display:flex;align-items:center;gap:4px}.cal-nudge button{width:26px;height:30px;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);color:var(--text);font-size:16px;cursor:pointer}.cal-nudge button:hover{background:var(--surface-2)}.cal-hint{display:flex;align-items:center;gap:6px;margin-top:10px}.gsb-cal-pick{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm, 13px);margin:6px 0}.cat-page{max-width:720px;margin:0 auto;padding:var(--sp-4, 24px);display:flex;flex-direction:column;gap:var(--sp-3, 16px)}.cat-h1{font-size:20px;font-weight:750;margin:0}.cat-hint{font-size:var(--fs-sm, 13px);color:var(--text-muted);margin:4px 0 0}.cat-form{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:var(--sp-2, 10px);margin-bottom:12px}.cat-field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs, 11px);font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em}.cat-field .ui-input{width:100%;text-transform:none;font-weight:400}.cat-drop{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:18px;border:1.5px dashed var(--border-strong, #c9bfa8);border-radius:var(--r-3, 12px);background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-sm, 13px)}.cat-airow{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.cat-rows{display:flex;flex-direction:column;gap:8px;margin-top:12px}.cat-row{display:flex;align-items:center;gap:8px}.cat-row-thumb{width:44px;height:44px;object-fit:cover;border-radius:var(--r-2, 8px);border:1px solid var(--border);background:var(--surface-2)}.cat-row-name{flex:1}.cat-row-hex{width:36px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--r-2, 8px);background:none;cursor:pointer}.cat-row-back{font-size:var(--fs-xs, 11px);color:var(--brand);cursor:pointer;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2, 8px);white-space:nowrap}.cat-row-back.has{color:var(--success, #2f7a4d)}.cat-viewseg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-2, 8px);overflow:hidden}.cat-viewseg button{width:26px;height:30px;border:none;border-left:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer}.cat-viewseg button:first-child{border-left:none}.cat-viewseg button.on{background:var(--brand);color:#fff}.cat-row-x{border:none;background:none;color:var(--text-faint);cursor:pointer;font-size:14px;padding:4px 8px}.cat-actions{display:flex;align-items:center;gap:12px;margin-top:14px}.cat-msg{font-size:var(--fs-sm, 13px);color:var(--text-muted)}.cat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cat-list li{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm, 13px);color:var(--text)}.cat-list-sw{width:14px;height:14px;border-radius:50%;border:1px solid var(--border);flex:none}.cat-list-x{margin-left:auto;border:none;background:none;color:var(--danger, #b23b3b);cursor:pointer;font-size:var(--fs-xs, 12px)}.hb-add-btn{margin-left:auto;font-size:var(--fs-xs, 11px);font-weight:600;color:var(--brand);text-decoration:none;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-pill, 999px)}.hb-add-btn:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4, 24px);background:var(--surface-2)}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3, 12px);box-shadow:var(--sh-3);padding:28px 24px;text-align:center}.auth-brand{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:18px;color:var(--text)}.auth-brand span{color:var(--brand)}.auth-title{font-size:17px;font-weight:700;margin:0 0 6px;color:var(--text)}.auth-muted{font-size:var(--fs-sm, 13px);color:var(--text-muted);margin:0 0 16px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:12px;text-align:left}.auth-form .ui-input{width:100%}.auth-err{font-size:var(--fs-xs, 12px);color:var(--danger, #b23b3b);margin:0}.auth-link{border:none;background:none;color:var(--brand);cursor:pointer;font:inherit;font-size:var(--fs-sm, 13px);padding:4px}.auth-link:hover{text-decoration:underline}.page h1{margin-top:0}.todo{opacity:.6}.hm{display:grid;grid-template-columns:290px 1fr 300px;gap:16px;color:var(--text);align-items:start;height:100%}.hm-right{overflow:auto;max-height:100%}@media (max-width: 820px){.hm{grid-template-columns:1fr;height:auto;gap:14px;min-width:0}.hm-stage{order:-1;min-width:0}.hm-controls,.hm-right{width:100%;min-width:0;max-height:none;overflow:visible}.hm-toolbar{flex-wrap:wrap;gap:8px}.hm-toolbar-actions{flex-wrap:wrap;gap:6px}.hm-save-name{flex:1 1 120px;width:auto;min-width:0}}.hat-canvas{max-width:100%}.hm-hat-head{margin-bottom:8px}.hm-hat-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.hm-hat-toggle:hover{border-color:var(--brand)}.hm-hat-toggle.open{border-color:var(--brand);border-bottom-left-radius:0;border-bottom-right-radius:0}.hm-hat-toggle-lbl{display:flex;flex-direction:column;gap:1px;min-width:0}.hm-hat-toggle-lbl .lbl{font-size:var(--fs-xs);color:var(--text-muted)}.hm-hat-toggle-lbl b{font-size:var(--fs-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm-hat-chevron{flex:none;color:var(--text-muted);transition:transform .15s ease}.hm-hat-toggle.open .hm-hat-chevron{transform:rotate(180deg)}.hm-hat-name{font-size:var(--fs-md, 15px);font-weight:650;color:var(--text)}.hm-hat-meta{font-size:var(--fs-xs);color:var(--text-muted)}.hm-color-name{margin-top:6px;font-size:var(--fs-xs);color:var(--text-muted)}.hm-color-search{width:100%;margin-bottom:8px}.hm-color-results{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:520px;overflow:auto}.hm-color-result{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:var(--r-2);padding:4px;background:var(--surface);cursor:pointer;text-align:center;min-width:0}.hm-color-result:hover{border-color:var(--brand);background:var(--surface-2)}.hm-color-result.sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.hm .hm-color-result .swatch{width:100%;height:auto;aspect-ratio:1;border-radius:5px;border:1px solid var(--border);overflow:hidden;background:var(--surface-2)}.hm .hm-color-result .swatch img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.hm-color-result-meta{min-width:0;display:flex;flex-direction:column}.hm-color-result-meta b{font-size:10px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm-color-result-meta span{font-size:9px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm button{cursor:pointer;font:inherit}.hm-controls{display:flex;flex-direction:column;gap:14px;overflow:auto}.hm .pb-section,.hm-controls .pb-section{border:1px solid var(--border);border-radius:var(--r-3);padding:12px;background:var(--surface)}.hm .pb-section h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 8px}.hm .lbl{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin:8px 0 4px}.hm select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text)}.hm .seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-2);overflow:hidden}.hm .seg button{border:none;background:var(--surface);padding:6px 14px;text-transform:capitalize;color:var(--text-muted)}.hm .seg .seg-on{background:var(--brand);color:var(--brand-contrast)}.hm-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:520px;overflow:auto}.hm-swatches .swatch{width:100%;height:auto;aspect-ratio:1;border-radius:6px;border:1px solid var(--border);overflow:hidden;padding:0;background:var(--surface-2)}.hm .swatch img{width:100%;height:100%;object-fit:cover;object-position:center 32%;display:block}.hm .swatch .swatch-hex{display:block;width:100%;height:100%}.hm .swatch.sel{outline:2px solid var(--brand);outline-offset:1px}.hm-upload{width:100%;border:1px solid var(--brand);background:var(--brand);color:var(--brand-contrast);border-radius:var(--r-2);padding:8px;font-size:var(--fs-sm);font-weight:550}.hm-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:8px 0 0}.hm-material{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;border:1px solid var(--border);border-radius:var(--r-2);padding:8px 10px}.hm-material .lbl{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint)}.hm-material-name{font-size:var(--fs-sm);font-weight:600;color:var(--text)}.hm-change{border:1px solid var(--brand);background:none;color:var(--brand);border-radius:var(--r-2);padding:6px 10px;font-size:var(--fs-xs);font-weight:600;cursor:pointer;white-space:nowrap}.hm-change:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}.hm-change:disabled{opacity:.5;cursor:default}.hm-saved{margin-top:10px}.hm-saved-list{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-height:260px;overflow:auto}.hm-saved-item{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;border:1px solid var(--border);border-radius:var(--r-2);padding:5px;background:var(--surface);cursor:pointer;text-align:left}.hm-saved-item:hover{border-color:var(--brand);background:var(--surface-2)}.hm-saved-thumb{width:44px;height:44px;display:grid;place-items:center;background:var(--surface-2);border-radius:5px;overflow:hidden;color:var(--text-faint)}.hm-saved-thumb img{width:100%;height:100%;object-fit:contain}.hm-saved-meta{min-width:0;display:flex;flex-direction:column}.hm-saved-meta b{font-size:var(--fs-sm);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hm-saved-meta span{font-size:var(--fs-xs);color:var(--text-muted)}.hm-title-meta{display:block;font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;margin-top:1px}.hm-ai{margin-top:14px}.hm-ai h3{display:flex;align-items:center;gap:4px}.hm-ai-btn{width:100%;margin-top:6px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-contrast);border-radius:var(--r-2);padding:8px;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.hm-ai-btn:disabled{opacity:.6;cursor:default}.hm-ai-error{font-size:var(--fs-xs);color:var(--warn);margin:8px 0 0}.hm-ai-error a{font-weight:600}.hm-ai-list{display:flex;flex-direction:column;gap:5px;margin-top:8px}.hm-ai-item{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;border:1px solid var(--border);border-radius:var(--r-2);padding:5px;background:var(--surface);cursor:pointer;text-align:left}.hm-ai-item:hover:not(:disabled){border-color:var(--brand);background:var(--surface-2)}.hm-ai-item.sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.hm-ai-item:disabled{opacity:.55;cursor:default}.hm-ai-item .swatch{width:44px;height:44px;border-radius:5px;border:1px solid var(--border);overflow:hidden;background:var(--surface-2)}.hm-ai-item .swatch img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.hm-ai-meta{min-width:0;display:flex;flex-direction:column}.hm-ai-meta b{font-size:var(--fs-xs);color:var(--text)}.hm-ai-meta span{font-size:10px;color:var(--text-muted);line-height:1.3}.hm-ai-meta .hm-ai-brand{font-weight:600;color:var(--brand);margin-top:1px}.hm-ai-scope{margin-top:6px}.hb-manage-btn{margin-left:auto;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--r-2);padding:3px 9px;font-size:var(--fs-xs);font-weight:600;cursor:pointer}.hb-manage-btn:hover,.hb-manage-btn.on{border-color:var(--brand);color:var(--brand)}.hb-manage{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow:auto;padding:4px 2px}.hb-manage-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:2px 4px 6px}.hb-manage-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--r-1);font-size:var(--fs-sm);cursor:pointer}.hb-manage-row:hover{background:var(--surface-2)}.hb-head{display:flex;align-items:center;gap:8px}.settings{max-width:640px}.settings-h1{font-size:var(--fs-h1);margin:0 0 var(--sp-4)}.set-field{margin-bottom:var(--sp-4)}.set-label{display:block;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:650;margin-bottom:6px}.set-keyrow{display:flex;gap:6px}.set-keyrow .ui-input{flex:1;font-family:var(--font-mono, monospace)}.set-reveal{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--r-2);padding:0 12px;font-size:var(--fs-xs);cursor:pointer}.set-hint{font-size:var(--fs-xs);color:var(--text-faint);margin:6px 0 0}.set-hint code{font-family:var(--font-mono, monospace)}.set-actions{display:flex;align-items:center;gap:12px;margin-top:var(--sp-4)}.set-ok{font-size:var(--fs-xs);color:var(--success)}.hb{display:flex;flex-direction:column;gap:6px}.hb-head{display:flex;flex-direction:column}.hb-head b{font-size:var(--fs-sm);color:var(--text)}.hb-head span{font-size:var(--fs-xs);color:var(--text-faint)}.hb-search{width:100%}.hb-index{display:flex;flex-wrap:wrap;gap:2px}.hb-index button{border:none;background:none;color:var(--text-muted);font-size:11px;font-weight:600;width:18px;height:18px;border-radius:4px;cursor:pointer}.hb-index button:hover{background:var(--surface-2);color:var(--brand)}.hb-list{max-height:340px;overflow:auto;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-2)}.hb-empty{padding:10px;font-size:var(--fs-xs);color:var(--text-faint)}.hb-letter{position:sticky;top:0;z-index:1;background:var(--surface-2);font-size:10px;font-weight:700;color:var(--text-muted);padding:3px 10px;border-bottom:1px solid var(--border)}.hb-brand{display:flex;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent)}.hb-brand:hover{background:var(--surface-2)}.hb-brand.active .hb-brand-name{color:var(--brand);font-weight:600}.hb-star{flex:none;border:none;background:none;cursor:pointer;padding:4px 6px 4px 8px;font-size:13px;line-height:1;color:var(--text-faint);opacity:0}.hb-brand:hover .hb-star,.hb-star.on{opacity:1}.hb-star.on{color:#e8a92b}.hb-brand-btn{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;background:none;color:var(--text);padding:8px 10px 8px 2px;font-size:var(--fs-sm);cursor:pointer;text-align:left}.hb-count{font-size:var(--fs-xs);color:var(--text-faint);white-space:nowrap}.hb-styles{background:var(--surface-2);border-bottom:1px solid var(--border)}.hb-style{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;background:none;color:var(--text-muted);padding:6px 10px 6px 20px;font-size:var(--fs-xs);cursor:pointer;text-align:left}.hb-style:hover{color:var(--text)}.hb-style.sel{color:var(--brand);font-weight:600}.hb-style-meta{color:var(--text-faint);white-space:nowrap}.hmp-sub{margin:0 0 var(--sp-3);color:var(--text-muted);font-size:var(--fs-sm)}.hmp-search{width:100%;margin-bottom:var(--sp-3)}.hmp-scroll{max-height:60vh;min-width:min(560px,78vw);overflow:auto;display:flex;flex-direction:column;gap:var(--sp-3)}.hmp-empty{font-size:var(--fs-sm);color:var(--text-faint)}.hmp-grouphead{position:sticky;top:0;z-index:1;background:var(--surface);display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--text-muted);padding:4px 0 6px;border-bottom:1px solid var(--border)}.hmp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.hmp-swatch{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--border);border-radius:var(--r-2);padding:6px;background:var(--surface);cursor:pointer}.hmp-swatch:hover{border-color:var(--brand)}.hmp-swatch.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.hmp-swatch.busy{opacity:.5}.hmp-swatch:disabled{cursor:default}.hmp-thumb{display:block;height:46px;border-radius:5px;overflow:hidden;background:var(--surface-2)}.hmp-thumb img{width:100%;height:100%;object-fit:cover}.hmp-name{font-size:var(--fs-xs);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hmp-meta{font-size:10px;color:var(--text-muted)}.hmp-engrave{font-size:10px;color:var(--text-faint)}.hm .range{display:block;margin-top:8px}.hm .range input{width:100%;accent-color:var(--brand)}.hm-check{display:flex;gap:8px;align-items:center;font-size:var(--fs-sm);margin:6px 0 4px}.hm-reset{width:100%;margin-top:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:6px;font-size:var(--fs-xs)}.hm-stage{display:flex;flex-direction:column;align-items:center;gap:10px}.hm-toolbar{display:flex;justify-content:space-between;align-items:center;width:100%}.hm-title{font-weight:600;font-size:15px}.hm-stage-view{position:relative;width:100%;max-width:768px;margin:0 auto}.hat-canvas-wrap{width:100%;line-height:0}.hm-view-seg{position:absolute;right:10px;bottom:10px;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--sh-2);z-index:2}.hat-canvas{display:block;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-3);box-shadow:var(--sh-2);background:var(--surface-2);touch-action:none;cursor:grab}.hat-canvas:active{cursor:grabbing}.hm-empty{font-size:var(--fs-sm);color:var(--text-muted)}.hm-caption{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;width:100%;max-width:768px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface)}.hm-caption-main{display:flex;align-items:baseline;gap:10px}.hm-caption-main b{font-size:var(--fs-md, 15px)}.hm-caption-color{font-size:var(--fs-sm);color:var(--text);padding:2px 8px;border-radius:999px;background:var(--surface-2)}.hm-remember-btn{margin-left:auto;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:5px 12px;font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap}.hm-remember-btn:hover{border-color:var(--brand);color:var(--brand)}.hm-remember-btn.on{color:#b8860b;border-color:color-mix(in srgb,#ffd54a 50%,var(--border));background:color-mix(in srgb,#ffd54a 14%,var(--surface));cursor:default}.hm-remembered{width:100%;max-width:768px;display:flex;flex-direction:column;gap:6px}.hm-remembered-lbl{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.hm-remembered-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.hm-remembered-save{position:relative}.hm-remembered-savebtn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:4px 10px;font-size:var(--fs-xs);font-weight:600;cursor:pointer}.hm-remembered-savebtn:hover{border-color:var(--brand);color:var(--brand)}.hm-remembered-savemenu{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-floating, 50);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);box-shadow:var(--sh-3);padding:10px;display:flex;flex-direction:column;gap:6px;width:230px}.hm-remembered-savemenu .ui-input,.hm-remembered-savemenu .ui-select{width:100%}.hm-remembered-savego{border:1px solid var(--brand);background:var(--brand);color:var(--brand-contrast);border-radius:var(--r-2);padding:6px;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.hm-remembered-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.hm-remembered-item{position:relative;flex:none}.hm-remembered-item.on .hm-remembered-recall{border-color:var(--brand)}.hm-remembered-recall{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:5px 8px 5px 5px;cursor:pointer}.hm-remembered-recall:hover{border-color:var(--brand)}.hm-remembered-recall img,.hm-remembered-swatch{width:34px;height:34px;border-radius:6px;object-fit:cover;background:var(--surface-2);flex:none}.hm-remembered-meta{display:flex;flex-direction:column;text-align:left;line-height:1.15}.hm-remembered-meta b{font-size:var(--fs-sm)}.hm-remembered-meta span{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.hm-remembered-x{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:11px;line-height:1;cursor:pointer;display:grid;place-items:center}.hm-remembered-x:hover{color:var(--danger, #e11d48);border-color:var(--danger, #e11d48)}.hm-toolbar-actions{display:flex;gap:8px;align-items:center}.hm-save-name{width:150px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}.hm-folder-wrap{position:relative;display:inline-flex}.hm-folder-btn{display:inline-flex;align-items:center;gap:4px}.hm-folder-wrap .hm-folder-menu{bottom:auto;top:calc(100% + 4px);right:auto;left:0}.share-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;display:grid;place-items:center;z-index:var(--z-overlay)}.share-dialog{background:var(--surface);border-radius:var(--r-4);padding:20px;width:440px;max-width:92vw;box-shadow:var(--sh-3);color:var(--text)}.share-dialog h3{margin:0 0 6px}.share-dialog .muted{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 14px}.share-link{display:flex;gap:8px}.share-link input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-2);font-size:var(--fs-sm);background:var(--surface);color:var(--text)}.share-link button{border:1px solid var(--brand);background:var(--brand);color:var(--brand-contrast);border-radius:var(--r-2);padding:8px 14px;cursor:pointer}.share-actions{display:flex;gap:8px;align-items:center;margin-top:14px}.share-actions button,.share-actions .open{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:8px 14px;cursor:pointer;text-decoration:none;font-size:var(--fs-sm)}.share-actions .done{margin-left:auto;border-color:var(--brand);background:var(--brand);color:var(--brand-contrast)}.proofs{max-width:860px}.proofs-head{display:flex;justify-content:space-between;align-items:center}.proofs .muted{color:var(--text-muted);font-size:var(--fs-sm)}.proofs .ghost{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);padding:6px 12px;cursor:pointer}.proof-list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:10px}.proof-row{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:var(--r-3);padding:10px 12px;background:var(--surface)}.proof-row .thumb{width:64px;height:64px;object-fit:contain;background:var(--surface-2);border-radius:var(--r-2)}.proof-row .title-row{display:flex;gap:8px;align-items:center}.proof-row .sub{font-size:var(--fs-xs);margin-top:2px}.proof-row .change-note{font-size:var(--fs-xs);margin-top:4px;color:var(--warn);font-style:italic}.badge{font-size:var(--fs-xs);padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.badge.approved{background:var(--success-soft);border-color:transparent;color:var(--success)}.badge.changes-requested{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.row-actions button,.row-actions .open{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-2);padding:5px 10px;font-size:var(--fs-xs);cursor:pointer;text-decoration:none;color:var(--text)}.proof{min-height:100vh;background:var(--bg);display:grid;place-items:start center;padding:40px 16px;color:var(--text)}.proof-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);padding:28px;width:560px;max-width:94vw;box-shadow:var(--sh-2)}.proof-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-xs);color:var(--text-faint);margin:0}.proof-card h1{margin:4px 0 10px;font-size:24px}.proof-card .muted{color:var(--text-muted);font-size:14px}.proof-items{display:grid;gap:12px;margin:16px 0}.proof-items figure{margin:0}.proof-items img{width:100%;border-radius:var(--r-3);background:var(--surface-2);display:block}.proof-items figcaption{font-size:var(--fs-xs);color:var(--text-muted);margin-top:6px;text-align:center}.proof-qty{display:flex;align-items:center;gap:10px;font-size:14px;margin:14px 0}.proof-qty button{width:34px;height:34px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-2);font-size:18px;cursor:pointer}.proof-qty input{width:72px;padding:7px;border:1px solid var(--border);border-radius:var(--r-2);text-align:center;font-size:15px;background:var(--surface);color:var(--text)}.proof-actions{display:flex;gap:10px}.proof-actions .approve{flex:1;border:1px solid var(--success);background:var(--success);color:#fff;border-radius:var(--r-3);padding:12px;font-size:15px;font-weight:600;cursor:pointer}.proof-actions .approve:disabled{opacity:.5;cursor:default}.proof-actions .changes{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--r-3);padding:12px;font-size:15px;cursor:pointer}.proof-change-form{margin-top:14px}.proof-change-form label{display:block;font-size:14px;margin-bottom:6px}.proof-change-form textarea{width:100%;border:1px solid var(--border);border-radius:var(--r-3);padding:10px;font:inherit;resize:vertical;background:var(--surface);color:var(--text)}.proof-result{border-radius:var(--r-3);padding:12px 14px;font-size:14px;margin:8px 0}.proof-result.ok{background:var(--success-soft);border:1px solid transparent;color:var(--success)}.proof-result.changes{background:var(--warn-soft);border:1px solid transparent;color:var(--warn)}.gsb{display:flex;flex-direction:column;height:100%;color:var(--text)}.gsb button{cursor:pointer;font:inherit}.gsb-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border);flex:none}.gsb-name{width:168px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface-2);color:var(--text);font-weight:600;font-size:var(--fs-sm)}.gsb-file{display:inline-flex;align-items:center;gap:6px}.gsb-file-icon{color:var(--text-faint)}.gsb-file-tag{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);border-radius:var(--r-pill);padding:1px 7px}.gsb-tb-group{display:flex;gap:2px}.gsb-tb-div{width:1px;align-self:stretch;margin:2px 4px;background:var(--border)}.gsb-fill-wrap{position:relative;display:inline-flex}.gsb-fill-menu{position:absolute;left:0;top:calc(100% + 4px);z-index:var(--z-floating, 50);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);box-shadow:var(--sh-3);padding:4px;display:flex;flex-direction:column;min-width:220px}.gsb-fill-menu button{border:none;background:none;text-align:left;color:var(--text);cursor:pointer;padding:7px 10px;border-radius:var(--r-1);font:inherit;font-size:var(--fs-sm);white-space:nowrap}.gsb-fill-menu button:hover{background:var(--surface-2)}.gsb-statbar{display:flex;flex-wrap:wrap;gap:var(--sp-5);padding:7px var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);flex:none}.gsb-statbar b{color:var(--text)}.gsb-body{display:flex;flex:1;min-height:0}.gsb-left{width:296px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface);min-height:0}.gsb-left .ui-tabs{padding:0 var(--sp-3);border-bottom:1px solid var(--border);flex:none}.gsb-left-scroll{overflow:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-4);min-height:0}.gsb-saved-list{display:flex;flex-direction:column;gap:6px}.gsb-saved-row{display:grid;grid-template-columns:40px 1fr auto;gap:var(--sp-2);align-items:center;border:1px solid var(--border);border-radius:var(--r-2);padding:6px;background:var(--surface)}.gsb-saved-thumb{width:40px;height:40px;display:grid;place-items:center;background:var(--surface-2);border-radius:6px;color:var(--text-faint);overflow:hidden}.gsb-saved-thumb img{width:100%;height:100%;object-fit:contain}.gsb-saved-meta{min-width:0;display:flex;flex-direction:column}.gsb-saved-meta b{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gsb-saved-meta span{font-size:var(--fs-xs);color:var(--text-muted)}.gsb-saved-acts{display:flex;gap:2px;align-items:center}.gsb-folderbar{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;align-items:center}.gsb-folder-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);cursor:pointer;padding:3px 9px;font:inherit;font-size:var(--fs-sm)}.gsb-folder-chip.on{border-color:var(--brand);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);font-weight:600}.gsb-folder-chip span{font-size:var(--fs-xs);color:var(--text-muted)}.gsb-folder-chip.on span{color:var(--brand)}.gsb-folder-wrap{display:inline-flex;align-items:center}.gsb-folder-wrap .gsb-folder-chip{border-top-right-radius:0;border-bottom-right-radius:0}.gsb-folder-x{border:1px solid var(--border);border-left:none;border-top-right-radius:var(--r-pill);border-bottom-right-radius:var(--r-pill);background:var(--surface);color:var(--text-faint);cursor:pointer;padding:3px 7px;font-size:11px}.gsb-folder-x:hover{color:var(--danger, #e5484d);background:var(--surface-2)}.gsb-folder-add{border:1px dashed var(--border);border-radius:var(--r-pill);background:none;color:var(--text-muted);cursor:pointer;padding:3px 10px;font:inherit;font-size:var(--fs-sm)}.gsb-folder-add:hover{color:var(--text);border-color:var(--text-muted)}.gsb-folder-new{border:1px solid var(--brand);border-radius:var(--r-pill);background:var(--surface);color:var(--text);padding:3px 10px;font:inherit;font-size:var(--fs-sm);width:120px}.gsb-folder-assign{position:relative;display:inline-flex}.gsb-folder-menu{position:absolute;top:100%;right:0;z-index:20;margin-top:4px;min-width:130px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);box-shadow:0 6px 18px #00000024;padding:4px}.gsb-folder-menu button{border:none;background:none;color:var(--text);cursor:pointer;text-align:left;padding:5px 8px;border-radius:var(--r-1);font:inherit;font-size:var(--fs-sm)}.gsb-folder-menu button:hover{background:var(--surface-2)}.gsb-folder-menu button.on{color:var(--brand);font-weight:600}.gsb-folder-menu-empty{padding:5px 8px;font-size:var(--fs-xs);color:var(--text-muted)}.gsb-drop{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--sp-6) var(--sp-3);border:1.5px dashed var(--border);border-radius:var(--r-3);background:var(--surface-2);color:var(--text-muted)}.gsb-drop b{color:var(--text);font-size:var(--fs-sm)}.gsb-drop span{font-size:var(--fs-xs)}.gsb-drop:hover{border-color:var(--brand);color:var(--brand)}.gsb-generate{display:flex;flex-direction:column;gap:var(--sp-4)}.gsb-gen-sec{display:flex;flex-direction:column;gap:var(--sp-2)}.gsb-shape-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.gsb-shape-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted)}.gsb-shape-cell:hover{border-color:var(--brand);color:var(--brand)}.gsb-shape-cell.sel{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}.gsb-gen-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.gsb-gen-row label{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text-muted)}.gsb-gen-row input[type=number]{width:56px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 6px}.gsb-gen-text{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:var(--fs-sm)}.gsb-gen-font{flex:1 1 auto}.gsb-gen-font select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 6px}.gsb-edit-banner{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 12px;border-radius:9px;background:color-mix(in srgb,var(--brand) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--brand) 40%,transparent);font-size:var(--fs-sm);color:var(--text)}.gsb-edit-banner span{flex:1}.gsb-edit-banner button{border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:7px;padding:4px 14px;font-weight:600;font-size:var(--fs-xs)}.gsb-edit-float{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap;margin:0}.gsb-edit-done{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 14px;font-weight:600;font-size:var(--fs-xs);box-shadow:0 6px 20px #00000024}.edit-toolbar{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 6px 20px #00000024}.edit-toolbar-label{font-size:var(--fs-xs);font-weight:650;color:var(--text-muted);padding:0 6px 0 2px}.edit-toolbar-group{display:inline-flex;align-items:center;gap:2px}.edit-toolbar-group:not(:last-child):after{content:"";width:1px;align-self:stretch;margin:3px 5px;background:var(--border)}.edit-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--text)}.edit-toolbar-btn:hover:not(:disabled){background:var(--surface-2);color:var(--brand)}.edit-toolbar-btn.on{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand)}.edit-toolbar-btn.danger:hover:not(:disabled){background:color-mix(in srgb,#e5484d 15%,transparent);color:#e5484d}.edit-toolbar-btn:disabled{opacity:.4}.gsb-gen-editing{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;background:color-mix(in srgb,var(--brand) 12%,transparent);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);font-size:var(--fs-xs);color:var(--text)}.gsb-gen-editing button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:3px 9px;font-size:var(--fs-xs)}.gsb-genchk{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text);cursor:pointer}.gsb-gen-row input[type=color]{width:30px;height:24px;padding:0;border:1px solid var(--border);border-radius:5px;background:none}.gsb-queue{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:var(--sp-3)}.gsb-queue-head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:650}.gsb-muted{font-size:var(--fs-xs);color:var(--text-faint)}.gsb-qpiece{display:grid;grid-template-columns:38px 1fr auto;gap:var(--sp-2);align-items:center;border:1px solid var(--border);border-radius:var(--r-2);padding:5px;background:var(--surface)}.gsb-qpiece.sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.gsb-qpiece img{width:38px;height:38px;object-fit:contain;background:var(--surface-2);border-radius:5px}.gsb-qmeta{min-width:0}.gsb-qname{font-size:var(--fs-xs);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;border:1px solid transparent;border-radius:5px;background:transparent;color:inherit;padding:2px 4px;font-family:inherit}.gsb-qname:hover{border-color:var(--border)}.gsb-qname:focus{border-color:var(--brand);background:var(--surface);outline:none}.gsb-qrow{display:flex;gap:4px;margin-top:3px}.gsb-qrow label{display:flex;align-items:center;gap:2px;font-size:var(--fs-xs);color:var(--text-muted)}.gsb-qrow input{width:42px;padding:2px 4px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text)}.gsb-qadd{margin-left:auto;padding:2px 7px;font-size:var(--fs-xs);border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text-muted);cursor:pointer;white-space:nowrap}.gsb-qadd:hover{border-color:var(--accent);color:var(--accent)}.gsb-qdpi{margin-top:3px;font-size:var(--fs-xs);color:var(--text-muted);cursor:help}.gsb-qdpi.warn{color:#b45309;font-weight:600}.md-page{padding:var(--sp-5, 20px);max-width:1500px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.gal-page{padding:var(--sp-5, 20px);max-width:1500px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.gal-head h1{margin:0}.gal-sub{margin:4px 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.gal-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:0;background:var(--bg);padding:6px 0;z-index:2}.gal-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--r-2);padding:6px 10px;background:var(--surface);color:var(--text-muted);min-width:240px}.gal-search input{border:0;background:none;color:var(--text);outline:none;font:inherit;flex:1}.gal-section{display:flex;flex-direction:column;gap:10px}.gal-cat{margin:0;font-size:var(--fs-md)}.gal-cat-n,.gal-empty{color:var(--text-faint)}.gal-cat-n{font-size:var(--fs-xs);font-weight:500}.gal-empty{padding:20px 0}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tpl-card{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:12px;cursor:pointer;transition:border-color .12s,transform .12s}.tpl-card:hover{border-color:var(--brand);transform:translateY(-2px)}.tpl-preview{width:100%;height:92px;display:flex;align-items:center;justify-content:center}.tpl-preview svg{width:100%;height:100%}.tpl-preview path{fill:var(--surface-2);stroke:var(--brand);stroke-width:3;vector-effect:non-scaling-stroke}.tpl-name{font-weight:600;font-size:var(--fs-sm);text-align:center}.tpl-dims{color:var(--text-muted);font-size:var(--fs-xs)}.tpl-go{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:var(--fs-xs);color:var(--brand);font-weight:600}.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.mat-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);overflow:hidden}.mat-card.fav{border-color:var(--brand)}.mat-swatch{position:relative;aspect-ratio:3 / 2;overflow:hidden}.mat-swatch img{width:100%;height:100%;object-fit:cover;display:block}.mat-star{position:absolute;top:4px;right:4px;border:0;background:#00000059;color:#fff;border-radius:999px;width:24px;height:24px;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}.mat-star.on{color:#ffd54a}.mat-meta{display:flex;flex-direction:column;gap:2px;padding:8px 10px;flex:1}.mat-name{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-fam{color:var(--text-muted);font-size:var(--fs-xs)}.mat-engrave{display:inline-flex;align-items:center;gap:4px;color:var(--text-faint);font-size:var(--fs-xs)}.mat-dot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.mat-design{display:flex;align-items:center;justify-content:center;gap:4px;border:0;border-top:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:7px;cursor:pointer;font:inherit;font-size:var(--fs-xs);font-weight:600}.mat-design:hover{background:var(--brand);color:var(--brand-contrast)}.md-head{display:flex;align-items:center;justify-content:space-between}.md-head h1{font-size:1.4rem;margin:0;display:flex;align-items:center;gap:10px}.md-head-actions{display:flex;align-items:center;gap:12px}.md-cols{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--text-muted)}.md-search{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:var(--r-2);padding:4px 8px;background:var(--surface)}.md-search input{border:none;background:none;outline:none;color:var(--text);font:inherit;min-width:160px}.md-search button{border:none;background:none;color:var(--text-muted);cursor:pointer;display:inline-flex}.md-folders{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.md-folder-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);overflow:hidden;font-size:var(--fs-sm)}.md-folder-chip.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.md-folder-chip>button{border:none;background:none;color:var(--text);cursor:pointer;padding:5px 10px;font:inherit;display:inline-flex;align-items:center;gap:6px}.md-folder-chip.on .md-fc-lbl{color:var(--brand);font-weight:600}.md-fc-n{background:var(--surface-2);color:var(--text-muted);border-radius:var(--r-pill);padding:0 6px;font-size:10px}.md-fc-x{border:none;background:none;color:var(--text-faint);cursor:pointer;padding:5px 8px 5px 2px;font-size:10px}.md-fc-x:hover{color:#b91c1c}.md-ftree{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:2px;max-width:320px}.md-ftree-row{display:flex;align-items:center;gap:2px;border:1px solid transparent;border-radius:var(--r-1, 7px);background:none;font:inherit;color:var(--text);cursor:pointer;padding:2px 6px 2px 0;text-align:left}.md-ftree-row.on{background:var(--surface-2)}.md-ftree-row.drop{background:color-mix(in srgb,var(--brand) 16%,transparent);box-shadow:inset 0 0 0 1.5px var(--brand)}.md-card[draggable=true]{cursor:grab}.md-card[draggable=true]:active{cursor:grabbing}.md-ftree-row.on .md-ftree-lbl{color:var(--brand);font-weight:600}.md-ftree-caret{width:16px;min-width:16px;border:none;background:none;color:var(--text-faint);cursor:pointer;font-size:10px;line-height:1;padding:0}.md-ftree-lbl{flex:1;display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:inherit;cursor:pointer;font:inherit;padding:3px 4px;min-width:0}.md-ftree-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-selbox{position:absolute;top:7px;left:7px;z-index:3;width:20px;height:20px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--brand);font-size:12px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s;display:flex;align-items:center;justify-content:center}.md-card:hover .md-selbox,.md-selbox.on{opacity:1}.md-selbox.on{background:var(--brand);border-color:var(--brand);color:#fff}.md-card.sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.md-bulkbar{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:12px;margin:4px 0 10px;padding:8px 12px;border:1px solid var(--brand);border-radius:var(--r-2, 10px);background:var(--surface);box-shadow:var(--shadow-1, 0 2px 8px rgba(0,0,0,.08))}.md-bulk-move{position:relative}.md-bulk-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);padding:5px 12px;font:inherit;cursor:pointer}.md-bulk-clear{margin-left:auto;border:none;background:none;color:var(--text-muted);cursor:pointer;font:inherit}.md-bulk-unfile{display:block;width:100%;text-align:left;border:none;border-top:1px solid var(--border);background:none;color:var(--text-muted);cursor:pointer;font:inherit;padding:8px 12px}.md-bulk-unfile:hover{background:var(--surface-2)}.md-folder-add{border:1px dashed var(--border);background:none;color:var(--text-muted);border-radius:var(--r-pill);padding:5px 12px;font-size:var(--fs-sm);cursor:pointer}.md-folder-add:hover{border-color:var(--brand);color:var(--brand)}.md-folder-new,.md-folder-rename{border:1px solid var(--brand);border-radius:var(--r-pill);padding:4px 10px;font:inherit;background:var(--surface);color:var(--text);outline:none;min-width:8rem}.md-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.md-controls-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.md-controls-right{display:flex;align-items:center;gap:12px}.md-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-2);padding:5px 10px;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer}.md-toggle.on{border-color:var(--brand);color:var(--brand)}.md-empty-note{color:var(--text-muted);font-size:var(--fs-sm)}.md-thumb{position:relative}.md-cut-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.md-folder-wrap{position:relative}.md-foldermenu{position:absolute;right:0;bottom:calc(100% + 4px);z-index:var(--z-floating, 50);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2);box-shadow:var(--sh-3);padding:4px;display:flex;flex-direction:column;min-width:130px;max-height:220px;overflow:auto}.md-foldermenu button{border:none;background:none;text-align:left;color:var(--text);cursor:pointer;padding:6px 10px;border-radius:var(--r-1);font:inherit}.md-foldermenu button:hover{background:var(--surface-2)}.md-foldermenu button.on{color:var(--brand);font-weight:600}.md-foldermenu-empty{color:var(--text-faint);font-size:var(--fs-xs);padding:6px 10px}.fp-menu{display:flex;flex-direction:column;min-width:150px}.fp-menu>button{display:flex;align-items:center;gap:8px;border:none;background:none;text-align:left;color:var(--text);cursor:pointer;padding:7px 10px;border-radius:var(--r-1);font:inherit}.fp-menu>button:hover{background:var(--surface-2)}.fp-menu>button.on{color:var(--brand);font-weight:600;background:color-mix(in srgb,var(--brand) 8%,transparent)}.fp-menu>button.fp-new-btn{color:var(--brand);border-top:1px solid var(--border);margin-top:4px;padding-top:9px;border-radius:0;font-weight:600}.fp-menu>button.fp-new-btn:hover{background:color-mix(in srgb,var(--brand) 8%,transparent)}.fp-ficon{color:var(--text-faint);flex:none}.fp-menu>button.on .fp-ficon,.fp-new-btn .fp-ficon{color:var(--brand)}.fp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-active{color:var(--brand);flex:none}.fp-empty{color:var(--text-faint);font-size:var(--fs-xs);padding:6px 10px}.fp-multi>button{display:flex;align-items:center;gap:6px}.fp-multi .fp-check{display:inline-block;width:12px;color:var(--brand);font-weight:700}.fp-new{margin:4px;padding:5px 8px;border:1px solid var(--brand);border-radius:var(--r-1);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}.fp-select{width:100%}.md-thumb-gang{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--surface-2);overflow:hidden}.md-gang-preview{width:100%;height:100%;object-fit:contain;padding:6px}.md-gang-loading{opacity:.4;animation:md-pulse 1.1s ease-in-out infinite}@keyframes md-pulse{0%,to{opacity:.25}50%{opacity:.55}}.md-grid.md-list{grid-template-columns:1fr;gap:8px}.md-list .md-card{flex-direction:row;align-items:center;gap:12px}.md-list .md-thumb{width:72px;height:48px;aspect-ratio:auto;flex:none}.md-list .md-meta{flex:1;min-width:0}.md-list .md-badges,.md-list .md-actions{flex:none}.md-count{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);background:var(--surface-2, #eee);border-radius:999px;padding:2px 9px}.md-gridwrap{position:relative}.md-marquee{position:absolute;z-index:5;border:1px solid var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);border-radius:3px;pointer-events:none}.md-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.md-card{position:relative;border:1px solid var(--border);border-radius:var(--r-2, 10px);background:var(--surface);padding:10px;display:flex;flex-direction:column;gap:8px}.md-thumb{border:0;padding:0;cursor:pointer;background:var(--surface-2, #f3f0e9);border-radius:var(--r-2, 8px);aspect-ratio:3 / 2;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-muted)}.md-thumb img{width:100%;height:100%;object-fit:contain}.md-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.md-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}.md-sub{font-size:var(--fs-xs);color:var(--text-muted)}.md-rename{width:100%;font:inherit;font-weight:600;padding:2px 4px;border:1px solid var(--brand);border-radius:5px;background:var(--surface);color:var(--text)}.md-badges{display:flex;flex-wrap:wrap;gap:4px}.md-badge{font-size:var(--fs-xs);color:var(--text-muted);background:var(--surface-2, #f0ece3);border-radius:6px;padding:1px 6px;cursor:help;font-weight:600}.md-badge.good{color:#15803d;background:#e7f6ec}.md-badge.warn{color:#b45309;background:#fdf1e0}.md-badge.bad{color:#b91c1c;background:#fde8e8}.md-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:120;display:inline-flex;align-items:center;gap:8px;background:var(--text);color:var(--surface);padding:9px 16px;border-radius:999px;font-size:var(--fs-sm);box-shadow:0 6px 24px #00000040}.md-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#14120ed1;display:flex;align-items:center;justify-content:center;padding:24px}.md-lightbox-close{position:absolute;top:16px;right:20px;border:0;background:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;opacity:.85}.md-lightbox-close:hover{opacity:1}.md-lightbox-body{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:90vw;max-height:90vh}.md-lightbox-body img{max-width:86vw;max-height:74vh;object-fit:contain;border-radius:8px;background:#fff;box-shadow:0 10px 40px #00000080}.md-lightbox-meta{display:flex;align-items:center;gap:14px;color:#fff;font-size:var(--fs-sm)}.md-lightbox-meta span{opacity:.8}.md-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}.md-actions-main{display:flex;gap:6px}.md-actions-icons{display:flex;gap:2px;margin-left:auto;align-items:center}.md-status-badge-wrap{position:relative;margin-left:auto}.md-status-badge{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:4px 10px;font-size:var(--fs-sm);font-weight:700;letter-spacing:.01em;cursor:pointer;white-space:nowrap}.md-status-badge svg{opacity:.7}.md-status-badge:hover{filter:brightness(.97)}.md-status-badge.st-draft{background:#f59e0b;color:#3a1d00}.md-status-badge.st-saved{background:#3b82f6;color:#fff}.md-status-badge.st-ordered{background:#10b981;color:#043b2a}.md-status-badge.st-archived{background:#e5e7eb;color:#4b5563}.md-statusmenu{min-width:120px;bottom:calc(100% + 4px);top:auto;right:0}.md-thumb-mockup{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--surface-2);overflow:hidden}.md-thumb-mockup img{width:100%;height:100%;object-fit:contain}.md-thumb-shortlist{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--surface-2);overflow:hidden}.md-sl-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;width:100%;height:100%}.md-sl-grid img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.md-sl-grid img:only-child{grid-column:1 / span 2}.md-confirm{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface);border-radius:var(--r-2, 10px);padding:12px;display:flex;flex-direction:column;justify-content:center;gap:10px;font-size:var(--fs-sm);box-shadow:0 0 0 1px var(--border)}.md-confirm-row{display:flex;justify-content:flex-end;gap:8px}.set-persist{font-size:var(--fs-xs);margin:8px 0 0}.set-persist.ok{color:var(--success)}.set-persist.warn{color:var(--warning, #b45309)}.set-persist-go{margin-left:6px;font:inherit;color:var(--brand);background:none;border:none;padding:0;text-decoration:underline;cursor:pointer}.set-usage{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.set-usage-bar{flex:1;min-width:140px;height:7px;background:var(--surface-2, #eee);border-radius:999px;overflow:hidden}.set-usage-bar span{display:block;height:100%;background:var(--brand);border-radius:999px}.gsb-sheets-modal{display:flex;flex-direction:column;gap:12px;min-width:340px}.gsb-sheets-save{display:flex;gap:8px;align-items:center}.gsb-sheets-save .gsb-exp-name{flex:1}.gsb-sheets-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto}.gsb-sheet-row{display:grid;grid-template-columns:1fr auto auto auto;gap:4px;align-items:center;border:1px solid var(--border);border-radius:var(--r-2, 8px);padding:4px 6px;background:var(--surface)}.gsb-sheet-row.on{border-color:var(--brand)}.gsb-sheet-open{border:0;background:none;text-align:left;cursor:pointer;display:flex;flex-direction:column;padding:4px;color:inherit;min-width:0}.gsb-sheet-open b{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gsb-sheet-open span{font-size:var(--fs-xs);color:var(--text-muted)}.gsb-export-modal{display:flex;flex-direction:column;gap:14px}.gsb-exp-sec{display:flex;flex-direction:column;gap:6px}.gsb-exp-name{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:inherit}.gsb-exp-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.gsb-set{display:flex;flex-direction:column;gap:var(--sp-2)}.gsb-set h4{margin:0;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:650}.gsb-set-unit{text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-faint)}.gsb-set-note{margin:0;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.4}.gsb-set .ui-select{width:100%}.gsb-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gsb-size{padding:8px 6px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text);font-size:var(--fs-xs);text-align:center}.gsb-size:hover{border-color:var(--brand)}.gsb-size.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);font-weight:600}.gsb-size-saved{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;line-height:1.15}.gsb-size-name{font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gsb-size-dims{font-size:10px;color:var(--text-faint)}.gsb-size-saved.on .gsb-size-dims{color:var(--brand)}.gsb-size-nameinput{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}.gsb-size-x{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer}.gsb-size-saved:hover .gsb-size-x{display:inline-flex}.gsb-size-x:hover{color:var(--danger);border-color:var(--danger)}.gsb-custom{display:flex;gap:6px}.gsb-custom label{flex:1;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-xs);color:var(--text-muted)}.gsb-custom input{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text)}.gsb-rotate{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);color:var(--text-muted);font-size:var(--fs-xs)}.gsb-rotate:hover{border-color:var(--brand);color:var(--brand)}.gsb-color{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.gsb-color input[type=color]{width:34px;height:26px;padding:0;border:1px solid var(--border);border-radius:6px;background:none}.gsb-color code{font-size:var(--fs-xs);color:var(--text-muted)}.gsb-canvas{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface-2);overflow:auto}.gsb-hint{font-size:var(--fs-xs);color:var(--text-faint);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 12px}.gsb-warn{max-width:560px;background:var(--warn-soft);color:var(--warn);border-radius:var(--r-2);padding:8px 12px;font-size:var(--fs-xs);text-align:center}.gsb-rulerwrap{flex:1;min-height:0;align-self:stretch;display:grid;grid-template-columns:22px 1fr;grid-template-rows:22px 1fr;background:var(--surface-2)}.gsb-ruler-corner{grid-area:1 / 1;display:grid;place-items:center;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);cursor:pointer}.gsb-ruler-corner:hover{color:var(--brand)}.gsb-ruler{display:block}.gsb-ruler-top{grid-area:1 / 2;width:100%;height:22px;border-bottom:1px solid var(--border)}.gsb-ruler-left{grid-area:2 / 1;width:22px;height:100%;border-right:1px solid var(--border)}.gsb-canvas-stage{grid-area:2 / 2;min-height:0;min-width:0;overflow:auto;display:flex;justify-content:safe center;align-items:safe center;padding:var(--sp-4)}.gang-canvas{border:1px solid var(--border);border-radius:4px;box-shadow:var(--sh-2);background:var(--surface)}.gsb-sheets{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.gsb-sheet-tab{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-2);overflow:hidden;background:var(--surface)}.gsb-sheet-tab.on{border-color:var(--brand)}.gsb-sheet-lbl{border:0;background:none;color:var(--text);padding:4px 10px;font-size:var(--fs-xs);cursor:pointer}.gsb-sheet-tab.on .gsb-sheet-lbl{background:var(--brand);color:var(--brand-contrast)}.gsb-sheet-x{border:0;background:none;color:var(--text-muted);padding:4px 7px;font-size:11px;cursor:pointer}.gsb-sheet-x:hover{color:#b91c1c}.gsb-sheet-name{font-weight:600}.gsb-sheet-edit{border:0;background:none;color:var(--text-muted);padding:4px 5px;font-size:11px;cursor:pointer;border-left:1px solid var(--border)}.gsb-sheet-edit:hover{color:var(--brand)}.gsb-sheet-rename{border:0;background:var(--surface);color:var(--text);padding:3px 8px;font-size:var(--fs-xs);outline:none;min-width:5rem}.gsb-sheet-add{border:1px dashed var(--border);background:none;color:var(--text-muted);border-radius:var(--r-2);padding:4px 10px;font-size:var(--fs-xs);cursor:pointer}.gsb-sheet-add:hover{border-color:var(--brand);color:var(--brand)}.gsb-allsheets{flex:1;min-height:0;overflow:auto;display:flex;flex-wrap:wrap;align-content:safe center;justify-content:safe center;gap:16px;padding:var(--sp-4);background:var(--surface-2)}.gsb-sheet-cell{border:1px solid var(--border);border-radius:var(--r-2, 8px);background:var(--surface);padding:8px;display:flex;flex-direction:column;align-items:center;gap:6px}.gsb-sheet-cell.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.gsb-sheet-cell-head{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.gsb-sheet-cell-head button{border:0;background:none;color:var(--brand);cursor:pointer;font:inherit;font-weight:600}.gsb-move-sheet{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 8px;box-shadow:var(--sh-1);font-size:var(--fs-xs);color:var(--text-muted)}.gsb-move-sheet button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:6px;width:22px;height:22px;cursor:pointer;font-size:var(--fs-xs)}.gsb-move-sheet button:hover{border-color:var(--brand);color:var(--brand)}.gsb-canvas-bar{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 4px;box-shadow:var(--sh-1)}.gsb-canvas-bar button{display:inline-flex;align-items:center;gap:4px;border:none;background:none;color:var(--text-muted);font-size:var(--fs-xs);padding:4px 10px;border-radius:999px}.gsb-canvas-bar button.on{background:var(--surface-2);color:var(--text)}.gsb-bar-div{width:1px;align-self:stretch;margin:3px 2px;background:var(--border)}.gsb-zoom{font-size:var(--fs-xs);color:var(--text-muted);padding:0 4px;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.gsb-right{width:258px;flex:none;overflow:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4);border-left:1px solid var(--border);background:var(--surface)}.gsb-rail-sec{display:flex;flex-direction:column;gap:6px}.gsb-rail-sec h4{margin:0 0 2px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:650}.gsb-price-row{display:flex;justify-content:space-between;font-size:var(--fs-sm);color:var(--text-muted)}.gsb-price-row b{color:var(--text)}.gsb-price-row.total{border-top:1px solid var(--border);margin-top:2px;padding-top:6px;font-size:var(--fs-h2)}.gsb-price-row.total b{color:var(--text)}.gsb-rate{margin:0;font-size:var(--fs-xs);color:var(--text-faint)}.gsb-quick-row{display:flex;gap:6px}.gsb-quick-row .ui-btn{flex:1}.gsb-util-bar{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:2px}.gsb-util-bar span{display:block;height:100%;background:var(--brand)}.gsb-modal-sub{margin:0 0 var(--sp-3);color:var(--text-muted);font-size:var(--fs-sm)}.gsb-start-list{display:flex;flex-direction:column;gap:var(--sp-2)}.gsb-start-opt{display:flex;align-items:center;gap:var(--sp-3);text-align:left;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-3);background:var(--surface);color:var(--text)}.gsb-start-opt:hover{border-color:var(--brand);background:var(--surface-2)}.gsb-start-opt svg{color:var(--brand);flex:none}.gsb-start-opt div{display:flex;flex-direction:column}.gsb-start-opt b{font-size:var(--fs-body)}.gsb-start-opt span{font-size:var(--fs-xs);color:var(--text-muted)}.gsb-mark-form{display:flex;flex-direction:column;gap:var(--sp-3);min-width:320px}.gsb-set-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:650}.gsb-mark-row{display:flex;gap:var(--sp-4);align-items:flex-end}.gsb-mark-size{flex:1}.gsb-mark-group{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border)}.gsb-mark-group[data-dim]{opacity:.45;pointer-events:none}.gsb-mark-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.gsb-mark-item{font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--r-2);padding:4px 6px;display:flex;gap:6px;align-items:center;cursor:pointer;background:var(--surface)}.gsb-mark-item:hover{background:var(--surface-2)}.gsb-mark-item.sel{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--surface-2)}.gsb-mark-badge{width:16px;text-align:center;color:var(--text-muted);flex:none}.gsb-mark-dot{width:12px;height:12px;border-radius:50%;border:1px solid var(--border);flex:none}.gsb-mark-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.gsb-mark-inspector{gap:var(--sp-3)}.gsb-mark-xy{display:grid;grid-template-columns:1fr 72px;gap:var(--sp-3);align-items:end}.gsb-modal-done{border:none;background:none;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer;padding:4px 8px}.gsb-modal-done:hover{color:var(--text)}.gsb-toast{position:fixed;right:20px;bottom:20px;z-index:60;display:inline-flex;align-items:center;gap:8px;max-width:320px;padding:10px 14px;border-radius:var(--r-3);background:var(--success-soft, color-mix(in srgb, var(--success) 16%, var(--surface)));color:var(--success);border:1px solid color-mix(in srgb,var(--success) 40%,transparent);box-shadow:var(--sh-2);font-size:var(--fs-sm);font-weight:550;animation:gsb-toast-in .18s ease}@keyframes gsb-toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width: 560px){.proof{padding:20px 12px}.proof-card{padding:20px}.proof-actions{flex-wrap:wrap}.proof-actions .approve,.proof-actions .changes{flex:1 1 100%}.proof-row{grid-template-columns:48px 1fr}.proof-row .thumb{width:48px;height:48px}.row-actions{grid-column:1 / -1;justify-content:flex-start}.share-dialog{padding:16px}.share-actions{flex-wrap:wrap}}@media (max-width: 820px){.md-page,.gal-page{padding:var(--sp-4)}.md-head,.gal-head{flex-wrap:wrap;gap:10px}.md-head-actions{flex-wrap:wrap}.md-search{flex:1 1 100%}.md-search input{min-width:0;width:100%}.md-ftree{max-width:none}.md-controls-right{flex-wrap:wrap}.gal-search{min-width:0;flex:1 1 100%}}@media (max-width: 480px){.md-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}}
