:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:2px}canvas:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:0;border-radius:var(--radius-xs)}.palette-item:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:1px;transform:translateY(-2px);box-shadow:0 2px 8px #4a9eff4d}.tool-button:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:2px}:focus:not(:focus-visible){outline:none}input[type=color]:focus-visible{outline:2px solid var(--accent-color,#4a9eff);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--color-primary:#4a5aad;--color-primary-dark:#3d4a91;--color-primary-gradient:linear-gradient(135deg, #4a5aad 0%, #5e3d8a 100%);--color-primary-alpha-08:#4a5aad14;--color-primary-alpha-12:#4a5aad1f;--color-primary-alpha-15:#4a5aad26;--color-primary-alpha-20:#4a5aad33;--color-primary-alpha-25:#4a5aad40;--color-primary-alpha-30:#4a5aad4d;--color-primary-alpha-50:#4a5aad80;--color-accent-on-dark:#6f9dff;--color-danger:#e74c3c;--color-danger-dark:#c0392b;--color-danger-alpha-10:#e74c3c1a;--color-surface-dark:#33334d;--color-surface-dark-border:#383857;--color-surface-dark-elevated:#3c3c5a;--color-text-dark-muted:#acacac;--color-text-dark-secondary:#bcbcbc;--color-text-dark-base:#c6c6d4;--color-text-dark-light:#e8e8f0;--color-text-dark-hover:#f0f0fa;--color-text-primary:#1a1a2e;--color-text-helper:#767676;--color-text-secondary:#595959;--color-surface:#fff;--color-surface-secondary:#f8f9fa;--color-surface-page:#f0f1f5;--color-border:#e5e7eb;--color-border-light:#f0f0f0;--color-border-control:#8b909b;--sidebar-width:220px;--sidebar-width-collapsed:56px;--text-xs:.7rem;--text-sm:.8rem;--text-base:.9rem;--text-lg:1.1rem;--text-xl:1.4rem;--text-2xl:2rem;--text-3xl:2.25rem;--text-4xl:2.5rem;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:48px;--space-8:32px;--space-10:40px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-full:9999px;--shadow-none:none;--shadow-xs:0 1px 2px #0000000f;--shadow-sm:0 2px 4px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 10px 30px #00000026;--shadow-xl:0 20px 60px #00000040;--shadow-brand-sm:0 2px 6px #4a5aad2e;--shadow-brand-md:0 4px 12px #4a5aad38;--shadow-brand-lg:0 10px 28px #4a5aad47;--shadow-danger-sm:0 2px 8px #e74c3c59;--shadow-danger-md:0 4px 12px #e74c3c73;--shadow-success-sm:0 2px 8px #4caf5059;--shadow-success-md:0 4px 15px #4caf5073;--shadow-warning-sm:0 2px 8px #f59e0b59;--motion-fast:.12s cubic-bezier(.4, 0, .2, 1);--motion-base:.2s cubic-bezier(.4, 0, .2, 1);--motion-slow:.32s cubic-bezier(.4, 0, .2, 1)}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s linear;--motion-base:0s linear;--motion-slow:0s linear}}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--color-primary);color:var(--color-surface)}.icon{vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:inline-block}.icon-red-dot{border-radius:var(--radius-full);background:var(--color-danger);vertical-align:middle;flex-shrink:0;width:8px;height:8px;display:inline-block}body{background:var(--color-surface-page);color:#333;min-height:100vh;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;transition:padding-left .3s}.container{background:var(--color-surface,white);min-height:100vh;padding:var(--space-6,24px) var(--space-8,32px);border-left:1px solid var(--color-border-light,#f0f0f0);position:relative}.container:before{content:"";background:var(--color-primary-gradient);height:3px;position:absolute;top:0;left:0;right:0}.status-strip{align-items:center;gap:var(--space-3,12px);padding:var(--space-2,8px) var(--space-8,32px);margin:calc(-1 * var(--space-6,24px)) calc(-1 * var(--space-8,32px)) var(--space-4,16px);margin-top:calc(-1 * var(--space-6,24px) + 3px);background:var(--color-surface-secondary,#f8f9fa);border-bottom:1px solid var(--color-border-light,#f0f0f0);pointer-events:none;flex-wrap:wrap;display:flex}.status-strip-name{font-size:var(--text-sm);color:#444;white-space:nowrap;text-overflow:ellipsis;max-width:160px;padding:2px var(--space-1,4px);border-radius:var(--radius-sm);cursor:pointer;pointer-events:auto;background:0 0;border:0;flex-shrink:0;font-family:inherit;font-weight:600;transition:background .15s,color .15s;overflow:hidden}.status-strip-name:disabled{cursor:default;pointer-events:none}.status-strip-name:hover,.status-strip-name:focus-visible{color:var(--color-text-primary);background:#0000000f;text-decoration:underline}.status-strip-name:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.status-strip-text{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;font-weight:500}.status-strip-timer-host{display:contents}.strip-timer{align-items:center;gap:var(--space-2,8px);min-width:0;padding:2px var(--space-2,8px);border:1px solid var(--color-border-control);border-radius:var(--radius-full);background:var(--color-surface);font-size:var(--text-xs);pointer-events:auto;display:flex}.strip-timer-dot{border-radius:var(--radius-full);background:var(--color-danger);flex-shrink:0;width:8px;height:8px}.strip-timer-time{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-primary);flex-shrink:0;font-weight:700}.strip-timer-subject{min-width:0;max-width:200px;color:var(--color-text-secondary);white-space:nowrap;display:flex}.strip-timer-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.strip-timer-stage{text-overflow:ellipsis;flex-shrink:0;max-width:100%;overflow:hidden}.strip-timer-confirm{color:var(--color-text-primary);flex-shrink:0;font-weight:600}.strip-timer-btn{padding:2px var(--space-2,8px);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:var(--text-xs);cursor:pointer;flex-shrink:0;line-height:1.6}.strip-timer-btn:hover{background:var(--color-surface-secondary)}.strip-timer-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.strip-timer-btn-stop{border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.strip-timer-btn-ghost{color:var(--color-text-secondary);font-size:var(--text-sm);border-color:#0000}.strip-timer-btn-ghost:hover{color:var(--color-danger-dark)}.strip-timer-btn-danger{border-color:var(--color-danger-dark);color:var(--color-danger-dark);font-weight:600}.stage-bar{border-radius:var(--radius-sm);background:var(--color-border-light,#f0f0f0);flex:1;min-width:0;height:28px;display:flex;overflow:hidden}.status-strip:has(.strip-timer) .stage-bar{flex-basis:100%}.stage-cell{min-width:0;font:inherit;text-align:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;border-right:1px solid #0000001f;flex-direction:column;flex:1;padding:0;display:flex;position:relative}.stage-cell:last-child{border-right:none}.stage-cell:hover,.stage-cell[data-tooltip-open]{background:#0000001f}.stage-cell:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.stage-cell-empty{background:var(--color-border-light,#f0f0f0);cursor:default}.stage-blocks{flex:1;align-items:stretch;gap:1px;padding:2px;display:flex}.stage-block{border-radius:1px;flex:1;min-width:0;transition:background .2s}.stage-block.beyond{opacity:.45}.stage-block.empty{background:#0000000f}.stage-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;padding-bottom:2px;font-weight:600;line-height:1;overflow:hidden}.stage-cell:hover .stage-label,.stage-cell[data-tooltip-open] .stage-label{color:var(--color-text-primary)}@media (width<=768px){.status-strip{gap:var(--space-sm);margin-left:calc(-1 * var(--space-md));margin-right:calc(-1 * var(--space-md));margin-top:calc(-1 * var(--space-md) + 3px);flex-wrap:wrap;overflow:hidden}.status-strip-name{max-width:100px}.stage-bar{flex-basis:100%;min-width:0;height:44px}.stage-bar-empty,.stage-label{display:none}.strip-timer-subject{max-width:110px}.strip-timer-btn{padding:var(--space-2,8px) var(--space-3,12px)}}.tabs{margin-bottom:var(--space-xl);border-bottom:2px solid #e0e0e0;gap:10px;display:flex}.main-tabs{justify-content:space-between;align-items:center}.main-tabs-left{gap:10px;display:flex}.tab-btn{color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:12px 24px;font-weight:600;transition:all .3s}.tab-btn:hover{color:var(--color-primary,#4a5aad);background:var(--color-primary-alpha-08,#667eea0d)}.tab-btn.active{color:var(--color-primary,#4a5aad);border-bottom-color:var(--color-primary,#4a5aad)}.logout-btn{color:#495057;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;background:#f1f3f5;border:1px solid #dee2e6;padding:8px 16px;font-weight:600;transition:all .2s}.logout-btn:hover{color:#212529;background:#e9ecef;border-color:#ced4da}.tab-content{display:none}.tab-content.active{display:block}.sub-tabs{margin-top:20px;margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.sub-tabs-left{gap:10px;display:flex}.generate-color-card-btn,a.generate-color-card-btn{background:var(--color-primary-gradient,linear-gradient(135deg, #4a5aad 0%, #5e3d8a 100%));color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-brand-md);border:none;padding:10px 20px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-block}a.generate-color-card-btn{border:none}.generate-color-card-btn:hover,a.generate-color-card-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.generate-color-card-btn:active,a.generate-color-card-btn:active{transform:translateY(0)}.sub-tab-content{display:none}.sub-tab-content.active{display:block}.inner-tabs{scrollbar-width:thin;border-bottom:2px solid #e0e0e0;gap:0;margin-bottom:16px;padding:0 4px;display:flex;overflow-x:auto}.inner-tab{color:#888;font-size:var(--text-base);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-weight:600;transition:all .2s}.inner-tab:hover{color:var(--color-primary,#4a5aad);background:var(--color-primary-alpha-08,#667eea0d)}.inner-tab.active{color:var(--color-primary,#4a5aad);border-bottom-color:var(--color-primary,#4a5aad)}@media (width<=768px){.inner-tab{min-height:44px;padding:12px 16px}}.inner-pane{display:none}.inner-pane.active{display:block}.models-panel{z-index:10000;background:#fff;border-right:2px solid #e0e0e0;flex-direction:column;width:300px;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0;overflow:hidden;transform:translate(-100%);box-shadow:2px 0 15px #0000001a}.models-panel.resizing{transition:none}.models-panel.open{transform:translate(0)}.models-tab-btn{padding:10px var(--space-md);color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer;text-align:center;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;margin-bottom:-2px;font-weight:600;transition:all .3s}.models-tab-btn:hover{color:#4a5aad;background:#667eea0d}.models-tab-btn.active{color:#4a5aad;border-bottom-color:#4a5aad}#currentPalettesList{flex:none;min-height:0;padding:10px;overflow:visible}.model-image-placeholder{color:var(--color-text-helper);font-size:var(--text-base);text-align:center;padding:20px}.uploaded-image-item{border-radius:var(--radius-md);cursor:pointer;border:2px solid #e0e0e0;flex-shrink:0;width:100%;transition:all .2s;position:relative;overflow:hidden}.uploaded-image-item:hover{border-color:#4a5aad}.uploaded-image-item img{width:100%;height:auto;display:block}.uploaded-image-remove{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:20px;height:20px;font-size:var(--text-base);z-index:10;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .2s;display:none;position:absolute;top:4px;right:4px}.uploaded-image-item:hover .uploaded-image-remove{display:flex}.uploaded-image-remove:hover{box-shadow:var(--shadow-danger-sm);transform:scale(1.1)}.palette-item-row{border-radius:var(--radius-md);cursor:pointer;background:#f8f9fa;border:2px solid #0000;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;transition:all .2s;display:flex}.palette-item-row:hover{background:#e9ecef;border-color:#4a5aad;transform:translate(2px)}.palette-item-row.active{box-shadow:var(--shadow-brand-sm);background:linear-gradient(135deg,#667eea1a 0%,#764ba21a 100%);border-color:#4a5aad}.palette-item-content{flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.palette-item-image{border-radius:var(--radius-md);background:#f0f0f0;border:1px solid #e0e0e0;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;display:flex;overflow:hidden}.palette-item-image img{object-fit:cover;width:100%;height:100%;display:block}.palette-item-image-placeholder{font-size:var(--text-xs);color:var(--color-text-helper);text-align:center;padding:4px}.palette-item-name{color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.palette-item-count{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.palette-item-ghost-buttons{align-items:center;gap:8px;margin-left:auto;display:none}.palette-item-row:hover .palette-item-ghost-buttons{display:flex}.palette-ghost-btn{color:#4a5aad;cursor:pointer;font-size:var(--text-sm);white-space:nowrap;background:0 0;border:none;padding:0;font-style:italic;font-weight:400;text-decoration:underline;transition:all .2s}.palette-ghost-btn:hover{color:#5568d3;text-decoration-thickness:2px}.palette-rename-btn{color:#2196f3}.palette-rename-btn:hover{color:#1976d2}.palette-delete-btn{color:#f44336}.palette-delete-btn:hover{color:#d32f2f}.palette-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;display:flex}.palette-header h2{flex:1}.palette-header-actions{align-items:center;gap:var(--space-md);display:flex}.checkbox-label{cursor:pointer;font-size:var(--text-base);color:#333;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;accent-color:#4a5aad;width:18px;height:18px}.checkbox-label span{white-space:nowrap}.icon-btn{border-radius:var(--radius-md);cursor:pointer;color:#4a5aad;background:#fff;border:2px solid #4a5aad;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:all .2s;display:flex}.icon-btn:hover{color:#fff;box-shadow:var(--shadow-brand-sm);background:#4a5aad;transform:scale(1.05)}.icon-btn svg{width:20px;height:20px}.palette-controls{align-items:center;gap:var(--space-md);display:flex}.section-toolbar-actions{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.sort-order-select{padding:10px var(--space-md);border-radius:var(--radius-md);background:#fff;border:2px solid #e0e0e0}.project-switcher{border-bottom:1px solid var(--color-surface-dark-border);align-items:center;gap:4px;margin-bottom:4px;padding:12px 44px 8px 12px;display:flex}.project-switcher-btn{justify-content:space-between;align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-dark-light);font-size:var(--text-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;flex:1;min-width:0;padding:8px 10px;font-weight:600;transition:all .15s;display:flex}.project-switcher-btn:hover{background:#ffffff1a;border-color:#ffffff26}.project-switcher-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-switcher-arrow{font-size:var(--text-xs);opacity:.6;flex-shrink:0}.project-thumb{border-radius:var(--radius-md);width:36px;height:36px;font-size:var(--text-base);color:var(--color-text-dark-muted);cursor:pointer;background:#ffffff1a 50%/cover;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;transition:all .15s;display:flex;overflow:hidden}.project-thumb:hover{background-color:#ffffff26}.project-progress{gap:var(--space-sm);align-items:center;padding:0 12px 8px;display:none}.project-progress .gp-bar{border-radius:var(--radius-xs);background:#ffffff1a;flex:1;height:6px;overflow:hidden}.project-progress .gp-bar.gp-bar-empty{background:0 0;border:1px dashed #fff3;overflow:visible}.project-progress .gp-fill{background:var(--color-primary);border-radius:var(--radius-xs);height:100%;transition:width .3s}.project-progress .gp-text{font-size:var(--text-xs);color:var(--color-text-dark-muted);white-space:nowrap}.nav-sidebar.collapsed .project-progress{display:none!important}.project-dropdown{background:var(--color-surface-dark-elevated);border-radius:var(--radius-md);z-index:100;border:1px solid #ffffff29;max-height:300px;padding:4px;display:none;position:absolute;top:60px;left:8px;right:8px;overflow-y:auto;box-shadow:0 12px 32px #00000080}.project-dropdown.visible{display:block}.tree-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 8px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-dark-base);font-size:var(--text-sm);min-height:32px;transition:background .12s;display:flex}.tree-item:hover{background:var(--color-primary-alpha-12)}.tree-new{align-items:center;gap:var(--space-sm);width:100%;min-height:32px;padding:var(--space-sm) 8px;border:none;border-top:1px solid var(--color-surface-dark-border);color:var(--color-text-dark-light);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;margin-top:4px;font-weight:600;transition:background .12s;display:flex}.tree-new:hover,.tree-new:focus-visible{background:var(--color-primary-alpha-12)}.tree-new-plus{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;width:18px;height:18px;font-size:var(--text-base);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.tree-arrow{width:12px;font-size:var(--text-xs);text-align:center;opacity:.5;flex-shrink:0}.tree-icon{font-size:var(--text-sm);flex-shrink:0}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-actions{flex-shrink:0;gap:2px;display:none}.tree-item:hover .tree-actions,.tree-item:focus-within .tree-actions{display:flex}.tree-action{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-xs);background:#ffffff14;border:none;justify-content:center;align-items:center;transition:all .12s;display:flex;position:relative}.tree-action:after{content:"";min-width:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tree-action:hover,.tree-action:focus-visible{color:var(--color-text-dark-light);background:#ffffff26}.tree-action-danger:hover,.tree-action-danger:focus-visible{background:var(--color-danger-alpha-10);color:var(--color-danger)}.nav-sidebar.collapsed .project-switcher{justify-content:center;padding:44px 8px 8px}.nav-sidebar.collapsed .project-switcher-btn{display:none}.nav-sidebar.collapsed .project-thumb{width:40px;height:40px}.nav-sidebar{width:var(--sidebar-width);background:var(--color-surface-dark);height:100vh;color:var(--color-text-dark-light);z-index:9999;flex-direction:column;transition:width .25s;display:flex;position:fixed;top:0;left:0;overflow:hidden}.nav-sidebar.collapsed{width:var(--sidebar-width-collapsed)}.nav-sidebar-inner{flex-direction:column;flex:1;padding:16px 0;display:flex;overflow-y:auto}.nav-group{margin-bottom:4px}.nav-beta{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:10px;margin-bottom:4px;padding:8px 16px;display:flex}.nav-beta:hover .nav-beta-note{color:var(--color-text-dark-light)}.nav-beta:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-md)}.nav-beta-pill{border-radius:var(--radius-full);color:#3a2408;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.6px;text-shadow:0 1px #ffffff40;background:linear-gradient(135deg,#f3d19a 0%,#d99a54 45%,#b56f2f 100%);border:1px solid #ffe7b3b3;flex-shrink:0;padding:3px 10px;font-weight:800;line-height:1.4;box-shadow:0 0 0 1px #0003,0 1px 4px #00000059,0 0 10px #e0a86073}.nav-beta-note{font-size:var(--text-xs);color:var(--color-text-dark-muted);white-space:normal;line-height:1.3}.nav-sidebar.collapsed .nav-beta{justify-content:center;padding:8px 2px}.nav-sidebar.collapsed .nav-beta-pill{letter-spacing:0;padding:2px 5px}.nav-group-header{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:8px 16px 4px;transition:color .15s;display:flex}.nav-group-title-text{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-text-dark-muted);white-space:nowrap;font-weight:700;overflow:hidden}.nav-group-header:hover .nav-group-title-text{color:var(--color-text-dark-light)}.nav-group-chevron{font-size:var(--text-xs);color:var(--color-text-dark-muted);flex-shrink:0;transition:transform .2s}.nav-group-header[aria-expanded=false] .nav-group-chevron{transform:rotate(-90deg)}.nav-group-items{opacity:1;max-height:500px;transition:max-height .25s,opacity .2s;overflow:hidden}.nav-group-header[aria-expanded=false]+.nav-group-items{opacity:0;visibility:hidden;pointer-events:none;max-height:0}.nav-group-header[aria-expanded=true]+.nav-group-items{visibility:visible;pointer-events:auto}.nav-group-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-text-dark-muted);white-space:nowrap;padding:8px 16px 4px;font-weight:700;overflow:hidden}.nav-sidebar.collapsed .nav-group-header{visibility:hidden;height:0;margin:0;padding:0;overflow:hidden}.nav-sidebar.collapsed .nav-group-items{opacity:1!important;visibility:visible!important;pointer-events:auto!important;max-height:500px!important}.nav-sidebar.collapsed .nav-group-title{visibility:hidden;height:0;margin:0;padding:0}.nav-item{width:100%;color:var(--color-text-dark-base);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 16px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--color-primary-alpha-12);color:var(--color-text-dark-hover)}.nav-item.active{background:var(--color-primary-alpha-20);color:var(--color-text-dark-hover);border-right:3px solid var(--color-accent-on-dark)}.nav-icon{font-size:var(--text-lg);flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.nav-icon svg{width:20px;height:20px}.nav-label{text-overflow:ellipsis;overflow:hidden}.nav-sidebar.collapsed .nav-label{display:none}.nav-sidebar-footer{border-top:1px solid var(--color-surface-dark-border);margin-top:auto;padding-top:8px}.nav-lang-switcher{align-items:center;gap:10px;padding:6px 16px;display:flex}.nav-lang-select{min-width:0;color:var(--color-text-dark-base);font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;flex:1;padding:4px 6px}.nav-lang-select:hover{background:#ffffff26}.nav-lang-select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-sidebar.collapsed .nav-lang-switcher{display:none}.nav-logout{color:var(--color-text-dark-secondary)}.nav-logout:hover{color:var(--color-danger);background:var(--color-danger-alpha-10)}.nav-collapse-btn{width:28px;height:28px;color:var(--color-text-dark-muted);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xs);background:#ffffff14;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:12px;right:8px}.nav-collapse-btn:hover{color:#fff;background:#ffffff26}.nav-collapse-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--color-primary-alpha-15)}.nav-sidebar.collapsed .nav-collapse-btn{right:50%;transform:translate(50%)rotate(180deg)}body{padding-left:var(--sidebar-width)!important}body.sidebar-collapsed{padding-left:var(--sidebar-width-collapsed)!important}.main-tabs,.sub-tabs{display:none!important}.planning-mode-btn{color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:0 0;padding:8px 16px;font-weight:500;transition:all .2s}.planning-mode-btn:hover{background:var(--color-primary-alpha-08);border-color:var(--color-primary-dark);color:var(--color-primary-dark);transform:translateY(-1px)}.planning-add-btn{color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:0 0;padding:10px 20px;font-weight:500;transition:all .2s}.planning-add-btn:hover{background:var(--color-primary-alpha-08);border-color:var(--color-primary-dark);color:var(--color-primary-dark);transform:translateY(-1px)}.custom-mix-btn{color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:0 0;padding:8px 16px;font-weight:500;transition:all .2s}.custom-mix-btn:hover{background:var(--color-primary-alpha-08);border-color:var(--color-primary-dark);color:var(--color-primary-dark);transform:translateY(-1px)}.add-color-btn{color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:0 0;padding:12px 24px;font-weight:500;transition:all .2s}.add-color-btn:hover{background:var(--color-primary-alpha-08);border-color:var(--color-primary-dark);color:var(--color-primary-dark);transform:translateY(-1px)}.show-wheel-btn{color:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:all .2s;display:flex}.show-wheel-btn-text{white-space:nowrap}.show-wheel-btn svg{flex-shrink:0;width:20px;height:20px}.show-wheel-btn:hover{background:var(--color-primary-alpha-08);border-color:var(--color-primary-dark);color:var(--color-primary-dark);transform:translateY(-1px)}.show-wheel-btn:active{transform:translateY(0)}.btn-filled-secondary{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;border:none;padding:10px 20px;font-weight:600;transition:all .2s}.btn-filled-secondary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-brand-sm);transform:translateY(-1px)}.btn-filled-secondary:active{transform:translateY(0)}.btn-filled-secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--color-primary-alpha-25)}.btn-outline-secondary{color:var(--color-primary);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;background:0 0;padding:10px 20px;font-weight:600;transition:background .2s,transform .2s}.btn-outline-secondary:hover{background:var(--color-primary-alpha-08);transform:translateY(-1px)}.btn-outline-secondary:active{transform:translateY(0)}.btn-outline-secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--color-primary-alpha-25)}.clear-btn{background:var(--color-danger);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;border:none;padding:12px 24px;font-weight:600;transition:background .2s}.clear-btn:hover{background:var(--color-danger-dark)}.planning-use-color-btn{background:var(--color-primary-gradient);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;box-shadow:var(--shadow-brand-sm);border:none;padding:12px 40px;font-weight:600;transition:all .2s}.planning-use-color-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.planning-mode-btn:focus-visible,.planning-add-btn:focus-visible,.custom-mix-btn:focus-visible,.add-color-btn:focus-visible,.show-wheel-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--color-primary-alpha-25)}.table-container{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);position:relative;overflow:auto visible}#productsTable{border-collapse:collapse;background:#fff;width:100%}#productsTable thead{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}#productsTable th{padding:var(--space-md);text-align:left;font-weight:600}#productsTable td{padding:12px var(--space-md);border-bottom:1px solid #e0e0e0}#productsTable tbody tr:hover,#productsTable tbody tr:focus-within{background:#f8f9fa}.empty-state{flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;padding:48px 20px;display:flex}.empty-state-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3,12px);opacity:.35;line-height:1}.empty-state-title{font-size:var(--text-lg);color:#444;margin:0 0 var(--space-1,4px) 0;font-weight:600}.empty-state-hint{font-size:var(--text-base);color:var(--color-text-helper);margin:0 0 var(--space-4,16px) 0}.empty-state-action{margin-top:var(--space-2,8px)}.empty-state-steps{gap:var(--space-3,12px);margin-top:var(--space-4,16px);text-align:left;flex-direction:column;width:100%;max-width:320px;display:flex}.empty-state-step{align-items:flex-start;gap:var(--space-3,12px);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.4;display:flex}.empty-state-step-num{border-radius:var(--radius-full);background:var(--color-primary-alpha-12,#667eea1f);width:24px;height:24px;color:var(--color-primary,#4a5aad);font-weight:700;font-size:var(--text-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.empty-state-step-text{padding-top:2px}.form-group input[type=text],.form-group input[type=color]{border-radius:var(--radius-md);width:100%;font-size:var(--text-base);border:2px solid #e0e0e0;outline:none;padding:10px 12px;font-family:inherit;transition:border-color .2s}.form-group input[type=text]:focus{border-color:#4a5aad;box-shadow:0 0 0 3px #667eea1a}.form-group input[type=text]::placeholder{color:var(--color-text-helper)}.cancel-btn{color:#333;background:#e0e0e0}.color-box{z-index:1;border-radius:var(--radius-sm);border:2px solid #e0e0e0;width:50px;height:50px;display:inline-block;position:relative}.color-tooltip{z-index:100001!important}.paint-name{color:#333;font-weight:500;display:block}.paint-type{color:var(--color-text-secondary);margin-top:2px;font-size:.5em;font-style:italic;display:block}.paint-swatch{--paint-swatch-color:transparent;background:0 0;position:relative;overflow:hidden}.paint-swatch-underlay,.paint-swatch-fill,.paint-swatch-contrast-grid,.paint-swatch-effect-word,.paint-swatch-type-icon{pointer-events:none;position:absolute;inset:0}.paint-swatch-underlay{background:0 0;place-items:center;display:grid}.paint-swatch-fill{background:var(--paint-swatch-color)}.paint-swatch-metallic .paint-swatch-fill{background:linear-gradient(135deg, #ffffffb8 0%, #ffffff29 22%, #00000042 43%, #ffffff94 55%, #00000047 74%, #fff3 100%), var(--paint-swatch-color)}.paint-swatch-transparent .paint-swatch-underlay{background-color:#7c8797;background-image:linear-gradient(45deg,#ffffffb8 25%,#0000 25%),linear-gradient(-45deg,#ffffffb8 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ffffffb8 75%),linear-gradient(-45deg,#0000 75%,#ffffffb8 75%),none;background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box}.paint-swatch-transparent .paint-swatch-fill{background:var(--paint-swatch-color);opacity:.62}.paint-swatch-wash .paint-swatch-underlay{background:#d6d8dc}.paint-swatch-wash .paint-swatch-fill{background:linear-gradient(180deg, color-mix(in srgb, var(--paint-swatch-color) 4%, transparent) 0%, color-mix(in srgb, var(--paint-swatch-color) 18%, transparent) 38%, color-mix(in srgb, var(--paint-swatch-color) 58%, transparent) 55%, var(--paint-swatch-color) 70%, color-mix(in srgb, var(--paint-swatch-color) 58%, black) 100%)}.paint-swatch-ink .paint-swatch-underlay{background:linear-gradient(90deg,#ff007042,#00c2ff3d,#ffd90038)}.paint-swatch-ink-word{color:#0000;letter-spacing:0;text-shadow:0 1px 1px #00000059;text-transform:lowercase;white-space:nowrap;background:linear-gradient(90deg,#ff005d,#00a9ff,#ffd000,#7cff45);-webkit-background-clip:text;background-clip:text;font-size:min(42%,14px);font-weight:900;line-height:1}.paint-swatch-ink .paint-swatch-fill{background:var(--paint-swatch-color);opacity:.68}.paint-swatch-contrast .paint-swatch-fill{background:radial-gradient(circle at center, #00000073 0 32%, transparent 54%), linear-gradient(135deg, #ffffff3d, transparent 30% 70%, #fff3), var(--paint-swatch-color)}.paint-swatch-contrast-grid{--contrast-tile:32px;background:repeating-linear-gradient(90deg, #ffffff4d 0 1px, transparent 1px var(--contrast-tile)), repeating-linear-gradient(0deg, #ffffff4d 0 1px, transparent 1px var(--contrast-tile)), linear-gradient(135deg, #ffffff2e, transparent 45% 58%, #00000038), var(--paint-swatch-color);background-size:var(--contrast-tile) var(--contrast-tile), var(--contrast-tile) var(--contrast-tile), var(--contrast-tile) var(--contrast-tile), auto;border:2px solid #ffffff61}.paint-swatch-effect .paint-swatch-fill{background:linear-gradient(135deg, #ffffff57 0 16%, transparent 17% 58%, #0000003d 59% 100%), radial-gradient(circle at 72% 28%, #ffffff8f 0 11%, transparent 12%), var(--paint-swatch-color)}.paint-swatch-effect-word{color:#fffffff5;letter-spacing:0;text-shadow:0 1px 1px #000000b8;text-transform:lowercase;place-items:start end;padding:3px;font-size:min(38%,13px);font-weight:900;line-height:1;display:grid}.paint-swatch-type-icon{color:#fffffff0;filter:drop-shadow(0 1px 1px #000000a6);justify-content:flex-end;align-items:flex-end;display:flex}.paint-swatch-type-icon .icon{width:min(44%,28px);height:min(44%,28px);margin:3px;display:block}.paint-swatch-gradient-active .paint-swatch-underlay,.paint-swatch-gradient-active .paint-swatch-fill,.paint-swatch-gradient-active .paint-swatch-contrast-grid,.paint-swatch-gradient-active .paint-swatch-effect-word,.paint-swatch-gradient-active .paint-swatch-type-icon{opacity:0}.pp-img-picker-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pp-img-picker-modal{background:var(--bg-primary,#fff);border-radius:var(--radius-md);box-shadow:var(--shadow-lg,0 8px 32px #0003);flex-direction:column;width:min(540px,92vw);max-height:80vh;display:flex;overflow:hidden}.pp-img-picker-title{font-size:var(--text-base);border-bottom:1px solid var(--border-color,#e0e0e0);flex-shrink:0;margin:0;padding:16px 16px 12px;font-weight:600}.pp-img-picker-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;padding:14px;display:grid;overflow-y:auto}.pp-img-picker-thumb{background:var(--bg-secondary,#f5f5f5);border-radius:var(--radius-md);cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:6px;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.pp-img-picker-thumb:hover{border-color:var(--accent-color,#4a90d9);background:var(--bg-primary,#fff)}.pp-img-picker-thumb img{object-fit:cover;border-radius:calc(var(--radius-md) - 2px);width:100%;height:90px;display:block}.pp-img-picker-label{font-size:var(--text-xs);color:var(--color-text-secondary,#666);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.pp-img-picker-footer{border-top:1px solid var(--border-color,#e0e0e0);flex-shrink:0;justify-content:flex-end;padding:10px 14px;display:flex}.pp-img-picker-cancel{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary,#f5f5f5);border:1px solid var(--border-color,#ddd);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary,#333)}.pp-img-picker-cancel:hover{background:var(--bg-hover,#eee)}.quality-excellent{color:#2e7d32;background:#e8f5e9}.quality-good{color:#1565c0;background:#e3f2fd}.quality-fair{color:#f57f17;background:#fff8e1}.quality-approx{color:#c62828;background:#fce4ec}.cc-dialog-backdrop{--cc-dialog-bg:var(--color-surface-dark);--cc-dialog-input-bg:#2a2a3e;--cc-dialog-text:#e0e0e0;z-index:100002;background:#0009;justify-content:center;align-items:center;padding:16px;animation:.12s cc-backdrop-in;display:flex;position:fixed;inset:0}@keyframes cc-backdrop-in{0%{opacity:0}to{opacity:1}}.cc-dialog{background:var(--cc-dialog-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);border:1px solid #ffffff1f;width:100%;min-width:280px;max-width:420px;max-height:calc(100vh - 32px);padding:20px 24px;animation:.14s cubic-bezier(.22,1,.36,1) cc-dialog-in;overflow-y:auto}@keyframes cc-dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.cc-dialog-message{color:var(--cc-dialog-text);font-size:var(--text-base);overflow-wrap:break-word;word-break:break-word;margin:0 0 16px;line-height:1.5;display:block}.cc-dialog-input{background:var(--cc-dialog-input-bg);border-radius:var(--radius-sm);width:100%;color:var(--cc-dialog-text);font-size:var(--text-base);box-sizing:border-box;border:1px solid #ffffff2e;margin-top:8px;padding:8px 10px;display:block}.cc-dialog-input:focus{border-color:#ffffff73;outline:none}.cc-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.cc-dialog-btn{border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;border:none;padding:7px 16px;font-weight:500;transition:opacity .15s,background .15s}.cc-dialog-btn:focus-visible{outline-offset:2px;outline:2px solid #ffffff80}.cc-dialog-btn:disabled{opacity:.45;cursor:not-allowed}.cc-dialog-confirm{color:#fff;background:#ffffff2e}.cc-dialog-confirm:hover{background:#ffffff47}.cc-dialog-danger{color:#fff;background:#c0392b}.cc-dialog-danger:hover{background:#e74c3c}.cc-dialog-cancel{color:#ffffffa6;background:0 0;border:1px solid #ffffff2e}.cc-dialog-cancel:hover{color:var(--cc-dialog-text);background:#ffffff14}.cc-dialog-choice-list{gap:10px;margin-bottom:16px;display:grid}.cc-dialog-choice{width:100%;color:var(--cc-dialog-text);text-align:left;background:#ffffff24;padding:12px 16px}.cc-dialog-choice:hover{background:#ffffff3d}.cc-paint-choice-dialog{width:min(440px,100vw - 32px)}.cc-paint-choice-list{gap:var(--space-sm);margin:0 0 var(--space-lg);max-height:min(50vh,360px);display:grid;overflow-y:auto}.cc-paint-choice{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-md);color:var(--cc-dialog-text);cursor:pointer;border:1px solid #ffffff24;grid-template-columns:auto 28px minmax(0,1fr);display:grid}.cc-paint-choice:first-child{grid-template-columns:auto minmax(0,1fr)}.cc-paint-choice:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-alpha-15)}.cc-paint-choice-swatch{border-radius:var(--radius-sm);border:1px solid #ffffff40;width:28px;height:28px}.cc-paint-choice-text{overflow-wrap:anywhere;min-width:0}.legacy-palette-anchors{display:none}.upload-section{justify-content:center;margin-bottom:24px;display:flex}.drop-zone{border:2px dashed var(--color-primary-alpha-30,#667eea4d);border-radius:var(--radius-lg);background:var(--color-primary-alpha-08,#667eea14);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;max-width:600px;padding:40px 24px;transition:all .2s;display:flex}.drop-zone:hover{border-color:var(--color-primary-alpha-50,#667eea80);background:var(--color-primary-alpha-12,#667eea1f)}.drop-zone.drag-over{border-color:var(--color-primary,#4a5aad);background:var(--color-primary-alpha-15,#667eea26);border-style:solid}.drop-zone-icon{color:var(--color-primary,#4a5aad);opacity:.6;transition:opacity .2s}.drop-zone:hover .drop-zone-icon,.drop-zone.drag-over .drop-zone-icon{opacity:1}.drop-zone-text{font-size:var(--text-base);color:var(--color-primary-dark,#5568d3);font-weight:600}.drop-zone-hint{font-size:var(--text-sm);color:var(--color-primary-alpha-50,#667eea80)}.drop-zone-hint u{-webkit-text-decoration-color:var(--color-primary-alpha-30,#667eea4d);text-decoration-color:var(--color-primary-alpha-30,#667eea4d)}.drop-zone-formats{font-size:var(--text-xs);color:#aaa;margin-top:4px}.image-section{margin-bottom:var(--space-xl)}.canvas-container{border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-width:100%;padding-top:48px;display:inline-block;position:relative;overflow:visible}.close-image-btn{border-radius:var(--radius-full);color:#fff;width:32px;height:32px;font-size:var(--text-xl);cursor:pointer;z-index:100;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .2s;display:flex;position:absolute;top:-10px;right:-10px}.close-image-btn:hover{box-shadow:var(--shadow-md);transform:scale(1.1)}#imageCanvas{cursor:crosshair;max-width:100%;height:auto;display:block}.cursor-info{color:#fff;border-radius:var(--radius-sm);font-size:var(--text-base);pointer-events:none;background:#000000b3;padding:8px 12px;display:none;position:absolute;top:10px;left:10px}.instructions{text-align:center;margin-top:var(--space-md);color:var(--color-text-secondary);font-style:italic}.contextual-toolbar{z-index:200;background:var(--color-surface,white);border-radius:var(--radius-md);width:max-content;max-width:min(340px,100vw - 16px);box-shadow:var(--shadow-md);padding:var(--space-sm);gap:var(--space-sm);pointer-events:auto;flex-direction:column;align-items:stretch;display:none;position:absolute}.contextual-toolbar.visible{display:flex}.ctx-head{align-items:center;gap:var(--space-sm);display:flex}.ctx-picked-hex{font-family:ui-monospace,monospace;font-size:var(--text-sm);color:var(--color-text-primary);font-weight:600}.contextual-toolbar .picker-source-toggle{background:var(--color-surface-secondary,#f8f9fa);align-self:flex-start}.contextual-toolbar .picker-source-option,.contextual-toolbar .picker-source-empty-hint{color:var(--color-text-secondary)}.contextual-toolbar .picker-source-option--active{color:#fff}.ctx-matches{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ctx-match-row{align-items:center;gap:var(--space-sm);display:flex}.ctx-match-info{flex-direction:column;flex:1;min-width:0;display:flex}.ctx-match-name,.ctx-match-producer{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ctx-match-name{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:600}.ctx-match-producer{font-size:var(--text-xs);color:var(--color-text-secondary)}.ctx-no-match{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.ctx-footer,.ctx-kebab-wrap{align-items:center;gap:var(--space-xs);display:flex}.ctx-btn-kebab{color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);background:0 0;line-height:1}.ctx-btn-kebab:hover{background:var(--color-surface-hover,#f0f0f0)}.ctx-btn-use,.ctx-btn-buy{background:var(--color-primary-gradient);color:#fff}.ctx-btn-buy{box-shadow:var(--shadow-sm)}.ctx-btn-more{color:var(--color-text-secondary);background:0 0;margin-left:auto}.ctx-btn-more:hover{background:var(--color-surface-hover,#f0f0f0)}.ctx-btn{padding:var(--space-sm) 12px;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;font-weight:600;transition:all .15s}.ctx-btn-save{background:var(--color-primary-gradient);color:#fff}.ctx-btn-save:hover{box-shadow:var(--shadow-brand-sm);transform:scale(1.05)}.ctx-btn-copy{color:#333;background:#f0f0f0}.ctx-btn-copy:hover{background:#e0e0e0}.ctx-picked-color{border-radius:var(--radius-md);width:40px;height:40px;box-shadow:var(--shadow-sm);border:2px solid #fff;flex-shrink:0}.ctx-match{border-radius:var(--radius-md);width:28px;height:28px;box-shadow:var(--shadow-xs);border:1px solid #fff9;flex-shrink:0}.color-value{align-items:center;gap:10px;display:flex}.color-value label{color:#555;min-width:50px;font-weight:600}.color-value input{border-radius:var(--radius-sm);font-size:var(--text-base);border:2px solid #e0e0e0;flex:1;padding:10px;font-family:Courier New,monospace}.color-value input:focus{border-color:#4a5aad;outline:none}.copy-btn{padding:10px var(--space-md);color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#4a5aad;border:none;font-weight:600;transition:background .2s}.copy-btn:hover{background:#5568d3}.save-btn{padding:var(--space-md) var(--space-xl);color:#fff;border-radius:var(--radius-md);font-size:var(--text-lg);cursor:pointer;box-shadow:var(--shadow-brand-md);white-space:nowrap;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;flex:none;justify-content:center;align-self:stretch;align-items:center;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex}.save-btn:hover{box-shadow:var(--shadow-brand-lg);transform:translateY(-2px)}.save-btn:active{transform:translateY(0)}.palette-section-wrapper{margin-top:40px}.palette-section{flex:1;min-width:0}.palette-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:20px;display:grid}.palette-clear-btn{border-radius:var(--radius-sm);color:var(--color-text-helper);font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #fff3;min-height:36px;margin:0 0 12px auto;padding:5px 14px;transition:background .15s,color .15s;display:block}.palette-clear-btn:hover{color:var(--color-text);background:#ffffff14}@media (width<=768px){.palette-clear-btn{width:100%;min-height:44px;margin:0 0 12px}}.floating-color-wheel{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:9000;cursor:move;-webkit-user-select:none;user-select:none;background:#fff;min-width:300px;position:fixed;top:100px;left:100px}.floating-wheel-header{padding:var(--space-md) 20px;color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:move;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);justify-content:space-between;align-items:center;font-weight:600;display:flex}.close-wheel-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-xl);z-index:1;pointer-events:auto;background:#fff3;border:none;justify-content:center;align-items:center;line-height:1;transition:background .2s;display:flex;position:relative}.color-wheel-container{border-radius:0 0 var(--radius-lg) var(--radius-lg);background:#f8f9fa;padding:20px}.value-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.range-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.value-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.range-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.color-wheel-wrapper>canvas{touch-action:none}.palette-item.dragging{opacity:.4;transform:scale(.95)}.palette-item.drag-over{transform:translateY(-3px)scale(1.02);box-shadow:0 0 0 3px #4a5aad}.empty-message{text-align:center;color:var(--color-text-helper);grid-column:1/-1;padding:40px;font-style:italic}.palette-lib-modal{z-index:100000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.palette-lib-modal.active{display:flex}.palette-lib-modal-content{border-radius:var(--radius-lg);width:90%;max-width:900px;max-height:85vh;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex}.palette-lib-header{padding:20px var(--space-lg);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);justify-content:space-between;align-items:center;display:flex}.palette-lib-header h2{font-size:var(--text-xl);margin:0}.palette-lib-close{color:#fff;border-radius:var(--radius-full);width:35px;height:35px;font-size:var(--text-xl);cursor:pointer;background:#fff3;border:none;justify-content:center;align-items:center;transition:background .2s;display:flex}.palette-lib-close:hover{background:#ffffff4d}.palette-lib-body{flex:1;padding:20px;overflow-y:auto}.palette-lib-grid{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}.palette-lib-item{border-radius:var(--radius-md);cursor:pointer;background:#f8f9fa;border:2px solid #0000;padding:10px;transition:transform .2s,box-shadow .2s;position:relative}.palette-lib-item:hover{box-shadow:var(--shadow-brand-lg);border-color:#4a5aad;transform:translateY(-3px)}.palette-lib-colors{border-radius:var(--radius-md);gap:3px;height:50px;display:flex;overflow:hidden}.palette-lib-color-box{flex:1;min-width:0}.palette-lib-add-btn{border-radius:var(--radius-full);color:#fff;width:40px;height:40px;font-size:var(--text-xl);cursor:pointer;box-shadow:var(--shadow-success-md);opacity:0;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%);border:none;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.palette-lib-item:hover .palette-lib-add-btn{opacity:1;transform:translate(-50%,-50%)scale(1)}.palette-lib-add-btn:hover{box-shadow:var(--shadow-success-md);transform:translate(-50%,-50%)scale(1.1)}.palette-lib-tabs{border-bottom:2px solid var(--color-border);padding:0 var(--space-lg);background:#f8f9fa;gap:0;display:flex}.palette-lib-tab{padding:10px var(--space-lg);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-helper);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;font-weight:500;transition:color .15s,border-color .15s}.palette-lib-tab:hover{color:var(--color-text-primary)}.palette-lib-tab.active{color:#4a5aad;border-bottom-color:#4a5aad}.nmm-recipes-pane{gap:var(--space-md);flex-direction:column;display:flex}.nmm-metal-filter{gap:var(--space-sm);scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;padding-bottom:2px;display:flex;overflow-x:auto}.nmm-metal-filter::-webkit-scrollbar{display:none}.nmm-filter-btn{border:1.5px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;background:#fff;flex-shrink:0;padding:5px 14px;transition:border-color .15s,color .15s}.nmm-filter-btn:hover{color:#4a5aad;border-color:#4a5aad}.nmm-filter-btn.active{color:#4a5aad;border-color:#4a5aad;font-weight:600}.nmm-recipe-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.nmm-recipe-card{border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-sm);background:#f8f9fa;flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.nmm-recipe-card:hover{box-shadow:var(--shadow-brand-lg);border-color:#4a5aad}.nmm-recipe-header{align-items:center;gap:var(--space-sm);display:flex}.nmm-metal-badge{color:#fff;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-size:11px;font-weight:700}.nmm-recipe-name{font-size:var(--text-sm);color:var(--color-text-primary);flex:1;margin:0;font-weight:600}.nmm-recipe-style{margin-left:var(--space-xs);color:var(--color-text-helper);font-size:11px;font-style:italic;font-weight:500}.nmm-recipe-brand{font-size:var(--text-sm);color:var(--color-text-secondary)}.nmm-recipe-steps{border-radius:var(--radius-sm);border:1px solid var(--color-border);height:44px;display:flex;overflow:hidden}.nmm-recipe-step{cursor:default;flex:1;min-width:0}.nmm-recipe-notes{color:var(--color-text-helper);margin:0;font-size:12px;font-style:italic;line-height:1.5}.nmm-recipe-footer{padding-top:var(--space-xs);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.nmm-recipe-source{color:var(--color-text-helper);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;font-style:italic;overflow:hidden}.nmm-recipe-add-btn{color:#fff;border-radius:var(--radius-md);min-height:44px;font-size:var(--text-sm);cursor:pointer;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;padding:5px 14px;font-weight:500;transition:opacity .15s}.nmm-recipe-add-btn:hover{opacity:.88}.nmm-translate{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--color-border-subtle,#80808040)}.nmm-translate-label{align-items:center;gap:var(--space-xs);color:var(--color-text-helper);font-size:11px;display:flex}.nmm-translate-select{border:1px solid var(--color-border-subtle,#80808066);border-radius:var(--radius-sm);background:var(--color-bg-input,var(--color-bg-card,#1e1e26));min-width:0;min-height:32px;color:var(--color-text-primary);flex:1;padding:2px 6px;font-size:12px}.nmm-translate-rows{margin:var(--space-xs) 0 0;flex-direction:column;gap:3px;padding:0;list-style:none;display:flex}.nmm-translate-row{align-items:center;gap:var(--space-xs);font-size:12px;display:flex}.nmm-translate-role{color:var(--color-text-helper);text-transform:capitalize;flex:0 0 78px}.nmm-translate-paint{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--color-text-primary);flex:1;align-items:center;gap:5px;display:flex;overflow:hidden}.nmm-translate-swatch{border-radius:var(--radius-xs);border:1px solid #0000004d;flex:0 0 12px;width:12px;height:12px}.nmm-translate-none{color:var(--color-text-helper);font-style:italic}.nmm-translate-de{border-radius:var(--radius-sm);white-space:nowrap;flex:none;padding:1px 6px;font-size:11px;font-weight:600}.nmm-de-good{color:#4caf6a;background:#28a04638}.nmm-de-fair{color:#d8a93a;background:#c8961e38}.nmm-de-poor{color:#e0726f;background:#c83c3c38}.palette-grid-v2{grid-template-columns:repeat(3,1fr);gap:8px;max-width:1280px;margin:0 auto;display:grid}@media (width>=601px) and (width<=1023px){.palette-grid-v2{grid-template-columns:repeat(4,1fr);gap:12px}}@media (width>=1024px){.palette-grid-v2{grid-template-columns:repeat(6,1fr);gap:16px}}.palette-swatch{--palette-chip-h:40px;aspect-ratio:1;cursor:pointer;border-radius:8px;position:relative;overflow:hidden}.palette-swatch .paint-swatch-type-icon{bottom:calc(var(--palette-chip-h) + 8px)}.palette-swatch:hover{filter:brightness(1.05)}.palette-swatch:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px}.palette-swatch[data-locked=true]:focus-visible{outline-offset:4px}:root{--delta-tier-good:#4caf50;--delta-tier-okay:#ff9800;--delta-tier-poor:#e54040;--delta-tier-out:#e54040;--swatch-state-unassigned:#ffffff8c;--delta-tier-good-on-dark:#b6f4ba;--delta-tier-okay-on-dark:#ffd28a;--delta-tier-poor-on-dark:#ffb0b0;--delta-tier-out-on-dark:#ffb0b0}.palette-swatch:before{content:"";z-index:2;pointer-events:none;height:4px;position:absolute;top:0;left:0;right:0;box-shadow:inset 0 -1px #00000047}.palette-swatch[data-state=good]:before{background:var(--delta-tier-good)}.palette-swatch[data-state=okay]:before{background:var(--delta-tier-okay)}.palette-swatch[data-state=poor]:before,.palette-swatch[data-state=out]:before{background:var(--delta-tier-poor)}.palette-swatch[data-state=unassigned]:before{background:var(--swatch-state-unassigned)}.palette-swatch[data-locked=true]{box-shadow:0 0 0 2px var(--color-primary,#4f8cff)}.palette-chip{height:var(--palette-chip-h,40px);color:#fff;pointer-events:none;background:#0009;border-radius:4px;align-items:center;gap:6px;padding:0 8px;font-size:13px;font-weight:500;display:flex;position:absolute;bottom:8px;left:8px;right:8px;overflow:hidden}.palette-chip[data-text-color=dark]{color:#1a1a1a;background:#ffffffd9}.palette-chip--unassigned,.palette-chip[data-state=unassigned],.palette-chip--mix-empty{color:#fff;background:#404048eb}.palette-chip-brand{background:#fff3;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;display:inline-flex}.palette-chip[data-text-color=dark] .palette-chip-brand{background:#00000026}.palette-chip-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=600px){.palette-swatch{--palette-chip-h:28px}.palette-chip{font-size:12px}}.palette-delta{color:#fff;background:#000000b3;border-radius:9999px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.palette-delta[data-text-color=dark]{color:#1a1a1a;background:#ffffffe6}.palette-delta[data-tier=good] .palette-delta-shape{color:var(--delta-tier-good)}.palette-delta[data-tier=okay] .palette-delta-shape{color:var(--delta-tier-okay)}.palette-delta[data-tier=poor] .palette-delta-shape{color:var(--delta-tier-poor)}.palette-delta[data-tier=out] .palette-delta-shape{color:var(--delta-tier-out)}.palette-controls{opacity:0;pointer-events:none;z-index:3;background:linear-gradient(#000000a6,#0000);align-items:center;gap:4px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:4px;left:0;right:0}.palette-swatch:hover .palette-controls,.palette-swatch:focus-within .palette-controls,.palette-swatch[data-actions-open=true] .palette-controls{opacity:1;pointer-events:auto}.palette-control{color:#fff;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;background:#000000a6;border:0;border-radius:4px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.palette-control-delete:hover{background:#e54040}.palette-control-lock[aria-pressed=true]{background:#4f8cffd9}.palette-control-delta[data-tier=good]{color:var(--delta-tier-good-on-dark)}.palette-control-delta[data-tier=okay]{color:var(--delta-tier-okay-on-dark)}.palette-control-delta[data-tier=poor]{color:var(--delta-tier-poor-on-dark)}.palette-control-delta[data-tier=out]{color:var(--delta-tier-out-on-dark)}.palette-control-delta-shape{margin-right:5px;font-size:14px;line-height:1}.palette-control:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:1px}.palette-control-delta{margin-left:auto}@media (width<=600px){.palette-controls{background:linear-gradient(#0000008c,#0000);flex-wrap:wrap;row-gap:4px;padding:6px}.palette-control{min-width:44px;height:44px;font-size:14px}.palette-control-hex,.palette-control-delta{display:none}}.palette-readiness{max-width:1280px;color:var(--text-secondary,#4a4a6a);margin:0 auto 8px;font-size:13px;font-weight:600}.palette-readiness-row{justify-content:space-between;align-items:baseline;gap:12px;max-width:1280px;margin:0 auto 8px;display:flex}.palette-readiness-row .palette-readiness{margin:0}.palette-add-missing-btn{color:var(--color-primary,#4a5aad);cursor:pointer;text-underline-offset:2px;white-space:nowrap;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.palette-add-missing-btn:hover,.palette-add-missing-btn:focus-visible{color:var(--color-primary-hover,#3a4a9d)}.palette-paints-used{max-width:1280px;margin:16px auto 0}.palette-paints-used-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.palette-paints-used-title{color:var(--text-primary,#2a2a3a);margin:0;font-size:14px;font-weight:700}.palette-paints-used-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.palette-paint-used-row{background:var(--surface-subtle,#f5f5fa);border-radius:6px;align-items:center;gap:10px;padding:6px 8px;display:flex}.palette-paint-used-swatch{border:1px solid var(--border-subtle,#0000001f);background-image:linear-gradient(45deg, transparent 45%, var(--border-subtle,#0003) 45% 55%, transparent 55%);border-radius:4px;flex:none;width:20px;height:20px}.palette-paint-used-name{color:var(--text-primary,#2a2a3a);font-size:13px;font-weight:600}.palette-paint-used-meta{color:var(--text-secondary,#4a4a6a);font-size:12px}.palette-paint-used-count{color:var(--text-secondary,#4a4a6a);white-space:nowrap;margin-left:auto;font-size:12px}.palette-paint-used-badge{white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.palette-paint-used-badge.is-owned{color:var(--color-success-text,#1a7a4a);background:var(--color-success-bg,#e3f5ec)}.palette-paint-used-badge.is-buy{color:var(--color-warning-text,#8a5a00);background:var(--color-warning-bg,#fdf0d5)}.palette-toolbar{flex-wrap:wrap;align-items:center;gap:12px;max-width:1280px;margin:0 auto 12px;display:flex;position:relative}.palette-toolbar-left .filter-toggle-details{margin-bottom:0}.palette-toolbar-left .filter-toggle-details[open]{flex-basis:100%}.palette-section .filter-toggle-summary{border-radius:8px}.palette-toolbar-left{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.palette-from-collection-btn{margin-left:auto}.palette-toolbar-right{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.palette-toolbar-filters{flex-shrink:0}.palette-toolbar-filters-body,.palette-filter-strip,.palette-filter-bar,.palette-action-bar{display:none}.palette-sort-wrap{color:var(--text-secondary,#4a4a6a);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.palette-sort-label{font-weight:500}.palette-sort{appearance:none;color:var(--color-text-primary);cursor:pointer;background:#0000000a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1a2e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 8px center/12px no-repeat;border:1px solid #00000038;border-radius:9999px;padding:6px 28px 6px 12px;font-size:13px;font-weight:500}.palette-sort:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px}.palette-chip--mix{pointer-events:none;background:0 0;align-items:stretch;padding:0;display:flex;overflow:hidden}.palette-chip-recipe-stripe{flex:1;align-self:stretch;min-width:0;position:relative}.palette-chip-recipe-result{flex:1.6;align-self:stretch;min-width:0;margin-right:6px;position:relative}.palette-chip-recipe-stripe+.palette-chip-recipe-stripe:before,.palette-chip-recipe-result+.palette-chip-recipe-stripe:before{color:#fff;text-align:center;pointer-events:none;z-index:1;background:#000000c7;border-radius:50%;width:22px;height:22px;font-size:16px;font-weight:700;line-height:22px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px #ffffffd9}.palette-chip-recipe-stripe+.palette-chip-recipe-stripe:before{content:"+"}.palette-chip-recipe-result+.palette-chip-recipe-stripe:before{content:"="}.palette-chip-recipe-coefficient{color:#fff;text-shadow:0 0 2px #000000d9,0 1px 2px #000000d9;opacity:0;pointer-events:none;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;transition:opacity .15s;position:absolute;bottom:2px;right:4px}.palette-swatch:hover .palette-chip-recipe-coefficient,.palette-swatch:focus-within .palette-chip-recipe-coefficient{opacity:1;transition:opacity .15s .1s}@media (width<=600px){.palette-chip-recipe-coefficient{opacity:.85}}.palette-filter-showing{color:#ffffffa6;font-size:13px}.palette-unassigned-pill{cursor:pointer;color:var(--color-text-primary);min-height:36px;transition:background var(--motion-base), border-color var(--motion-base), color var(--motion-base), box-shadow var(--motion-base);background:#0000000a;border:1px solid #d977068c;border-radius:9999px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;display:inline-flex}.palette-unassigned-pill-glyph{color:#d97706;font-size:14px;font-weight:600;line-height:1}.palette-unassigned-pill-count{color:#b45309;opacity:.95;font-weight:600}.palette-unassigned-pill:hover{border-color:var(--color-primary,#4a5aad);background:#4a5aad1f}.palette-unassigned-pill[aria-checked=true]{background:var(--color-primary,#4a5aad);border-color:var(--color-primary,#4a5aad);color:#fff;box-shadow:0 0 0 3px #4a5aad38}.palette-poor-match-pill{border-color:#dc26268c}.palette-poor-match-pill .palette-unassigned-pill-glyph{color:#dc2626}.palette-poor-match-pill .palette-unassigned-pill-count{color:#b91c1c}.palette-poor-match-pill[aria-checked=true]{border-color:var(--color-primary,#4a5aad)}.palette-unassigned-pill[aria-checked=true] .palette-unassigned-pill-glyph,.palette-unassigned-pill[aria-checked=true] .palette-unassigned-pill-count{color:#fff}.palette-unassigned-pill[aria-checked=true]:hover{filter:brightness(1.1);background:var(--color-primary,#4a5aad)}.palette-action-bar{align-items:center;gap:12px;max-width:1280px;margin:0 auto 16px;display:flex}.palette-from-collection-btn{background:var(--color-primary,#4f8cff);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;min-height:36px;padding:8px 16px;font-size:14px;font-weight:500;transition:filter .1s}.palette-from-collection-btn:hover{filter:brightness(1.15)}.palette-from-collection-btn:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px}.palette-add-split{background:var(--color-primary,#4f8cff);border-radius:8px;flex-shrink:0;align-items:stretch;height:36px;display:inline-flex;position:relative;box-shadow:0 1px 2px #00000014}.palette-add-split-main,.palette-add-split-toggle{color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:0;font-size:14px;font-weight:600;transition:filter .1s}.palette-add-split-main{border-top-left-radius:8px;border-bottom-left-radius:8px;padding:0 14px}.palette-add-split-toggle{border-left:1.5px solid #fff9;border-top-right-radius:8px;border-bottom-right-radius:8px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.palette-add-split-main:hover,.palette-add-split-toggle:hover{filter:brightness(1.15)}.palette-add-split-main:focus-visible,.palette-add-split-toggle:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:3px}.palette-add-menu{z-index:30;background:#fff;border:1px solid #0000001f;border-radius:8px;flex-direction:column;gap:2px;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000002e}.palette-add-menu-item{appearance:none;text-align:left;color:var(--color-text-primary);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:10px 12px;font-size:14px}.palette-add-menu-item:hover{background:#4f8cff1f}.palette-add-menu-item:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:-2px;background:#4f8cff1f}.palette-add-menu-divider{background:#0000001a;border:none;flex-shrink:0;height:1px;margin:4px 8px}.palette-add-menu-group{flex-direction:column;gap:2px;display:flex}.palette-add-menu-group-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary,#00000080);padding:6px 12px 2px;font-size:11px;font-weight:600}.palette-import-btn{cursor:pointer;white-space:nowrap;height:36px;transition:background var(--motion-base), border-color var(--motion-base);color:var(--color-text-primary);background:#0000000a;border:1px solid #0000002e;border-radius:9999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.palette-import-btn-label{line-height:1}.palette-import-btn:hover{border-color:var(--color-primary,#4a5aad);background:#4a5aad1f}.palette-import-btn:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}body.palette-populated #uploadSection{display:none!important}.palette-section-wrapper.drag-over{outline:2px dashed var(--color-primary,#4a5aad);outline-offset:-2px;border-radius:8px}.palette-wheel-toggle{cursor:pointer;background:#0000000a;border:1px solid #0000002e;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,border-color .15s;display:inline-flex}.palette-wheel-toggle:hover{border-color:var(--color-primary,#4f8cff);background:#4f8cff1f}.palette-wheel-toggle[aria-pressed=true]{border-color:var(--color-primary,#4f8cff);background:#4f8cff33}.palette-wheel-toggle:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px}@media (width<=600px){.palette-unassigned-pill{justify-content:center;width:100%;min-height:44px}.palette-filter-bar,.palette-action-bar{flex-direction:column;align-items:stretch}.palette-from-collection-btn{width:100%;min-height:44px}.palette-add-split{flex:1;height:44px}.palette-add-split-main{text-align:center;flex:1}.palette-wheel-toggle{width:44px;height:44px}.palette-import-btn{height:44px;padding:0 14px}.palette-add-menu-item{min-height:44px}.palette-toolbar-right{width:100%;margin-left:0}}.palette-counter{color:#ffffffa6;align-items:center;gap:8px;max-width:1280px;margin:12px auto 0;font-size:13px;display:flex}.palette-empty-unassigned,.palette-empty-issues{text-align:center;color:#ffffff8c;grid-column:1/-1;padding:40px 24px;font-size:14px}.palette-empty-unassigned strong,.palette-empty-issues strong{color:#ffffffd9;margin-bottom:8px;font-size:16px;font-weight:600;display:block}.palette-empty-state{text-align:center;max-width:480px;color:var(--text-secondary,#1a1a2eb3);background:#00000006;border:1px solid #00000014;border-radius:12px;margin:32px auto;padding:32px 24px}.palette-empty-state-icon{margin-bottom:12px;font-size:44px;line-height:1}.palette-empty-state-title{color:var(--color-text-primary);margin:0 0 8px;font-size:16px;font-weight:600;display:block}.palette-empty-state p{margin:0;font-size:14px;line-height:1.5}.palette-empty-state-cta{background:var(--color-primary,#4a5aad);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:16px;padding:10px 20px;font-size:14px;font-weight:600;transition:filter .1s,transform .1s;display:inline-block}.palette-empty-state-cta:hover{filter:brightness(1.15)}.palette-empty-state-cta:active{transform:translateY(1px)}.palette-empty-state-cta:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}@media (prefers-reduced-motion:reduce){.palette-empty-state-cta{transition:none}.palette-empty-state-cta:active{transform:none}}.add-by-hex-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.add-by-hex-modal{color:#f5f5f5;background:#2a2a3a;border-radius:12px;flex-direction:column;gap:12px;width:min(420px,100vw - 32px);padding:24px;display:flex;box-shadow:0 12px 48px #00000080}.add-by-hex-title{margin:0 0 4px;font-size:16px;font-weight:600}.add-by-hex-row{align-items:center;gap:12px;display:flex}.add-by-hex-preview{border-radius:8px;flex-shrink:0;width:56px;height:56px;box-shadow:inset 0 0 0 1px #ffffff26}.add-by-hex-picker-label{cursor:pointer;border:1px dashed #ffffff2e;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;transition:border-color .12s;display:inline-flex}.add-by-hex-picker-label:hover{border-color:var(--color-primary,#4a5aad)}.add-by-hex-picker{cursor:pointer;background:0 0;border:none;width:32px;height:32px;padding:0}.add-by-hex-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.add-by-hex-label{color:#ffffffbf;margin-top:4px;font-size:13px}.add-by-hex-input{background:var(--color-surface-dark);color:#f5f5f5;box-sizing:border-box;border:1px solid #ffffff52;border-radius:8px;width:100%;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px}.add-by-hex-input:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px;border-color:#0000}.add-by-hex-input--error{border-color:#ff7a7a}.add-by-hex-input--error:focus-visible{border-color:#ff7a7a;outline-color:#ff7a7a}.add-by-hex-error{color:#ff8a8a;margin:0;font-size:12px}.add-by-hex-hint{color:#ffffff8c;margin:0;font-size:12px}.add-by-hex-footer{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.add-by-hex-btn{color:#f5f5f5;cursor:pointer;background:0 0;border:1px solid #ffffff52;border-radius:8px;min-height:36px;padding:8px 16px;font-size:14px}.add-by-hex-btn:hover{border-color:var(--color-primary,#4a5aad)}.add-by-hex-btn:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.add-by-hex-btn--primary{background:var(--color-primary,#4a5aad);border-color:var(--color-primary,#4a5aad);color:#fff;min-height:40px;font-weight:600}.add-by-hex-btn--primary:hover{filter:brightness(1.15);border-color:var(--color-primary,#4a5aad)}@media (width<=600px){.add-by-hex-btn{min-height:44px;padding:12px 18px}}.scheme-modal-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.scheme-modal{color:#f5f5f5;background:#2a2a3a;border-radius:12px;flex-direction:column;width:min(640px,100vw - 32px);max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 12px 48px #00000080}.scheme-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 12px;display:flex}.scheme-modal-title{margin:0;font-size:16px;font-weight:600}.scheme-modal-close{appearance:none;color:#f5f5f5;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 8px;font-size:22px;line-height:1}.scheme-modal-close:hover{background:#ffffff1a}.scheme-modal-close:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.scheme-modal-body{padding:0 24px 24px;overflow-y:auto}@media (width<=600px){.scheme-modal-overlay{align-items:flex-end}.scheme-modal{border-radius:16px 16px 0 0;width:100%;max-height:calc(100vh - 32px)}}.image-empty-state-modal{color:#f5f5f5;text-align:center;background:#2a2a3a;border-radius:12px;flex-direction:column;align-items:center;gap:12px;width:min(360px,100vw - 32px);padding:32px 24px;display:flex;box-shadow:0 12px 48px #00000080}.image-empty-state-icon{font-size:40px;line-height:1}.image-empty-state-title{margin:0;font-size:16px;font-weight:600}.image-empty-state-body{color:#ffffffbf;margin:0;font-size:13px}.nmm-builder-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.nmm-builder-modal{color:#f5f5f5;background:#2a2a3a;border-radius:12px;flex-direction:column;gap:12px;width:min(480px,100vw - 32px);max-height:calc(100vh - 48px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 12px 48px #00000080}.nmm-builder-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.nmm-builder-title{margin:0;font-size:16px;font-weight:600}.nmm-builder-library-link{color:#8b9fe0;cursor:pointer;white-space:nowrap;text-underline-offset:2px;background:0 0;border:none;flex-shrink:0;padding:0;font-size:12px;text-decoration:underline}.nmm-builder-library-link:hover{color:#aab8f0}.nmm-builder-close-btn{color:#ffffff73;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0 2px;font-size:20px;line-height:1}.nmm-builder-close-btn:hover{color:#ffffffd9}.nmm-builder-field-label{color:#ffffffbf;font-size:13px}.nmm-builder-name-input{background:var(--color-surface-dark);color:#f5f5f5;box-sizing:border-box;border:1px solid #ffffff52;border-radius:8px;width:100%;padding:9px 12px;font-size:15px}.nmm-builder-name-input:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px;border-color:#0000}.nmm-builder-input--error{border-color:#ff7a7a}.nmm-builder-error{color:#ff8a8a;margin:-4px 0 0;font-size:12px}.nmm-builder-roles{flex-direction:column;gap:6px;margin-top:4px;display:flex}.nmm-builder-divider{border:none;border-top:1px solid #ffffff1f;margin:0}.nmm-builder-role-row{grid-template-columns:36px 1fr 100px 36px;align-items:center;gap:8px;display:grid}.nmm-builder-swatch{border-radius:6px;flex-shrink:0;width:36px;height:36px;box-shadow:inset 0 0 0 1px #ffffff26}.nmm-builder-role-label{color:#ffffffd9;white-space:nowrap;font-size:13px}.nmm-builder-hex-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.nmm-builder-hex-input{background:var(--color-surface-dark);color:#f5f5f5;box-sizing:border-box;border:1px solid #ffffff52;border-radius:6px;width:100%;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.nmm-builder-hex-input:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px;border-color:#0000}.nmm-builder-hex-input.nmm-builder-input--error{border-color:#ff7a7a}.nmm-builder-picker-label{cursor:pointer;border:1px solid #ffffff52;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;transition:border-color .12s,background .12s;display:inline-flex;position:relative}.nmm-builder-picker-label:hover{background:#8b9fe01f;border-color:#8b9fe0}.nmm-builder-picker-icon{opacity:.7;pointer-events:none;flex-shrink:0;width:16px;height:16px}.nmm-builder-picker-label:hover .nmm-builder-picker-icon{opacity:1}.nmm-builder-picker{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.nmm-builder-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nmm-builder-footer{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@media (width<=600px){.nmm-builder-hex-input{min-height:44px}.nmm-builder-picker-label{width:44px;height:44px}.nmm-builder-role-row{grid-template-columns:36px 1fr 1fr 44px}}.nmm-builder-section-label{letter-spacing:.07em;text-transform:uppercase;color:#ffffff8c;margin:0 0 8px;font-size:11px;font-weight:600}.nmm-env-pills{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.nmm-env-pill{color:#ffffffa6;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:100px;padding:3px 10px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.nmm-env-pill:hover{color:#ffffffe6;background:#ffffff12;border-color:#ffffff52}.nmm-env-pill.active{color:#a0c3ff;background:#6394ff2e;border-color:#6394ffa6}.nmm-builder-generate-btn{color:#c8dcff;cursor:pointer;background:#6394ff47;border:1px solid #6394ffa6;border-radius:6px;width:100%;margin-bottom:16px;padding:7px 0;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.nmm-builder-generate-btn:hover{background:#6394ff6b;border-color:#6394ffd9}.nmm-builder-match-hint{color:#fff9;white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:10px;overflow:hidden}.palette-grid-wrapper{max-width:1280px;margin:0 auto}.palette-new-group-btn{cursor:pointer;white-space:nowrap;height:36px;color:var(--color-text-primary);transition:background var(--motion-base), border-color var(--motion-base);background:#0000000a;border:1px solid #0000002e;border-radius:9999px;flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.palette-new-group-btn:hover{border-color:var(--color-primary,#4a5aad);background:#4a5aad1f}.palette-new-group-btn:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.palette-group{margin-bottom:20px}.palette-group-header{align-items:center;gap:8px;margin-bottom:8px;padding:0 4px;display:flex}.palette-group-collapse-btn{cursor:pointer;width:24px;height:24px;color:var(--text-secondary,#4a4a6a);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.palette-group-collapse-btn:hover{background:#00000014}.palette-group-collapse-btn:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.palette-group-chevron{font-size:11px;line-height:1}.palette-group-name-group{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.palette-group-name{cursor:pointer;color:var(--color-text-primary);text-align:left;background:0 0;border:none;border-radius:4px;min-width:0;padding:2px 6px;font-size:14px;font-weight:600;line-height:1.3}.palette-group-name:hover{background:#0000000f}.palette-group-name:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.palette-group-name--implicit{color:var(--text-secondary,#4a4a6a);cursor:default;font-style:italic;font-weight:500}.palette-group-name--implicit:hover{background:0 0}.palette-group-name-input{min-width:0;color:var(--color-text-primary);border:1.5px solid var(--color-primary,#4a5aad);background:#ffffffe6;border-radius:4px;outline:none;flex:1;padding:2px 6px;font-size:14px;font-weight:600}.palette-group-count{color:var(--text-secondary,#4a4a6a);background:#00000012;border-radius:9999px;flex-shrink:0;padding:1px 8px;font-size:12px;font-weight:500}.palette-group-action{cursor:pointer;color:var(--text-secondary,#4a4a6a);opacity:0;transition:opacity var(--motion-base), color var(--motion-base);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:16px;line-height:1}.palette-group-header:hover .palette-group-action,.palette-group-header:focus-within .palette-group-action{opacity:1}.palette-group-action--delete:hover{color:#dc2626;background:#dc262614}.palette-group-action:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px;opacity:1}.palette-group-kind-badge{letter-spacing:.04em;pointer-events:none;border-radius:9999px;flex-shrink:0;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-flex}.palette-group-kind-badge--nmm{color:#4338ca;background:#6366f124;border:1px solid #6366f159}.palette-group-kind-badge--triad{color:#0f766e;background:#0d94881f;border:1px solid #0d948852}.palette-group-count--warn{color:#b45309;background:#d9770626;border:1px solid #d9770666}.palette-group-action--edit:hover{color:var(--color-primary,#4a5aad);background:#4a5aad1a}.palette-group-empty{color:var(--text-secondary,#4a4a6a);text-align:center;grid-column:1/-1;padding:16px;font-size:13px;font-style:italic}.palette-group-drop-hint{color:var(--text-secondary,#4a4a6a);text-align:center;border:1.5px dashed #0000002e;border-radius:6px;grid-column:1/-1;justify-content:center;align-items:center;min-height:40px;padding:10px 16px;font-size:12px;font-style:italic;display:flex}.palette-group--ungrouped{border-top:1px dashed #00000026;margin-top:8px;padding-top:16px}.palette-swatch[draggable=true]:active{cursor:grabbing}.palette-swatch--dragging{opacity:.35}.palette-group--drag-over{outline:2px dashed var(--color-primary,#4a5aad);outline-offset:4px;background:#4a5aad0f;border-radius:8px}.palette-swatch-group-badge{z-index:4;background:var(--color-primary,#4a5aad);color:#fff;pointer-events:none;opacity:.88;border-radius:9999px;padding:2px 5px;font-size:10px;font-weight:700;line-height:1;position:absolute;top:8px;right:4px}@media (width<=768px){.palette-new-group-btn{height:44px;padding:0 14px}}.swatch-ramp{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.swatch-ramp-slot{flex-direction:column;gap:4px;min-width:0;display:flex}.swatch-ramp-slot .palette-swatch{aspect-ratio:3/2;width:100%}.swatch-ramp-role{color:var(--color-text-primary);text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;line-height:1.2;overflow:hidden}.swatch-ramp-gradient{border-radius:8px;grid-column:1/-1;height:20px}.swatch-ramp--triad .swatch-ramp-gradient{grid-column:1/4}@media (width<=600px){.swatch-ramp{grid-template-columns:repeat(3,1fr);gap:4px}}.palette-unit--compact{min-width:0;position:relative}.palette-unit-tile{aspect-ratio:1;border:1px solid var(--border-subtle,#0000001f);cursor:pointer;border-radius:8px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.palette-unit-tile:hover{filter:brightness(1.05)}.palette-unit-tile:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px}.palette-unit-badge{pointer-events:none;position:absolute;top:4px;left:4px}.palette-unit-name{color:#fff;pointer-events:none;background:#0000008c;align-items:center;gap:4px;padding:3px 6px;font-size:11px;line-height:1.3;display:flex;position:absolute;bottom:0;left:0;right:0}.palette-unit-name-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.palette-unit-expand-hint{opacity:.85;flex:none}.palette-unit-actions{opacity:0;transition:opacity var(--motion-base);gap:4px;display:flex;position:absolute;top:4px;right:4px}.palette-unit--compact:hover .palette-unit-actions,.palette-unit--compact:focus-within .palette-unit-actions{opacity:1}.palette-unit-actions .palette-group-action{opacity:1;color:var(--color-text-primary);background:#ffffffeb;border-radius:6px;box-shadow:0 1px 2px #00000040}.palette-unit--expanded{border:1px solid var(--border-subtle,#0000001f);background:var(--surface-2,#00000008);border-radius:10px;flex-direction:column;grid-column:1/-1;gap:8px;padding:10px 12px;display:flex}.palette-unit--expanded.palette-unit--nmm{background:#6366f10f;border-color:#6366f159}.palette-unit--expanded.palette-unit--triad{background:#0d94880f;border-color:#0d948852}.palette-unit-header{cursor:grab;align-items:center;gap:8px;display:flex}.palette-unit-header .palette-group-name--unit{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.swatch-select-overlay{cursor:pointer;z-index:10;background:#00000040;border:2px solid #ffffffd9;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:background .1s,border-color .1s;display:flex;position:absolute;top:6px;left:6px}.swatch-select-overlay:hover{background:#00000073}.swatch-select-overlay--checked{background:var(--color-primary,#4f8cff);border-color:#fff}.swatch-select-overlay--checked:after{content:"";border:2px solid #fff;border-top:none;border-left:none;width:5px;height:9px;display:block;transform:rotate(45deg)translate(-1px,-1px)}.palette-selection-bar{background:var(--surface-secondary,#ecedf8);border-radius:8px;align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex;box-shadow:0 1px 4px #4a5aad26}.palette-selection-count{color:var(--color-text-primary);margin-right:auto;font-size:13px;font-weight:600}.palette-selection-hint{color:var(--text-secondary,#4a4a6a);font-weight:400}.palette-selection-action{border:1px solid var(--color-primary,#4f8cff);background:var(--color-primary,#4f8cff);color:#fff;cursor:pointer;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:500;transition:opacity .15s}.palette-selection-action:disabled{opacity:.4;cursor:not-allowed}.palette-selection-action:not(:disabled):hover{opacity:.85}.palette-selection-clear{border:1px solid var(--border-color,#ddd);color:var(--text-secondary,#555);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:13px;transition:background .15s}.palette-selection-clear:hover{background:var(--bg-hover,#e8e8e8)}.palette-auto-assign-btn,.palette-review-matches-btn{cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:filter .1s,background .15s,border-color .15s;display:inline-flex}.palette-auto-assign-btn{border:1px solid var(--color-primary,#4a5aad);background:var(--color-primary,#4a5aad);color:#fff}.palette-auto-assign-btn:hover{filter:brightness(1.1)}.palette-review-matches-btn{border:1px solid var(--border-color,#ddd);color:var(--text-secondary,#555);background:0 0}.palette-review-matches-btn:hover{border-color:var(--color-primary,#4a5aad);background:#4a5aad1f}.palette-review-matches-btn[aria-pressed=true]{background:var(--color-primary,#4a5aad);border-color:var(--color-primary,#4a5aad);color:#fff;box-shadow:0 0 0 3px #4a5aad38}.batch-review{border:1px solid var(--border-color,#ddd);background:var(--bg-secondary,#fafafa);border-radius:10px;max-width:1280px;margin:0 auto 16px;padding:16px}.batch-review-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.batch-review-title{margin:0;font-size:15px;font-weight:600}.batch-review-close{cursor:pointer;color:var(--text-secondary,#555);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:16px;line-height:1}.batch-review-close:hover{background:var(--bg-hover,#e8e8e8)}.batch-review-empty{color:var(--text-secondary,#555);margin:12px 0;font-size:14px}.batch-review-rows{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.batch-review-row{border-bottom:1px solid var(--border-color,#eee);align-items:center;gap:10px;padding:6px 0;display:flex}.batch-review-arrow{color:var(--text-secondary,#888)}.batch-review-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;overflow:hidden}.batch-review-nomatch{color:#b91c1c;flex:auto;font-size:13px}.batch-review-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.batch-review-use,.batch-review-swap,.batch-review-skip{border:1px solid var(--border-color,#ddd);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:13px;transition:background .15s,border-color .15s}.batch-review-use{border-color:var(--color-primary,#4a5aad);color:var(--color-primary,#4a5aad)}.batch-review-use:hover{background:#4a5aad1f}.batch-review-swap:hover,.batch-review-skip:hover{background:var(--bg-hover,#e8e8e8)}.batch-review-footer{justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;display:flex}.batch-review-removed{color:var(--text-secondary,#555);margin-right:auto;font-size:13px}.batch-review-undo{color:var(--color-primary,#4a5aad);cursor:pointer;background:0 0;border:none;font-size:13px;text-decoration:underline}.batch-review-use-all{background:var(--color-primary,#4a5aad);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:filter .1s}.batch-review-use-all:disabled{opacity:.5;cursor:not-allowed}.batch-review-use-all:not(:disabled):hover{filter:brightness(1.1)}.picker-backdrop{z-index:10000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.picker-dialog{background:var(--surface,var(--color-surface-dark));border-radius:12px;flex-direction:column;width:clamp(560px,50vw,680px);max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080}.picker-drag-handle{display:none}@media (width<=600px){.picker-backdrop{align-items:flex-end}.picker-dialog{border-radius:16px 16px 0 0;width:100%;min-height:70vh;max-height:90vh}.picker-drag-handle{background:#ffffff40;border-radius:2px;flex-shrink:0;width:40px;height:4px;margin:12px auto 0;display:block}}.picker-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.picker-title{color:var(--color-text,#fff);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;font-weight:600;overflow:hidden}.picker-close{cursor:pointer;color:#ffffffb3;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-left:12px;font-size:20px;display:flex}.picker-close:hover{color:#fff;background:#ffffff1a}.picker-close:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px}@media (width<=600px){.picker-close{width:44px;height:44px}}.picker-source-row{flex-shrink:0;padding:0 20px 12px}.picker-source-section{flex-direction:column;gap:8px;display:flex}.picker-source-toggle{background:#ffffff0d;border-radius:8px;gap:4px;padding:4px;display:inline-flex}.picker-source-option{cursor:pointer;color:#ffffffb3;background:0 0;border:none;border-radius:6px;min-height:36px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .1s,color .1s}.picker-source-option:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:-2px}.picker-source-option--active{background:var(--color-primary,#4f8cff);color:#fff}.picker-source-empty-hint{color:#ffffff8c;margin:0;font-size:13px}.picker-source-empty-link{font:inherit;color:var(--color-accent-on-dark,#6f9dff);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.picker-source-empty-link:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px;border-radius:2px}@media (width<=600px){.picker-source-toggle{width:100%}.picker-source-option{flex:1;min-height:44px}}.picker-search-row{flex-shrink:0;padding:0 20px 12px}.picker-search-wrap{background:#ffffff12;border:1px solid #ffffff26;border-radius:8px;align-items:center;min-height:44px;padding:0 12px;display:flex;position:relative}.picker-search-icon{opacity:.6;flex-shrink:0;margin-right:8px;font-size:14px;line-height:1}.picker-search-input{color:var(--color-text,#fff);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:10px 0;font-size:14px}.picker-search-input::placeholder{color:#fff6}.picker-search-input::-webkit-search-cancel-button{display:none}.picker-search-clear{cursor:pointer;color:#ffffff80;background:0 0;border:none;flex-shrink:0;margin-left:4px;padding:0 4px;font-size:16px;line-height:1}.picker-search-clear:hover{color:#fff}.picker-search-clear:focus-visible{outline:3px solid var(--color-primary,#4f8cff);border-radius:3px}.picker-search-wrap:focus-within{border-color:var(--color-primary,#4f8cff)}.picker-filters{flex-shrink:0;padding:0 20px 8px}.picker-disclosure-summary{cursor:pointer;color:#ffffff8c;-webkit-user-select:none;user-select:none;border:1px dashed #fff6;border-radius:6px;align-items:center;gap:6px;min-height:30px;padding:6px 10px;font-size:13px;list-style:none;display:inline-flex}.picker-disclosure-summary::-webkit-details-marker{display:none}.picker-disclosure-summary:before{content:"▸";color:#ffffff80;font-size:11px;transition:transform .12s}.picker-disclosure-summary:hover{border-color:var(--color-primary,#4f8cff);color:#ffffffe6}.picker-disclosure-summary:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px}.picker-filters[open]>.picker-disclosure-summary:before,.picker-adjust[open]>.picker-disclosure-summary:before,.picker-wheel[open]>.picker-disclosure-summary:before{transform:rotate(90deg)}.picker-filters-body{color:#333;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;max-height:240px;margin-top:10px;padding:12px;overflow-y:auto}@media (width<=600px){.picker-disclosure-summary{min-height:44px;padding:12px 14px}}.picker-adjust{flex-shrink:0;padding:0 20px 8px}.picker-adjust-summary-chip{border-radius:4px;flex-shrink:0;width:16px;height:16px;box-shadow:inset 0 0 0 1px #ffffff40}.picker-adjust-summary-hex{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.picker-adjust-body{flex-direction:column;gap:12px;margin-top:10px;display:flex}.picker-adjust-row{align-items:center;gap:10px;display:flex}.picker-adjust-preview{border-radius:8px;flex-shrink:0;width:44px;height:36px;box-shadow:inset 0 0 0 1px #ffffff26}.picker-adjust-picker-label{cursor:pointer;border:1px dashed #ffffff2e;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:border-color .12s;display:inline-flex}.picker-adjust-picker-label:hover,.picker-adjust-picker-label:focus-within{border-color:var(--color-primary,#4f8cff)}.picker-adjust-picker{cursor:pointer;background:0 0;border:none;width:32px;height:32px;padding:0}.picker-adjust-input{background:var(--color-surface-dark);color:#f5f5f5;border:1px solid #ffffff52;border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px}.picker-adjust-input:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px;border-color:#0000}.picker-adjust-input--error,.picker-adjust-input--error:focus-visible{border-color:#ff7a7a}.picker-adjust-input--error:focus-visible{outline-color:#ff7a7a}.picker-adjust-nudges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.picker-adjust-nudge-label{color:#ffffff8c;font-size:12px}.picker-adjust-nudge{color:#ffffffd9;cursor:pointer;background:0 0;border:1px solid #ffffff38;border-radius:6px;align-items:center;gap:7px;padding:6px 10px;font-size:13px;display:inline-flex}.picker-adjust-nudge:hover{border-color:var(--color-primary,#4f8cff);color:#fff}.picker-adjust-nudge-chip{border-radius:4px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #ffffff40}.picker-adjust-error{color:#ff9a9a;margin:0;font-size:12px}.picker-adjust-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.picker-adjust-reset,.picker-adjust-apply{cursor:pointer;border-radius:6px;padding:7px 12px;font-size:13px}.picker-adjust-reset{color:#ffffffbf;background:0 0;border:1px solid #ffffff38}.picker-adjust-apply{background:var(--color-primary,#4f8cff);color:#fff;border:1px solid #0000}.picker-adjust-reset:hover{color:#fff;border-color:#fff6}.picker-adjust-apply:hover{filter:brightness(1.1)}@media (width<=600px){.picker-adjust-nudges{gap:8px}.picker-adjust-nudge-label{flex-basis:100%}.picker-adjust-nudge{flex:1;justify-content:center;min-height:44px}.picker-adjust-reset,.picker-adjust-apply{min-height:44px}.picker-adjust-picker-label{width:44px;height:44px}}.picker-wheel{flex-shrink:0;padding:0 20px 8px}.picker-wheel-body{flex-direction:column;align-items:center;gap:8px;margin-top:10px;display:flex}.picker-wheel-canvas{aspect-ratio:1;cursor:default;touch-action:none;border-radius:50%;width:100%;max-width:280px;height:auto}.picker-wheel-canvas:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:3px;border-radius:50%}.picker-wheel-hint{color:#ffffffbf;text-align:center;margin:0;font-size:12px}.picker-wheel-hint strong{color:#ffffffeb;font-weight:600}.picker-wheel-source{color:#ffffffa6;text-align:center;text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:11px}.picker-wheel-range .wheel-range-label{color:#ffffffa6}.picker-wheel-range .wheel-range-min-val,.picker-wheel-range .wheel-range-max-val{color:#ffffffbf}.picker-wheel-range .wheel-range-reset{color:var(--color-accent-on-dark,#6f9dff)}.picker-wheel-range .wheel-range-reset:hover{color:#fff}.picker-wheel-range .wheel-range-fill{background:#4f8cff66}.picker-wheel-range .wheel-range-input::-webkit-slider-thumb{background:var(--color-primary,#4f8cff);border-color:#ffffffe6}.picker-wheel-range .wheel-range-input::-moz-range-thumb{background:var(--color-primary,#4f8cff);border-color:#ffffffe6}.picker-wheel-canvas-wrap{width:100%;max-width:280px;display:inline-block;position:relative}.picker-divider{border:none;border-top:1px solid #ffffff1a;flex-shrink:0;margin:0}.picker-recent{padding:var(--space-2) var(--space-3);border-bottom:1px solid #ffffff12;flex-shrink:0}.picker-recent-label{font-size:var(--text-xs);color:var(--color-text-dark-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.04em;display:block}.picker-recent-row{gap:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.picker-recent-row::-webkit-scrollbar{display:none}.picker-recent-chip{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);padding:2px var(--space-2) 2px 2px;cursor:pointer;white-space:nowrap;font:inherit;font-size:var(--text-xs);color:var(--color-text-dark-light);background:#ffffff0d;border:1px solid #ffffff1a;flex-shrink:0;min-height:28px;display:flex}.picker-recent-chip:hover{border-color:var(--color-primary);background:#ffffff1a}.picker-recent-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.picker-recent-swatch{border-radius:var(--radius-xs,2px);flex-shrink:0;width:18px;height:18px}.picker-recent-name{text-overflow:ellipsis;max-width:100px;overflow:hidden}.picker-results{overscroll-behavior:contain;flex:1;overflow-y:auto}.picker-results[data-has-more=true]{-webkit-mask-image:linear-gradient(#000 85%,#0000 100%);mask-image:linear-gradient(#000 85%,#0000 100%)}.picker-scroll-sentinel{flex-shrink:0;height:1px}.picker-virtual-list{flex-shrink:0;width:100%;position:relative}.picker-row-virtual{box-sizing:border-box;height:64px;position:absolute;left:0;right:0}.picker-target-banner{z-index:2;background:var(--surface-secondary,var(--color-surface-dark));border-bottom:1px solid #ffffff1f;flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.picker-target-banner-label{letter-spacing:.04em;text-transform:uppercase;color:#ffffff8c;font-size:12px;font-weight:600}.picker-target-banner-swatch{border-radius:6px;flex-shrink:0;width:36px;height:36px;box-shadow:inset 0 0 0 1px #ffffff2e}@media (width<=600px){.picker-target-banner{padding:8px 16px}.picker-target-banner-swatch{width:32px;height:32px}}.picker-row{cursor:pointer;border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;min-height:64px;padding:0 20px;transition:background .1s;display:flex}.picker-row:last-of-type{border-bottom:none}.picker-row:hover,.picker-row:focus-within{background:var(--surface-hover,#ffffff0d)}.picker-row--highlighted{animation:1.5s ease-out pickerRowFlash}@keyframes pickerRowFlash{0%{background:#4f8cff59;box-shadow:inset 0 0 0 2px #4f8cff99}60%{background:#4f8cff2e;box-shadow:inset 0 0 0 2px #4f8cff4d}to{background:0 0;box-shadow:inset 0 0 0 2px #0000}}@media (prefers-reduced-motion:reduce){.picker-row--highlighted{background:#4f8cff2e;animation:none;box-shadow:inset 0 0 0 2px #4f8cff4d}}.picker-row-swatch{border:1px solid var(--surface-border,#ffffff26);border-radius:4px;flex-shrink:0;width:32px;height:32px}.picker-row-swatch[data-light=true]{border-color:#0003}.picker-row-identity{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.picker-row-name{color:var(--color-text,#fff);align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.picker-row-brand{color:#ffffffe6;background:#ffffff1f;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-flex}.picker-row-paint-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-row-meta{color:#ffffff80;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.picker-row-delta{flex-shrink:0}.picker-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.picker-row-use,.picker-row-buy{cursor:pointer;white-space:nowrap;border-radius:6px;min-width:56px;height:36px;padding:0 14px;font-size:13px;font-weight:500;transition:background .1s,color .1s}.picker-row-use{background:var(--color-primary,#4f8cff);color:#fff;border:none}.picker-row-use:hover{filter:brightness(1.1)}.picker-row-buy{color:#fffc;background:0 0;border:1px solid #ffffff40}.picker-row-buy:hover{border-color:var(--color-primary,#4f8cff);color:#fff}.picker-row-buy--added{color:#4caf50;border-color:#4caf50}.picker-row-use:focus-visible,.picker-row-buy:focus-visible{outline:3px solid var(--color-primary,#4f8cff);outline-offset:2px}@media (width<=600px){.picker-row-swatch{width:28px;height:28px}.picker-row-use,.picker-row-buy{min-width:60px;height:44px}}.picker-footer{color:#ffffff80;text-align:left;border-top:1px solid #ffffff14;flex-shrink:0;padding:10px 20px;font-size:13px}.picker-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.picker-empty-icon{margin-bottom:12px;font-size:32px}.picker-empty-title{color:#fffc;margin:0 0 8px;font-size:16px;font-weight:600}.picker-empty-hint{color:#ffffff73;margin:0;font-size:14px}.picker-empty-link{color:var(--color-accent-on-dark,#6f9dff);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.picker-empty-actions{flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:16px;display:flex}.picker-empty-btn{background:var(--color-primary,#4f8cff);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;max-width:220px;padding:9px 20px;font-size:14px;font-weight:500;transition:background .15s}.picker-empty-btn:hover{background:#3a78e6}.picker-empty-btn--secondary{color:#ffffffbf;background:0 0;border:1px solid #ffffff40}.picker-empty-btn--secondary:hover{color:#fff;background:#ffffff0f;border-color:#ffffff80}.picker-tabs{border-bottom:1px solid #ffffff14;gap:4px;margin-bottom:12px;padding:0 24px;display:flex}.picker-tab{color:#ffffff8c;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:500;transition:color .12s,border-color .12s}.picker-tab:hover{color:#ffffffd9}.picker-tab--active{color:var(--color-accent-on-dark,#6f9dff);border-bottom-color:var(--color-primary,#4f8cff)}.picker-tab:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px;border-radius:4px}.picker-tabpanel{display:contents}.picker-tabpanel--mix{padding:0 24px 16px;display:block;overflow-y:auto}.mix-builder{flex-direction:column;gap:16px;display:flex}.mix-builder-hint{color:#ffffff8c;margin:0;font-size:13px;line-height:1.4}.mix-builder-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mix-builder-controls>details[open]{flex:1 0 100%}.mix-builder-controls>details{padding:0}.mix-builder-find-recipe{color:var(--color-accent-on-dark,#6f9dff);cursor:pointer;background:#4f8cff1f;border:1px solid #4f8cffe6;border-radius:6px;min-height:30px;padding:6px 14px;font-size:13px;font-weight:600}@media (width<=600px){.mix-builder-find-recipe{min-height:44px;padding-block:10px}}.mix-builder-find-recipe:hover:not(:disabled){background:#4f8cff33}.mix-builder-find-recipe:disabled{opacity:.45;cursor:not-allowed}.mix-builder-recipe-status{color:#ffffff94;font-size:12px}.mix-builder-recipe-status:not(:empty){flex:1 0 100%}.mix-builder-slots{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=600px){.mix-builder-slots{grid-template-columns:1fr}}.mix-slot{cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:10px;padding:12px;transition:border-color .12s,box-shadow .12s;display:flex}.mix-slot--active{border-color:var(--color-primary,#4f8cff);box-shadow:0 0 0 1px var(--color-primary,#4f8cff), 0 0 12px #4f8cff40}@media (prefers-reduced-motion:reduce){.mix-slot{transition:none}}.mix-slot-header{justify-content:space-between;align-items:center;display:flex}.mix-slot-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.mix-slot-active-pill{color:var(--color-accent-on-dark,#6f9dff);text-transform:none;letter-spacing:.01em;background:#4f8cff26;border:1px solid #4f8cff66;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.mix-slot-remove{color:#fff6;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.mix-slot-remove:hover{color:#ffffffd9}.mix-slot-paint{align-items:stretch;gap:10px;display:flex}.mix-slot-swatch{background-color:#0000;border:1px solid #ffffff1a;border-radius:6px;flex:0 0 40px;height:40px}.mix-slot-swatch[data-empty=true]{border-style:dashed}.mix-slot-search-wrap{flex:auto;position:relative}.mix-slot-search{color:#ffffffeb;background:#00000040;border:1px solid #ffffff1a;border-radius:6px;outline:none;width:100%;padding:10px 32px 10px 12px;font-size:14px}.mix-slot-search:focus{border-color:var(--color-primary,#4f8cff)}.mix-slot-clear{color:#fff6;cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.mix-slot-dropdown{z-index:10;background:#1a1f2a;border:1px solid #ffffff1f;border-radius:6px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.mix-slot-dropdown--empty{color:#ffffff80;text-align:center;padding:12px;font-size:13px}.mix-slot-dropdown li{margin:0}.mix-slot-dropdown-item{color:#ffffffe0;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:13px;display:grid}.mix-slot-dropdown-item:hover,.mix-slot-dropdown-item:focus-visible{background:#4f8cff26;outline:none}.mix-slot-dropdown-swatch{border:1px solid #ffffff1a;border-radius:4px;width:24px;height:24px}.mix-slot-dropdown-meta{color:#ffffff73;font-size:11px}.mix-slot-weight{align-items:center;gap:12px;display:flex}.mix-slot-weight-label{color:#fff9;flex:0 0 80px;font-size:12px}.mix-slot-weight input[type=range]{flex:auto}.mix-slot-weight input[type=range]:disabled{opacity:.4;cursor:not-allowed}.mix-builder-add-slot{color:var(--color-accent-on-dark,#6f9dff);cursor:pointer;background:#4f8cff1a;border:1px dashed #4f8cff66;border-radius:6px;padding:10px;font-size:13px;transition:background .12s}.mix-builder-add-slot:hover:not(:disabled){background:#4f8cff2e}.mix-builder-add-slot:disabled{opacity:.4;cursor:not-allowed}.mix-builder-preview{background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.mix-builder-preview-swatch{flex-direction:column;flex:0 0 56px;align-items:center;gap:4px;display:flex}.mix-builder-preview-swatch-fill{border:1px solid #ffffff1a;border-radius:6px;width:56px;height:56px}.mix-builder-preview-swatch-fill[style*=transparent]{border-style:dashed}.mix-builder-preview-swatch-caption{text-transform:uppercase;letter-spacing:.04em;color:#ffffff8c;font-size:11px;font-weight:600}.mix-builder-preview-arrow{color:#ffffffa6;align-self:flex-start;margin-top:18px;font-size:18px}.mix-builder-preview-info{flex:auto}.mix-builder-preview-label{color:#ffffffc7;font-size:13px;font-weight:600}.mix-builder-preview-hex{color:#ffffff80;margin-top:2px;font-family:ui-monospace,monospace;font-size:12px}.mix-builder-preview-delta{flex:none;align-items:center;gap:6px;display:flex}.mix-builder-preview-delta-label{color:#ffffffa6;text-transform:lowercase;letter-spacing:.02em;font-size:11px;font-weight:500}.mix-builder-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.mix-builder-save-hint{color:#ffffff80;min-height:16px;margin-right:auto;font-size:12px}.mix-builder-save-hint[data-active=true]{color:#ffc766d9;font-weight:500}.mix-builder-cancel,.mix-builder-save{color:#ffffffd9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:10px 18px;font-size:14px;font-weight:500}.mix-builder-cancel:hover{background:#ffffff14}.mix-builder-save{background:var(--color-primary,#4f8cff);border-color:var(--color-primary,#4f8cff);color:#fff}.mix-builder-save:hover:not(:disabled){filter:brightness(1.1)}.mix-builder-save:disabled{opacity:.4;cursor:not-allowed}@media (width>=900px){.picker-dialog{width:clamp(880px,70vw,1080px)}.picker-tabpanel--single{flex:1;grid-template:"source wheel""search wheel""filters wheel""adjust wheel""results wheel"1fr"footer wheel"/1fr minmax(320px,360px);column-gap:20px;min-height:0;display:grid}.picker-tabpanel--single>.picker-source-row{grid-area:source}.picker-tabpanel--single>.picker-search-row{grid-area:search}.picker-tabpanel--single>.picker-filters{grid-area:filters}.picker-tabpanel--single>.picker-adjust{grid-area:adjust}.picker-tabpanel--single>.picker-wheel{grid-area:wheel;align-self:start}.picker-tabpanel--single>.picker-results{grid-area:results;min-height:0}.picker-tabpanel--single>.picker-footer{grid-area:footer}.picker-tabpanel--single>.picker-divider{display:none}.picker-tabpanel--mix .mix-builder{grid-template-columns:1fr minmax(320px,360px);grid-template-areas:"preview wheel""hint wheel""suggest wheel""status wheel""filters wheel""slots wheel""add wheel""actions wheel";column-gap:20px;display:grid}.picker-tabpanel--mix .mix-builder-controls:has(.mix-builder-wheel[open]){display:contents}.mix-builder>.mix-builder-preview{grid-area:preview}.mix-builder>.mix-builder-hint{grid-area:hint}.mix-builder .mix-builder-controls{grid-area:controls}.mix-builder .mix-builder-find-recipe{grid-area:suggest;justify-self:start}.mix-builder .mix-builder-recipe-status{grid-area:status}.mix-builder .mix-builder-filters{grid-area:filters}.mix-builder .mix-builder-wheel{grid-area:wheel}.mix-builder .mix-builder-wheel[open]{align-self:start}.mix-builder>.mix-builder-slots{grid-area:slots}.mix-builder>.mix-builder-add-slot{grid-area:add}.mix-builder>.mix-builder-actions{grid-area:actions}.picker-tabpanel--single>.picker-wheel[open]{padding:0}.picker-tabpanel--single:has(>.picker-wheel:not([open])){grid-template-columns:1fr;grid-template-areas:"source""search""filters""adjust""wheel""results""footer"}.picker-tabpanel--mix .mix-builder:has(.mix-builder-wheel:not([open])){grid-template-columns:1fr;grid-template-areas:"preview""hint""controls""slots""add""actions"}}.planning-assign-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;z-index:10;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%);border:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.candidate-container{position:relative}.candidate-container:hover .planning-assign-btn{display:flex}.planning-assign-btn svg{width:16px;height:16px}.planning-assign-btn:hover{box-shadow:var(--shadow-success-sm);transform:translateY(-50%)scale(1.1)}.planning-buy-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;z-index:10;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.candidate-container:hover .planning-buy-btn{display:flex}.planning-buy-btn svg{width:16px;height:16px}.planning-buy-btn:hover{box-shadow:var(--shadow-warning-sm);transform:translateY(-50%)scale(1.1)}.planning-mixing-cell{min-height:60px;position:relative}.planning-cell-highlight{background-color:#e3f2fd!important}.planning-mix-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);z-index:10;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;padding:8px 16px;font-weight:500;transition:all .2s;display:block;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.planning-mix-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-50%)translateY(-2px)}.planning-delete-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;z-index:10;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.candidate-container:hover .planning-delete-btn{display:flex}.planning-delete-btn svg{width:16px;height:16px}.planning-delete-btn:hover{box-shadow:var(--shadow-danger-sm);transform:translateY(-50%)scale(1.1)}.planning-paint-status-icon{border-radius:var(--radius-full);z-index:5;pointer-events:auto;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;bottom:4px;left:4px}.planning-shopping-icon{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.planning-question-icon{color:#fff;background:#ef4444}.planning-paint-status-icon svg{width:12px;height:12px}.planning-view-hover-btn{margin:0;padding:0;transition:all .2s}.planning-view-hover-btn:hover{box-shadow:var(--shadow-warning-sm);transform:scale(1.1)}.vallejo-section{margin-top:20px}.vallejo-section h2{color:#4a5aad;margin-bottom:20px}#vallejoTable{border-collapse:collapse;background:#fff;width:100%}#vallejoTable thead{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}#vallejoTable th{padding:var(--space-md);text-align:left;font-weight:600}#vallejoTable td{padding:12px var(--space-md);border-bottom:1px solid #e0e0e0}#vallejoTable tbody tr:hover{background:#f8f9fa}.candidate-container{align-items:flex-start;gap:12px;display:flex}.candidate-name-wrapper{flex-direction:column;gap:2px;display:flex}.candidate-name{color:#333;font-weight:500;display:block}.upload-section{margin-bottom:var(--space-xl);justify-content:center;display:flex}.custom-mix-color-select-body{max-height:calc(90vh - 100px);padding:20px;overflow-y:auto}.planning-manual-select-tabs{border-bottom:2px solid #e0e0e0;gap:10px;margin-bottom:20px;display:flex}.planning-manual-select-tab{color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 20px;font-weight:600;transition:all .3s;position:relative;top:2px}.planning-manual-select-tab:hover{color:#4a5aad;background:#667eea0d}.planning-manual-select-tab.active{color:#4a5aad;background:0 0;border-bottom-color:#4a5aad}.color-select-table-container{max-height:400px;margin-top:20px;overflow-y:auto}#customMixColorSelectTable{border-collapse:collapse;width:100%}#customMixColorSelectTable thead{color:#fff;z-index:10;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);position:sticky;top:0}#customMixColorSelectTable th{text-align:left;padding:12px;font-weight:600}#customMixColorSelectTable td{border-bottom:1px solid #e0e0e0;padding:12px}#customMixColorSelectTable tbody tr{cursor:pointer;position:relative}#customMixColorSelectTable tbody tr:hover{background:#f8f9fa}#customMixColorSelectTable tbody tr:hover .select-color-btn{display:flex}@media (pointer:coarse){.select-color-btn{width:44px;min-width:44px;height:44px;min-height:44px;display:flex}}.select-color-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%);border:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:all .2s;display:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.planning-add-color-modal-content{border-radius:var(--radius-xl);width:90%;max-width:500px;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex}.planning-split-view{align-items:flex-start;gap:20px;display:flex}.planning-image-pane{border-radius:var(--radius-md);background:#f8f9fa;flex:0 0 35%;justify-content:center;align-items:center;max-width:35%;min-height:200px;display:flex;overflow:hidden}.planning-image-pane img{border-radius:var(--radius-md);width:100%;height:auto;display:block}@media (width<=768px){.planning-split-view{flex-direction:column}.planning-image-pane{flex:none;width:100%;max-width:100%}}.custom-mix-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;padding:8px 16px;font-weight:500;transition:all .2s}.custom-mix-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.mixing-section{margin-top:20px}.mixing-section .table-container{border-radius:var(--radius-md);max-height:calc(100vh - 300px);box-shadow:var(--shadow-sm);position:relative;overflow:auto}#mixingTable{border-collapse:collapse;background:#fff;width:100%}#mixingTable thead{color:#fff;z-index:10;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);position:sticky;top:0}#mixingTable th{padding:var(--space-md);text-align:left;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);font-weight:600}#mixingTable td{padding:12px var(--space-md);border-bottom:1px solid #e0e0e0}#mixingTable tbody tr:hover{background:#f8f9fa}#mixingTable tfoot{z-index:10;background:#f8f9fa;position:sticky;bottom:0}#mixingTable tfoot td{padding:var(--space-md);background:#f8f9fa;border-top:2px solid #e0e0e0}.mycollection-section{margin-top:20px}.mycollection-section h2{color:#4a5aad;margin-bottom:20px}#myCollectionTable{border-collapse:collapse;background:#fff;width:100%}#myCollectionTable thead{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}#myCollectionTable th{padding:var(--space-md);text-align:left;font-weight:600}#myCollectionTable td{padding:12px var(--space-md);border-bottom:1px solid #e0e0e0}#myCollectionTable tbody tr:hover{background:#f8f9fa}#myCollectionTable tbody tr.highlighted{transition:background-color .3s;background:#fff3cd!important}.action-button-cell{text-align:center;width:80px;padding:0!important}.delete-button-cell{text-align:center;width:50px;padding:0!important}.delete-from-collection-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-xl);background:#f44336;border:none;padding:0;font-weight:700;line-height:1;transition:all .2s;display:none}#myCollectionTable .collection-row:hover .delete-from-collection-btn{display:inline-block}.delete-from-collection-btn:hover{box-shadow:var(--shadow-danger-sm);background:#d32f2f;transform:scale(1.1)}.find-harmony-btn{background:var(--color-primary,#4a5aad);color:#fff;border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-base);border:none;margin-right:4px;padding:0;line-height:1;transition:all .2s;display:none}#myCollectionTable .collection-row:hover .find-harmony-btn{display:inline-block}.find-harmony-btn:hover{box-shadow:var(--shadow-brand-sm);background:#3a4a9d;transform:scale(1.1)}.gpf-bar{margin-bottom:12px;position:relative}.gpf-chips{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.gpf-label{font-size:var(--text-xs);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;font-weight:600}.gpf-chip{border-radius:var(--radius-lg);font-size:var(--text-xs);cursor:pointer;border:1px solid;align-items:center;gap:4px;padding:3px 8px;font-weight:600;transition:opacity .15s;display:inline-flex}.gpf-chip-active{color:#4a5aad;background:#eef0ff;border-color:#c7cdf5}.gpf-chip-active:hover{background:#dde0ff}.gpf-chip-x{font-size:var(--text-base);opacity:.7;line-height:1}.gpf-chip-clear{color:var(--color-text-helper);background:0 0;border-color:#ddd}.gpf-chip-clear:hover{color:#d32f2f;border-color:#d32f2f}.gpf-edit-btn{border-radius:var(--radius-lg);font-size:var(--text-xs);cursor:pointer;color:var(--color-text-helper);background:0 0;border:1px dashed #ccc;padding:3px 10px;font-weight:600;transition:all .15s}.gpf-edit-btn:hover,.gpf-edit-btn.active{color:#4a5aad;background:#f0f2ff;border-color:#4a5aad}.gpf-panel{z-index:200;border-radius:var(--radius-md);padding:var(--space-md) 16px;min-width:260px;box-shadow:var(--shadow-md);background:#fff;border:1px solid #e0e0e0;position:absolute;top:calc(100% + 6px);left:0}.gpf-panel-section{margin-bottom:12px}.gpf-panel-section:last-child{margin-bottom:0}.gpf-panel-label{font-size:var(--text-xs);color:#555;text-transform:uppercase;letter-spacing:.3px;margin-bottom:var(--space-sm);font-weight:700}.gpf-panel-hint{text-transform:none;color:var(--color-text-helper);font-weight:400}.gpf-panel-options{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.gpf-option{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:#444;cursor:pointer;white-space:nowrap;display:flex}.gpf-option input[type=checkbox]{cursor:pointer;accent-color:#4a5aad;margin:0}.hf-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.hf-modal{border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;display:flex;overflow:hidden}.hf-header{border-bottom:1px solid #eee;flex-shrink:0;align-items:center;gap:12px;padding:16px 20px;display:flex}.hf-anchor{align-items:center;gap:10px;display:flex}.hf-anchor-swatch{border-radius:var(--radius-md);border:1px solid #0000001a;flex-shrink:0;width:36px;height:36px}.hf-anchor-name{font-size:var(--text-base);color:#333;font-weight:700}.hf-anchor-producer{font-size:var(--text-xs);color:var(--color-text-helper)}.hf-title{font-size:var(--text-sm);color:var(--color-text-helper);text-align:right;flex:1;font-weight:600}.hf-close{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;font-size:var(--text-lg);color:var(--color-text-secondary);background:#f5f5f5;border:none;flex-shrink:0;line-height:1;transition:background .15s}.hf-close:hover{color:#d32f2f;background:#ffe0e0}.hf-tabs{border-bottom:1px solid #eee;flex-shrink:0;display:flex;overflow-x:auto}.hf-tab{font-size:var(--text-sm);color:var(--color-text-helper);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-weight:600;transition:color .15s}.hf-tab.active{color:#4a5aad;border-bottom-color:#4a5aad}.hf-body{flex-direction:column;flex:1;gap:20px;padding:16px 20px;display:flex;overflow-y:auto}.hf-tier-header{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #f0f0f0;margin-bottom:8px;padding-bottom:4px;font-weight:700}.hf-tier-buy{color:#e65100}.hf-empty-tier{font-size:var(--text-sm);color:var(--color-text-helper);padding:8px 0}.hf-results{gap:var(--space-sm);flex-direction:column;display:flex}.hf-result-row{padding:var(--space-sm) 8px;border-radius:var(--radius-md);align-items:center;gap:10px;transition:background .12s;display:flex}.hf-result-row:hover{background:#f8f9fa}.hf-swatch{border-radius:var(--radius-md);border:1px solid #00000014;flex-shrink:0;width:32px;height:32px}.hf-result-info{flex:1;min-width:0}.hf-result-name{font-size:var(--text-sm);color:#333;text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.hf-result-producer{font-size:var(--text-xs);color:var(--color-text-helper);display:block}.hf-delta{font-size:var(--text-xs);padding:2px var(--space-sm);border-radius:var(--radius-md);flex-shrink:0;font-weight:600}.hf-action-btn{border-radius:var(--radius-md);border:1px solid var(--color-primary,#4a5aad);color:var(--color-primary,#4a5aad);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;padding:4px 10px;font-weight:600;transition:background .15s}.hf-action-btn:hover{background:var(--color-primary,#4a5aad);color:#fff}.hf-action-cart{color:#e65100;border-color:#e65100}.hf-action-cart:hover{color:#fff;background:#e65100}.hf-footer-note{font-size:var(--text-sm);color:#aaa;text-align:center;border-top:1px solid #f0f0f0;flex-shrink:0;padding:10px 20px}.hf-near-neutral{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 24px;display:flex}.hf-near-neutral-icon{font-size:36px;line-height:1}.hf-near-neutral-title{color:var(--text-primary,#2d2d4a);margin:0;font-size:15px;font-weight:600}.hf-near-neutral-hint{color:var(--text-secondary,#6b6b8a);max-width:300px;margin:0;font-size:13px;line-height:1.5}.hf-filter-hiding{color:var(--text-secondary,#6b6b8a);align-items:center;gap:6px;padding:12px 16px;font-size:13px;display:flex}.hf-filter-adjust-btn{color:var(--color-primary,#4a5aad);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.hf-filter-adjust-btn:hover{color:#2c3d8a}.filter-hiding-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 24px;display:flex}.filter-hiding-icon{font-size:32px;line-height:1}.filter-hiding-title{color:var(--text-primary,#2d2d4a);margin:0;font-size:15px;font-weight:600}.filter-hiding-subtitle{color:var(--text-secondary,#6b6b8a);margin:0;font-size:13px}.filter-hiding-adjust-btn{color:var(--color-primary,#4a5aad);cursor:pointer;background:0 0;border:1px solid #4a5aad59;border-radius:6px;margin-top:4px;padding:6px 16px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}.filter-hiding-adjust-btn:hover{background:#4a5aad12;border-color:#4a5aad99}.shopping-section{margin-top:20px}.shopping-section h2{color:#4a5aad;margin-bottom:20px}#shoppingTable{border-collapse:collapse;background:#fff;width:100%}#shoppingTable thead{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}#shoppingTable th{padding:var(--space-md);text-align:left;font-weight:600}#shoppingTable td{padding:12px var(--space-md);border-bottom:1px solid #e0e0e0}#shoppingTable tbody tr:hover{background:#f8f9fa}#shoppingTable .delete-from-collection-btn{opacity:0;pointer-events:none;display:inline-block}#shoppingTable .collection-row:hover .delete-from-collection-btn,#shoppingTable .collection-row:hover .bought-btn{opacity:1;pointer-events:auto}.bought-btn{opacity:0;pointer-events:none;padding:var(--space-sm) 12px;color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;background:linear-gradient(135deg,#4caf50 0%,#45a049 100%);border:none;font-weight:600;transition:all .2s}.bought-btn:hover{box-shadow:var(--shadow-success-sm);background:linear-gradient(135deg,#45a049 0%,#3d8b40 100%);transform:scale(1.05)}@media (pointer:coarse){.bought-btn{opacity:1;pointer-events:auto;min-height:44px}#shoppingTable .delete-from-collection-btn{opacity:1;pointer-events:auto;min-width:44px;min-height:44px}}.collection-row{position:relative}.add-to-collection-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-lg);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .2s;display:flex}.add-to-collection-btn:hover{box-shadow:var(--shadow-brand-sm);transform:scale(1.1)}.add-to-collection-btn.added{background:#4caf50}.add-to-cart-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:none;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:all .2s;display:flex}.add-to-cart-btn svg{width:16px;height:16px}.add-to-cart-btn:hover{box-shadow:var(--shadow-warning-sm);transform:scale(1.1)}.add-to-cart-btn.added{background:#4caf50}.paint-catalog{width:100%}.paint-catalog-empty{padding:var(--space-6);text-align:center;color:var(--color-text-helper);font-size:var(--text-base)}.paint-catalog-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.paint-catalog-search{min-width:200px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;font-size:var(--text-base);flex:1}.paint-catalog-search:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.paint-catalog-count{color:var(--color-text-helper);font-size:var(--text-sm);white-space:nowrap}.paint-catalog-hues{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.paint-catalog-hue-chip{min-height:30px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--motion-fast), color var(--motion-fast);align-items:center;gap:6px;display:inline-flex}.paint-catalog-hue-chip:hover{border-color:var(--color-primary-alpha-50)}.paint-catalog-hue-chip.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);color:var(--color-primary)}.paint-catalog-hue-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.paint-catalog-hue-swatch{border:1px solid var(--color-border);border-radius:var(--radius-full);flex-shrink:0;width:14px;height:14px}.paint-catalog-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.paint-catalog-spacer{width:100%}.paint-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--motion-fast);flex-direction:column;display:flex;overflow:hidden}.paint-card:hover{border-color:var(--color-primary-alpha-50)}.paint-card.highlighted{outline:2px solid var(--color-primary);outline-offset:1px}.paint-card-discontinued{opacity:.65}.paint-card-swatch{flex-shrink:0;width:100%;height:64px}.paint-card-body{gap:var(--space-1);padding:var(--space-2);flex-direction:column;flex:1;display:flex}.paint-card-name{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;min-height:2.6em;font-size:var(--text-sm);-webkit-box-orient:vertical;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.paint-card-meta{color:var(--color-text-helper);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;min-height:1.3em;line-height:1.3;overflow:hidden}.paint-card-footer{justify-content:space-between;align-items:flex-end;gap:var(--space-1);margin-top:auto;display:flex}.paint-card-types{gap:var(--space-1);flex-wrap:nowrap;min-height:20px;display:flex;overflow:hidden}.paint-card-type-badge{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-secondary);color:var(--color-text-helper);font-size:var(--text-xs);padding:1px 6px}.paint-card-actions{gap:var(--space-1);flex-shrink:0;display:flex}.paint-card .paint-card-action{width:28px;height:28px}.paint-card .paint-card-action:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.paint-catalog-empty-actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (pointer:coarse){.paint-catalog-hue-chip{min-height:40px}.paint-card .paint-card-action{width:40px;height:40px}}@media (prefers-reduced-motion:reduce){.paint-catalog-hue-chip,.paint-card{transition:none}}.references-section{padding:20px}.references-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.references-section h2{color:#4a5aad;margin:0}.minipaint-landing-actions{align-items:center;gap:10px;display:flex}@media (width<=480px){.minipaint-landing-header{flex-direction:column;align-items:stretch;gap:12px}.minipaint-landing-header h2{min-width:0}.minipaint-landing-actions{flex-wrap:wrap;align-items:stretch}.minipaint-landing-actions>*{box-sizing:border-box;text-align:center;flex:130px;min-width:0}}.add-reference-dropdown{position:relative}.add-reference-btn{color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:all .2s;display:flex}.add-reference-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.dropdown-arrow{font-size:var(--text-sm);transition:transform .2s}.add-reference-dropdown.active .dropdown-arrow{transform:rotate(180deg)}.add-reference-dropdown-menu{margin-top:var(--space-xs);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:1000;background:#fff;min-width:150px;display:none;position:absolute;top:100%;right:0;overflow:hidden}.add-reference-dropdown.active .add-reference-dropdown-menu{display:block}.dropdown-item{text-align:left;cursor:pointer;width:100%;font-size:var(--text-base);color:#333;background:#fff;border:none;padding:12px 20px;transition:background .2s;display:block}.dropdown-item:hover{background:#f8f9fa}.dropdown-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.dropdown-item:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.references-gallery{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:10px;display:grid}.references-drop-zone{border-radius:var(--radius-lg);cursor:pointer;aspect-ratio:1;background:#f8f9fa;border:2px dashed #cbd5e0;justify-content:center;align-items:center;min-height:200px;transition:all .3s;display:flex;position:relative}.references-drop-zone:hover{background:#f0f4ff;border-color:#4a5aad}.references-drop-zone.drag-over{background:#e8edff;border-style:solid;border-color:#4a5aad;transform:scale(1.02)}.references-drop-zone-content{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.references-drop-zone-icon{color:#4a5aad;opacity:.6;transition:all .3s}.references-drop-zone:hover .references-drop-zone-icon,.references-drop-zone.drag-over .references-drop-zone-icon{opacity:1;transform:translateY(-4px)}.references-drop-zone-text{color:#4a5aad;font-size:var(--text-base);text-align:center;opacity:.8;font-weight:600}.references-drop-zone:hover .references-drop-zone-text,.references-drop-zone.drag-over .references-drop-zone-text{opacity:1}.references-drop-zone.uploading{pointer-events:none;cursor:wait}.references-drop-zone-loading-overlay{border-radius:inherit;color:#4a5aad;z-index:1;background:#ffffffe0;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex;position:absolute;inset:0}@keyframes references-spin{to{transform:rotate(360deg)}}.references-drop-zone-spinner{border:3px solid #4a5aad33;border-top-color:#4a5aad;border-radius:50%;width:30px;height:30px;animation:.7s linear infinite references-spin}.references-gallery-item{border-radius:var(--radius-lg);cursor:pointer;aspect-ratio:1;background:#f8f9fa;border:2px solid #e0e0e0;transition:all .3s;position:relative;overflow:hidden}.references-gallery-item:hover{box-shadow:var(--shadow-brand-lg);border-color:#4a5aad;transform:translateY(-4px)}.references-gallery-item img{object-fit:contain;width:100%;height:100%;display:block}.references-gallery-broken{width:100%;height:100%;color:var(--color-text-helper);background:#0000000a;justify-content:center;align-items:center;display:flex}.image-view-broken{color:var(--color-text-dark-secondary);font-size:var(--text-lg);padding:var(--space-6) var(--space-7);border:1px dashed var(--color-text-dark-muted);border-radius:var(--radius-lg);background:#0006}.references-gallery-remove{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;font-size:var(--text-lg);z-index:10;box-shadow:var(--shadow-sm);opacity:0;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.references-gallery-item:hover .references-gallery-remove{opacity:1}.references-gallery-remove:hover{box-shadow:var(--shadow-danger-sm);transform:scale(1.15)}.references-gallery-pick{color:#fff;border-radius:var(--radius-full);cursor:pointer;z-index:10;width:28px;height:28px;box-shadow:var(--shadow-sm);opacity:0;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:8px;left:8px}.references-gallery-item:hover .references-gallery-pick{opacity:1}.references-gallery-pick:hover{box-shadow:var(--shadow-brand-md);transform:scale(1.15)}.references-gallery-item--mini{border-color:#2d9a6b}.references-gallery-item--mini:hover{border-color:#1f7a52}.references-gallery-mini-badge{color:#fff;border-radius:var(--radius-full);z-index:10;width:20px;height:20px;box-shadow:var(--shadow-sm);opacity:.85;background:#2d9a6b;justify-content:center;align-items:center;display:flex;position:absolute;bottom:6px;right:6px}.minipaint-modal{z-index:10004;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.minipaint-modal.active{display:flex}.minipaint-modal-content{width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:none;background:#fff;border-radius:0;flex-direction:column;display:flex;position:relative}.minipaint-panel-header{padding:var(--space-sm) 10px;background:#16162a;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.minipaint-panel-header-left,.minipaint-panel-header-right{align-items:center;gap:4px;display:flex}.minipaint-panel-header-btn{border-radius:var(--radius-sm);cursor:pointer;color:#ccc;background:#ffffff0f;border:1px solid #ffffff1f;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .15s,border-color .15s;display:flex}.minipaint-panel-header-btn:hover:not(:disabled){color:#fff;background:#ffffff1f;border-color:#fff3}.minipaint-panel-header-btn:disabled{opacity:.3;cursor:not-allowed}.minipaint-panel-header-btn svg{stroke:currentColor;width:14px;height:14px}.minipaint-panel-header-save{color:#fff;border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;background:#4a5aadcc;border:1px solid #4a5aad99;padding:4px 12px;font-weight:600;transition:background .15s}.minipaint-panel-header-save:hover{background:#4a5aad}.minipaint-panel-header-help{border-radius:var(--radius-sm);min-height:28px;color:var(--color-text-dark-secondary);font-size:var(--text-xs);background:#ffffff0f;border:1px solid #ffffff1f;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.minipaint-panel-header-help:hover{color:var(--color-text-dark-hover);background:#ffffff1f;border-color:#fff3}.minipaint-panel-header-help:focus-visible{outline:2px solid var(--color-text-dark-hover);outline-offset:2px}.minipaint-panel-header-help svg{stroke:currentColor;flex-shrink:0}.minipaint-panel-header-close{color:var(--color-text-dark-secondary);font-size:var(--text-lg);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;justify-content:center;align-items:center;width:28px;height:28px;padding:0;line-height:1;transition:background .15s,color .15s;display:flex}.minipaint-panel-header-close:hover{color:#ef4444;background:#ef444433}.minipaint-color-panel-top{align-items:center;gap:var(--space-sm);margin-bottom:8px;display:flex}.minipaint-color-panel-top input[type=color]{border-radius:var(--radius-md);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;flex-shrink:0;width:32px;height:32px;padding:2px}.minipaint-color-panel.minipaint-floating-color-instrument{z-index:10006;width:260px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);color:var(--color-text-dark-light);background:var(--color-surface-dark-elevated);box-shadow:var(--shadow-xl);position:fixed;overflow:hidden auto}.minipaint-color-panel-add-btn{padding:var(--space-sm) 8px;color:#ccc;border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;flex:1;font-weight:500;transition:background .15s}.minipaint-color-panel-add-btn:hover{background:#ffffff1f}.minipaint-color-group{margin-bottom:2px}.minipaint-color-group-header{padding:var(--space-xs) 4px;cursor:pointer;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;transition:background .1s;display:flex}.minipaint-color-group-header:hover{background:#ffffff0f}.minipaint-color-group-arrow{font-size:var(--text-xs);color:#fff6;text-align:center;flex-shrink:0;width:12px;transition:transform .15s}.minipaint-color-group.collapsed .minipaint-color-group-arrow{transform:rotate(-90deg)}.minipaint-color-group-label{font-size:var(--text-xs);color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;flex:1;font-weight:600}.minipaint-color-group-count{font-size:var(--text-xs);color:#ffffff4d}.minipaint-color-group-swatches{padding:4px 4px var(--space-sm) 16px;flex-wrap:wrap;gap:3px;display:flex}.minipaint-color-group.collapsed .minipaint-color-group-swatches{display:none}.minipaint-color-group-empty{font-size:var(--text-xs);color:#ffffff40;padding:2px 0;font-style:italic}.minipaint-color-swatch{border-radius:var(--radius-sm);cursor:pointer;border:2px solid #ffffff1a;flex-shrink:0;width:24px;height:24px;transition:transform .1s,border-color .15s}.minipaint-color-swatch:hover{border-color:#ffffff59;transform:scale(1.15)}.minipaint-color-swatch.active{border-color:#4a5aad;box-shadow:0 0 0 1px #4a5aad}.minipaint-debug-section{margin-top:auto;padding:var(--space-sm) 10px!important;border-top:1px solid #ffffff0d!important}.minipaint-left-panel{color:#e0e0e0;background:#1a1a2e;border-right:1px solid #ffffff14;flex-direction:column;flex-shrink:0;width:210px;display:flex;overflow-y:auto;container-type:inline-size}@container (width<=230px){.minipaint-panel-header-help{width:28px;padding:0}.minipaint-panel-header-help span{display:none}}@container (width<=190px){.minipaint-panel-header{padding-inline:6px}.minipaint-panel-header-save{padding-inline:8px}}.minipaint-panel-section{padding:10px}.minipaint-panel-section+.minipaint-panel-section{border-top:1px solid #ffffff0d}.minipaint-panel-heading{font-size:var(--text-xs);text-transform:uppercase;color:#ffffff59;letter-spacing:1px;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;display:flex}.minipaint-panel-heading-chevron{font-size:var(--text-xs);color:#ffffff40;transition:transform .15s}.minipaint-panel-section.collapsed .minipaint-panel-heading-chevron{transform:rotate(-90deg)}.minipaint-panel-section.collapsed .minipaint-tools-grid{display:none}.minipaint-panel-section.collapsed .minipaint-panel-heading{margin-bottom:0}.minipaint-section-block{border-radius:var(--radius-md);background:#6366f10f;border:2px solid #6366f180;flex-shrink:0;overflow:hidden;padding:0!important}.minipaint-panel-section+.minipaint-section-block{border-top:2px solid #6366f180;margin-top:2px}.minipaint-section-block-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 10px;font-size:var(--text-xs);color:#e0e0ff;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#6366f126;border-bottom:1px solid #6366f14d;font-weight:600;display:flex}.minipaint-section-block-header .minipaint-new-region-btn{margin-left:auto}.minipaint-section-block-chevron{font-size:var(--text-xs);color:#a5b4fc;flex-shrink:0;transition:transform .15s}.minipaint-section-block-header .minipaint-new-region-btn~.minipaint-section-block-chevron{margin-left:4px}.minipaint-section-block-header>span:first-child~.minipaint-section-block-chevron{margin-left:auto}.minipaint-section-block.collapsed .minipaint-section-block-chevron{transform:rotate(-90deg)}.minipaint-section-block.collapsed .minipaint-section-block-header{border-bottom:none}.minipaint-section-block.collapsed .minipaint-section-block-body{display:none}.minipaint-section-block-body,.minipaint-color-panel-body{padding:8px 10px}.minipaint-tools-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.minipaint-tools-grid .minipaint-tool-btn{border-radius:var(--radius-md);color:#aaa;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;justify-content:center;align-items:center;width:100%;height:42px;padding:0;transition:all .15s;display:flex}.minipaint-tools-grid .minipaint-tool-btn:hover,.minipaint-tools-grid .minipaint-tool-btn:focus-visible{color:#ddd;background:#ffffff1a;border-color:#ffffff26}.minipaint-tools-grid .minipaint-tool-btn.active{color:#fff;background:#4a5aad4d;border-color:#4a5aad99}.minipaint-tools-grid .minipaint-tool-btn svg{stroke:currentColor;width:20px;height:20px}.minipaint-brush-size-group,.minipaint-smoothing-group,.minipaint-fill-group,.minipaint-region-tolerance{gap:var(--space-sm);flex-direction:column;display:flex}.minipaint-panel-section label{font-size:var(--text-xs);color:#ffffff73;white-space:nowrap}.minipaint-panel-section span{font-size:var(--text-xs);color:#ffffff80;font-variant-numeric:tabular-nums}.minipaint-panel-section input[type=range]{appearance:none;border-radius:var(--radius-xs);background:#ffffff1f;outline:none;height:4px}.minipaint-panel-section input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;background:#4a5aad;border:2px solid #1a1a2e;width:14px;height:14px}.minipaint-blend-mode-select,.minipaint-segmenter-select{padding:var(--space-xs) 8px;border-radius:var(--radius-sm);color:#ccc;font-size:var(--text-xs);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;outline:none;font-weight:500}.minipaint-blend-mode-select:hover,.minipaint-segmenter-select:hover{background:#ffffff1a;border-color:#fff3}.minipaint-region-item{padding:var(--space-sm) 8px;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff08;border:1px solid #0000;align-items:center;gap:8px;min-height:36px;transition:background .1s;display:flex}.minipaint-region-item.active{background:#4a5aad33;border-color:#4a5aad80}.minipaint-region-swatch{border-radius:var(--radius-sm);border:2px solid #ffffff26;flex-shrink:0;width:24px;height:24px;box-shadow:inset 0 0 0 1px #0003}.minipaint-region-swatch.nmm{border-radius:var(--radius-sm);width:40px}.minipaint-region-label:focus{background:#ffffff14;outline:1px solid #4a5aad80}.minipaint-region-delete{color:#0000;font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:2px 4px;line-height:1;transition:color .1s,background .1s}.minipaint-region-item:hover .minipaint-region-delete,.minipaint-region-item:focus-within .minipaint-region-delete{color:var(--color-text-dark-muted)}.minipaint-region-delete:hover,.minipaint-region-delete:focus-visible{background:#ef44441a;color:#ef4444!important}.minipaint-bg-layer{opacity:.7;border-top:1px solid #ffffff0f;margin-top:4px;padding-top:8px}.minipaint-bg-layer .minipaint-region-label{color:var(--color-text-helper);cursor:default;font-style:italic}.minipaint-region-type-badge{letter-spacing:.04em;cursor:pointer;color:#fff6;background:#ffffff14;border:1px solid #ffffff1f;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:700;transition:background .1s,color .1s}.minipaint-region-type-badge:hover{color:#ffffffb3;background:#ffffff24}.minipaint-region-type-badge.nmm{color:#a0c3ffe6;background:#6394ff2e;border-color:#6394ff66}.minipaint-region-type-badge.nmm:hover{background:#6394ff47}.minipaint-region-item{flex-wrap:wrap}.minipaint-nmm-controls{padding:3px 4px 3px calc(40px + var(--space-sm));flex-wrap:wrap;flex-basis:100%;align-items:center;gap:5px;display:flex}.minipaint-nmm-mode-btn{color:#ffffff73;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff2e;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:600;transition:background .1s,color .1s}.minipaint-nmm-mode-btn:hover{color:#ffffffbf;background:#ffffff1a}.minipaint-nmm-mode-btn.active{color:#a0c3fff2;background:#6394ff40;border-color:#6394ff80}.minipaint-nmm-strength-row{flex-basis:100%;align-items:center;gap:6px;padding-top:2px;display:flex}.minipaint-nmm-strength-label{color:#ffffff59;white-space:nowrap;flex-shrink:0;font-size:9px}.minipaint-nmm-strength-slider{accent-color:#6394ffcc;flex:1;min-width:0;height:3px}.minipaint-group-tile{cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:6px;padding:5px 6px 5px 16px;transition:background .1s;display:flex}.minipaint-group-tile:hover{background:#ffffff12}.minipaint-group-strip{border-radius:3px;flex-shrink:0;display:flex;overflow:hidden}.minipaint-group-sq{width:14px;height:20px}.minipaint-group-tile-label{font-size:var(--text-xs);color:#ffffffb3;white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.minipaint-color-group.collapsed .minipaint-group-tiles,.minipaint-color-group.collapsed #minipaintGroupTiles{display:none}.minipaint-zoom-controls{border-radius:var(--radius-md);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;align-items:center;gap:4px;padding:4px 8px;display:flex;position:absolute;bottom:12px;right:12px}.minipaint-zoom-btn{border-radius:var(--radius-sm);color:#ccc;cursor:pointer;width:28px;height:28px;font-size:var(--text-base);background:#ffffff1a;border:1px solid #ffffff26;justify-content:center;align-items:center;transition:background .15s;display:flex}.minipaint-zoom-btn:hover,.minipaint-zoom-btn:focus-visible{color:#fff;background:#fff3}.minipaint-zoom-fit{width:auto;font-size:var(--text-xs);padding:0 8px}.minipaint-zoom-level{font-size:var(--text-xs);color:#aaa;text-align:center;-webkit-user-select:none;user-select:none;min-width:40px}.minipaint-touch-action-bar{border-radius:var(--radius-md);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;align-items:center;gap:8px;padding:6px 8px;display:flex;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.minipaint-touch-action-btn{border-radius:var(--radius-sm);color:#eee;min-width:44px;min-height:44px;font-size:var(--text-sm);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff26;padding:0 14px;font-weight:500;transition:background .15s}.minipaint-touch-action-btn:hover,.minipaint-touch-action-btn:focus-visible{color:#fff;background:#fff3}.minipaint-touch-action-done{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-color:#4a5aad}.minipaint-touch-action-done:hover,.minipaint-touch-action-done:focus-visible{background:linear-gradient(135deg,#5566c4 0%,#6d47a0 100%)}.minipaint-tool-options-box{border-radius:var(--radius-md);background:#6366f10f;border:2px solid #6366f180;flex-shrink:0;overflow:hidden;padding:0!important}.minipaint-tool-options-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 10px;font-size:var(--text-xs);color:#e0e0ff;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#6366f126;border-bottom:1px solid #6366f14d;font-weight:600;display:flex}.minipaint-tool-options-chevron{font-size:var(--text-xs);color:#a5b4fc;margin-left:auto;transition:transform .15s}.minipaint-tool-options-box.collapsed .minipaint-tool-options-chevron{transform:rotate(-90deg)}.minipaint-tool-options-box.collapsed .minipaint-tool-options-body{display:none}.minipaint-tool-options-icon{color:#a5b4fc;align-items:center;display:flex}.minipaint-tool-options-icon svg{width:16px;height:16px}.minipaint-tool-options-body{padding:8px 10px}.minipaint-modal-content{background:#12122a}.minipaint-invert-btn{padding:var(--space-sm) 8px;color:#ccc;border-radius:var(--radius-sm);font-size:var(--text-xs);margin-top:var(--space-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;font-weight:500}.minipaint-invert-btn:hover{box-shadow:none;background:#ffffff1f;transform:none}.minipaint-tool-btn{border-radius:var(--radius-md);cursor:pointer;color:#333;background:#fff;border:2px solid #e0e0e0;justify-content:center;align-items:center;width:40px;height:40px;padding:8px;transition:all .2s;display:flex}.minipaint-tool-btn:hover{background:#f0f0f0;border-color:#4a5aad}.minipaint-tool-btn.active{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-color:#4a5aad}.minipaint-tool-btn svg{stroke:currentColor;width:20px;height:20px}.minipaint-fill-group,.minipaint-brush-size-group,.minipaint-smoothing-group{padding:var(--space-sm) 8px;border-radius:var(--radius-md);background:0 0;align-items:center;gap:8px;transition:background .2s;display:flex}.pdf-export-settings-modal-content{border-radius:var(--radius-xl);width:90%;max-width:500px;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex}.minipaint-tool-group input[type=color]{border-radius:var(--radius-md);cursor:pointer;border:2px solid #e0e0e0;width:40px;height:40px;padding:0}.minipaint-tool-group input[type=range]{width:100px}.minipaint-tool-group span{font-size:var(--text-base);color:#333;min-width:30px;font-weight:600}.minipaint-content-wrapper{flex:1;display:flex;position:relative;overflow:hidden}.minipaint-mode-bar{display:none}.minipaint-debug-gallery{background:#f5f5f5;border-right:1px solid #ddd;flex-direction:column;gap:10px;width:200px;padding:10px;display:flex;overflow:hidden auto}.minipaint-debug-gallery-item{border-radius:var(--radius-sm);padding:var(--space-xs);cursor:pointer;background:#fff;border:2px solid #ddd;transition:border-color .2s,box-shadow .2s;position:relative}.minipaint-debug-gallery-item:hover{box-shadow:var(--shadow-brand-sm);border-color:#4a5aad}.minipaint-debug-gallery-item img{border-radius:var(--radius-xs);width:100%;height:auto;display:block}.minipaint-debug-gallery-item-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center;margin-top:4px;font-weight:500}.minipaint-debug-gallery-item-download{color:#fff;border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;opacity:0;z-index:10;background:#667eeae6;border:none;padding:4px 8px;transition:opacity .2s;position:absolute;top:8px;right:8px}.minipaint-debug-gallery-item:hover .minipaint-debug-gallery-item-download{opacity:1}.minipaint-debug-gallery-item-download:hover{background:#667eea}.minipaint-debug-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:flex}.minipaint-canvas-container{background:#fafafa;flex:1;justify-content:flex-start;align-items:flex-start;padding:20px;display:flex;position:relative;overflow:auto}.minipaint-canvas-container canvas{box-shadow:var(--shadow-sm);cursor:crosshair;background:#fff;border:1px solid #ddd;flex-shrink:0;margin:auto}.minipaint-sam-canvas-blocker{z-index:10;cursor:wait;border-radius:inherit;background:#00000059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.minipaint-sam-spinner{border:4px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:.7s linear infinite minipaint-spin}@keyframes minipaint-spin{to{transform:rotate(360deg)}}.minipaint-brush-cursor{border-radius:var(--radius-full);pointer-events:none;z-index:999;box-sizing:border-box;border:2px solid #333;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffff80}.minipaint-brush-cursor:before{content:"";border-radius:var(--radius-full);background:#333;width:2px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.minipaint-magnifying-glass{border-radius:var(--radius-full);width:120px;height:120px;box-shadow:var(--shadow-md);pointer-events:none;z-index:1000;background:#fff;border:3px solid #333;position:absolute;overflow:hidden}.minipaint-magnifying-glass canvas{width:100%;height:100%;box-shadow:none;border-radius:var(--radius-full);border:none}.minipaint-color-balance-modal{z-index:10005;pointer-events:none;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.minipaint-color-balance-modal.active{pointer-events:auto;display:block}.minipaint-color-balance-modal-content{border-radius:var(--radius-lg);width:500px;max-height:80vh;box-shadow:var(--shadow-lg);pointer-events:auto;cursor:default;background:#fff;border:2px solid #4a5aad;flex-direction:column;display:flex;overflow:hidden}.minipaint-color-balance-modal-header{cursor:move;-webkit-user-select:none;user-select:none;color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:20px;display:flex}.minipaint-color-balance-modal-header h3{font-size:var(--text-lg);color:#333;font-size:var(--text-lg);margin:0}.minipaint-color-balance-modal-close{color:#fff;font-size:var(--text-xl);border-radius:var(--radius-md);cursor:pointer;background:#ef4444;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-weight:700;line-height:1;transition:background .2s;display:flex}.minipaint-color-balance-modal-close:hover{background:#dc2626}.minipaint-color-balance-modal-body{padding:20px;overflow-y:auto}.minipaint-color-balance-tone-range{gap:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid #e0e0e0;padding-bottom:20px;display:flex}.minipaint-color-balance-tone-range label{cursor:pointer;font-size:var(--text-base);color:#333;align-items:center;gap:8px;display:flex}.minipaint-color-balance-tone-range input[type=radio]{cursor:pointer}.minipaint-color-balance-sliders{margin-bottom:var(--space-lg);flex-direction:column;gap:20px;display:flex}.minipaint-color-balance-slider-group{flex-direction:column;gap:8px;display:flex}.minipaint-color-balance-slider-group label{font-size:var(--text-base);color:#555;font-weight:600}.minipaint-color-balance-slider-container{align-items:center;gap:10px;display:flex}.minipaint-color-balance-slider-label{font-size:var(--text-sm);color:var(--color-text-helper);text-align:center;min-width:35px}.minipaint-color-balance-slider{border-radius:var(--radius-xs);appearance:none;background:#e0e0e0;outline:none;flex:1;height:6px}.minipaint-color-balance-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;background:#4a5aad;width:18px;height:18px;transition:background .2s}.minipaint-color-balance-slider::-webkit-slider-thumb:hover{background:#5568d3}.minipaint-color-balance-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;background:#4a5aad;border:none;width:18px;height:18px;transition:background .2s}.minipaint-color-balance-slider::-moz-range-thumb:hover{background:#5568d3}.minipaint-color-balance-slider-value{font-size:var(--text-base);color:#4a5aad;text-align:right;min-width:40px;font-weight:600}.minipaint-color-balance-actions{border-top:1px solid #e0e0e0;justify-content:flex-end;gap:10px;padding-top:20px;display:flex}.minipaint-color-balance-reset-btn,.minipaint-color-balance-cancel-btn,.minipaint-color-balance-apply-btn{border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;border:none;padding:10px 20px;font-weight:600;transition:all .2s}.minipaint-color-balance-reset-btn{color:#333;background:#f0f0f0}.minipaint-color-balance-reset-btn:hover{background:#e0e0e0}.minipaint-color-balance-cancel-btn{color:#fff;background:#ef4444}.minipaint-color-balance-cancel-btn:hover{background:#dc2626}.minipaint-color-balance-apply-btn{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}.minipaint-color-balance-apply-btn:hover{opacity:.9;transform:translateY(-1px)}.minipaint-region-list{flex-direction:column;gap:4px;display:flex}.minipaint-region-item{align-items:center;gap:var(--space-sm);padding:4px var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0d;border:1px solid #0000;display:flex}.minipaint-region-item:hover{background:#ffffff1a}.minipaint-region-item.active{border-color:var(--accent-color,#4a90d9);background:#4a90d926}.minipaint-region-label{color:#e0e0e0;font-size:var(--text-xs);border-radius:var(--radius-xs);background:0 0;border:none;flex:1;min-width:0;padding:2px 4px}.minipaint-region-label:focus{outline:1px solid var(--accent-color,#4a90d9);background:#ffffff1a}.minipaint-region-delete{color:var(--color-text-helper);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.minipaint-region-delete:hover{color:#f44336}.minipaint-new-region-btn{color:#e0e0e0;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#ffffff1a;border:1px solid #fff3}.minipaint-new-region-btn:hover{background:#fff3}.minipaint-sam-row{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.minipaint-segmenter-select{font-size:var(--text-xs);color:#e0e0e0;border-radius:var(--radius-xs);background:#ffffff1a;border:1px solid #fff3;flex:1;padding:3px 4px}.minipaint-sam-controls{gap:3px;display:flex}.minipaint-sam-btn{color:#e0e0e0;border-radius:var(--radius-xs);cursor:pointer;width:26px;height:26px;font-size:var(--text-base);background:#ffffff1a;border:1px solid #fff3;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex}.minipaint-sam-btn.active{background:var(--accent-color,#4a90d9);border-color:var(--accent-color,#4a90d9);color:#fff}.minipaint-sam-btn:hover{background:#fff3}.minipaint-sam-status{font-size:var(--text-xs);color:#aaa;min-height:18px;padding:4px 0}.minipaint-sam-status.loading{color:#ff9800}.minipaint-sam-status.ready{color:#4caf50}.minipaint-sam-status.error{color:#f44336}.minipaint-region-tolerance{margin-top:var(--space-sm)}.minipaint-region-tolerance input[type=range]{width:100%}@media (width<=1024px){.minipaint-left-panel{width:180px}.minipaint-tool-btn{width:36px;height:36px}.minipaint-tools-grid{gap:4px}.minipaint-panel-section{padding:8px}}@media (width<=768px),(pointer:coarse) and (height<=500px){.minipaint-content-wrapper{--mp-tray-height:180px;--mp-mode-bar-height:56px;--mp-chrome-height:calc(var(--mp-tray-height) + var(--mp-mode-bar-height));flex-direction:column}.minipaint-content-wrapper[data-mp-mode=color]{--mp-tray-height:236px}.minipaint-content-wrapper[data-mp-mode=layers]{--mp-tray-height:min(60vh, calc(var(--mp-layers-rows,1) * 48px + 84px))}.minipaint-content-wrapper[data-mp-tray=collapsed]{--mp-tray-height:0px}.minipaint-left-panel{width:100%;height:var(--mp-tray-height);border-top:1px solid #ffffff14;border-bottom:none;border-right:none;flex-shrink:0;order:2;max-height:none;overflow:hidden auto;container-type:normal}.minipaint-panel-header{z-index:11;border-radius:var(--radius-md);background:#12122ad1;border-bottom:none;position:fixed;top:8px;left:8px;right:8px}.minipaint-left-panel>.minipaint-panel-section,.minipaint-left-panel>.minipaint-section-block{display:none}.minipaint-left-panel[data-mp-mode=draw]>[data-mp-section=draw],.minipaint-left-panel[data-mp-mode=select]>[data-mp-section=select],.minipaint-left-panel[data-mp-mode=layers]>[data-mp-section=layers],.minipaint-left-panel[data-mp-mode=color]>[data-mp-section=color],.minipaint-left-panel[data-mp-mode=draw]>[data-mp-section=tool-options],.minipaint-left-panel[data-mp-mode=select]>[data-mp-section=tool-options]{display:block}.minipaint-tool-options-body{display:none}.minipaint-tool-options-header,.minipaint-color-group-header{min-height:44px}.minipaint-color-group:not(.user-set) .minipaint-color-group-swatches,.minipaint-color-group:not(.user-set) .minipaint-group-tiles{display:none}.minipaint-color-group:not(.user-set) .minipaint-color-group-arrow{transform:rotate(-90deg)}.minipaint-left-panel[data-mp-sheet=open] .minipaint-tool-options-body{left:0;right:0;bottom:var(--mp-chrome-height);z-index:101;max-height:45vh;padding:var(--space-sm) 10px;background:#1a1a2e;border-top:1px solid #6366f180;display:block;position:absolute;overflow-y:auto}.minipaint-tool-options-chevron{transform:rotate(-90deg)}.minipaint-left-panel[data-mp-sheet=open] .minipaint-tool-options-chevron{transform:none}.minipaint-mode-bar{height:var(--mp-mode-bar-height);background:#12122a;border-top:1px solid #ffffff14;flex-shrink:0;order:3;display:flex}.minipaint-mode-btn{color:#ffffff73;min-height:44px;font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;border-top:2px solid #0000;flex:1;font-weight:500}.minipaint-mode-btn.active{color:var(--color-accent-on-dark);border-top-color:var(--color-accent-on-dark)}.minipaint-mode-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.minipaint-tools-grid{flex-wrap:wrap;gap:4px;display:flex}.minipaint-tools-grid .minipaint-tool-btn{width:44px;min-width:44px;height:44px;min-height:44px}.minipaint-canvas-container{flex:1;order:1;min-height:0;overflow:auto}.minipaint-canvas-container canvas{flex-shrink:0;margin:auto}.minipaint-panel-section input[type=range]{background:0 0;height:40px}.minipaint-panel-section input[type=range]::-webkit-slider-runnable-track{border-radius:var(--radius-xs);background:#ffffff1f;height:4px}.minipaint-panel-section input[type=range]::-moz-range-track{border-radius:var(--radius-xs);background:#ffffff1f;height:4px}.minipaint-region-item{min-height:44px;padding:8px 10px}.minipaint-new-region-btn{min-height:44px}.minipaint-panel-header-btn,.minipaint-panel-header-close{width:44px;height:44px}.minipaint-panel-header-help{width:44px;min-height:44px;padding:0}.minipaint-panel-header-help span{display:none}.minipaint-panel-header-save{min-height:44px;padding:4px 16px}.minipaint-zoom-btn{width:44px;height:44px}.minipaint-zoom-fit{width:auto}.minipaint-zoom-controls{bottom:calc(var(--mp-chrome-height) + 12px)}.minipaint-touch-action-bar{bottom:calc(var(--mp-chrome-height) + 76px)}.minipaint-panel-section input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-12px}.minipaint-panel-section input[type=range]::-moz-range-thumb{border-radius:var(--radius-full);background:#4a5aad;border:2px solid #1a1a2e;width:28px;height:28px}}.model3d-panel{--color-text-dark-light:#333;--color-text-dark-hover:#222;--color-text-dark-base:#444;--color-text-dark-secondary:var(--color-text-secondary);--color-text-dark-muted:var(--color-text-secondary);--color-surface-dark:var(--color-surface-secondary);--color-surface-dark-border:var(--color-border);color:var(--color-text-dark-light);flex-direction:column;gap:16px;padding:18px;display:flex}.model3d-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.model3d-header h2,.model3d-tool-title h2{margin:0 0 4px;font-size:1.25rem}.model3d-header p,.model3d-tool-title p{color:var(--color-text-dark-secondary);margin:0;font-size:.9rem}.model3d-gallery{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.model3d-gallery-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-dark);min-height:220px;color:var(--color-text-dark-hover);cursor:pointer;text-align:left;gap:10px;padding:12px;display:grid}.model3d-gallery-card:hover,.model3d-gallery-card:focus-visible{border-color:var(--color-primary);outline:none}.model3d-gallery-preview{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-primary-alpha-15), transparent 45%), var(--color-surface-dark-border);place-items:center;min-height:145px;display:grid}.model3d-gallery-preview-mark{border:1px solid var(--color-border);border-radius:var(--radius-full);width:56px;height:56px;color:var(--color-primary);place-items:center;font-weight:700;display:grid}.model3d-gallery-title{font-weight:700}.model3d-gallery-meta{color:var(--color-text-dark-base);font-size:.8rem}.model3d-modal{z-index:10004;background:#000000b3;width:100%;height:100%;display:flex;position:fixed;inset:0}.model3d-modal-content{background:var(--color-surface-dark);width:100%;max-width:100%;height:100%;max-height:100%;color:var(--color-text-dark-hover);box-shadow:none;border-radius:0;flex-direction:column;display:flex;position:relative}.model3d-content-wrapper{flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.model3d-left-panel{background:var(--color-surface-dark);width:260px;min-width:230px}.model3d-panel-header{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.model3d-tool-title{border-bottom:1px solid #ffffff14;flex-shrink:0;padding:12px}.model3d-segment{border-radius:var(--radius-sm);border:1px solid #ffffff29;display:inline-flex;overflow:hidden}.model3d-segment button{background:var(--color-surface-dark);color:var(--color-text-dark-light);cursor:pointer;border:0;padding:8px 12px}.model3d-segment button.active{background:var(--color-primary);color:var(--color-surface)}.model3d-clear-btn{background:var(--color-surface-dark);color:var(--color-text-dark-hover);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #ffffff29;width:100%;margin-top:10px;padding:8px 10px}.model3d-header-actions{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:inline-flex}.model3d-light-control{color:var(--color-text-dark-light);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.model3d-light-control span{color:var(--color-text-dark-secondary)}.model3d-light-control select{border-radius:var(--radius-sm);background:var(--color-surface-dark);max-width:130px;min-height:31px;color:var(--color-text-dark-hover);font:inherit;border:1px solid #ffffff29;padding:6px 8px}.model3d-action-btn{background:var(--color-surface-dark);color:var(--color-text-dark-hover);border-radius:var(--radius-sm);cursor:pointer;font:inherit;white-space:nowrap;border:1px solid #ffffff29;padding:7px 9px;font-size:.75rem}.model3d-action-btn:disabled{cursor:wait;opacity:.65}.model3d-close-btn{background:var(--color-surface-dark);color:var(--color-text-dark-hover);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #ffffff29}.model3d-close-btn:hover,.model3d-action-btn:hover:not(:disabled),.model3d-clear-btn:hover{border-color:#ffffff57}.model3d-screenshot-status{min-height:1rem;color:var(--color-text-dark-base);margin-top:6px;font-size:.75rem}.model3d-recipe-disclaimer{color:var(--color-text-dark-light)!important;margin-top:6px!important;font-size:.78rem!important}.model3d-canvas-container{background:var(--color-surface-dark-border);flex:1;place-items:stretch stretch;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.model3d-canvas-shell{background:var(--color-surface-dark-border);min-height:620px}.model3d-canvas-shell-modal{width:100%;height:100%;min-height:0;position:absolute;inset:0}.model3d-canvas-shell canvas{box-shadow:none;cursor:grab;border:0;margin:0;display:block;width:100%!important;height:100%!important}.model3d-block{flex:none}.model3d-part-list{max-height:min(48vh,520px);overflow:auto}.model3d-part{width:100%;color:var(--color-text-dark-hover);font:inherit;text-align:left}.model3d-part-main{align-items:center;gap:var(--space-sm);min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0;display:flex}.model3d-part.drag-over{border-color:var(--color-primary);background:var(--color-primary-alpha-15)}.model3d-part-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.model3d-part-finish{background:var(--color-surface-dark);min-width:86px;color:var(--color-text-dark-hover);border-radius:var(--radius-sm);cursor:pointer;font:inherit;border:1px solid #ffffff24;padding:5px 6px;font-size:.72rem}.model3d-part-finish:focus{border-color:var(--color-primary);outline:none}.model3d-color-dot{background:var(--color-text-dark-muted)}.model3d-color-panel-top{margin-bottom:8px}.model3d-color-picker{border-radius:var(--radius-md);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff26;flex-shrink:0;width:32px;height:32px;padding:2px}.model3d-color-picker:disabled{cursor:not-allowed;opacity:.45}.model3d-color-picker-target{min-width:0;padding:var(--space-sm) 8px;border-radius:var(--radius-sm);color:var(--color-text-dark-light);font-size:var(--text-xs);background:#ffffff0f;border:1px solid #ffffff1f;flex:1;justify-content:space-between;align-items:center;gap:8px;display:flex}.model3d-color-picker-target span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model3d-color-picker-target strong{color:var(--color-text-dark-hover);font-size:var(--text-xs);text-transform:uppercase;font-weight:600}.model3d-palette-block .minipaint-color-group-swatches{padding-left:4px}.model3d-palette-block .minipaint-color-group-header{width:100%;color:inherit;font:inherit;background:0 0;border:0}.model3d-swatch,.model3d-palette-block .minipaint-color-swatch{appearance:none;padding:0}.model3d-palette-block .minipaint-color-swatch[draggable=true]{cursor:grab}.model3d-palette-block .minipaint-color-swatch[draggable=true]:active{cursor:grabbing}.model3d-functional-group{margin-top:10px}.model3d-functional-header{width:100%;color:inherit}.model3d-functional-list{flex-direction:column;gap:2px;padding:4px 0;display:flex}.model3d-functional-tile{appearance:none;color:inherit;text-align:left;background:0 0;border:0}.model3d-functional-tile[draggable=true]{cursor:grab}.model3d-functional-tile[draggable=true]:active{cursor:grabbing}.model3d-functional-note{color:var(--color-text-dark-base);margin:6px 4px 0;font-size:.72rem;line-height:1.3}.model3d-empty{color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:12px}.model3d-modal .model3d-empty{color:var(--color-text-dark-base);border-color:#ffffff2e}.minipaint-3d-launch{background:var(--color-surface-dark);color:var(--color-text-dark-hover);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #ffffff29;align-items:center;gap:8px;padding:8px 12px;text-decoration:none;display:inline-flex}@media (width<=980px){.model3d-content-wrapper{flex-direction:column}.model3d-left-panel{border-bottom:1px solid #ffffff1f;border-right:0;width:100%;max-height:42vh}.model3d-canvas-shell-modal{min-height:52vh}}.recipes-shell{--color-text-dark-light:#333;--color-text-dark-hover:#222;--color-text-dark-base:#444;--color-text-dark-secondary:var(--color-text-secondary);--color-text-dark-muted:var(--color-text-secondary);--color-surface-dark:var(--color-surface-secondary);--color-surface-dark-border:var(--color-border);--text-xs:.75rem;color:var(--color-text-dark-light);padding:var(--space-6)}.recipes-shell small{font-size:var(--text-xs)}.recipes-header{align-items:flex-start;gap:var(--space-4);justify-content:space-between;margin-bottom:18px;display:flex}.recipes-panel-header{margin-bottom:18px}.recipes-kicker{color:var(--color-text-dark-muted);font-size:var(--text-xs);letter-spacing:0;margin:0 0 var(--space-1);text-transform:uppercase;font-weight:700}.recipes-header h2,.recipes-panel h3{margin:0}.recipes-subtitle,.recipes-panel-header p{color:var(--color-text-dark-secondary);max-width:760px;margin:6px 0 0}.recipes-header-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.recipes-import-json-label{cursor:pointer;align-items:center;display:inline-flex}.recipes-notice{background:var(--color-primary-alpha-15);border:1px solid var(--color-primary-alpha-50);border-radius:var(--radius-md);color:var(--color-text-dark-hover);align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding:10px var(--space-3);justify-content:space-between;display:flex}.recipes-notice-dismiss{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-lg);padding:0 var(--space-1);background:0 0;border:0;flex-shrink:0;line-height:1}.recipes-template-picker{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3)}.recipes-template-picker-header{margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-text-dark-muted);justify-content:space-between;align-items:center;display:flex}.recipes-template-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.recipes-template-card{align-items:center;gap:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-2);cursor:pointer;text-align:center;font:inherit;color:var(--color-text-dark-light);background:#00000008;flex-direction:column;min-height:100px;display:flex}.recipes-template-card:hover{border-color:var(--color-primary);background:#0000000d}.recipes-template-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.recipes-template-icon{font-size:1.5rem}.recipes-template-name{font-weight:600;font-size:var(--text-sm)}.recipes-template-desc{font-size:var(--text-xs);color:var(--color-text-dark-muted);line-height:1.3}.recipes-layout{grid-template-columns:minmax(230px,300px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.recipes-browser,.recipes-panel{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md)}.recipes-browser{top:var(--space-4);max-height:calc(100vh - 2 * var(--space-4));padding:14px;position:sticky;overflow-y:auto}.recipes-browser-tools{gap:var(--space-2);display:grid}.recipes-browser-tools input,.recipes-browser-tools select,.recipes-form-grid input,.recipes-form-grid select,.recipes-form-grid textarea,.recipes-step-card input,.recipes-step-card select,.recipes-step-card textarea{background:var(--color-surface);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-light);font:inherit;min-width:0;padding:9px 10px}.recipes-count{color:var(--color-text-dark-muted);font-size:var(--text-sm);margin:var(--space-3) var(--space-1)}.recipes-empty{color:var(--color-text-dark-secondary);gap:var(--space-1);padding:14px var(--space-1);display:grid}.recipes-list{gap:var(--space-2);display:grid}.recipes-list-entry{gap:0;display:flex;position:relative}.recipes-list-entry:not(:hover,:focus-within) .recipes-list-delete,.recipes-list-entry:not(:hover,:focus-within) .recipes-list-action{opacity:0;pointer-events:none}.recipes-list-delete,.recipes-list-action{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-lg);background:0 0;border:0;flex-shrink:0;padding:4px 8px;line-height:1;transition:color .15s,opacity .15s}.recipes-list-delete:hover{color:var(--color-danger,#e05)}.recipes-list-action:hover{color:var(--color-text-dark-hover)}.recipes-list-item{border-radius:var(--radius-md);color:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;gap:3px;width:100%;padding:10px;display:grid}.recipes-list-item:hover,.recipes-list-item.active{border-color:var(--color-primary-alpha-50);background:#0000000a}.recipes-list-title{font-weight:700}.recipes-list-meta,.recipes-list-tags,.recipes-muted{color:var(--color-text-dark-muted);font-size:var(--text-sm)}.recipes-list-coverage{color:var(--color-text-dark-muted);font-size:var(--text-xs);justify-self:start}.recipes-workspace{grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;display:grid}.recipes-panel{padding:18px}.recipes-editor{container-type:inline-size}.recipes-form-grid{gap:var(--space-3);grid-template-columns:2fr 1fr 1fr 120px;margin-top:18px;display:grid}.recipes-form-grid label,.recipes-step-field,.recipes-step-extra label{gap:6px;display:grid}.recipes-field-label{color:var(--color-text-dark-secondary);font-size:var(--text-sm);font-weight:700}.recipes-form-wide{grid-column:1/-1}.recipes-step-stack{gap:20px;margin-top:18px;display:grid}.recipes-step-card{border:1px solid var(--color-surface-dark-border);border-left:var(--step-accent-width,1px) solid var(--step-accent-color,var(--color-surface-dark-border));border-radius:var(--radius-md);gap:var(--space-4);background:#0000000d;padding:14px 16px;display:grid}.recipes-step-card[draggable]{cursor:grab}.recipes-step-card[draggable]:active{cursor:grabbing}.recipes-step-optional{border-style:dashed}.recipes-step-dragging{opacity:.4}.recipes-step-dragover{box-shadow:inset 0 2px 0 var(--color-primary)}.recipes-step-role-base{--step-accent-width:3px;--step-accent-color:var(--color-primary)}.recipes-step-role-shade{--step-accent-width:3px;--step-accent-color:#7c6beb}.recipes-step-role-layer{--step-accent-width:3px;--step-accent-color:#3db9cf}.recipes-step-role-glaze{--step-accent-width:3px;--step-accent-color:#4dbb6e}.recipes-step-role-highlight{--step-accent-width:3px;--step-accent-color:#f0b429}.recipes-step-role-edge_highlight{--step-accent-width:3px;--step-accent-color:#f76b15}.recipes-step-role-drybrush{--step-accent-width:3px;--step-accent-color:#c77c3a}.recipes-step-role-stipple{--step-accent-width:3px;--step-accent-color:#9e6dac}.recipes-step-role-weather{--step-accent-width:3px;--step-accent-color:#8c7b6b}.recipes-step-role-varnish{--step-accent-width:3px;--step-accent-color:#5a7a9a}.recipes-step-role-base_rim{--step-accent-width:3px;--step-accent-color:#7a8a6a}.recipes-step-role-other{--step-accent-width:3px;--step-accent-color:var(--color-surface-dark-border)}.recipes-section-label{border-top:1px solid var(--color-surface-dark-border);color:var(--color-text-dark-muted);font-size:var(--text-xs);align-items:center;gap:var(--space-2);letter-spacing:.06em;margin-top:var(--space-5);padding-top:var(--space-3);text-transform:uppercase;font-weight:700;display:flex}.recipes-step-title-group{align-items:center;gap:var(--space-2);min-width:0;display:flex}.recipes-step-title-group .recipes-step-title{flex:1;min-width:0}.recipes-optional-chip{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-full);color:var(--color-text-dark-muted);letter-spacing:.06em;text-transform:uppercase;background:#0000000f;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.recipes-paintref-primary{align-items:center;gap:var(--space-2);grid-template-columns:minmax(140px,1.5fr) minmax(110px,1fr) 110px 34px;display:grid}.recipes-paintref-secondary{align-items:center;gap:var(--space-2);grid-template-columns:minmax(104px,1fr) minmax(120px,1fr) auto;display:grid}.recipes-step-head{align-items:center;gap:var(--space-2);grid-template-columns:34px minmax(120px,1fr) minmax(130px,180px) auto 34px;display:grid}.recipes-step-reorder{flex-direction:column;gap:2px;display:flex}.recipes-step-index{border-radius:var(--radius-full);color:var(--color-text-dark-light);background:#00000014;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:inline-flex}.recipes-step-title{font-weight:700}.recipes-paintrefs{gap:var(--space-2);display:grid}.recipes-inline-heading{color:var(--color-text-dark-secondary);font-size:var(--text-sm);justify-content:space-between;align-items:center;font-weight:700;display:flex}.recipes-paintref-row{gap:6px;display:grid}@container (width<=820px){.recipes-paintref-primary{grid-template-columns:minmax(0,1.5fr) minmax(100px,1fr) 80px 34px}.recipes-paintref-secondary{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}}@container (width<=560px){.recipes-paintref-primary,.recipes-paintref-secondary{grid-template-columns:1fr}.recipes-paintref-primary .recipes-icon-btn{width:100%}}.recipes-check{color:var(--color-text-dark-secondary);font-size:var(--text-sm);align-items:center;gap:6px;display:flex}.recipes-check input{width:auto}.recipes-step-extra{grid-template-columns:1fr;gap:10px;display:grid}.recipes-icon-btn,.recipes-link-btn,.recipes-danger-btn,.recipes-add-step{border-radius:var(--radius-sm);cursor:pointer;font:inherit}.recipes-icon-btn{border:1px solid var(--color-surface-dark-border);color:var(--color-text-dark-secondary);background:#0000000a;width:34px;height:34px}.recipes-link-btn{color:var(--color-text-dark-hover);background:0 0;border:0;padding:2px 0}.recipes-add-step{background:var(--color-primary-alpha-12);border:1px dashed var(--color-primary-alpha-50);color:var(--color-text-dark-hover);padding:var(--space-3);width:100%;margin-top:14px}.recipes-validation-hints{border-radius:var(--radius-sm);color:var(--color-text-dark-secondary);font-size:var(--text-sm);margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);background:#ffc83214;border:1px solid #ffc83233;list-style:none}.recipes-validation-hints li:before{content:"⚠ "}.recipes-danger-btn{background:var(--color-danger-alpha-10);border:1px solid var(--color-danger);color:var(--color-text-dark-hover);padding:var(--space-2) 10px}.recipes-shell .btn-primary{background:var(--color-primary);border:1px solid var(--color-primary-dark);border-radius:var(--radius-sm);color:#fff;cursor:pointer;font:inherit;font-size:var(--text-base);min-height:40px;padding:var(--space-2) var(--space-4);font-weight:600}:where(.recipes-shell) .recipes-tab,:where(.recipes-shell) .recipe-board-toggle-btn,:where(.recipes-shell) .recipes-assign-btn,:where(.recipes-shell) .recipes-link-btn{justify-content:center;align-items:center;min-height:32px;display:inline-flex}.recipes-shell .btn-primary:hover{background:var(--color-primary-dark)}.recipes-shell .btn-primary:disabled{cursor:not-allowed;opacity:.45}.recipes-shell .btn-sm{font-size:var(--text-xs);padding:2px var(--space-2)}.recipes-danger-btn:disabled,.recipes-panel-header button:disabled{cursor:not-allowed;opacity:.45}.recipes-preview{top:var(--space-4);position:sticky}.recipes-preview .recipes-panel-header{border-bottom:1px solid var(--color-surface-dark-border);margin-bottom:14px;padding-bottom:14px}.recipes-preview .recipes-panel-header h3{font-size:var(--text-lg);font-weight:800}.recipes-editor-actions{background:var(--color-surface-dark);border-top:1px solid var(--color-surface-dark-border);justify-content:flex-end;margin:14px -18px -18px;padding:12px 18px;display:flex;position:sticky;bottom:0}.recipes-preview-name{font-size:var(--text-xl);margin-top:18px;font-weight:800}.recipes-preview-meta{color:var(--color-text-dark-secondary);gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.recipes-preview-meta>span{border-radius:var(--radius-full);padding:var(--space-1) var(--space-2);background:#0000000a}.recipes-swatches{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.recipes-swatches>span{border-radius:var(--radius-sm);font-size:var(--text-xs);min-width:78px;height:38px;padding:0 var(--space-2);border:1px solid #0000002e;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.recipes-summary-block{border-top:1px solid var(--color-surface-dark-border);padding-top:var(--space-4);margin-top:18px}.recipes-summary-block h4{margin:0}.recipes-summary-block>.recipes-inline-heading{margin-bottom:10px}.recipes-assign-btn{font-size:var(--text-sm);padding:4px 10px}.recipes-assign-group{gap:6px;display:flex}.recipes-assign-badge{font-size:var(--text-sm);color:var(--color-text-muted)}.recipes-mode-badge{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-full);font-size:var(--text-xs);margin-left:6px;padding:1px 8px}.recipes-summary-block ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.recipes-summary-block li{grid-template-columns:auto 1fr;gap:2px;display:grid}.recipes-summary-block li i{border-radius:var(--radius-full);height:18px;margin-right:var(--space-2);border:1px solid #0000002e;grid-row:span 2;width:18px;margin-top:2px}.recipes-summary-block li small{color:var(--color-text-dark-muted);grid-column:2}@media (width<=1500px){.recipes-workspace{grid-template-columns:1fr}.recipes-preview{position:static}}@media (width<=1180px){.recipes-layout{grid-template-columns:1fr}.recipes-browser{max-height:none;position:static;overflow-y:visible}}.recipes-mobile-back{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-secondary);cursor:pointer;font:inherit;font-size:var(--text-sm);align-items:center;gap:var(--space-1);margin-bottom:var(--space-3);background:0 0;padding:8px 12px;display:none}@media (width<=760px){.recipes-shell{padding:14px}.recipes-header{align-items:stretch;display:grid}.recipes-header-actions{grid-template-columns:1fr 1fr;display:grid}.recipes-form-grid,.recipes-step-extra,.recipes-paintref-row,.recipes-step-head{grid-template-columns:1fr}.recipes-icon-btn{width:100%}.recipes-mobile-back{display:flex}.recipes-layout--list .recipes-workspace,.recipes-layout--detail .recipes-browser{display:none}}.recipes-back-to-project{font-size:var(--text-sm);margin-bottom:var(--space-2)}.hex-res-panel{margin-top:var(--space-4)}.hex-res-status{color:var(--color-text-dark-secondary);font-size:var(--text-sm);align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.hex-res-pending{color:var(--color-primary);font-weight:700}.hex-res-list{gap:var(--space-2);display:grid}.hex-res-row{align-items:center;gap:var(--space-2);padding:6px 0;display:flex}.hex-res-resolved{opacity:.85}.hex-res-swatch{border-radius:var(--radius-sm);border:1px solid #0000002e;flex-shrink:0;width:22px;height:22px;display:inline-block}.hex-res-swatch-inline{vertical-align:middle;border:1px solid #0000002e;border-radius:3px;width:14px;height:14px;display:inline-block}.hex-res-info{flex:1;gap:2px;min-width:0;display:grid}.hex-res-role{font-weight:700}.hex-res-detail{color:var(--color-text-dark-muted);font-size:var(--text-sm)}.hex-res-resolver{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md);margin-top:var(--space-3);background:#0000000f;padding:14px}.hex-res-resolver-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);justify-content:space-between;font-weight:700;display:flex}.hex-res-tabs{gap:var(--space-1);margin-bottom:var(--space-3);display:flex}.hex-res-tab{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-secondary);cursor:pointer;font:inherit;font-size:var(--text-sm);background:0 0;padding:6px 12px}.hex-res-tab.active{background:var(--color-primary-alpha-15);border-color:var(--color-primary-alpha-50);color:var(--color-text-dark-hover)}.hex-res-suggestions{gap:var(--space-2);max-height:260px;display:grid;overflow-y:auto}.hex-res-suggestion{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:inherit;cursor:pointer;font:inherit;align-items:center;gap:var(--space-2);text-align:left;background:#00000008;width:100%;padding:8px 10px;display:flex}.hex-res-suggestion:hover{border-color:var(--color-primary-alpha-50);background:#0000000f}.run-panel{margin-top:var(--space-4)}.run-start{gap:var(--space-2);display:grid}.run-progress{margin-bottom:var(--space-3);gap:6px;display:grid}.run-progress-text{color:var(--color-text-dark-secondary);font-size:var(--text-sm);font-weight:700}.run-paused-badge{background:var(--color-warning,#f59e0b);border-radius:var(--radius-sm);color:var(--color-text-on-warning,#000);font-size:var(--text-xs);margin-left:var(--space-2);padding:1px 6px}.run-step-notes:disabled{opacity:.5;cursor:not-allowed}.run-progress-bar{border-radius:var(--radius-full);background:#0000000f;height:6px;overflow:hidden}.run-progress-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width .3s}.run-steps{gap:var(--space-2);display:grid}.run-step{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);gap:var(--space-2);padding:10px;display:grid}.run-step-done{color:var(--color-text-dark-muted)}.run-step-skipped{color:var(--color-text-dark-muted);border-style:dashed}.run-step-in_progress{border-color:var(--color-primary-alpha-50)}.run-step-head{align-items:center;gap:var(--space-2);display:flex}.run-step-icon{font-size:var(--text-lg);flex-shrink:0}.run-step-title{flex:1;font-weight:700}.run-optional{color:var(--color-text-dark-muted);font-weight:400}.run-step-time{color:var(--color-text-dark-muted);font-size:var(--text-xs);flex-shrink:0}.run-step-time-editable{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.run-step-time-editable:hover{text-decoration-style:solid}.run-step-time-input{width:4rem;font-size:var(--text-xs);padding:1px var(--space-1);border:1px solid var(--color-primary,#4a90d9);border-radius:var(--radius-sm)}.run-step-actions{gap:var(--space-2);display:flex}.run-step-instruction{color:var(--color-text-dark-secondary);font-size:var(--text-sm);margin:0}.run-step-expected{color:var(--color-text-dark-muted);font-size:var(--text-sm);margin:0;font-style:italic}.run-step-field-label{color:var(--color-text-dark-muted);font-size:var(--text-xs);margin-top:var(--space-1);flex-direction:column;gap:2px;display:flex}.run-step-notes{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-light);font:inherit;font-size:var(--text-sm);resize:vertical;padding:6px 8px}.run-step-actual-paints{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-light);font:inherit;font-size:var(--text-sm);margin-top:var(--space-1);width:100%;padding:4px 8px}.run-step-actual-paints:disabled{color:var(--color-text-dark-muted);cursor:not-allowed}.run-step-actual-paints-block{gap:var(--space-1);flex-direction:column;display:flex}.run-step-actual-paints-row{gap:var(--space-1);align-items:center;display:flex}.run-step-actual-paints-row .run-step-actual-paints{flex:1;margin-top:0}.run-step-actual-differs{font-size:var(--text-xs);color:var(--color-warning,#e6a800)}.run-collection-picker{z-index:10;position:relative}.run-collection-picker-input{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-light);font:inherit;font-size:var(--text-sm);width:200px;padding:4px 8px}.run-collection-picker-list{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);z-index:20;width:280px;max-height:200px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 4px 12px #0000002e}.run-collection-picker-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);color:var(--color-text-dark-light);cursor:pointer;font:inherit;font-size:var(--text-sm);text-align:left;background:0 0;border:none;display:flex}.run-collection-picker-item:hover{background:var(--color-primary-alpha-08)}.run-collection-picker-dot{border:1px solid var(--color-surface-dark-border);border-radius:50%;flex-shrink:0;width:12px;height:12px;display:inline-block}.run-outcome-diffs{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);background:var(--color-primary-alpha-08);border-radius:var(--radius-sm);flex-direction:column;display:flex}.run-outcome-diff-list{gap:var(--space-1);flex-direction:column;display:flex}.run-outcome-diff-row{gap:var(--space-2);font-size:var(--text-sm);grid-template-columns:1fr 1fr 1fr;display:grid}.run-outcome-diff-step{font-weight:600}.run-outcome-diff-planned{color:var(--color-text-dark-muted)}.run-outcome-diff-actual{color:var(--color-warning,#e6a800)}.run-footer{gap:var(--space-2);margin-top:var(--space-3);display:flex}.run-footer .recipes-danger-btn{margin-left:auto}.run-outcome{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md);gap:var(--space-3);margin-top:var(--space-3);padding:14px;display:grid}.run-outcome h4{margin:0}.run-history{border-top:1px solid var(--color-surface-dark-border);margin-top:var(--space-4);padding-top:var(--space-3)}.run-history-list{gap:var(--space-2);margin-top:var(--space-2);display:grid}.run-history-entry{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);font-size:var(--text-sm);padding:8px 10px}.run-history-completed{border-color:var(--color-primary-alpha-50)}.run-history-meta{color:var(--color-text-dark-muted);gap:var(--space-2);display:flex}.run-history-status{text-transform:capitalize;font-weight:700}.run-history-outcome{gap:var(--space-2);flex-wrap:wrap;margin-top:4px;display:flex}.run-repeat-badge{background:var(--color-primary-alpha-12);border-radius:var(--radius-full);font-size:var(--text-xs);padding:2px 8px}.run-lessons{color:var(--color-text-dark-secondary);width:100%;margin:4px 0 0}.recipes-tab-bar{gap:var(--space-1);border-bottom:1px solid var(--color-surface-dark-border);margin-bottom:var(--space-3);padding-bottom:var(--space-1);display:flex}.recipes-tab{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-sm);padding:var(--space-1) var(--space-3);background:0 0;border:none;border-bottom:2px solid #0000}.recipes-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.recipes-tab:hover{color:var(--color-text-dark-light)}.recipes-tab-active{border-bottom-color:var(--color-primary);color:var(--color-text-dark-light);font-weight:700}.recipes-tab-panel{min-height:0}.activity-feed{gap:var(--space-3);flex-direction:column;display:flex}.activity-feed-input{gap:var(--space-2);flex-direction:column;display:flex}.activity-feed-textarea{resize:vertical;min-height:3rem}.activity-feed-input-row{gap:var(--space-2);align-items:center;display:flex}.activity-feed-input-row select{flex:1}.activity-feed-entries{gap:var(--space-2);flex-direction:column;display:flex}.activity-entry{border-left:2px solid var(--color-surface-dark-border);padding-left:var(--space-2)}.activity-entry-meta{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-dark-muted);display:flex}.activity-entry-step{font-weight:700}.activity-entry-step-link{color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.activity-entry-step-link:hover{text-decoration-style:solid}.activity-entry-step-link:focus-visible{outline:2px solid var(--color-primary,#4a90d9);outline-offset:1px;border-radius:2px}.activity-entry-text{margin:var(--space-1) 0 0;font-size:var(--text-sm);white-space:pre-wrap}.activity-entry-image{max-width:240px;max-height:180px;margin-top:var(--space-1);border-radius:var(--radius-sm);object-fit:cover;display:block}.activity-entry-badge{font-size:var(--text-xs)}.activity-entry-image-failed{font-size:var(--text-xs);color:var(--color-text-dark-muted);margin-top:var(--space-1);font-style:italic;display:block}.activity-entry-delete{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-sm);padding:0 var(--space-1);opacity:0;background:0 0;border:none;margin-left:auto;line-height:1;transition:opacity .15s}.activity-entry:hover .activity-entry-delete,.activity-entry-delete:focus-visible{opacity:1}.activity-entry-delete:hover{color:var(--color-danger,#c00)}.activity-feed-image-btn{cursor:pointer;font-size:var(--text-base);padding:var(--space-1);border-radius:var(--radius-sm);color:inherit;background:0 0;border:0;justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.activity-feed-image-btn:hover{background:var(--color-surface-dark-border)}.activity-feed-pending-image{font-size:var(--text-xs);color:var(--color-text-dark-muted);align-items:center;gap:var(--space-1);text-overflow:ellipsis;white-space:nowrap;max-width:120px;display:flex;overflow:hidden}.activity-feed-remove-image{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:0;line-height:1}.activity-feed-remove-image:hover{color:var(--color-danger,#c00)}.recipe-session-view{gap:var(--space-4);display:grid}.recipe-session-view .run-progress{z-index:3;background:var(--color-surface-dark);border-bottom:1px solid var(--color-surface-dark-border);padding:var(--space-2) 0;position:sticky;top:0}.run-header-actions,.run-current-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.run-current-step{align-items:center;gap:var(--space-2);justify-content:space-between;display:flex}.run-current-swatches{gap:2px;display:flex}.run-current-swatches>span{border-radius:var(--radius-xs);border:1px solid #0003;width:24px;height:18px;display:block}.run-all-steps-toggle{justify-self:start}.activity-composer-target{position:relative}.activity-composer-target>button,.activity-target-menu button,.activity-paint-chips>button,.activity-paint-chips>span{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-full);color:inherit;background:0 0;padding:3px 8px}.activity-target-menu{z-index:5;background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);min-width:220px;max-height:240px;box-shadow:var(--shadow-md);padding:var(--space-1);display:grid;position:absolute;overflow-y:auto}.activity-target-menu button{border-radius:var(--radius-sm);text-align:left;border:0}.activity-paint-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.activity-paint-chips>button,.activity-paint-chips>span{font-size:var(--text-xs);align-items:center;gap:5px;display:inline-flex}.activity-paint-swatch{border:1px solid #0003;border-radius:50%;width:14px;height:14px;display:inline-block}.activity-paint-picker{gap:var(--space-2);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);padding:var(--space-2);display:grid}.activity-paint-picker-head{gap:var(--space-1);display:flex}.activity-paint-picker-head .active{background:var(--color-primary);color:#fff}.activity-paint-picker-close{margin-left:auto}.activity-paint-picker-list{max-height:220px;display:grid;overflow-y:auto}.activity-paint-picker-list>button{align-items:center;gap:var(--space-2);color:inherit;padding:var(--space-2);text-align:left;background:0 0;border:0;grid-template-columns:auto 1fr auto;display:grid}.activity-entry-marker{gap:var(--space-1);color:var(--color-text-dark-muted);font-size:var(--text-xs);border-left-style:dashed;display:flex}.board-card-comments{font-size:var(--text-xs);color:var(--color-text-dark-muted)}.board-column-footer{padding:var(--space-1) var(--space-2);text-align:center}.board-column-time{font-size:var(--text-xs);color:var(--color-text-dark-muted)}.board-progress{border-radius:var(--radius-sm);background:#0000000d;flex-shrink:0;width:100%;height:24px;position:relative;overflow:hidden}.board-progress-bar{background:var(--color-primary);opacity:.3;transition:width .3s;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.board-progress-bar{transition:none}}.board-progress-label{z-index:1;height:100%;font-size:var(--text-xs);color:var(--color-text-dark-secondary);justify-content:center;align-items:center;font-weight:500;display:flex;position:relative}.run-total-time{color:var(--color-text-dark-muted);font-size:var(--text-sm)}.recipes-import-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.recipes-import-dialog{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;width:min(90vw,36rem);max-height:80vh;display:flex;overflow-y:auto}.recipes-import-textarea{resize:vertical;min-height:10rem;font-family:inherit}.recipes-import-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.recipes-collapse-toggle{cursor:pointer;font-size:var(--text-sm);padding:0 var(--space-1);color:var(--color-text-dark-muted);background:0 0;border:none}.recipes-collapse-controls{gap:var(--space-2);margin-left:auto;display:flex}.recipes-step-collapsed-summary{gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);align-items:center;display:flex}.recipe-board-wrapper{gap:var(--space-2);flex-direction:column;display:flex}.recipe-board-no-run{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.recipe-board-no-run p{margin:0}.recipe-board-toggle{gap:var(--space-1);display:flex}.recipe-board-toggle-btn{border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-xs);padding:var(--space-1) var(--space-3);background:0 0}.recipe-board-toggle-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.recipe-board-toggle-btn:disabled{cursor:not-allowed;opacity:.4}.recipe-board-toggle-active{background:var(--color-primary-alpha-20);border-color:var(--color-primary);color:var(--color-text-dark-light);font-weight:700}.recipe-board{gap:var(--space-3);padding:var(--space-2) 0;flex-wrap:wrap;display:flex;overflow-x:auto}.board-column{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-md);flex-direction:column;flex:1;min-width:180px;max-width:240px;display:flex}.board-column-done{color:var(--color-text-dark-muted)}.board-column-header{border-bottom:1px solid var(--color-surface-dark-border);padding:var(--space-2) var(--space-3);justify-content:space-between;align-items:center;display:flex}.board-column-title{font-size:var(--text-sm);font-weight:700}.board-column-count{color:var(--color-text-dark-muted);font-size:var(--text-xs)}.board-column-cards{gap:var(--space-2);padding:var(--space-2);flex-direction:column;display:flex}.board-card{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);padding:var(--space-2);border-left:3px solid #0000;outline:none}.board-card:focus-visible{outline:2px solid var(--color-primary,#4a90d9);outline-offset:1px}.board-card-in_progress{border-color:var(--color-primary)}.board-card-pending{border-left-color:var(--color-text-dark-muted)}.board-card-done{color:var(--color-text-dark-muted)}.board-card-skipped{color:var(--color-text-dark-muted);border-style:dashed}.board-card-head{align-items:center;gap:var(--space-1);display:flex}.board-card-icon{flex-shrink:0}.board-card-paint-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.board-card-title{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.board-card-meta{gap:var(--space-2);margin-top:var(--space-1);display:flex}.board-card-role{background:var(--color-primary-alpha-12);border-radius:var(--radius-sm);color:var(--color-text-dark-muted);font-size:var(--text-xs);padding:0 4px}.board-card-time{color:var(--color-text-dark-muted);font-size:var(--text-xs)}.board-card-time-editable{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.board-card-time-editable:hover{text-decoration-style:solid}.board-card-time-input{width:4rem;font-size:var(--text-xs);padding:1px var(--space-1);border:1px solid var(--color-primary,#4a90d9);border-radius:var(--radius-sm)}.board-card-comment-badge{font-size:var(--text-xs);color:var(--color-text-dark-muted);margin-left:auto}.board-card-comment-badge-btn{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.board-card-comment-badge-btn:hover{text-decoration:underline}.board-card-inline-note{gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-surface-dark-border);flex-direction:column;display:flex}.board-card-inline-note-input{width:100%;min-height:48px;padding:var(--space-1);font:inherit;font-size:var(--text-sm);resize:vertical;background:var(--color-surface-dark);color:var(--color-text-dark-light);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm)}.board-card-inline-note-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.board-card-inline-thread{gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-surface-dark-border);flex-direction:column;max-height:160px;display:flex;overflow-y:auto}.board-card-inline-thread-entry{gap:var(--space-2);font-size:var(--text-xs);line-height:1.4;display:flex}.board-card-inline-thread-time{color:var(--color-text-dark-muted);white-space:nowrap;flex-shrink:0}.board-card-inline-thread-text{color:var(--color-text-dark-light)}.board-card-inline-thread-loading,.board-card-inline-thread-empty{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-surface-dark-border);font-size:var(--text-xs)}.board-card-actions{gap:var(--space-2);margin-top:var(--space-1);display:flex}.board-arrow-btn{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);color:var(--color-text-dark-light);cursor:pointer;font:inherit;min-width:44px;min-height:44px;padding:var(--space-1) var(--space-2)}.board-arrow-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.board-arrow-btn:disabled{cursor:not-allowed;opacity:.3;pointer-events:none}.board-arrow-btn:hover:not(:disabled){background:var(--color-primary-alpha-20)}.board-card-edit{border-style:dashed}.board-card-cascade{border-color:var(--color-primary);background:var(--color-primary-alpha-08);border-width:2px}.board-card-source{color:var(--color-text-dark-muted);font-size:var(--text-xs);font-style:italic}.board-card-source-user{color:var(--color-primary)}.board-context-menu{background:var(--color-surface-dark);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);min-width:160px;padding:var(--space-1) 0;z-index:100;box-shadow:0 4px 16px #0003}.board-context-menu-header{color:var(--color-text-dark-muted);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.board-context-menu-item{color:var(--color-text-dark-light);cursor:pointer;font:inherit;font-size:var(--text-sm);min-height:36px;padding:var(--space-1) var(--space-3);text-align:left;background:0 0;border:none;width:100%;display:block}.board-context-menu-item:hover{background:var(--color-primary-alpha-08)}.board-context-menu-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.recipe-board-edit .board-column{min-width:150px}.mini-board{background:var(--color-primary-alpha-08);border:1px solid var(--color-surface-dark-border);border-radius:var(--radius-sm);cursor:pointer;font:inherit;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);text-align:left;width:100%;display:flex}.mini-board:hover{background:var(--color-primary-alpha-12)}.mini-board-name{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mini-board-stages{gap:var(--space-1);flex-wrap:wrap;margin-left:auto;display:flex}.mini-board-stage{color:var(--color-text-dark-muted);font-size:var(--text-xs)}.mini-board-stage-done{color:var(--color-success,#22c55e)}.mini-board-stage-active{color:var(--color-primary);font-weight:700}.mini-board-stage-clickable{font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.mini-board-stage-clickable:hover{text-decoration:underline}.mini-board-stage-clickable:focus-visible{outline:2px solid var(--color-primary,#4a90d9);outline-offset:1px;border-radius:2px}.mini-board-badge{font-size:var(--text-xs);margin-left:var(--space-1)}.mini-board-badge-ref{color:var(--color-text-dark-muted);font-style:italic}.mini-board-start{flex-shrink:0;margin-left:auto}.mini-board-view-board{margin-left:var(--space-2);font-size:var(--text-xs);flex-shrink:0}.recipes-view-head{align-items:center;gap:var(--space-3);justify-content:space-between;display:flex}.recipes-view-description{color:var(--color-text-dark-secondary);margin:var(--space-3) 0 0}.recipes-view-tags{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.recipes-view-tags>span{border-radius:var(--radius-full);color:var(--color-text-dark-secondary);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background:#0000000f}.recipes-view-steps{gap:var(--space-3);margin:18px 0 0;padding:0;list-style:none;display:grid}.recipes-view-step-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.recipes-view-role{color:var(--color-text-dark-muted);font-size:var(--text-sm);font-weight:700}.recipes-view-instruction{margin:0}.recipes-view-paints{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.recipes-view-paint{color:var(--color-text-dark-secondary);font-size:var(--text-sm);align-items:center;gap:var(--space-2);display:flex}.recipes-view-swatch{border-radius:var(--radius-xs);border:1px solid #00000040;flex:0 0 14px;width:14px;height:14px}.recipes-view-note{color:var(--color-text-dark-secondary);font-size:var(--text-sm);margin:0}.miniatures-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.miniatures-title{font-size:var(--text-xl);color:#333;font-weight:700}.mini-progress-header{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm);justify-content:space-between;font-weight:600;display:flex}.mini-progress-track{border-radius:var(--radius-sm);background:#e8e8e8;height:8px;margin-bottom:20px;display:flex;overflow:hidden}.mini-progress-segment{height:100%;transition:width .3s}.miniatures-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.miniatures-grid>.mini-group-section{grid-column:1/-1}.mini-card{border-radius:var(--radius-md);background:#fff;border:1px solid #e8e8e8;align-items:stretch;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.mini-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.mini-card-thumb{background:#f0f0f0 50%/cover;flex-shrink:0;justify-content:center;align-items:flex-end;width:64px;min-height:64px;display:flex;position:relative}.mini-card-status-badge{border-radius:var(--radius-full);width:22px;height:22px;font-size:var(--text-xs);box-shadow:var(--shadow-xs);color:#fff;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;left:4px}.mini-card-status-badge .icon{filter:drop-shadow(0 0 1px #0000008c)}.mini-card-qty{color:#fff;font-size:var(--text-xs);padding:1px var(--space-xs);border-radius:var(--radius-md);background:#000000a6;font-weight:700;position:absolute;bottom:3px;right:3px}.mini-card-body{flex-direction:column;flex:1;gap:4px;min-width:0;padding:8px 10px;display:flex}.mini-card-name{font-size:var(--text-sm);color:#333;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:var(--space-sm);font-weight:600;display:flex;overflow:hidden}.mini-card-scale{font-size:var(--text-xs);color:var(--color-text-helper);padding:1px var(--space-xs);border-radius:var(--radius-sm);background:#f0f0f0;flex-shrink:0;font-weight:500}.mini-card-acq{font-size:var(--text-xs);color:#e6a23c;padding:1px var(--space-xs);border-radius:var(--radius-sm);background:#fdf6ec;flex-shrink:0;font-weight:500}.mini-card-status-select{font-size:var(--text-xs);border-radius:var(--radius-sm);color:#555;cursor:pointer;background:#fafafa;border:1px solid #ddd;width:100%;min-height:36px;padding:4px}.mini-card-status-select:focus{outline:2px solid var(--color-primary,#4a5aad);outline-offset:-1px}.mini-card-notes{font-size:var(--text-xs);color:var(--color-text-helper);white-space:nowrap;text-overflow:ellipsis;font-style:italic;overflow:hidden}.mini-card-actions{opacity:0;flex-direction:column;gap:2px;padding:4px;transition:opacity .15s;display:flex}.mini-card:hover .mini-card-actions{opacity:1}.mini-card-action{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;font-size:var(--text-sm);color:var(--color-text-helper);background:0 0;border:none;justify-content:center;align-items:center;transition:all .12s;display:flex}.mini-card-action:hover{color:#333;background:#f0f0f0}.mini-card-action-danger:hover{background:var(--color-danger-alpha-10,#e74c3c1a);color:var(--color-danger,#e74c3c)}.mini-modal-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;inset:0}.mini-modal-overlay.visible{display:flex}.mini-modal{border-radius:var(--radius-lg);width:520px;max-width:95vw;max-height:90vh;box-shadow:var(--shadow-lg);background:#fff;overflow-y:auto}.mini-modal-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.mini-modal-title{font-size:var(--text-lg);color:#333;font-weight:700}.mini-modal-close{width:28px;height:28px;font-size:var(--text-lg);color:var(--color-text-helper);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.mini-modal-close:before{content:"";position:absolute;inset:-8px}.mini-modal-close:hover{color:#333;background:#f0f0f0}.mini-modal-body{gap:var(--space-md);flex-direction:column;padding:16px 20px;display:flex}.mini-modal-row{align-items:flex-start;gap:16px;display:flex}.mini-img-upload{border-radius:var(--radius-md);cursor:pointer;border:2px dashed #ddd;flex-shrink:0;width:100px;height:100px;transition:border-color .15s;overflow:hidden}.mini-img-upload:hover{border-color:var(--color-primary,#4a5aad)}.mini-img-upload.has-image{border-style:solid;border-color:#ccc}.mini-img-preview{width:100%;height:100%;font-size:var(--text-xs);color:#aaa;text-align:center;background-position:50%;background-size:cover;justify-content:center;align-items:center;display:flex}.mini-modal-fields{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.mini-field{flex-direction:column;gap:4px;display:flex}.mini-field label{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px;font-weight:600}.mini-field input,.mini-field select,.mini-field textarea{border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);color:#333;border:1px solid #ddd;padding:8px 10px;transition:border-color .15s}.mini-field input:focus,.mini-field select:focus,.mini-field textarea:focus{border-color:var(--color-primary,#4a5aad);box-shadow:0 0 0 3px var(--color-primary-alpha-12,#667eea1f);outline:none}.mini-field textarea{resize:vertical;min-height:50px}.mini-field-row{gap:10px;display:flex}.mini-field-row .mini-field{flex:1}.mini-modal-footer{border-top:1px solid #eee;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px 16px;display:flex}.mini-modal-required-note{font-size:var(--text-xs);color:var(--color-text-secondary);margin-right:auto}.mini-modal-cancel{border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;background:#fff;border:1px solid #ddd;padding:8px 16px;transition:all .15s}.mini-modal-cancel:hover{background:#f5f5f5;border-color:#ccc}.miniatures-filters{gap:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;margin-bottom:16px;padding:10px 12px;display:flex}.mini-filters-set{align-items:center;gap:var(--space-lg);padding-left:var(--space-lg);border-left:1px solid var(--color-border);flex-wrap:wrap;display:flex}.mini-filter-group{align-items:center;gap:var(--space-sm);display:flex}.mini-filter-label{font-size:var(--text-xs);color:var(--color-text-helper);font-weight:600}.mini-filter-btn{box-sizing:border-box;padding:var(--space-sm) 12px;border:1px solid var(--color-border-control);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;min-height:32px;transition:all .15s}.mini-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.mini-filter-btn.active{background:var(--color-primary-alpha-12);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.mini-status-toggle{box-sizing:border-box;border:1px solid var(--color-border-control);border-radius:var(--radius-lg);min-height:32px;display:inline-flex;overflow:hidden}.mini-status-toggle .mini-filter-btn{border:none;border-left:1px solid var(--color-border-control);border-radius:0;min-height:30px}.mini-status-toggle .mini-filter-btn:first-child{border-left:none}.mini-status-toggle .mini-filter-btn:hover:not(.active){background:var(--color-primary-alpha-08)}.mini-filter-select{box-sizing:border-box;padding:var(--space-sm) 10px;border:1px solid var(--color-border-control);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;min-height:32px}.mini-filter-select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.mini-filter-clear{color:var(--color-primary);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px 0;text-decoration:underline}.mini-filter-clear:hover{color:var(--color-primary-dark)}.mini-filter-clear.is-hidden{visibility:hidden}.mini-filter-checkbox-label{align-items:center;gap:var(--space-sm);box-sizing:border-box;border:1px solid var(--color-border-control);border-radius:var(--radius-lg);background:var(--color-surface-secondary);min-height:32px;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;padding:0 12px;transition:all .15s;display:flex}.mini-filter-checkbox-label:has(input:checked){background:var(--color-primary-alpha-08);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.mini-filter-checkbox-label:has(input:disabled){cursor:not-allowed;opacity:.5}.mini-filter-checkbox-label:hover:not(:has(input:disabled)){border-color:var(--color-primary)}.mini-filter-summary{font-size:var(--text-xs);color:var(--color-text-secondary);padding:2px 0 8px}.mini-stage-chip-host{padding:0 0 8px}.mini-stage-chip{align-items:center;gap:var(--space-sm);box-sizing:border-box;border:1px solid var(--color-primary);border-radius:var(--radius-lg);background:var(--color-primary-alpha-08);min-height:32px;font-size:var(--text-sm);color:var(--color-primary);padding:0 4px 0 12px;font-weight:600;display:inline-flex}.mini-stage-chip-clear{width:24px;height:24px;color:inherit;font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.mini-stage-chip-clear:hover{background:var(--color-primary-alpha-15)}.mini-stage-chip-clear:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.mini-group-section{margin-bottom:24px}.mini-group-section:first-child{margin-top:0}.mini-group-header{border-bottom:1px solid var(--color-border);background:var(--color-surface-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}.mini-group-name{font-size:var(--text-base);color:var(--color-text-primary);font-weight:600}.mini-group-badge{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-border-light);border-radius:var(--radius-md);padding:2px 8px;font-weight:500}.mini-group-count{font-size:var(--text-xs);color:var(--color-text-helper)}.mini-promote-all{box-sizing:border-box;font-size:var(--text-sm);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;background:0 0;min-height:32px;padding:6px 12px;font-weight:600}.mini-promote-all:disabled{opacity:.5;cursor:default}.mini-promote-all:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mini-promote-all:hover:not(:disabled){background:var(--color-primary);color:var(--color-surface)}@media (width<=768px){.miniatures-grid{grid-template-columns:1fr}.miniatures-header{flex-direction:column;align-items:stretch;gap:10px}.miniatures-filters{flex-direction:column;align-items:stretch}.mini-filters-set{padding-left:0;padding-top:var(--space-md);border-left:none;border-top:1px solid var(--color-border);flex-direction:column;align-items:stretch}.mini-filters-set .mini-filter-group{justify-content:space-between}.mini-filters-set .mini-filter-label{flex:none}.mini-filters-set .mini-filter-select{flex:1 1 0;min-width:0;max-width:60%}.mini-filters-set .mini-filter-group:has(.mini-status-toggle){align-items:stretch;gap:var(--space-xs);flex-direction:column}.mini-status-toggle{width:100%;display:flex}.miniatures-filters .mini-filter-select,.mini-filter-checkbox-label,.mini-status-toggle,.mini-promote-all{min-height:44px}.mini-filter-clear.is-hidden{display:none}.mini-status-toggle .mini-filter-btn{flex:1;min-height:42px}.mini-modal-row{flex-direction:column}.mini-img-upload{width:100%;height:120px}.mini-card-status-select{min-height:44px;font-size:var(--text-sm);padding:8px 4px}}.merge-diff-summary{padding:8px 0}.merge-diff-section{border-radius:var(--radius-md);margin-bottom:12px;padding:8px 12px}.merge-diff-section h4{font-size:var(--text-base);margin:0 0 4px;font-weight:600}.merge-diff-section ul{font-size:var(--text-sm);margin:4px 0 0;padding-left:20px}.merge-diff-section li{margin-bottom:2px}.merge-diff-added{background:#28a7451a;border-left:3px solid #28a745}.merge-diff-added h4{color:#28a745}.merge-diff-updated{background:#ffc1071a;border-left:3px solid #e6a817}.merge-diff-updated h4{color:#b58900}.merge-diff-unchanged{background:#6c757d14;border-left:3px solid #6c757d}.merge-diff-unchanged h4{color:#6c757d}.merge-diff-removed{background:#dc35451a;border-left:3px solid #dc3545}.merge-diff-removed h4{color:#dc3545}.merge-diff-detail{color:#6c757d;font-size:var(--text-xs)}.merge-diff-note{font-size:var(--text-xs);color:#6c757d;margin:4px 0 0;font-style:italic}.mini-ac-dropdown{background:var(--bg-primary,#fff);border:1px solid var(--border-color,#ddd);border-radius:var(--radius-md);z-index:1000;max-height:240px;box-shadow:var(--shadow-md);margin-top:2px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.ac-item{cursor:pointer;font-size:var(--text-sm);border-bottom:1px solid var(--border-color,#eee);padding:8px 12px}.ac-item:last-child{border-bottom:none}.ac-item:hover,.ac-highlighted{background:var(--bg-hover,#f0f4ff)}.ac-faction{color:#6c757d;font-size:var(--text-xs);margin-left:var(--space-sm)}.ac-hint{font-size:var(--text-sm);color:#8a8a9a;cursor:default;-webkit-user-select:none;user-select:none;padding:8px 12px;font-style:italic}.mini-detail{width:560px}.mini-detail-body{padding:16px 20px 20px}.mini-detail-photo{aspect-ratio:4/3;border-radius:var(--radius-md);color:#b8b8c4;background:#f4f4f6;justify-content:center;align-items:center;width:100%;margin-bottom:16px;font-size:48px;display:flex;overflow:hidden}.mini-detail-photo img{object-fit:contain;width:100%;height:100%}.mini-detail-meta{flex-direction:column;gap:8px;display:flex}.mini-detail-row{font-size:var(--text-sm);gap:12px;display:flex}.mini-detail-label{color:var(--color-text-helper);flex:0 0 96px;font-weight:600}.mini-detail-value{color:#333;overflow-wrap:break-word}.mini-detail-status-dot{vertical-align:middle;border-radius:50%;width:12px;height:12px;margin-right:6px;display:inline-block}.mini-detail-notes{margin-top:14px}.mini-detail-notes-text{font-size:var(--text-sm);color:#333;white-space:pre-wrap;overflow-wrap:break-word;margin-top:4px}.dashboard-header{margin-bottom:20px}.dashboard-title{font-size:var(--text-xl);color:#333;font-weight:700}.dash-loading{text-align:center;color:var(--color-text-helper);padding:40px}.dash-onboard{text-align:center;max-width:480px;margin:0 auto;padding:48px 24px}.dash-onboard-icon{margin-bottom:var(--space-3,12px);font-size:48px}.dash-onboard-title{font-size:var(--text-xl);color:#333;margin-bottom:var(--space-2,8px);font-weight:700}.dash-onboard-sub{color:var(--color-text-helper);margin-bottom:var(--space-4,16px)}.dash-onboard-actions{gap:var(--space-2,8px);flex-wrap:wrap;justify-content:center;display:flex}.dash-onboard-btn{border:1px solid var(--color-border,#ccc);border-radius:var(--radius-md);background:var(--color-surface,#fff);color:#333;cursor:pointer;min-height:44px;padding:10px 20px;font-weight:600;transition:background .15s}.dash-onboard-btn:hover{background:var(--color-surface-hover,#f0f0f0)}.dash-onboard-btn-primary{background:var(--color-primary,#4a5aad);border-color:var(--color-primary,#4a5aad);color:#fff}.dash-onboard-btn-primary:hover{background:var(--color-primary-hover,#3a4a9d)}.dash-summary-bar{gap:var(--space-2,8px);background:var(--color-surface,white);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-md);margin-bottom:var(--space-5,20px);flex-direction:column;padding:12px 20px;display:flex}.dash-summary-head{justify-content:space-between;align-items:baseline;gap:var(--space-4,16px);display:flex}.dash-summary-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.dash-summary-progress{border-radius:var(--radius-sm);background:var(--color-border,#e5e7eb);flex:1;min-width:0;height:10px;display:flex;overflow:hidden}.dash-summary-meta{align-items:center;gap:var(--space-4,16px);font-size:var(--text-sm);color:#444;white-space:nowrap;flex-shrink:0;font-weight:600;display:flex}.dash-summary-pct{color:var(--color-primary,#4a5aad)}.dash-summary-paints{color:var(--color-text-secondary);font-weight:500}.dash-summary-points{color:var(--color-text-helper);font-weight:500}.dash-stats-drawer{margin-bottom:var(--space-5,20px)}.dash-stats-summary{cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-surface,white);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-md);align-items:center;gap:8px;padding:10px 14px;font-weight:600;list-style:none;display:flex}.dash-stats-summary::-webkit-details-marker{display:none}.dash-stats-summary:before{content:"▸";font-size:var(--text-xs);color:var(--color-text-helper)}.dash-stats-drawer[open] .dash-stats-summary:before{content:"▾"}.dash-stats-drawer[open] .dash-stats-summary{margin-bottom:var(--space-3,12px)}.dash-progress-segment{height:100%;transition:width .3s}.dash-layout{gap:var(--space-5,20px);grid-template-columns:1fr 300px;align-items:start;display:grid}.dash-col-main,.dash-col-side{min-width:0}.dash-section{margin-bottom:var(--space-5,20px);background:var(--color-surface,white);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-md);padding:var(--space-4,16px) var(--space-5,20px)}.dash-section-title{font-size:var(--text-lg,1.125rem);color:#444;margin-bottom:var(--space-3,12px);font-weight:700}.dash-pile{background:var(--color-warning-subtle,#fff8e1);border:1px solid var(--color-warning-border,#ffe082);border-radius:var(--radius-md);padding:16px}.dash-pile-count{font-size:var(--text-base);color:var(--color-warning,#e65100);margin-bottom:8px;font-weight:600}.dash-pile-breakdown{flex-wrap:wrap;gap:12px;display:flex}.dash-pile-item{font-size:var(--text-sm);align-items:center;gap:3px;font-weight:500;display:inline-flex}.dash-recent-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.dash-recent-card{background:var(--color-surface-secondary,#f8f9fa);border:1px solid var(--color-border,#e8e8e8);border-radius:var(--radius-md);padding:var(--space-md,12px);cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.dash-recent-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-primary,#4a5aad);transform:translateY(-2px)}.dash-recent-card:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.dash-recent-name-row{justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex}.dash-recent-name{font-size:var(--text-base);color:#333;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.dash-recent-arrow{color:#ccc;flex-shrink:0;font-size:1.1rem;transition:color .15s}.dash-recent-card:hover .dash-recent-arrow{color:var(--color-primary,#4a5aad)}.dash-recent-stats,.dash-recent-budget{font-size:var(--text-xs);color:#6b6b6b;margin-bottom:4px}.dash-status-bar{border-radius:var(--radius-xs);background:var(--color-border,#e5e7eb);height:6px;margin-bottom:6px;display:flex;overflow:hidden}.dash-status-bar-seg{height:100%}.dash-recent-footer{justify-content:space-between;align-items:center;gap:4px;min-height:22px;display:flex}.dash-recent-timer-btn{border:1px solid var(--color-primary,#4a5aad);border-radius:var(--radius-sm);color:var(--color-primary,#4a5aad);cursor:pointer;opacity:.35;font-variant-emoji:text;background:0 0;flex-shrink:0;padding:4px 10px;font-size:.8rem;transition:opacity .15s,background .15s,color .15s}.dash-recent-card:hover .dash-recent-timer-btn{opacity:1}.dash-recent-timer-btn:hover{background:var(--color-primary,#4a5aad);color:#fff}.dash-recent-time{font-size:var(--text-xs);color:#6b6b6b;margin-top:4px}.dash-mini-progress-track{border-radius:var(--radius-xs);background:var(--color-border,#e5e7eb);flex-shrink:0;min-width:60px;height:6px;overflow:hidden}.dash-mini-progress-fill{background:var(--color-primary,#4a5aad);border-radius:var(--radius-xs);height:100%;transition:width .3s}.dash-tree{background:var(--color-surface-secondary,#f8f9fa);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-md);padding:var(--space-2,8px);overflow:hidden}.dash-tree-row{border-radius:var(--radius-md);align-items:center;gap:8px;padding:8px 12px;transition:background .12s;display:flex}.dash-tree-row:hover{background:#00000008}.dash-tree-icon{font-size:var(--text-sm);flex-shrink:0}.dash-tree-name{font-size:var(--text-sm);color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.dash-tree-stats{font-size:var(--text-xs);color:#6b6b6b;text-align:right;flex-shrink:0;min-width:40px}.dash-tree-gs{font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.3px}.dash-tree-gs .dash-tree-name{color:#555;font-weight:700}.dash-tree-expand{color:#6b6b6b;width:20px;height:20px;font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-sm,4px);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.dash-tree-expand:hover{color:#333;background:#0000000f}.dash-tree-expand-spacer{flex-shrink:0;width:20px}.dash-tree-gs-btn{cursor:pointer;min-width:0;font:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;display:flex}.dash-tree-gs-btn:hover .dash-tree-name{text-decoration:underline}.dash-tree-project{cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:none;margin-left:28px}.dash-tree-project .dash-tree-name{color:#444;text-transform:none;letter-spacing:0;font-weight:500}.dash-continue-card{border-radius:var(--radius-lg);padding:var(--space-5,20px) var(--space-6,24px);color:#fff;margin-bottom:var(--space-5,20px);background:linear-gradient(135deg,#4a5aad 0%,#6366f1 100%)}.dash-continue-header{margin-bottom:var(--space-2,8px);align-items:center;gap:6px;display:flex}.dash-continue-play{font-size:var(--text-xs);opacity:.85;line-height:1}.dash-continue-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-weight:600}.dash-continue-project{font-size:var(--text-xl);margin-bottom:var(--space-2,8px);font-weight:700}.dash-continue-detail{font-size:var(--text-sm);opacity:.85;margin-bottom:var(--space-4,16px)}.dash-continue-actions{gap:var(--space-2,8px);display:flex}.dash-continue-btn{border-radius:var(--radius-md);color:#fff;font-size:var(--text-sm);cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;padding:8px 16px;font-weight:600;transition:background .15s}.dash-continue-btn:hover{background:#ffffff40}.dash-continue-btn-timer{color:#4a5aad;background:#fff;border-color:#fff}.dash-continue-btn-timer:hover{background:#f0f0ff}.dash-streak{background:var(--color-surface,white);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-md);padding:var(--space-4,16px) var(--space-5,20px);margin-bottom:var(--space-5,20px)}.dash-streak-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.dash-streak-sessions{font-size:var(--text-sm);color:var(--color-text-helper,#666);min-height:1.4em;margin-bottom:var(--space-2,8px)}.dash-streak-label{font-size:var(--text-sm);color:#444;text-transform:uppercase;letter-spacing:.3px;font-weight:700}.dash-streak-total{font-size:var(--text-base);color:var(--color-primary,#4a5aad);font-weight:700}.dash-streak-dots{justify-content:space-between;gap:var(--space-2,8px);margin-bottom:var(--space-2,8px);display:flex}.dash-streak-day{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.dash-streak-dot{border-radius:var(--radius-full);background:var(--color-border,#e5e7eb);width:24px;height:24px;transition:background .2s,transform .2s}.dash-streak-dot-active{background:var(--color-primary,#4a5aad);box-shadow:var(--shadow-brand-sm)}.dash-streak-day-label{font-size:var(--text-xs);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.3px}.dash-streak-empty{font-size:var(--text-sm);color:var(--color-text-helper);text-align:center;padding-top:var(--space-1,4px)}.dash-streak-count{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center;padding-top:var(--space-1,4px)}.dash-streak-perfect{color:var(--color-primary,#4a5aad);font-weight:700}.dash-activity{gap:var(--space-1,4px);flex-direction:column;display:flex}.dash-activity-empty{font-size:var(--text-sm);color:var(--color-text-helper);text-align:center;padding:var(--space-5,20px) 0}.dash-activity-day{margin-bottom:var(--space-2,8px)}.dash-activity-day-header{font-size:var(--text-xs);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.4px;padding:var(--space-1,4px) 0;border-bottom:1px solid var(--color-border,#e5e7eb);margin-bottom:var(--space-1,4px);font-weight:700}.dash-activity-item{align-items:flex-start;gap:var(--space-2,8px);padding:var(--space-2,8px);border-radius:var(--radius-sm);transition:background .12s;display:flex}.dash-activity-item:hover{background:#00000005}.dash-activity-item-running{background:#fff3e0;border:1px solid #ffe0b2}.dash-activity-icon{font-size:var(--text-sm);flex-shrink:0;margin-top:2px}.dash-activity-content{flex:1;min-width:0}.dash-activity-main{align-items:center;gap:var(--space-2,8px);font-size:var(--text-sm);display:flex}.dash-activity-duration{color:#333;font-weight:700}.dash-activity-running-label{color:var(--color-warning,#e65100);font-weight:700}.dash-activity-event-label{color:#333;font-weight:600}.dash-activity-project{color:var(--color-text-secondary)}.dash-activity-detail{gap:var(--space-2,8px);font-size:var(--text-xs);color:var(--color-text-helper);margin-top:2px;display:flex}.dash-activity-detail span:not(:last-child):after{content:" ·";margin-left:var(--space-2,8px)}.dash-activity-note{color:var(--color-text-helper);font-style:italic}.dash-activity-time{font-size:var(--text-xs);color:#999;flex-shrink:0;margin-top:3px}.dash-activity-more{width:100%;padding:var(--space-2,8px);margin-top:var(--space-2,8px);border:1px solid var(--color-border,#e5e7eb);border-radius:var(--radius-sm);color:var(--color-primary,#4a5aad);font-size:var(--text-sm);cursor:pointer;background:0 0;font-weight:600;transition:background .12s;display:block}.dash-activity-more:hover{background:#4a5aad0d}@media (width<=960px){.dash-layout{grid-template-columns:1fr}}@media (width<=768px){.dash-summary-bar{gap:var(--space-2,8px);flex-wrap:wrap}.dash-summary-progress{flex:100%}.dash-recent-grid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.dash-streak-dot{width:20px;height:20px}.dash-recent-timer-btn{opacity:1;min-width:44px;min-height:44px}}@media (width<=480px){.dash-summary-bar,.dash-section,.dash-streak,.dash-continue-card{padding-inline:var(--space-3,12px)}.dash-summary-meta,.dash-continue-actions,.dash-recent-footer,.dash-activity-main,.dash-activity-detail{flex-wrap:wrap}.dash-continue-btn{min-height:44px}.dash-recent-grid{grid-template-columns:minmax(0,1fr)}.dash-recent-card,.dash-recent-name-row,.dash-recent-footer,.dash-activity-item,.dash-tree-row{min-width:0}.dash-tree-expand{width:44px;height:44px}.dash-tree-expand-spacer{width:44px}.dash-tree-gs-btn,.dash-tree-project{min-height:44px}}.pipeline-type-row{gap:8px;margin-bottom:16px;display:flex}.pipeline-type-btn{border-radius:var(--radius-md);color:var(--color-text-dark-muted);cursor:pointer;text-align:center;font-size:var(--text-sm);background:0 0;border:2px solid #ffffff1a;flex:1;padding:10px 12px;transition:all .15s}.pipeline-type-btn.active{border-color:var(--accent,#6c63ff);color:var(--text,#e0e0e0);background:#6c63ff1a}.pipeline-presets{margin-bottom:16px}.pipeline-preset-option{border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--space-sm);border:1px solid #ffffff14;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.pipeline-preset-option:hover{border-color:#ffffff26}.pipeline-preset-option.active{border-color:var(--accent,#6c63ff);background:#6c63ff0f}.pipeline-preset-radio{border-radius:var(--radius-full);border:2px solid #fff3;flex-shrink:0;width:16px;height:16px;position:relative}.pipeline-preset-option.active .pipeline-preset-radio{border-color:var(--accent,#6c63ff)}.pipeline-preset-option.active .pipeline-preset-radio:after{content:"";background:var(--accent,#6c63ff);border-radius:var(--radius-full);width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pipeline-preset-info{flex:1}.pipeline-preset-name{font-size:var(--text-base);color:var(--text,#e0e0e0);margin-bottom:2px}.pipeline-preset-stages{flex-wrap:wrap;gap:3px;display:flex}.pipeline-preset-chip{font-size:var(--text-xs);padding:2px var(--space-sm);border-radius:var(--radius-sm);color:#fff;opacity:.8}.pipeline-custom-section{display:none}.pipeline-custom-section.visible{display:block}.pipeline-stages-label{font-size:var(--text-sm);color:var(--color-text-dark-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.pipeline-stage-list{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.pipeline-stage-item{padding:var(--space-sm) 10px;border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;align-items:center;gap:8px;transition:background .1s;display:flex}.pipeline-stage-item:hover{background:#ffffff0f}.pipeline-stage-item input[type=checkbox]{accent-color:var(--accent,#6c63ff)}.pipeline-stage-icon{justify-content:center;align-items:center;width:24px;display:flex}.pipeline-icon-picker{flex-wrap:wrap;gap:4px;max-width:240px;display:flex}.pipeline-icon-choice{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.pipeline-icon-choice:hover{background:#ffffff14}.pipeline-icon-choice input[type=radio]{opacity:0;pointer-events:none;position:absolute}.pipeline-icon-choice:focus-within{outline:2px solid var(--accent,#6c63ff);outline-offset:1px}.pipeline-icon-choice:has(input:checked){border-color:var(--accent,#6c63ff);background:#6c63ff2e}.pipeline-stage-name{font-size:var(--text-sm);color:var(--text,#e0e0e0);flex:1}.pipeline-stage-color{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px}.pipeline-stage-action{color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:2px}.pipeline-custom-divider{color:var(--color-text-secondary);font-size:var(--text-xs);align-items:center;gap:8px;margin:8px 0;display:flex}.pipeline-custom-divider:before,.pipeline-custom-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.pipeline-add-custom-btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-dark-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;border:1px dashed #ffffff26;width:100%;padding:8px 12px;transition:all .15s;display:flex}.pipeline-add-custom-btn:hover{border-color:var(--accent,#6c63ff);color:var(--text,#e0e0e0)}.pipeline-custom-form{border-radius:var(--radius-md);background:#ffffff08;border:1px solid #ffffff1a;margin-top:8px;padding:10px;display:none}.pipeline-custom-form.visible{display:block}.pipeline-custom-form-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.pipeline-custom-form-row>label{font-size:var(--text-sm);color:var(--color-text-dark-muted);flex-shrink:0;width:50px}.pipeline-custom-form-row input[type=text]{padding:var(--space-sm) 8px;border-radius:var(--radius-sm);color:var(--text,#e0e0e0);font-size:var(--text-sm);background:#0003;border:1px solid #ffffff1a;flex:1}.pipeline-custom-form-row input[type=color]{border-radius:var(--radius-sm);cursor:pointer;border:none;width:32px;height:28px;padding:0}.pipeline-custom-form-actions{gap:var(--space-sm);justify-content:flex-end;display:flex}.pipeline-preview{border-radius:var(--radius-md);background:#ffffff08;margin:12px 0;padding:10px}.pipeline-preview-label{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.pipeline-preview-stages{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pipeline-preview-arrow{color:var(--color-text-dark-muted);font-size:var(--text-sm)}.pipeline-save-row{align-items:center;gap:8px;margin:10px 0;display:flex}.pipeline-save-row label{font-size:var(--text-sm);color:var(--color-text-dark-muted);cursor:pointer}.pipeline-name-input{padding:var(--space-sm) 8px;border-radius:var(--radius-sm);color:var(--text,#e0e0e0);font-size:var(--text-sm);background:#0003;border:1px solid #ffffff1a;flex:1}.gs-modal-overlay{z-index:1900;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;inset:0}.gs-modal-overlay.visible{display:flex}.gs-modal{background:var(--surface,var(--color-surface-dark));border-radius:var(--radius-lg);width:95%;max-width:480px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.gs-modal-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.gs-modal-title{font-size:var(--text-lg);color:var(--text,#e0e0e0);margin:0;font-weight:600}.gs-modal-body{flex:1;padding:16px 20px;overflow-y:auto}.gs-modal-footer{border-top:1px solid #ffffff14;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.gs-field{margin-bottom:12px}.gs-field label{font-size:var(--text-sm);color:var(--color-text-dark-muted);margin-bottom:4px;display:block}.gs-field input[type=text]{border-radius:var(--radius-md);width:100%;color:var(--text,#e0e0e0);font-size:var(--text-base);background:#0003;border:1px solid #ffffff1a;padding:8px 10px}.color-card-page{background:var(--color-surface-muted,#f2f0ec);flex-direction:column;display:flex;position:fixed;inset:0}.color-card-modal-header{padding:20px var(--space-xl);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-bottom:2px solid #e0e0e0;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.color-card-modal-header h3{color:#fff;font-size:var(--text-xl);margin:0}.color-card-header-actions{align-items:center;gap:10px;display:flex}.color-card-print-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;background:#fff3;border:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:background .2s,transform .2s;display:flex}.color-card-print-btn:disabled{opacity:.5;cursor:not-allowed}.color-card-print-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.1)}.color-card-print-btn svg{stroke:currentColor;width:20px;height:20px}.color-card-modal-close{color:#fff;font-size:var(--text-2xl);border-radius:var(--radius-full);cursor:pointer;background:#fff3;border:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-weight:700;line-height:1;transition:background .2s,transform .2s;display:flex}.color-card-modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.color-card-change-image-btn{color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;background:#fff3;border:none;padding:8px 16px;font-weight:600;transition:background .2s,transform .2s}.color-card-change-image-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.color-card-export-loading{z-index:10004;background:#000000b3;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}.color-card-export-loading-spinner{border-radius:var(--radius-full);border:4px solid #ffffff4d;border-top-color:#fff;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.color-card-export-loading-text{color:#fff;font-size:var(--text-lg);font-weight:500}.color-card-modal-body{flex:1;justify-content:center;min-height:0;padding:0;display:flex;overflow:auto}.color-card-warning{text-align:center;font-size:var(--text-lg);color:var(--color-text-secondary);margin:auto;padding:40px}.color-card-workspace{gap:var(--space-2xl);padding:var(--space-2xl);flex-wrap:wrap;justify-content:center;align-items:flex-start;display:flex}.color-card-stage{gap:var(--space-xl);flex-wrap:wrap;align-items:flex-start;display:flex}.color-card-panel{border-radius:var(--radius-lg);width:300px;padding:var(--space-lg);background:#fff;border:1px solid #ddd8d0;flex-shrink:0}.color-card-panel-section+.color-card-panel-section{margin-top:var(--space-xl)}.color-card-panel-section h4{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 10px;font-weight:700}.color-card-size-picker{border-radius:var(--radius-md);border:1px solid #d5d0c8;display:flex;overflow:hidden}.color-card-size-picker button{font:inherit;font-size:var(--text-sm);cursor:pointer;background:#fff;border:none;border-right:1px solid #e5e1da;flex:1;padding:8px 4px}.color-card-size-picker button:last-child{border-right:none}.color-card-size-picker button[aria-pressed=true]{color:#fff;background:#4a5aad;font-weight:600}.color-card-readout,.color-card-hint{font-size:var(--text-sm);color:var(--color-text-secondary);margin:8px 0 0;line-height:1.5}.color-card-readout{font-family:ui-monospace,Menlo,monospace}.color-card-zoom-row{align-items:center;gap:10px;display:flex}.color-card-zoom-row input[type=range]{flex:1;min-width:0}.color-card-zoom-row b{font-family:ui-monospace,Menlo,monospace;font-size:var(--text-sm);text-align:right;width:46px}.color-card-secondary-btn{border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);cursor:pointer;background:#fff;border:1px solid #d5d0c8;margin-top:10px;padding:6px 12px}.color-card-secondary-btn:hover{border-color:#4a5aad}.color-card-select{width:100%;font:inherit;font-size:var(--text-sm);border-radius:var(--radius-md);background:#fff;border:1px solid #d5d0c8;padding:7px 8px}.color-card-alert{font-size:var(--text-sm);color:#8a4b28;margin:10px 0 0;line-height:1.5}.cc-card{box-sizing:border-box;background:var(--cc-stock,#fbfaf7);border-radius:9px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000038,0 12px 28px #00000029,inset 0 0 0 1px #00000017}.cc-bar{background:var(--cc-accent);flex-shrink:0;height:5px}.cc-head{flex-shrink:0;justify-content:space-between;align-items:baseline;padding:9px 12px 7px;display:flex}.cc-head-back{border-bottom:1px solid var(--cc-rule);padding-bottom:5px}.cc-head-title{letter-spacing:.15em;text-transform:uppercase;color:var(--cc-ink);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700;overflow:hidden}.cc-head-meta{letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink);opacity:.5;flex-shrink:0;padding-left:6px;font-family:ui-monospace,Menlo,monospace;font-size:7.5px}.cc-art{cursor:grab;touch-action:none;min-height:0;box-shadow:0 0 0 1px #0000008c, 0 0 0 3px var(--cc-stock,#fbfaf7), 0 0 0 4px #00000029, 0 6px 14px #0003;flex:1;margin:0 12px;position:relative;overflow:hidden}.cc-art.cc-art-dragging{cursor:grabbing}.cc-art-img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;max-width:none;position:absolute}.cc-art:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000 33.33%,#ffffff80 33.33% calc(33.33% + 1px),#0000 calc(33.33% + 1px) 66.66%,#ffffff80 66.66% calc(66.66% + 1px),#0000 calc(66.66% + 1px)),linear-gradient(#0000 33.33%,#ffffff80 33.33% calc(33.33% + 1px),#0000 calc(33.33% + 1px) 66.66%,#ffffff80 66.66% calc(66.66% + 1px),#0000 calc(66.66% + 1px));transition:opacity .12s;position:absolute;inset:0}.cc-art.cc-art-dragging:after{opacity:1}.cc-strip{flex-shrink:0;gap:3px;height:26px;margin:14px 12px 0;display:flex}.cc-strip-seg{flex:1;min-width:0;box-shadow:0 0 0 1px #00000073,0 1px 3px #00000038}.cc-foot{letter-spacing:.2em;text-transform:uppercase;color:var(--cc-ink);opacity:.45;flex-shrink:0;justify-content:space-between;gap:8px;padding:7px 12px 10px;font-size:7px;display:flex}.cc-foot span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cc-clipped:before{content:"";pointer-events:none;background:linear-gradient(to bottom, transparent, var(--cc-stock));height:22px;position:absolute;bottom:26px;left:0;right:0}.cc-clip-mark{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--cc-ink);opacity:.8;border-top:1px dashed var(--cc-ink);padding-top:2px;font-family:ui-monospace,Menlo,monospace;font-size:6px;position:absolute;bottom:24px;left:12px;right:12px}.cc-reg{opacity:.3;background:linear-gradient(var(--cc-ink), var(--cc-ink)) center / 1px 100% no-repeat, linear-gradient(var(--cc-ink), var(--cc-ink)) center / 100% 1px no-repeat;width:7px;height:7px;position:absolute}.cc-reg-tl{top:12px;left:8px}.cc-reg-tr{top:12px;right:8px}.cc-reg-bl{bottom:8px;left:8px}.cc-reg-br{bottom:8px;right:8px}.cc-body{--cc-scale:1;min-height:0;padding:calc(6px * var(--cc-scale)) calc(10px * var(--cc-scale));column-count:var(--cc-cols,2);column-rule:1px solid var(--cc-rule);flex:1;column-gap:9px;overflow:hidden}.cc-group{break-inside:avoid;margin-bottom:calc(5px * var(--cc-scale))}.cc-group-name{font-size:calc(6px * var(--cc-scale));letter-spacing:.12em;text-transform:uppercase;color:var(--cc-ink);opacity:.65;border-bottom:1px solid var(--cc-rule);padding-bottom:calc(1px * var(--cc-scale));margin-bottom:calc(2px * var(--cc-scale));display:block}.cc-unit{break-inside:avoid;margin-bottom:calc(3px * var(--cc-scale))}.cc-unit-head{align-items:center;gap:calc(3px * var(--cc-scale));margin-bottom:calc(1px * var(--cc-scale));display:flex}.cc-kind{font-size:calc(5px * var(--cc-scale));letter-spacing:.06em;padding:calc(.5px * var(--cc-scale)) calc(2px * var(--cc-scale));color:#fff;border-radius:2px;flex-shrink:0;font-weight:700}.cc-kind-nmm{background:#8a6d1f}.cc-kind-triad{background:#3d5a80}.cc-unit-name{font-size:calc(7px * var(--cc-scale));color:var(--cc-ink);overflow-wrap:anywhere;font-weight:700}.cc-unit-ramp{height:calc(5px * var(--cc-scale));margin-left:calc(2px * var(--cc-scale));flex:1;box-shadow:0 0 0 .5px #0006}.cc-row{align-items:flex-start;gap:calc(3px * var(--cc-scale));min-width:0;margin-bottom:calc(1.5px * var(--cc-scale) + var(--cc-lead,0px));display:flex}.cc-chip{--cc-chip-size:calc(7px * var(--cc-scale) * (.6 + .4 * var(--cc-scale)));width:var(--cc-chip-size);height:var(--cc-chip-size);margin-top:calc(1.5px * var(--cc-scale));flex-shrink:0;box-shadow:0 0 0 .5px #00000073}.cc-chip-glaze{background-image:linear-gradient(135deg,#ffffffd9 0 42%,#fff0 42%)}.cc-role{font-family:ui-monospace,Menlo,monospace;font-size:calc(5px * var(--cc-scale));color:var(--cc-ink);opacity:.7;width:calc(11px * var(--cc-scale));text-align:right;margin-top:calc(1.5px * var(--cc-scale));flex-shrink:0;text-decoration:none}.cc-row-text{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.cc-name{font-size:calc(7.6px * var(--cc-scale));color:var(--cc-ink);overflow-wrap:anywhere;font-weight:600}.cc-name-none{opacity:.55;font-style:italic;font-weight:500}.cc-sub{font-family:ui-monospace,Menlo,monospace;font-style:normal;font-size:calc(6px * var(--cc-scale));color:var(--cc-ink);opacity:.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cc-badge{--cc-badge-scale:min(var(--cc-scale), 1.8);font-size:calc(4.8px * var(--cc-badge-scale));letter-spacing:.04em;text-transform:uppercase;padding:calc(.5px * var(--cc-badge-scale)) calc(2px * var(--cc-badge-scale));color:#fff;margin-top:calc(1px * var(--cc-badge-scale));border-radius:2px;flex-shrink:0;font-weight:700;text-decoration:none}.cc-badge-contrast{background:#6a3fa0}.cc-badge-wash{background:#3d6b52}.cc-badge-ink{background:#2d5f7a}.cc-badge-metallic{background:#8a6d1f}.cc-badge-technical{background:#6b6b6b}.color-card-chooser{align-items:center;gap:var(--space-lg);width:100%;padding:var(--space-2xl) var(--space-xl);box-sizing:border-box;flex-direction:column;display:flex;overflow-y:auto}.color-card-chooser-head{text-align:center;max-width:640px}.color-card-chooser-title{font-size:var(--text-2xl);color:var(--color-text-primary);margin:0 0 6px}.color-card-chooser-hint{font-size:var(--text-base);color:var(--color-text-secondary);margin:0}.color-card-chooser-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));width:100%;max-width:900px;display:grid}.color-card-chooser-tile{aspect-ratio:4/3;border-radius:var(--radius-lg);cursor:pointer;background:#fafafa;border:2px solid #e0e0e0;justify-content:center;align-items:center;padding:0;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.color-card-chooser-tile:hover,.color-card-chooser-tile:focus-visible{box-shadow:var(--shadow-brand-md);border-color:#4a5aad;outline:none;transform:translateY(-2px)}.color-card-chooser-thumb{object-fit:cover;width:100%;height:100%;display:block}.color-card-chooser-upload{color:var(--color-text-secondary);border-style:dashed;flex-direction:column;gap:8px}.color-card-chooser-upload-icon{color:#4a5aad;font-size:2.5rem;font-weight:300;line-height:1}.color-card-chooser-upload-label{font-size:var(--text-base);font-weight:600}.color-card-chooser-empty{font-size:var(--text-base);color:var(--color-text-secondary);text-align:center;margin:0}.login-overlay{z-index:10000;background:#000000b3;justify-content:center;align-items:safe center;padding:1rem 0;display:flex;position:fixed;inset:0;overflow-y:auto}#demoConfirmModal{z-index:10001}.login-modal{background:var(--bg-color,#fff);border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:var(--shadow-lg);padding:2rem;position:relative}.login-close{width:44px;height:44px;color:var(--color-text-secondary,#888);cursor:pointer;border-radius:var(--radius-sm,4px);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.login-close:hover{color:var(--color-text,#222);background:#0000000f}.login-close:focus-visible{outline:2px solid var(--color-primary,#4a5aad);outline-offset:2px}.login-modal h2{font-size:var(--text-xl);margin:0 0 .5rem}.login-modal h1{padding-right:2.5rem}.login-subtitle{color:var(--color-text-secondary);margin:0 0 1.5rem}.login-error{color:#c00;border-radius:var(--radius-md);background:#fee;margin-bottom:1rem;padding:.5rem}.login-link{color:var(--color-accent,#2d6cdf);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin-top:.25rem;padding:.25rem 0;text-decoration:underline;display:inline-block}.login-link:hover{opacity:.85}.login-tabs{gap:.5rem;margin-bottom:1rem;display:flex}.login-tab{cursor:pointer;border-radius:var(--radius-md);background:0 0;border:1px solid #ddd;flex:1;padding:.5rem}.login-tab.active{background:var(--accent-color,#4a90d9);color:#fff;border-color:var(--accent-color,#4a90d9)}.login-form input{border-radius:var(--radius-md);box-sizing:border-box;border:1px solid #ddd;width:100%;margin-bottom:.75rem;padding:.75rem;display:block}.password-field{margin-bottom:.75rem;position:relative}.password-field input{margin-bottom:0;padding-right:2.75rem}.login-form .password-toggle{width:2.75rem;height:100%;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:0;right:0}.login-form .password-toggle:hover{color:var(--color-text);opacity:1}.login-form .password-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.login-form .password-toggle svg{width:18px;height:18px}.login-form button{background:var(--accent-color,#4a90d9);color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;font-size:var(--text-base);border:none;padding:.75rem}.login-form button:hover{opacity:.9}.login-divider{text-align:center;color:var(--color-text-secondary);margin:1.5rem 0 1rem}.login-oauth{flex-direction:column;gap:.5rem;display:flex}.login-oauth-btn{text-align:center;border-radius:var(--radius-md);width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #ddd;padding:.75rem;text-decoration:none;display:block}.login-oauth-btn:hover{background:#f5f5f5}.login-oauth-btn:disabled{cursor:wait;opacity:.7}.demo-banner{bottom:0;left:var(--sidebar-width);z-index:900;color:#e0e4f0;font-size:var(--text-sm,.875rem);border-top:2px solid var(--color-primary,#4a5aad);background:#1e2235;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex;position:fixed;right:0}body.sidebar-collapsed .demo-banner{left:var(--sidebar-width-collapsed)}@media (width<=768px){.demo-banner,body.sidebar-collapsed .demo-banner{left:0}}.demo-banner-text{flex:1}.demo-banner-cta{background:var(--color-primary,#4a5aad);color:#fff;border-radius:var(--radius-sm,4px);min-height:44px;font-size:var(--text-sm,.875rem);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:.3rem .75rem;font-weight:600;display:inline-flex}.demo-banner-cta:hover{background:color-mix(in srgb, var(--color-primary,#4a5aad) 85%, white)}.demo-banner-tour{min-height:44px;color:var(--color-text-dark-light,#e0e0e0);border:1px solid var(--color-primary,#4a5aad);border-radius:var(--radius-sm,4px);font-size:var(--text-sm,.875rem);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;padding:.3rem .75rem;font-weight:600;display:inline-flex}.demo-banner-tour:hover{background:color-mix(in srgb, var(--color-primary,#4a5aad) 30%, transparent)}.demo-banner-dismiss{color:#888;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1rem;line-height:1}.demo-banner-dismiss:hover{color:#fff}@media (width<=768px){.demo-banner{bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:9995}}@media (width<=480px){.demo-banner{flex-wrap:wrap;align-items:flex-start;gap:.5rem;width:100vw;max-width:100vw;padding:.55rem .75rem}.demo-banner-text{flex:100%;min-width:0}.demo-banner-cta,.demo-banner-tour{flex:0 auto}.demo-banner-dismiss{justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-left:auto;display:inline-flex}}.conflict-modal{z-index:9999;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.conflict-modal-content{background:var(--bg-color,#fff);border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:var(--shadow-lg);padding:2rem}.conflict-modal-content h3{margin:0 0 1rem}.conflict-modal-content p{color:var(--color-text-secondary);margin:0 0 1.5rem}.conflict-actions{flex-direction:column;gap:.5rem;display:flex}.conflict-btn{border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:0 0;border:1px solid #ddd;padding:.75rem}.conflict-btn:hover{background:#f5f5f5}.conflict-btn-warn{color:#c00;border-color:#c00}.conflict-btn-warn:hover{background:#fee}.extract-palette-btn{z-index:10;background:var(--color-primary-gradient);color:#fff;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow-brand-sm);transition:all var(--duration-normal);border:none;font-weight:600;position:absolute;top:10px;left:10px}.extract-palette-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-1px)}.photo-to-paint-section{margin-bottom:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.photo-to-paint-header{padding:var(--space-3) var(--space-5);background:var(--color-primary-gradient);color:#fff;justify-content:space-between;align-items:center;display:flex}.photo-to-paint-header h3{font-size:var(--text-base);margin:0;font-weight:700}.photo-to-paint-header .close-btn{color:#fff;font-size:var(--text-xl);border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;transition:background var(--duration-normal);background:#fff3;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.photo-to-paint-header .close-btn:hover{background:#ffffff4d}.photo-to-paint-results{padding:var(--space-3) var(--space-4)}.photo-to-paint-actions{gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-secondary);display:flex}#photoToPaintAddAll{background:var(--color-primary-gradient);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:opacity var(--motion-fast);border:none;font-weight:600}#photoToPaintAddAll:hover{opacity:.88}.ptp-loading,.ptp-empty{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--text-base)}.ptp-swatch-grid{flex-wrap:wrap;gap:10px;display:flex}.ptp-swatch-item{border-radius:var(--radius-md);border:2px solid var(--color-border-medium);cursor:pointer;flex-shrink:0;width:64px;height:64px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.ptp-swatch-item:hover{box-shadow:var(--shadow-md);z-index:1;transform:scale(1.08)}.ptp-swatch-overlay{opacity:0;background:#0000004d;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.ptp-swatch-item:hover .ptp-swatch-overlay{opacity:1}.ptp-swatch-item.ptp-swatch-added .ptp-swatch-overlay{opacity:1;background:#4caf5080}.ptp-swatch-plus-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:#4caf50;border:2px solid #fff;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:20px;font-weight:700;line-height:1;transition:transform .1s;display:flex}.ptp-swatch-plus-btn:hover{transform:scale(1.1)}.ptp-swatch-plus-btn:disabled{cursor:default;background:#4caf50}.ptp-swatch-remove-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:#e54040;border:2px solid #fff;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;font-weight:700;line-height:1;transition:transform .1s,background .1s;display:flex;position:absolute;top:4px;right:4px}.ptp-swatch-remove-btn:hover{background:#c92e2e;transform:scale(1.15)}.ptp-swatch-remove-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.pnorm-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.pnorm-header{padding:var(--space-3) var(--space-5);background:var(--color-primary-gradient);color:#fff;justify-content:space-between;align-items:center;display:flex}.pnorm-title{font-size:var(--text-base);font-weight:700}.pnorm-header .close-btn{color:#fff;font-size:var(--text-xl);border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;transition:background var(--motion-base);background:#fff3;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.pnorm-header .close-btn:hover{background:#ffffff59}.pnorm-preview{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);display:flex}.pnorm-preview-col{flex:1;min-width:0}.pnorm-preview-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2);font-weight:600}.pnorm-preview-arrow{font-size:var(--text-lg);color:var(--color-text-secondary);flex-shrink:0;padding-top:20px}.pnorm-before,.pnorm-after{flex-wrap:wrap;gap:5px;display:flex}.pnorm-swatch{border-radius:var(--radius-sm);border:1px solid #0000001f;flex-shrink:0;width:28px;height:28px}.pnorm-triads-col{flex-flow:column;gap:4px;display:flex}.pnorm-triad-row{align-items:center;gap:3px;display:flex}.pnorm-swatch--sm{border-radius:var(--radius-xs);border:1px solid #0000001f;flex-shrink:0;width:22px;height:22px}.pnorm-before .pnorm-swatch,.pnorm-before .pnorm-swatch--sm{opacity:.65}.pnorm-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);gap:var(--space-2);flex-direction:column;display:flex}.pnorm-section-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.pnorm-preset-row{gap:var(--space-2);display:flex}.pnorm-preset-btn{padding:var(--space-1) var(--space-2);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--motion-fast);background:0 0;flex:1;font-weight:500}.pnorm-preset-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-alpha-08)}.pnorm-preset-btn.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-alpha-20);font-weight:600}.pnorm-slider-row{align-items:center;gap:var(--space-3);display:flex}.pnorm-slider-row label{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;min-width:90px}.pnorm-slider-right{align-items:center;gap:var(--space-2);flex:1;display:flex}.pnorm-slider{accent-color:var(--color-primary);cursor:pointer;flex:1}.pnorm-slider-value{font-size:var(--text-sm);color:var(--color-primary);text-align:right;min-width:36px;font-weight:600}.pnorm-toggle-row{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.pnorm-toggle-row input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;width:15px;height:15px}.pnorm-radio-row{align-items:flex-start;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.pnorm-radio-row input[type=radio]{accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;width:15px;height:15px;margin-top:2px}.pnorm-radio-main{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500;display:block}.pnorm-radio-sub{font-size:var(--text-xs);color:var(--color-text-helper);margin-top:1px;display:block}.pnorm-footer{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface-secondary);display:flex}.pnorm-skip-btn{border:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-helper);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:all var(--motion-fast);background:0 0;min-height:32px}.pnorm-skip-btn:hover{color:var(--color-text-secondary);border-color:var(--color-text-helper)}.pnorm-apply-btn{font-size:var(--text-sm);background:var(--color-primary-gradient);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--motion-fast);border:none;min-height:32px;font-weight:600}.pnorm-apply-btn:hover{opacity:.88}.scheme-section{padding:8px}.scheme-anchor-section{margin-bottom:8px}.scheme-anchor-label{font-size:var(--text-sm);color:#777;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;margin-bottom:4px;font-weight:700;display:block}.scheme-collection-anchor{margin-bottom:4px}.scheme-collection-anchor>summary{-webkit-user-select:none;user-select:none;list-style:none}.scheme-collection-anchor>summary::-webkit-details-marker{display:none}.scheme-anchor-section .scheme-base-selector{gap:var(--space-sm);flex-wrap:nowrap;margin-bottom:12px;padding:8px 0;display:flex;overflow:auto hidden}.scheme-collection-anchor .scheme-base-selector{gap:var(--space-sm);flex-wrap:wrap;max-height:128px;margin-bottom:12px;padding:8px 0;display:flex;overflow-y:auto}.scheme-base-selector .color-swatch{border-radius:var(--radius-sm);cursor:pointer;border:2px solid #0000;flex-shrink:0;width:32px;height:32px;transition:border-color .15s,transform .15s}.scheme-base-selector .color-swatch:hover{z-index:1;transform:scale(1.15)}.scheme-base-selector .color-swatch.selected{border-color:var(--accent-color,#4a90d9);box-shadow:0 0 0 2px var(--accent-color,#4a90d9)}.scheme-base-selector .color-swatch:focus-visible{outline:2px solid var(--accent-color,#4a90d9);outline-offset:2px}.scheme-card{background:var(--card-bg,var(--color-surface-dark));border:1px solid var(--border-color,#333);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);margin-bottom:12px;padding:12px}.scheme-card.poor-match{opacity:.7}.scheme-card-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.scheme-card-header h3{font-size:var(--text-base);color:var(--text-primary,#e0e0e0);margin:0;font-weight:600}.scheme-quality-badge{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px;display:inline-block}.scheme-quality-badge.quality-excellent{color:#0000;background:#2e7d32}.scheme-quality-badge.quality-good{color:#0000;background:#4caf50}.scheme-quality-badge.quality-fair{color:#0000;background:#ff9800}.scheme-quality-badge.quality-approx{color:#0000;background:#f44336}.scheme-quality-label{font-size:var(--text-xs);color:var(--color-text-helper)}.scheme-color-strip{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.scheme-color-slot{flex-direction:column;align-items:center;gap:4px;display:flex}.scheme-color-slot .color-box{border-radius:var(--radius-md);border:1px solid #ffffff1a;width:48px;height:48px}.scheme-role-label{font-size:var(--text-xs);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.5px;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:56px;overflow:hidden}.scheme-paint-name{font-size:var(--text-xs);color:var(--text-secondary,#aaa);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:64px;overflow:hidden}.scheme-slot-add-btn{border-radius:var(--radius-sm,4px);color:var(--color-primary,#4f8cff);cursor:pointer;background:#4f8cff1f;border:1px solid #4f8cff59;margin-top:2px;padding:4px 10px;font-size:14px;font-weight:600;line-height:1;transition:background .12s}.scheme-slot-add-btn:hover{background:#4f8cff38}.scheme-slot-add-btn:focus-visible{outline:2px solid var(--color-primary,#4f8cff);outline-offset:2px}.scheme-explanation{font-size:var(--text-xs);color:var(--color-text-helper);margin-bottom:8px;font-style:italic;line-height:1.4}.scheme-actions{gap:8px;display:flex}.scheme-apply-btn{background:var(--accent-color,#4a90d9);color:#fff;border-radius:var(--radius-sm);padding:var(--space-sm) 12px;font-size:var(--text-xs);cursor:pointer;border:none;transition:background .15s}.scheme-apply-btn:hover{background:var(--accent-hover,#3a7bc8)}.scheme-apply-btn:focus-visible{outline:2px solid var(--accent-color,#4a90d9);outline-offset:2px}.scheme-empty-state{text-align:center;color:var(--color-text-helper);padding:40px 16px}.scheme-empty-state p{font-size:var(--text-base);margin:8px 0}.scheme-empty-state .empty-icon{font-size:var(--text-2xl);margin-bottom:8px}@media (width<=768px){.scheme-color-strip{gap:var(--space-sm)}.scheme-color-slot .color-box{width:40px;height:40px}.scheme-base-selector .color-swatch{width:28px;height:28px}}.mix-recipe-section{padding:8px}.mix-recipe-target-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px 0;display:flex}.mix-recipe-color-picker{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:40px;height:40px;padding:0}.mix-recipe-color-picker::-webkit-color-swatch-wrapper{padding:0}.mix-recipe-color-picker::-webkit-color-swatch{border-radius:var(--radius-sm);border:1px solid #fff3}.mix-recipe-hex-input{border:1px solid var(--border-color,#333);border-radius:var(--radius-sm);background:var(--card-bg,var(--color-surface-dark));width:90px;color:var(--text-primary,#e0e0e0);font-family:monospace;font-size:var(--text-base);padding:8px}.mix-recipe-hex-input:focus{outline:2px solid var(--accent-color,#4a90d9);outline-offset:-1px}.mix-recipe-preview{border-radius:var(--radius-sm);border:1px solid #ffffff1a;flex-shrink:0;width:40px;height:40px}.mix-recipe-find-btn{background:var(--accent-color,#4a90d9);color:#fff;border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;padding:8px 16px;transition:background .15s}.mix-recipe-find-btn:hover{background:var(--accent-hover,#3a7bc8)}.mix-recipe-find-btn:disabled{opacity:.5;cursor:not-allowed}.mix-recipe-find-btn:focus-visible{outline:2px solid var(--accent-color,#4a90d9);outline-offset:2px}.mix-recipe-loading{color:var(--color-text-helper);font-size:var(--text-base);align-items:center;gap:8px;padding:16px;display:flex}.mix-recipe-spinner{border:2px solid var(--border-color,#333);border-top-color:var(--accent-color,#4a90d9);border-radius:var(--radius-full);width:16px;height:16px;animation:.8s linear infinite mix-recipe-spin;display:inline-block}@keyframes mix-recipe-spin{to{transform:rotate(360deg)}}.mix-recipe-card{background:var(--card-bg,var(--color-surface-dark));border:1px solid var(--border-color,#333);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);margin-bottom:12px;padding:12px}.mix-recipe-direct-match{border-width:2px;border-color:#4caf50}.mix-recipe-paints-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.mix-recipe-paint-slot{flex-direction:column;align-items:center;gap:4px;display:flex}.mix-recipe-paint-slot .color-box{border-radius:var(--radius-md);border:1px solid #ffffff1a;width:48px;height:48px}.mix-recipe-pct-label{font-size:var(--text-sm);color:var(--text-primary,#e0e0e0);font-weight:600}.mix-recipe-operator{font-size:var(--text-lg);color:var(--color-text-helper);align-self:center;padding:0 2px;font-weight:600}.mix-recipe-vs{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;font-weight:400}.mix-recipe-empty-state{text-align:center;color:var(--color-text-helper);padding:40px 16px}.mix-recipe-empty-state p{font-size:var(--text-base);margin:8px 0}.mix-recipe-empty-state .empty-icon{font-size:var(--text-2xl);margin-bottom:8px}@media (width<=768px){.mix-recipe-paint-slot .color-box{width:40px;height:40px}.mix-recipe-target-row{gap:var(--space-sm)}.mix-recipe-hex-input{width:80px}}.pb-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.pb-header h2{font-size:var(--text-xl);margin:0}.pb-new-btn{background:var(--accent-color,#4a90d9);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);border:none;padding:8px 16px;font-weight:500}.pb-new-btn:hover{opacity:.9}.pb-section{margin-bottom:24px}.pb-section-title{font-size:var(--text-sm);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-weight:600}.pb-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;display:grid}.pb-card{border:2px solid var(--border-color,#e0e0e0);border-radius:var(--radius-md);cursor:pointer;background:var(--bg-primary,#fff);transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.pb-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.pb-card-current{border-color:var(--accent-color,#4a90d9);box-shadow:0 0 0 1px var(--accent-color,#4a90d9)}.pb-card-finished{opacity:.6}.pb-card-image{background-position:50%;background-size:cover;background-color:var(--bg-secondary,#f5f5f5);width:100%;height:140px}.pb-card-placeholder{font-size:var(--text-4xl);color:#ccc;justify-content:center;align-items:center;display:flex}.pb-card-body{padding:10px 12px}.pb-card-name{font-weight:600;font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;overflow:hidden}.pb-card-stats{font-size:var(--text-sm);color:var(--color-text-helper)}.pb-card-delete{border-radius:var(--radius-full);color:#fff;width:24px;height:24px;font-size:var(--text-base);cursor:pointer;opacity:0;background:#00000080;border:none;justify-content:center;align-items:center;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.pb-card:hover .pb-card-delete{opacity:1}.pb-card-delete:hover{background:#dc3545cc}.pb-empty{text-align:center;color:var(--color-text-helper);padding:60px 20px}.pb-empty-icon{font-size:var(--text-4xl);margin-bottom:12px}.pb-empty-hint{font-size:var(--text-sm);color:#aaa;margin:4px 0 16px}.pb-overview{max-width:800px}.pb-overview-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.pb-back-btn{padding:var(--space-sm) 12px;background:var(--bg-secondary,#f5f5f5);border:1px solid var(--border-color,#ddd);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base)}.pb-overview-title{font-size:var(--text-xl);flex:1;margin:0}.pb-switch-btn{padding:var(--space-sm) var(--space-md);background:var(--accent-color,#4a90d9);color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);border:none}.pb-current-badge{color:#28a745;border-radius:var(--radius-lg);font-size:var(--text-sm);background:#28a7451a;padding:4px 10px;font-weight:500}.pb-overview-section{margin-bottom:24px}.pb-overview-section h3{font-size:var(--text-base);color:#555;margin:0 0 10px}.pb-palette-grid{flex-wrap:wrap;gap:8px;display:flex}.pb-swatch{text-align:center;width:60px;position:relative}.pb-swatch-color{border-radius:var(--radius-md);border:1px solid #0000001a;width:48px;height:48px;margin:0 auto 4px}.pb-swatch-name{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pb-swatch-remove{border-radius:var(--radius-full);color:#fff;width:18px;height:18px;font-size:var(--text-xs);cursor:pointer;opacity:0;background:#dc3545cc;border:none;justify-content:center;align-items:center;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:-4px;right:2px}.pb-swatch:hover .pb-swatch-remove{opacity:1}.pb-recipes-list{flex-direction:column;gap:8px;display:flex}.pb-recipe-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.pb-recipe-name,.pb-recipe-meta{display:block}.pb-recipe-name{color:var(--text-primary);font-weight:700}.pb-recipe-meta,.pb-recipe-tags{color:var(--text-muted);font-size:12px}.pb-recipe-tags{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:220px;overflow:hidden}.pb-refs-row{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.pb-ref-thumb{border-radius:var(--radius-md);flex-shrink:0;width:80px;height:80px;position:relative;overflow:hidden}.pb-ref-thumb img{object-fit:cover;width:100%;height:100%}.pb-ref-remove{border-radius:var(--radius-full);color:#fff;width:18px;height:18px;font-size:var(--text-xs);cursor:pointer;opacity:0;background:#dc3545cc;border:none;justify-content:center;align-items:center;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.pb-ref-thumb:hover .pb-ref-remove{opacity:1}.pb-ref-more{border-radius:var(--radius-md);background:var(--bg-secondary,#f0f0f0);width:80px;height:80px;color:var(--color-text-helper);font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.pb-minis-list{border:1px solid var(--border-color,#e0e0e0);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden}.pb-mini-row{border-bottom:1px solid var(--border-color,#eee);align-items:center;gap:8px;padding:8px 12px;display:flex}.pb-mini-row:last-child{border-bottom:none}.pb-mini-thumb{border-radius:var(--radius-md);object-fit:cover;background:var(--color-surface-secondary);flex-shrink:0;width:40px;height:40px}.pb-mini-thumb-empty{font-size:var(--text-base);opacity:.4;justify-content:center;align-items:center;display:flex}.pb-mini-name{font-size:var(--text-base);overflow-wrap:anywhere;flex:1;min-width:0}.pb-mini-status{font-size:var(--text-sm);color:var(--color-text-helper);align-items:center;gap:4px;display:inline-flex}.pb-mini-unlink{border-radius:var(--radius-full);color:#ccc;width:22px;height:22px;font-size:var(--text-base);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.pb-mini-unlink:hover{color:#dc3545;background:#dc35451a}.pb-add-mini-btn{padding:var(--space-sm) var(--space-md);border:1px dashed var(--border-color,#ccc);border-radius:var(--radius-md);color:var(--color-text-helper);cursor:pointer;font-size:var(--text-sm);background:0 0}.pb-add-mini-btn:hover{border-color:var(--accent-color,#4a90d9);color:var(--accent-color,#4a90d9)}.pb-overview-footer{border-top:1px solid var(--border-color,#e0e0e0);gap:8px;margin-top:20px;padding-top:16px;display:flex}.pb-action-btn{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary,#f5f5f5);border:1px solid var(--border-color,#ddd);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary,#333)}.pb-action-btn:hover{background:var(--bg-hover,#eee)}.pb-action-btn-primary{background:var(--accent-color,#4a90d9);color:#fff;border-color:var(--accent-color,#4a90d9)}.pb-action-btn-primary:hover{opacity:.9;background:var(--accent-color,#4a90d9)}.pb-action-btn-primary:disabled{opacity:.4;cursor:not-allowed}.pb-picker-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pb-picker-modal{background:var(--bg-primary,#fff);border-radius:var(--radius-md);box-shadow:var(--shadow-lg,0 8px 32px #0003);flex-direction:column;width:min(480px,90vw);max-height:80vh;display:flex;overflow:hidden}.pb-recipe-quickview{width:min(640px,92vw)}.pb-recipe-quickview-head{border-bottom:1px solid var(--border-color,#e0e0e0);justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 12px;display:flex}.pb-recipe-quickview-head h3{font-size:var(--text-base);margin:0;font-weight:600}.pb-recipe-quickview-close{cursor:pointer;color:var(--text-primary,#333);background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}.pb-recipe-quickview-body{flex:1;padding:12px 16px;overflow-y:auto}.pb-picker-title{font-size:var(--text-base);border-bottom:1px solid var(--border-color,#e0e0e0);margin:0;padding:16px 16px 12px;font-weight:600}.pb-picker-search{padding:var(--space-sm) 10px;border:1px solid var(--border-color,#ddd);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--bg-secondary,#f9f9f9);color:var(--text-primary,#333);outline:none;margin:10px 16px 6px}.pb-picker-search:focus{border-color:var(--accent-color,#4a90d9);background:var(--bg-primary,#fff)}.pb-picker-all{border-bottom:1px solid var(--border-color,#eee);font-size:var(--text-sm);color:var(--color-text-helper);padding:6px 16px;font-weight:500}.pb-picker-list{flex:1;padding:4px 0;overflow-y:auto}.pb-picker-row{cursor:pointer;font-size:var(--text-base);align-items:center;gap:10px;padding:7px 16px;transition:background .1s;display:flex}.pb-picker-row:hover{background:var(--bg-secondary,#f5f5f5)}.pb-picker-row input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent-color,#4a90d9);flex-shrink:0}.pb-picker-footer{border-top:1px solid var(--border-color,#e0e0e0);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}@media (width<=600px){.pb-overview-title{font-size:var(--text-lg);flex:100%;order:-1}.pb-overview-actions{margin-left:auto}}.pb-mini-open{align-items:center;gap:var(--space-sm);min-width:0;padding:var(--space-xs);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;display:flex}.pb-mini-open:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.pb-section-heading,.pb-minis-heading{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.pb-section-heading{margin-bottom:10px}.pb-section-heading h3{margin-bottom:0}.pb-section-link{color:var(--color-primary);font:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.pb-section-link:hover{opacity:.8}.pb-section-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.pb-mini-select-all{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;display:flex}.pb-mini-select{margin-inline:var(--space-xs) 0;flex:none}body:has(.demo-banner[style*="display: flex"]) .pb-overview-footer{margin-bottom:5rem}@media (width<=768px){body:has(.demo-banner[style*="display: flex"]) .pb-overview-footer{margin-bottom:12rem}}.pb-time-stats{align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:20px;display:flex}.pb-time-total{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:600}.pb-time-budget{font-size:var(--text-sm);color:var(--color-text-helper)}.pb-time-bar{background:var(--color-border);border-radius:var(--radius-xs);flex:1;min-width:100px;height:6px;overflow:hidden}.pb-time-bar-fill{background:var(--color-primary);border-radius:var(--radius-xs);height:100%;transition:width .3s;display:block}.pb-time-bar-fill.over{background:var(--color-danger-dark)}.pb-timer-btn,.pb-timer-stop{min-width:32px;min-height:32px;padding:var(--space-xs) 10px;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;font-variant-emoji:text;background:0 0;flex-shrink:0;transition:background .15s,color .15s}.pb-timer-btn{border:1px solid var(--color-primary);color:var(--color-primary)}.pb-timer-btn:hover{background:var(--color-primary);color:var(--color-surface)}.pb-timer-stop{border:1px solid var(--color-danger-dark);color:var(--color-danger-dark)}.pb-timer-stop:hover{background:var(--color-danger-dark);color:var(--color-surface)}.pb-timer-running{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.pb-timer-elapsed{font-size:var(--text-sm);color:var(--color-danger-dark);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.pb-timer-form{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.pb-timer-stage{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm)}.pb-timer-go,.pb-timer-cancel{border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;padding:5px 10px}.pb-timer-go{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-surface)}.pb-timer-cancel{border:1px solid var(--color-border);color:var(--color-text-helper);background:0 0}.pb-mini-time{font-size:var(--text-sm);color:var(--color-text-helper);font-variant-numeric:tabular-nums;white-space:nowrap}.pb-mini-row{flex-wrap:wrap}.pb-mini-row .pb-timer-form{flex-basis:100%;order:1}@media (width<=768px),(pointer:coarse){.pb-timer-btn,.pb-timer-stop,.pb-timer-go,.pb-timer-cancel,.pb-timer-stage{min-height:44px}.pb-timer-btn,.pb-timer-stop{min-width:44px}}.barcode-scanner-overlay{z-index:10001;background:#000000d9;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.barcode-scanner-modal{border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:95vh;box-shadow:var(--shadow-lg);background:#1e1e1e;flex-direction:column;display:flex;overflow:hidden}.barcode-scanner-header{padding:var(--space-md) 16px;border-bottom:1px solid #333;justify-content:space-between;align-items:center;display:flex}.barcode-scanner-header h2{font-size:var(--text-lg);color:#eee;margin:0;font-weight:600}.barcode-scanner-close{color:var(--color-text-helper);font-size:var(--text-2xl);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1;transition:color .15s}.barcode-scanner-close:hover{color:#fff}.barcode-scanner-camera{aspect-ratio:1;background:#000;flex-shrink:0;width:100%;position:relative;overflow:hidden}.barcode-scanner-camera #barcode-scanner-viewport{width:100%;height:100%}.barcode-scanner-camera video,.barcode-scanner-camera canvas{object-fit:cover;width:100%!important;height:100%!important}.barcode-scanner-error{color:#ff6b6b;text-align:center;height:100%;font-size:var(--text-base);justify-content:center;align-items:center;padding:24px;line-height:1.5;display:flex}.barcode-scanner-flash{text-align:center;font-size:var(--text-base);padding:8px 16px;font-weight:500;animation:.15s ease-out bsFlashIn}.barcode-scanner-flash--success{color:#6fdc6f;background:#1a3a1a}.barcode-scanner-flash--error{color:#ff6b6b;background:#3a1a1a}.barcode-scanner-flash--info{color:#6bb3ff;background:#1a2a3a}@keyframes bsFlashIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.barcode-scanner-list{flex:1;min-height:80px;overflow-y:auto}.barcode-scanner-empty{color:#777;height:80px;font-size:var(--text-base);text-align:center;justify-content:center;align-items:center;padding:0 16px;display:flex}.barcode-scanner-list-header{padding:10px 16px var(--space-sm);font-size:var(--text-sm);color:#aaa;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.barcode-scanner-items{padding:0 8px 8px}.barcode-scanner-item{border-radius:var(--radius-md);align-items:center;gap:10px;padding:8px;transition:background .15s;display:flex}.barcode-scanner-item:hover{background:#2a2a2a}.barcode-scanner-item .color-box{border-radius:var(--radius-sm);border:1px solid #ffffff1a;flex-shrink:0;width:32px;height:32px}.barcode-scanner-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.barcode-scanner-item-info .paint-name{font-size:var(--text-base);color:#eee;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.barcode-scanner-item-info .paint-type{font-size:var(--text-xs);color:var(--color-text-dark-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.barcode-scanner-item-delete{color:var(--color-text-secondary);font-size:var(--text-xl);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:4px 8px;line-height:1;transition:color .15s,background .15s}.barcode-scanner-item-delete:hover{color:#ff6b6b;background:#ff6b6b1a}.barcode-scanner-footer{border-top:1px solid #333;padding:12px 16px}.barcode-scanner-add-btn{border-radius:var(--radius-md);color:#fff;width:100%;font-size:var(--text-base);cursor:pointer;background:#4a9eff;border:none;padding:12px 16px;font-weight:600;transition:background .15s}.barcode-scanner-add-btn:hover{background:#3a8eef}.barcode-scanner-add-btn:active{background:#2a7edf}@media (width<=480px){.barcode-scanner-overlay{padding:0}.barcode-scanner-modal{border-radius:0;height:100vh;max-height:100vh}}.settings-page{max-width:640px;padding:8px 0}.settings-title{font-size:var(--text-xl);color:var(--color-text-primary);margin:0 0 24px;font-weight:700}.settings-section{border-radius:var(--radius-lg);background:#fff;border:1px solid #e8eaed;margin-bottom:16px;padding:20px 24px}.settings-section-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin:0 0 16px;font-weight:700}.settings-toggle{align-items:flex-start;gap:var(--space-md);cursor:pointer;padding:8px 0;display:flex}.settings-toggle input[type=checkbox]{appearance:none;border-radius:var(--radius-lg);cursor:pointer;background:#ccc;width:44px;min-width:44px;height:24px;margin-top:2px;transition:background .2s;position:relative}.settings-toggle input[type=checkbox]:after{content:"";border-radius:var(--radius-full);width:20px;height:20px;box-shadow:var(--shadow-xs);background:#fff;transition:transform .2s;position:absolute;top:2px;left:2px}.settings-toggle input[type=checkbox]:checked{background:var(--color-primary,#4a5aad)}.settings-toggle input[type=checkbox]:checked:after{transform:translate(20px)}.settings-toggle-text{flex-direction:column;gap:4px;display:flex}.settings-toggle-label{font-size:var(--text-base);color:var(--color-text-primary);font-weight:600}.settings-toggle-desc{font-size:var(--text-sm);color:var(--color-text-helper);line-height:1.4}.settings-section-desc{font-size:var(--text-sm);color:var(--color-text-helper);margin:-8px 0 4px;line-height:1.4}.user-type-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px;display:grid}.user-type-card{align-items:center;gap:var(--space-xs);padding:var(--space-md) 10px;border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;text-align:center;background:#fff;border:2px solid #e8eaed;flex-direction:column;font-family:inherit;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.user-type-card:hover{border-color:var(--color-primary,#4a5aad);box-shadow:var(--shadow-brand-sm);background:#f5f7ff}.user-type-card.active{border-color:var(--color-primary,#4a5aad);box-shadow:var(--shadow-brand-sm);background:#4a5aad0f}.user-type-icon{font-size:var(--text-xl);line-height:1}.user-type-label{font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.2}.user-type-desc{font-size:var(--text-xs);color:var(--color-text-helper);line-height:1.3}.settings-danger-zone{border-color:#f0c8c2}.settings-delete-account-btn{border-radius:var(--radius-md);color:#c0392b;font-size:var(--text-sm);cursor:pointer;background:#fff;border:1px solid #c0392b;margin-top:12px;padding:9px 16px;font-family:inherit;font-weight:600;transition:background .15s,color .15s}.settings-delete-account-btn:disabled{opacity:.6;cursor:not-allowed}.settings-delete-account-btn:hover:not(:disabled){color:#fff;background:#c0392b}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.3}}.time-overview{border-radius:var(--radius-lg);background:#fff;border:1px solid #e8eaed;padding:20px 24px}.time-overview-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.time-overview-title{font-size:var(--text-base);color:var(--color-text-primary);margin:0;font-weight:700}.time-overview-settings-btn{font-size:var(--text-lg);cursor:pointer;color:var(--color-text-helper);border-radius:var(--radius-md);background:0 0;border:none;padding:4px 8px;transition:all .15s}.time-overview-settings-btn:hover{color:#333;background:#f1f3f5}.time-overview-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.time-overview-total{font-size:var(--text-lg);color:var(--color-text-primary);font-weight:700}.time-overview-budget-label{font-size:var(--text-base);color:var(--color-text-helper)}.time-overview-bar{border-radius:var(--radius-xs);background:#e8eaed;flex:1;min-width:100px;height:6px;overflow:hidden}.time-overview-bar-fill{border-radius:var(--radius-xs);height:100%;transition:width .3s}.time-overview-bar-fill.green{background:#27ae60}.time-overview-bar-fill.yellow{background:#f39c12}.time-overview-bar-fill.red{background:#e74c3c}.time-overview-rate{font-size:var(--text-sm);color:#27ae60;border-radius:var(--radius-sm);background:#e8f5e9;padding:2px 8px;font-weight:600}.time-overview-actions{align-items:center;gap:8px;margin-bottom:16px;display:flex}.time-overview-running{font-size:var(--text-sm);color:#e74c3c;font-weight:600;animation:1.5s ease-in-out infinite timer-pulse}.time-overview-btn{border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;color:#555;background:#fff;border:1px solid #e0e0e0;padding:8px 16px;font-weight:600;transition:all .15s}.time-overview-btn:hover{background:#f5f5f5;border-color:#ccc}.time-overview-btn-start{background:var(--color-primary,#4a5aad);color:#fff;border-color:var(--color-primary,#4a5aad)}.time-overview-btn-start:hover{opacity:.9}.time-overview-btn-go{background:var(--color-primary,#4a5aad);color:#fff;border-color:var(--color-primary,#4a5aad)}.time-overview-start-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.time-overview-select{padding:var(--space-sm) 10px;border-radius:var(--radius-md);font-size:var(--text-sm);background:#fff;border:1px solid #e0e0e0}.time-overview-breakdown{margin-bottom:12px}.time-overview-breakdown h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-helper);margin:0 0 8px;font-weight:700}.time-overview-breakdown-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.time-overview-breakdown-label{font-size:var(--text-sm);color:#555;white-space:nowrap;text-overflow:ellipsis;min-width:100px;overflow:hidden}.time-overview-breakdown-bar{border-radius:var(--radius-xs);background:#e8eaed;flex:1;height:4px;overflow:hidden}.time-overview-breakdown-fill{background:var(--color-primary,#4a5aad);border-radius:var(--radius-xs);height:100%;transition:width .3s}.time-overview-breakdown-val{font-size:var(--text-sm);color:var(--color-text-helper);text-align:right;min-width:50px}.time-overview-entries{margin-top:12px}.time-overview-entries h4{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-helper);margin:0 0 8px;font-weight:700}.time-overview-entry{padding:var(--space-sm) 0;font-size:var(--text-sm);border-bottom:1px solid #f0f0f0;align-items:center;gap:10px;display:flex}.time-overview-entry:last-child{border-bottom:none}.time-overview-entry-date{color:var(--color-text-helper);min-width:130px}.time-overview-entry-dur{color:#333;min-width:50px;font-weight:600}.time-overview-entry-detail{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.time-overview-entry-note{color:var(--color-text-helper);white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-style:italic;overflow:hidden}.time-overview-entry-actions{flex-shrink:0;gap:2px;display:flex}.time-overview-entry-edit{color:#999;cursor:pointer;font-size:var(--text-sm);padding:2px var(--space-sm);border-radius:var(--radius-sm);background:0 0;border:none}.time-overview-entry-edit:hover{color:var(--color-primary,#4a5aad);background:#4a5aad14}.time-overview-entry-del{color:#999;cursor:pointer;font-size:var(--text-sm);padding:2px var(--space-sm);border-radius:var(--radius-sm);background:0 0;border:none}.time-overview-entry-del:hover{color:#e74c3c;background:#ffeaea}.time-overview-loading{text-align:center;color:var(--color-text-helper);padding:20px}.time-modal-overlay{z-index:10000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.time-modal{border-radius:var(--radius-lg);padding:var(--space-xl) 32px;width:380px;max-width:90vw;box-shadow:var(--shadow-lg);background:#fff}.time-modal-title{font-size:var(--text-lg);color:var(--color-text-primary);margin:0 0 20px;font-weight:700}.time-modal-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-helper);margin:12px 0 var(--space-sm);font-weight:700;display:block}.time-modal-duration{align-items:center;gap:var(--space-sm);display:flex}.time-modal-duration span{font-size:var(--text-sm);color:var(--color-text-helper)}.time-modal-input{border-radius:var(--radius-md);width:70px;font-size:var(--text-base);text-align:center;border:1px solid #e0e0e0;padding:8px 12px}.time-modal-input:focus{outline:2px solid var(--color-primary,#4a5aad);outline-offset:-1px}.time-modal-duration--error .time-modal-input{border-color:#e74c3c}.time-modal-field-error{color:#e74c3c;font-size:var(--text-sm);margin:4px 0 0}.time-modal-input-wide{text-align:left;flex:1;width:auto}.time-modal-select{border-radius:var(--radius-md);width:100%;font-size:var(--text-base);background:#fff;border:1px solid #e0e0e0;padding:8px 12px}.time-modal-text{border-radius:var(--radius-md);width:100%;font-size:var(--text-base);box-sizing:border-box;border:1px solid #e0e0e0;padding:8px 12px}.time-modal-row{align-items:center;gap:8px;display:flex}.time-modal-currency{border-radius:var(--radius-md);font-size:var(--text-base);background:#fff;border:1px solid #e0e0e0;padding:8px}.time-modal-currency-label{font-size:var(--text-base);color:var(--color-text-helper);text-align:center;min-width:20px}.time-modal-derived{font-size:var(--text-sm);color:var(--color-primary,#4a5aad);margin:4px 0 0}.time-modal-footer{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.time-modal-btn{border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;color:#555;background:#fff;border:1px solid #e0e0e0;padding:10px 20px;font-weight:600;transition:all .15s}.time-modal-btn:hover{background:#f5f5f5}.time-modal-btn-primary{background:var(--color-primary,#4a5aad);color:#fff;border-color:var(--color-primary,#4a5aad)}.time-modal-btn-primary:hover{opacity:.9}.time-modal-btn:disabled{opacity:.5;cursor:not-allowed}.offline-indicator{z-index:10000;color:#1a1a1a;font-size:var(--text-base);background:#f59e0b;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.offline-indicator-icon{font-size:var(--text-base)}.offline-indicator-queue{border-radius:var(--radius-lg);font-size:var(--text-xs);background:#00000026;padding:2px 8px}.paint-badge-discontinued{font-size:var(--text-xs);color:#f87171;opacity:.8;cursor:help;align-items:center;margin-left:4px;display:inline-flex}.paint-row-discontinued{opacity:.65}.paint-barcode{font-family:monospace;font-size:var(--text-xs);color:var(--color-text-dark-muted)}.driver-popover-footer{flex-wrap:wrap;row-gap:6px}.driver-popover-navigation-btns{flex-wrap:wrap;justify-content:flex-end}.color-wheel-wrapper{width:100%;max-width:400px;margin:0 auto;display:inline-block;position:relative}#colorWheelCanvas{border-radius:var(--radius-md);cursor:crosshair;width:100%;max-width:400px;height:auto;box-shadow:var(--shadow-sm);display:block}.floating-color-wheel{--floating-wheel-size:400px;width:min(calc(var(--floating-wheel-size) + 40px), calc(100vw - 24px));background:var(--color-surface);border-radius:var(--radius-lg);min-width:min(320px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:9000;cursor:move;-webkit-user-select:none;user-select:none;position:fixed;top:100px;left:100px}.floating-wheel-header{padding:var(--space-md) 20px;background:var(--color-primary-gradient);color:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:move;-webkit-user-select:none;user-select:none;justify-content:flex-start;align-items:center;gap:10px;font-weight:600;display:flex}.floating-wheel-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.wheel-size-controls{border-radius:var(--radius-full);cursor:default;pointer-events:auto;background:#ffffff29;flex:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.wheel-size-btn{border-radius:var(--radius-full);width:24px;height:24px;color:var(--color-surface);cursor:pointer;font-size:var(--text-base);background:#ffffff2e;border:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.wheel-size-btn:hover{background:#ffffff4d}.wheel-size-value{color:#ffffffe0;min-width:36px;font-size:var(--text-xs,11px);text-align:center;font-weight:700;line-height:1}.close-wheel-btn{color:var(--color-surface);border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-xl);z-index:1;pointer-events:auto;background:#fff3;border:none;flex:none;justify-content:center;align-items:center;line-height:1;transition:background .2s;display:flex;position:relative}.close-wheel-btn:hover{background:#ffffff4d}.color-wheel-container{background:var(--color-surface-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:20px}.floating-color-wheel .color-wheel-wrapper{width:min(var(--floating-wheel-size), calc(100vw - 64px));aspect-ratio:1;max-width:none;display:block}.floating-color-wheel .color-wheel-wrapper>canvas{width:100%;max-width:none;height:auto}.wheel-controls{gap:var(--space-md);flex-direction:column;margin-top:20px;display:flex}.wheel-checkbox-toggle{color:#333;cursor:pointer;font-size:var(--text-sm,12px);align-items:center;gap:8px;font-weight:500;line-height:1.3;display:flex}.wheel-checkbox-toggle input[type=checkbox]{accent-color:#4a5aad;flex:none;width:16px;height:16px;margin:0}.slider-control{align-items:center;gap:10px;display:flex}.slider-control label{font-size:var(--text-base);color:#333;min-width:50px;font-weight:500}.value-slider{border-radius:var(--radius-xs);appearance:none;background:linear-gradient(90deg,#000 0%,#fff 100%);outline:none;flex:1;height:6px}.range-slider{border-radius:var(--radius-xs);appearance:none;background:#e0e0e0;outline:none;flex:1;height:6px}.value-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.range-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.value-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.range-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#4a5aad;border:2px solid #fff}.slider-control span{font-size:var(--text-base);color:#4a5aad;text-align:right;min-width:40px;font-weight:600}.wheel-range-slider{padding:12px 0 4px}.wheel-range-track{background:linear-gradient(90deg,#000 0%,#fff 100%);border-radius:3px;height:6px;margin:8px 0;position:relative}.wheel-range-fill{pointer-events:none;background:#4a5aad80;border-radius:3px;width:100%;height:100%;position:absolute;top:0;left:0%}.wheel-range-input{appearance:none;pointer-events:none;z-index:2;background:0 0;outline:none;width:100%;height:6px;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.wheel-range-input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:grab;pointer-events:auto;background:#4a5aad;border:2px solid #fff;border-radius:50%}.wheel-range-input::-moz-range-thumb{width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:grab;pointer-events:auto;box-sizing:border-box;background:#4a5aad;border:2px solid #fff;border-radius:50%}.wheel-range-input::-webkit-slider-thumb:active{cursor:grabbing}.wheel-range-input::-moz-range-thumb:active{cursor:grabbing}.wheel-range-values{font-size:var(--text-sm,12px);align-items:center;gap:6px;display:flex}.wheel-range-min-val,.wheel-range-max-val{color:#4a5aad;min-width:24px;font-weight:600}.wheel-range-min-val{text-align:left}.wheel-range-max-val{text-align:right}.wheel-range-label{text-align:center;color:#555;flex:1;font-weight:500}.wheel-range-reset{font-size:var(--text-sm,12px);color:#4a5aad;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;text-decoration:underline}.wheel-range-reset:hover{color:#2d3a8c}.wheel-range-reset:focus-visible{outline-offset:2px;outline:2px solid #4a5aad}.magnifying-glass{border-radius:var(--radius-full);width:120px;height:120px;box-shadow:var(--shadow-md), 0 0 0 2px #4a5aad, inset 0 0 20px #0003;pointer-events:none;z-index:10;border:3px solid #fff;display:none;position:absolute;overflow:hidden}.wheel-paint-tooltip{color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);z-index:11;pointer-events:none;box-shadow:var(--shadow-md);text-align:left;background:#000000e6;min-width:150px;max-width:250px;padding:8px 12px;display:none;position:absolute}.wheel-paint-tooltip--docked{width:100%;max-width:none;min-height:44px;box-shadow:none;box-sizing:border-box;margin-top:10px;display:block;position:static;top:auto;left:auto;transform:none}.wheel-paint-tooltip .tooltip-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.wheel-paint-tooltip .tooltip-name{color:#fff;flex:1;font-weight:600}.wheel-paint-tooltip .tooltip-status-icon{border-radius:var(--radius-full);width:20px;height:20px;font-size:var(--text-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.wheel-paint-tooltip .tooltip-question-icon{color:#fff;background-color:#9e9e9e}.wheel-paint-tooltip .tooltip-shopping-icon{color:#fff;font-size:var(--text-base);background-color:#ff9800}.wheel-paint-tooltip .tooltip-check-icon{color:#fff;background-color:#4caf50}.wheel-paint-tooltip .tooltip-type{font-size:var(--text-sm);color:#e0e0e0;margin-bottom:2px}.wheel-paint-tooltip .tooltip-producer{font-size:var(--text-sm);color:#e0e0e0}#magnifyingGlassCanvas{border-radius:var(--radius-full);pointer-events:none;width:100%;height:100%;display:block}.color-wheel-preview{border-radius:var(--radius-md);width:100px;height:100px;box-shadow:var(--shadow-sm);border:3px solid #e0e0e0}.color-wheel-values{text-align:center}.color-wheel-values div{font-family:Courier New,monospace;font-size:var(--text-base);margin:var(--space-xs) 0;color:#333}.color-wheel-values div:first-child{font-weight:600;font-size:var(--text-base)}.palette-item{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .2s,box-shadow .2s,border .2s;position:relative;overflow:hidden}.palette-item:hover{box-shadow:var(--shadow-md);transform:translateY(-5px)}.palette-item.highlighted{box-shadow:var(--shadow-brand-lg);z-index:100;border:3px solid #4a5aad;transform:translateY(-5px)scale(1.05)}.palette-color{width:100%;height:120px}.palette-info{background:#fff;padding:12px}.palette-hex{color:#333;font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-xs);font-family:Courier New,monospace}.palette-rgb{font-size:var(--text-sm);color:var(--color-text-secondary);font-family:Courier New,monospace}.palette-delete{border-radius:var(--radius-full);cursor:pointer;width:30px;height:30px;font-size:var(--text-lg);color:#e74c3c;opacity:0;background:#ffffffe6;border:none;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;top:5px;right:5px}.palette-item:hover .palette-delete{opacity:1}.palette-delete:hover{color:#fff;background:#e74c3c}.custom-mix-modal{z-index:10000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.custom-mix-modal.active{display:flex}.custom-mix-modal-content{border-radius:var(--radius-xl);width:90%;max-width:900px;max-height:90vh;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex}.custom-mix-header{padding:20px var(--space-xl);border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;display:flex}.custom-mix-header h2{color:#4a5aad;margin:0}.custom-mix-header-buttons{align-items:center;gap:10px;display:flex}.use-mix-btn,.add-to-palette-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;padding:8px 16px;font-weight:500;transition:all .2s}.add-to-palette-btn:disabled{cursor:not-allowed;opacity:.6;background:#ccc}.use-mix-btn:hover:not(:disabled),.add-to-palette-btn:hover:not(:disabled){box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.close-custom-mix-btn{font-size:var(--text-2xl);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:all .2s;display:flex}.close-custom-mix-btn:hover{color:#333;background:#f0f0f0}.custom-mix-body{padding:var(--space-xl);gap:var(--space-xl);flex-direction:column;display:flex;overflow-y:auto}.custom-mix-solver{gap:var(--space-sm);padding:var(--space-md);background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.custom-mix-solver>label,.custom-mix-swatch>span{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600}.custom-mix-target-inputs{align-items:center;gap:var(--space-sm);display:flex}.custom-mix-target-picker{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:44px;height:38px;padding:2px}.custom-mix-target-hex{border:1px solid var(--color-border);border-radius:var(--radius-md);width:110px;font:inherit;text-transform:uppercase;padding:9px 10px}.find-custom-mix-recipe-btn{border-radius:var(--radius-md);background:var(--color-primary-gradient);color:var(--color-surface);cursor:pointer;border:0;padding:9px 16px;font-weight:600}.find-custom-mix-recipe-btn:disabled{cursor:wait;opacity:.65}.custom-mix-solver-status{min-height:1.25em;color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.custom-mix-result-section{justify-content:center;align-items:center;gap:20px;min-height:200px;padding:40px;display:flex}.custom-mix-swatch{gap:var(--space-sm);flex-direction:column;width:min(200px,50% - 10px);display:flex}.custom-mix-palette-color-box,.custom-mix-result-box{aspect-ratio:1;border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-md);background:#f5f5f5;border:3px solid #e0e0e0}.custom-mix-colors-section{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.custom-mix-color-square{aspect-ratio:1;border-radius:var(--radius-lg);padding:var(--space-md);background:#fafafa;border:2px solid #e0e0e0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.add-color-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border:none;padding:12px 24px;font-weight:500;transition:all .2s}.add-color-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.color-display{flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;height:100%;display:flex;position:relative}.color-display-box{border-radius:var(--radius-md);width:80px;height:80px;box-shadow:var(--shadow-sm);border:2px solid #e0e0e0}.color-display-name{font-size:var(--text-sm);text-align:center;color:#333;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.color-weight-slider{width:80%;margin:10px 0}.slider-value{font-size:var(--text-base);color:#4a5aad;font-weight:600}.remove-color-btn{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:24px;height:24px;font-size:var(--text-lg);z-index:10;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .2s;display:flex;position:absolute;top:5px;left:5px}.remove-color-btn:hover{box-shadow:var(--shadow-danger-sm);transform:scale(1.1)}.custom-mix-color-select-modal{z-index:10001;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.custom-mix-color-select-modal.active{display:flex}.custom-mix-color-select-content{border-radius:var(--radius-xl);width:90%;max-width:800px;max-height:90vh;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex}.custom-mix-color-select-header{padding:20px var(--space-xl);border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;gap:20px;display:flex}.custom-mix-color-select-header h3{color:#4a5aad;margin:0}.planning-manual-result-section{border-bottom:2px solid #e0e0e0;justify-content:center;align-items:center;gap:20px;min-height:200px;padding:40px;display:flex}.planning-manual-select-header-buttons{align-items:center;gap:10px;display:flex}.close-color-select-btn{font-size:var(--text-2xl);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:all .2s;display:flex}.close-color-select-btn:hover{color:#333;background:#f0f0f0}.planning-add-color-modal{z-index:10000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.planning-add-color-modal.active{display:flex}.planning-add-color-modal-content{border-radius:var(--radius-xl);width:90%;max-width:500px;max-height:90dvh;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex;overflow-y:auto}.planning-add-color-header{padding:20px var(--space-xl);border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;display:flex}.planning-add-color-header h2{color:#4a5aad;margin:0}.close-planning-add-color-modal{color:var(--color-text-secondary);font-size:var(--text-2xl);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;line-height:1;transition:background-color .2s;display:flex}.close-planning-add-color-modal:hover{background-color:#f0f0f0}.planning-add-color-body{padding:var(--space-xl);flex-direction:column;align-items:center;gap:20px;display:flex}.planning-color-wheel-wrapper{width:100%;max-width:400px;margin:0 auto}#planningAddColorWheelCanvas{border-radius:var(--radius-md);cursor:crosshair;width:100%;max-width:400px;height:auto;box-shadow:var(--shadow-sm);display:block}.planning-wheel-controls{width:100%;max-width:400px;margin-top:var(--space-sm)}.planning-color-preview-container{justify-content:center;width:100%;max-width:400px;display:flex}.planning-color-preview{border-radius:var(--radius-md);width:200px;height:100px;box-shadow:var(--shadow-sm);background-color:gray;border:2px solid #e0e0e0}.image-view-modal{z-index:10002;background:#000000f2;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;height:100%;padding:40px 40px 20px;display:none;position:fixed;top:0;left:0}.image-view-modal.active{display:flex}.image-view-container{justify-content:center;align-items:center;max-width:90%;max-height:90%;display:flex;position:relative}.image-view-container img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:90vh;box-shadow:var(--shadow-lg)}.image-view-close{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:50px;height:50px;font-size:var(--text-2xl);z-index:10003;background:#ffffff1a;border:2px solid #ffffff4d;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .3s;display:flex;position:fixed;top:20px;right:30px}.image-view-close:hover{background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.image-view-nav{color:#fff;border-radius:var(--radius-full);cursor:pointer;width:60px;height:60px;font-size:var(--text-4xl);z-index:10003;background:#ffffff1a;border:2px solid #ffffff4d;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:all .3s;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.image-view-nav:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-50%)scale(1.1)}.image-view-prev{left:30px}.image-view-next{right:30px}.image-view-thumbs{flex-shrink:0;gap:8px;max-width:80vw;padding:4px 0;display:flex;overflow-x:auto}.image-view-thumb{object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;opacity:.6;border:2px solid #0000;flex-shrink:0;width:60px;height:60px;transition:opacity .2s,border-color .2s}.image-view-thumb:hover{opacity:.9}.image-view-thumb-active{opacity:1;border-color:#fff}.image-view-thumb-broken{background:#ffffff14 linear-gradient(45deg,#ffffff1f 25%,#0000 25% 50%,#ffffff1f 50% 75%,#0000 75%) 0 0/12px 12px}.pdf-export-settings-modal{z-index:10004;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.pdf-export-settings-modal.active{display:flex}.pdf-export-settings-modal-content{border-radius:var(--radius-xl);width:90%;max-width:500px;max-height:90dvh;box-shadow:var(--shadow-xl);background:#fff;flex-direction:column;display:flex;overflow-y:auto}.pdf-export-settings-header{padding:20px var(--space-xl);border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;display:flex}.pdf-export-settings-header h3{color:#4a5aad;font-size:var(--text-xl);margin:0}.pdf-export-settings-close{font-size:var(--text-2xl);color:var(--color-text-helper);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;line-height:1;transition:all .2s;display:flex}.pdf-export-settings-close:hover{color:#333;background:#f0f0f0}.pdf-export-settings-body{padding:var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.pdf-export-setting-control{flex-direction:column;gap:10px;display:flex}.pdf-export-setting-control label{color:#333;font-weight:600;font-size:var(--text-base)}.pdf-export-control-group{align-items:center;gap:var(--space-md);display:flex}.pdf-export-slider{border-radius:var(--radius-xs);appearance:none;background:#e0e0e0;outline:none;flex:1;height:6px}.pdf-export-slider::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-full);cursor:pointer;background:#4a5aad;width:18px;height:18px;transition:all .2s}.pdf-export-slider::-webkit-slider-thumb:hover{background:#5568d3;transform:scale(1.1)}.pdf-export-slider::-moz-range-thumb{border-radius:var(--radius-full);cursor:pointer;background:#4a5aad;border:none;width:18px;height:18px;transition:all .2s}.pdf-export-slider::-moz-range-thumb:hover{background:#5568d3;transform:scale(1.1)}.pdf-export-value{text-align:right;color:#4a5aad;min-width:50px;font-weight:600;font-size:var(--text-base)}.pdf-export-toggle-group{align-items:center;display:flex}.pdf-export-toggle-label{cursor:pointer;display:inline-block;position:relative}.pdf-export-toggle-label input[type=checkbox]{opacity:0;width:0;height:0}.pdf-export-toggle-slider{border-radius:var(--radius-xl);background:#e0e0e0;align-items:center;width:120px;height:36px;padding:2px;transition:background .3s;display:inline-flex;position:relative}.pdf-export-toggle-slider:before{content:"";border-radius:var(--radius-lg);width:56px;height:32px;box-shadow:var(--shadow-sm);background:#fff;transition:transform .3s;position:absolute;left:2px}.pdf-export-toggle-label input[type=checkbox]:checked+.pdf-export-toggle-slider:before{transform:translate(60px)}.pdf-export-toggle-label input[type=checkbox]:checked+.pdf-export-toggle-slider{background:#4a5aad}.pdf-export-toggle-text{font-size:var(--text-sm);color:var(--color-text-secondary);pointer-events:none;z-index:1;font-weight:600;transition:color .3s;position:absolute}.pdf-export-toggle-text:first-child{left:12px}.pdf-export-toggle-text:last-child{right:12px}.pdf-export-toggle-label input[type=checkbox]:checked+.pdf-export-toggle-slider .pdf-export-toggle-text:first-child{color:var(--color-text-helper)}.pdf-export-toggle-label input[type=checkbox]:checked+.pdf-export-toggle-slider .pdf-export-toggle-text:last-child{color:#fff}.pdf-export-settings-footer{justify-content:flex-end;gap:var(--space-md);padding:20px var(--space-xl);border-top:2px solid #e0e0e0;display:flex}.pdf-export-cancel-btn,.pdf-export-export-btn{border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;border:none;padding:10px 24px;font-weight:600;transition:all .2s}.pdf-export-cancel-btn{color:var(--color-text-secondary);background:#f0f0f0}.pdf-export-cancel-btn:hover{background:#e0e0e0}.pdf-export-export-btn{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}.pdf-export-export-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.source-modal{z-index:10002;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.source-modal-content{border-radius:var(--radius-lg);width:90%;max-width:500px;box-shadow:var(--shadow-lg);background-color:#fff;margin:5% auto;padding:0;animation:.3s ease-out modalSlideIn}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.source-modal-header{padding:20px var(--space-lg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;display:flex}.source-modal-header h3{color:#fff;font-size:var(--text-xl);margin:0}.source-modal-close{color:#fff;font-size:var(--text-2xl);border-radius:var(--radius-full);cursor:pointer;background:#fff3;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-weight:700;line-height:1;transition:all .2s;display:flex}.source-modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.source-modal-body{padding:20px var(--space-lg);max-height:80vh;overflow-y:auto}.source-option{padding:var(--space-md) 20px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);color:#333;background:#f8f9fa;border:2px solid #e0e0e0;margin:8px 0;font-weight:500;transition:all .2s}.source-option:hover{color:#fff;box-shadow:var(--shadow-brand-md);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-color:#4a5aad;transform:translate(5px)}.source-option.selected{color:#fff;background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%);border-color:#4a5aad;font-weight:600}.form-group{margin-bottom:20px}#addColorModal .source-modal-body{padding:var(--space-lg)}.form-group label{color:#333;font-weight:600;font-size:var(--text-base);margin-bottom:8px;display:block}.form-group input[type=text],.form-group input[type=email],.form-group textarea,.form-group select,.form-group input[type=color]{border-radius:var(--radius-md);width:100%;font-size:var(--text-base);border:2px solid #e0e0e0;outline:none;padding:10px 12px;font-family:inherit;transition:border-color .2s}.form-group textarea{resize:vertical;min-height:96px}.form-group input[type=text]:focus,.form-group input[type=email]:focus,.form-group textarea:focus,.form-group select:focus{border-color:#4a5aad;box-shadow:0 0 0 3px #667eea1a}.form-group input[type=text]::placeholder,.form-group input[type=email]::placeholder,.form-group textarea::placeholder{color:var(--color-text-helper)}.feedback-intro{color:var(--color-text-helper);font-size:var(--text-sm);margin-bottom:16px;line-height:1.4}.form-actions{margin-top:var(--space-lg);border-top:2px solid #e0e0e0;justify-content:flex-end;gap:10px;padding-top:20px;display:flex}.cancel-btn,.save-color-btn{border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;border:none;padding:12px 24px;font-weight:600;transition:all .2s}.cancel-btn:hover{box-shadow:var(--shadow-sm);background:#d0d0d0;transform:translateY(-2px)}.save-color-btn{color:#fff;box-shadow:var(--shadow-brand-md);background:linear-gradient(135deg,#4a5aad 0%,#5e3d8a 100%)}.save-color-btn:hover{box-shadow:var(--shadow-brand-md);transform:translateY(-2px)}.save-color-btn:active,.cancel-btn:active{transform:translateY(0)}.filter-container{padding:var(--space-md);border-radius:var(--radius-md);background-color:#f8f9fa;border:1px solid #e0e0e0;margin-top:20px;margin-bottom:20px}#customMixColorSelectFilters{margin-top:20px}.filter-group{margin-bottom:var(--space-md)}.filter-group:last-child{margin-bottom:0}.filter-group-title{font-weight:600;font-size:var(--text-base);color:#333;align-items:center;gap:var(--space-md);margin-bottom:10px;display:flex}.filter-group-actions{gap:10px;margin-left:auto;display:flex}.filter-action-btn{font-size:var(--text-sm);color:#4a5aad;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 8px;transition:background-color .2s}.filter-action-btn:hover{background-color:#f0f0f0;text-decoration:underline}@media (width<=768px){.filter-action-btn{min-height:44px;padding:0 12px}}.filter-checkboxes{flex-wrap:wrap;gap:12px;display:flex}.filter-checkbox-item{align-items:center;gap:var(--space-sm);display:flex}.filter-checkbox-item input[type=checkbox]{cursor:pointer;accent-color:#4a5aad;width:18px;height:18px}.filter-checkbox-item label{font-size:var(--text-base);color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-toggle-details{margin-bottom:12px}.filter-toggle-summary{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-base);color:#4a5aad;border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;background:#f0f2ff;border:1px solid #d0d5f0;font-weight:500;list-style:none;transition:background-color .15s;display:inline-flex}.filter-toggle-summary::-webkit-details-marker{display:none}.filter-toggle-summary:hover{background:#e4e8ff}.filter-toggle-chevron:after{content:"▸";font-size:var(--text-sm);transition:transform .15s;display:inline-block}.filter-toggle-details[open] .filter-toggle-chevron:after{transform:rotate(90deg)}.filter-toggle-details .filter-container{margin-top:8px}.filter-lines-section{margin-top:var(--space-md)}.filter-lines-summary{align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;border-top:1px solid #e0e0e0;padding:10px 0 4px;list-style:none;display:flex}.filter-lines-summary::-webkit-details-marker{display:none}.filter-lines-title{font-weight:600;font-size:var(--text-base);color:#333;flex:1}.filter-lines-actions{gap:8px;display:flex}.filter-lines-section[open] .filter-toggle-chevron:after{transform:rotate(90deg)}.filter-lines-checkboxes{max-height:220px;margin-top:8px;padding-right:4px;overflow-y:auto}.filter-bubbled-section{border-top:1px dashed #d0d0d0;margin-top:10px;padding-top:8px}.filter-bubbled-checkboxes{flex-wrap:wrap;gap:12px;display:flex}.app-hint{z-index:99999;color:#e0e0f0;pointer-events:none;white-space:normal;opacity:0;background:#0f0f19eb;border-radius:4px;max-width:280px;padding:4px 9px;font-size:11px;line-height:1.4;transition:opacity .15s;position:fixed;box-shadow:0 2px 10px #00000080}.app-hint.visible{opacity:1}@media (width<=768px){.app-hint{font-size:var(--text-base);max-width:min(280px,100vw - 24px);padding:7px 12px}}.color-tooltip{color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);white-space:nowrap;z-index:100000;pointer-events:none;box-shadow:var(--shadow-md);background:#000000e6;min-width:150px;padding:10px 12px;display:none;position:fixed;inset:auto;transform:none}.color-tooltip:after{content:"";border:6px solid #0000;border-top-color:#000000e6;position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-name{color:#fff;margin-bottom:4px;font-weight:600}.tooltip-type{font-size:var(--text-sm);color:#e0e0e0;margin-bottom:2px}.tooltip-producer{font-size:var(--text-sm);color:#e0e0e0}.tooltip-line{font-size:var(--text-sm);color:#e0e0e0;margin-top:2px}.quick-match-popover{z-index:100001;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background:#fff;min-width:200px;max-width:260px;padding:10px;display:none;position:fixed}.quick-match-popover.visible{display:block}.qm-header{font-size:var(--text-xs);color:var(--color-text-helper);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:0 4px;font-weight:600}.qm-matches{gap:var(--space-sm);flex-direction:column;display:flex}.qm-match-item{padding:var(--space-sm);border-radius:var(--radius-md);cursor:default;align-items:center;gap:8px;transition:background .15s;display:flex}.qm-match-item:hover{background:#f5f5f5}.qm-color-swatch{border-radius:var(--radius-sm);border:1px solid #e0e0e0;flex-shrink:0;width:28px;height:28px}.qm-match-info{flex:1;min-width:0}.qm-match-name{font-size:var(--text-sm);color:#333;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.qm-match-producer{font-size:var(--text-xs);color:var(--color-text-helper)}.qm-cart-btn{width:24px;height:24px;color:var(--color-primary,#4a5aad);cursor:pointer;border-radius:var(--radius-full);font-size:var(--text-base);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.qm-cart-btn:hover{background:var(--color-primary-alpha-08,#667eea1a)}.qm-cart-btn.added{color:#4caf50}.qm-triad-btn{width:100%;margin-top:var(--space-sm);padding:var(--space-sm);border:none;border-top:1px solid var(--color-border-light);color:var(--color-primary);cursor:pointer;font-size:var(--text-sm);text-align:center;background:0 0;font-weight:500;transition:background .15s}.qm-triad-btn:hover{background:var(--color-primary-alpha-12)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mobile-drawer-backdrop{z-index:9996;opacity:0;pointer-events:none;background:#00000080;transition:opacity .25s;display:none;position:fixed;inset:0}.mobile-drawer-backdrop.open{opacity:1;pointer-events:auto}.mobile-drawer{background:var(--color-surface-dark);z-index:9997;border-radius:16px 16px 0 0;max-height:75vh;padding-bottom:60px;transition:transform .3s cubic-bezier(.32,.72,0,1);display:none;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -4px 32px #0006}.mobile-drawer.open{transform:translateY(0)}@media (width<=1024px){body.panel-open{padding-left:20px}.models-panel{width:280px}.models-panel.open{box-shadow:4px 0 20px #0000004d}.nav-sidebar{width:var(--sidebar-width-collapsed)}.nav-sidebar .nav-label,.nav-sidebar .nav-group-title,.nav-sidebar .nav-collapse-btn{display:none}body{padding-left:var(--sidebar-width-collapsed)!important}}@media (width<=768px){.container{padding:var(--space-md);border-radius:var(--radius-lg)}header h1{font-size:var(--text-xl)}.palette-grid{grid-template-columns:repeat(2,1fr);gap:10px}#colorWheelCanvas{max-width:100%}.nav-sidebar{display:none}body{padding-bottom:64px!important;padding-left:0!important}.bottom-tab-bar,.mobile-fab{display:flex!important}.mobile-drawer-backdrop{display:block}.uploaded-image-remove{border-radius:0 var(--radius-md) 0 var(--radius-md);width:44px;height:44px;font-size:20px;top:0;right:0;display:flex!important}.palette-item-ghost-buttons{display:flex!important}.palette-ghost-btn{min-height:44px;padding:0 var(--space-xs);align-items:center;display:flex}.mobile-drawer{display:block}}.bottom-tab-bar{background:var(--color-surface-dark);z-index:9999;justify-content:space-around;align-items:center;height:60px;padding:0 4px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0003}.bottom-tab-item{padding:var(--space-sm) 8px;min-width:44px;min-height:44px;color:var(--color-text-dark-muted);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;font-weight:500;transition:color .15s;display:flex}.bottom-tab-item.active{color:var(--color-accent-on-dark)}.bottom-tab-item:hover{color:var(--color-text-dark-base)}.bottom-tab-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.bottom-tab-icon{font-size:var(--text-lg);line-height:1}.bottom-tab-icon svg{width:22px;height:22px;display:block}.bottom-tab-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.mobile-drawer-handle{background:#fff3;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:10px auto 4px}.mobile-drawer-body{padding:4px 0 16px}.mobile-drawer-section{border-bottom:1px solid #ffffff14;padding:8px 0}.mobile-drawer-section:last-child{border-bottom:none}.mobile-drawer-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;color:#ffffff59;padding:6px 20px 4px;font-weight:700}.mobile-drawer-item{width:100%;min-height:44px;color:var(--color-text-dark-base);font-size:var(--text-base);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:0 20px;transition:background .12s,color .12s;display:flex}.mobile-drawer-item:hover{background:var(--color-primary-alpha-12);color:var(--color-text-dark-hover)}.mobile-drawer-item:focus-visible{background:var(--color-primary-alpha-12);color:var(--color-text-dark-hover);outline:2px solid var(--color-primary);outline-offset:-2px}.mobile-drawer-item.active{color:var(--color-accent-on-dark)}.mobile-drawer-item svg{flex-shrink:0;width:20px;height:20px}.mobile-drawer-lang .drawer-lang-icon{flex-shrink:0;align-items:center;display:flex}.mobile-drawer-lang .drawer-lang-icon svg{width:20px;height:20px}.mobile-drawer-lang{align-items:center;gap:12px;padding:8px 20px;display:flex}.drawer-lang-select{color:var(--color-text-dark-base);font-size:var(--text-base);border-radius:var(--radius-md);background:#ffffff14;border:1px solid #ffffff1f;flex:1;min-height:44px;padding:6px 8px}.mobile-fab{border-radius:var(--radius-full);background:var(--color-primary-gradient);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-brand-md);cursor:pointer;z-index:9994;font-size:var(--text-xl);border:none;justify-content:center;align-items:center;transition:transform .2s;display:none;position:fixed;bottom:76px;right:16px}.mobile-fab:hover{transform:scale(1.1)}.mobile-wheel-backdrop{z-index:9996;opacity:0;pointer-events:none;background:#00000080;transition:opacity .25s;display:none;position:fixed;inset:0}@media (width<=768px){.mobile-wheel-backdrop{display:block}.floating-color-wheel{cursor:default;z-index:9998;border-radius:16px 16px 0 0;max-height:80vh;padding-bottom:64px;overflow-y:auto;width:min(calc(var(--floating-wheel-size) + 40px), calc(100vw - 24px))!important;min-width:unset!important;inset:auto auto 0 50%!important;transform:translate(-50%)!important}.floating-wheel-header{cursor:default;border-radius:16px 16px 0 0}#colorWheelCanvas,#collectionWheelCanvas,#paintColorsWheelCanvas,#colorSelectWheelCanvas{max-width:100%;height:auto!important}}.mobile-wheel-backdrop.open{opacity:1;pointer-events:auto}
