.brush-drawer{position:absolute;left:calc(288px + var(--tool-rail-width, 0px));top:0;bottom:0;width:304px;display:flex;z-index:1;transform:translateX(-280px);transition:transform .28s cubic-bezier(.4,0,.2,1);pointer-events:none;will-change:transform}.brush-drawer.open{transform:translateX(0)}.brush-drawer-tab,.brush-drawer.open .brush-drawer-content,.brush-drawer.open .brush-drawer-tab{pointer-events:auto}.brush-drawer-content{flex:1;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:14px 14px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 0 0 rgba(0,0,0,0);transition:box-shadow .24s ease-out}.brush-drawer.open .brush-drawer-content{box-shadow:8px 0 24px rgba(0,0,0,.35)}.brush-drawer-header{font-weight:600;font-size:12px;letter-spacing:.3px;opacity:.85;margin:0 -14px;padding:0 14px 4px;border-bottom:1px solid var(--border)}.brush-drawer-tab{appearance:none;width:24px;flex:0 0 24px;background:var(--panel);border:none;border-right:1px solid var(--border);border-left:1px solid var(--border);border-radius:0 4px 4px 0;color:var(--text-dim);cursor:pointer;writing-mode:vertical-rl;font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:12px 0;display:flex;align-items:center;justify-content:center;transition:color .12s ease,background .12s ease}.brush-drawer-tab:hover{color:var(--text);background:#25252a}.brush-drawer.open .brush-drawer-tab{color:var(--text)}.brush-library-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;margin:0 -4px 0 -14px;padding:0 4px 0 0}.brush-preset-group{display:flex;flex-direction:column;gap:2px}.brush-preset-group+.brush-preset-group{margin-top:8px}.brush-preset-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);padding:4px 6px 2px}.brush-preset-row{position:relative;display:grid;grid-template-columns:36px 1fr;align-items:center;gap:8px;padding:6px 8px 6px 14px;border:1px solid transparent;border-radius:0 4px 4px 0;background:transparent;text-align:left;cursor:grab;color:var(--text);touch-action:none}.brush-preset-row.dragging{cursor:grabbing}.brush-drag-ghost{display:inline-flex;align-items:center;padding:6px 12px;border-radius:6px;background:rgba(38,42,56,.95);border:1px solid var(--accent-2);color:var(--text);font-size:12px;font-weight:500;box-shadow:0 6px 18px rgba(0,0,0,.5);pointer-events:none;white-space:nowrap;cursor:grabbing}.brush-preset-row:hover{background:rgba(255,255,255,.04)}.brush-preset-row.active{background:rgba(120,145,200,.16);border-color:var(--accent-2)}.preset-thumb{width:36px;height:36px;border-radius:4px;background:#050507;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;overflow:hidden}.preset-thumb-disc{width:28px;height:28px}.brush-preset-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.brush-preset-name{font-size:12px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;min-width:0}.brush-preset-name>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brush-preset-modified{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-2);padding:1px 5px;border:1px solid var(--accent-2);border-radius:999px;line-height:1.2;flex:0 0 auto}.brush-preset-desc{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brush-preset-edit{margin-left:auto;flex:0 0 auto;background:transparent;border:1px solid transparent;color:var(--text-dim);padding:3px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.brush-preset-row:focus-within .brush-preset-edit,.brush-preset-row:hover .brush-preset-edit{opacity:.5}.brush-preset-edit:focus-visible,.brush-preset-edit:hover{opacity:1!important;color:var(--text);background:rgba(255,255,255,.06)}.brush-favorites-bar{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:row;gap:6px;padding:10px 12px;background:rgba(20,22,28,.65);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.4);transition:background .24s ease}.brush-favorites-bar.disabled{pointer-events:none;background:rgba(20,22,28,.45)}.brush-favorites-bar .brush-favorite-slot{transition:border-color .12s ease,background .12s ease,transform .12s ease,opacity .24s ease,filter .24s ease}.brush-favorites-bar.disabled .brush-favorite-slot{opacity:.18;filter:blur(.5px)}.brush-favorites-bar-overlay{position:absolute;inset:8px;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.45);pointer-events:none;border-radius:6px;opacity:0;transition:opacity .24s ease}.brush-favorites-bar.disabled .brush-favorites-bar-overlay{opacity:1}.brush-favorite-slot{position:relative;width:44px;height:44px;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-dim);transition:border-color .12s ease,background .12s ease,transform .12s ease}.brush-favorite-slot:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}.brush-favorite-slot.empty{background:rgba(255,255,255,.02);border-style:dashed}.brush-favorite-slot.empty:hover{animation:brush-favorite-pulse 1.4s ease-in-out infinite}.brush-favorite-slot.active{border-color:var(--accent-2);background:rgba(120,145,200,.18)}.brush-favorite-slot.drag-over{border-color:var(--accent-2);background:rgba(120,145,200,.28);transform:scale(1.04)}.brush-favorite-slot:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}.brush-favorite-slot-num{position:absolute;top:2px;left:4px;font-size:9px;font-weight:600;color:var(--text-dim);font-variant-numeric:tabular-nums;pointer-events:none;letter-spacing:.5px}.brush-favorite-slot.active .brush-favorite-slot-num{color:var(--text)}.brush-favorite-slot-edited{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--accent-2);pointer-events:none}.brush-favorite-slot-plus{opacity:.4}@keyframes brush-favorite-pulse{0%,to{border-color:rgba(255,255,255,.1)}50%{border-color:rgba(120,145,200,.55)}}.brush-favorite-slot .preset-thumb{width:32px;height:32px;background:transparent;border:none}.brush-favorite-slot .preset-thumb-disc{width:28px;height:28px}.brush-slot-context-menu{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:1px;min-width:140px;z-index:1100}.brush-slot-context-item{background:transparent;border:1px solid transparent;color:var(--text);font-size:12px;text-align:left;padding:6px 10px;border-radius:3px;cursor:pointer}.brush-slot-context-item:hover:not(:disabled){background:rgba(255,255,255,.06)}.brush-slot-context-item:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.6}.brush-slot-context-item.danger{color:#ff8c8c}.brush-slot-context-item.danger:hover:not(:disabled){background:rgba(255,80,80,.12)}.favorites-dock{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:4px;padding:8px;background:rgba(20,22,28,.65);backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.5);user-select:none;touch-action:none;max-width:calc(100vw - 32px);overflow-x:auto;transition:background .24s ease}.favorites-dock.disabled{pointer-events:none;background:rgba(20,22,28,.45)}.favorites-dock-slot{position:relative;flex:0 0 auto;width:56px;height:56px;padding:0;border-radius:9px;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}.favorites-dock-slot:hover{background:rgba(255,255,255,.05)}.favorites-dock-slot.empty{border-style:dashed;border-color:rgba(255,255,255,.08)}.favorites-dock-slot.active{background:rgba(120,145,200,.18);border-color:var(--accent-2)}.favorites-dock-slot:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}.favorites-dock-preview{position:relative;width:44px;height:36px;display:flex;align-items:center;justify-content:center}.favorites-dock-preview .preset-thumb{width:100%;height:100%;background:transparent;border:none}.favorites-dock-preview .preset-thumb-disc{width:30px;height:30px}.favorites-dock-plus{opacity:.4}.favorites-dock-edited{position:absolute;top:0;right:2px;width:5px;height:5px;border-radius:50%;background:var(--accent-2)}.favorites-dock-label{max-width:50px;margin-top:-1px;font-size:8.5px;line-height:1.2;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorites-dock-slot.active .favorites-dock-label{color:var(--text)}.favorites-dock-divider{flex:0 0 auto;width:1px;align-self:stretch;background:var(--border);margin:0 4px}.favorites-dock-wheel-btn{flex:0 0 auto;width:56px;height:56px;padding:0;border-radius:9px;background:transparent;border:1px dashed rgba(255,255,255,.1);color:var(--text-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.favorites-dock-wheel-btn:hover{color:var(--text);border-color:var(--accent-2);background:rgba(255,255,255,.04)}.favorites-dock-wheel-btn:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}.favorites-dock-overlay{position:absolute;inset:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.45);pointer-events:none;border-radius:9px;opacity:0;transition:opacity .24s ease}.favorites-dock.disabled .favorites-dock-overlay{opacity:1}.brush-wheel{position:fixed;width:360px;height:360px;transform:translate(-50%,-50%);z-index:1200;touch-action:none;user-select:none}.brush-wheel-svg{position:absolute;inset:0}.brush-wheel-ring{fill:var(--panel-2)}.brush-wheel-arc,.brush-wheel-ring{stroke:var(--border);stroke-width:1}.brush-wheel-arc{fill:rgba(255,255,255,.02);transition:fill .12s ease,stroke .12s ease}.brush-wheel-arc.active{fill:rgba(120,145,200,.2);stroke:var(--accent-2)}.brush-wheel-sep{stroke:var(--border);stroke-width:1}.brush-wheel-arc-label{fill:var(--text-dim);font-size:10px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;pointer-events:none}.brush-wheel-arc-label.active{fill:var(--text);font-weight:600}.brush-wheel-disc{fill:var(--panel);stroke:var(--border);stroke-width:1}.brush-wheel-node{position:absolute;width:32px;height:32px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.02);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;pointer-events:none;transition:width .12s ease,height .12s ease,background .12s ease,border-color .12s ease}.brush-wheel-node.hover{width:44px;height:44px;background:rgba(120,145,200,.18);border-color:var(--accent-2)}.brush-wheel-node .preset-thumb{width:100%;height:100%;background:transparent;border:none}.brush-wheel-node .preset-thumb-disc{width:60%;height:60%}.brush-wheel-action{position:absolute;width:22px;height:22px;transform:translate(-50%,-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--text);background:rgba(14,16,22,.92);border:1px solid rgba(255,255,255,.08);opacity:0;animation:brush-wheel-action-in .14s ease-out forwards;transition:width .1s ease,height .1s ease,color .1s ease,background .1s ease,border-color .1s ease}.brush-wheel-action.hover{width:26px;height:26px;background:rgba(120,145,200,.32);border-color:var(--accent-2)}.brush-wheel-action svg{width:12px;height:12px}@keyframes brush-wheel-action-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.brush-wheel-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;font-family:inherit;color:var(--text)}.brush-wheel-center-cat{font-size:9px;color:var(--text-dim);letter-spacing:.6px;text-transform:uppercase}.brush-wheel-center-name{font-size:13px;font-weight:600;margin-top:2px}.brush-wheel-center-hint{font-size:9px;color:var(--text-dim);margin-top:3px}@keyframes brush-wheel-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes brush-wheel-content-in{0%{opacity:0}to{opacity:1}}.brush-wheel{transform-origin:center;animation:brush-wheel-in .15s cubic-bezier(.16,1,.3,1)}.brush-wheel-center,.brush-wheel-node{animation:brush-wheel-content-in .13s ease-out 55ms both}@media (prefers-reduced-motion:reduce){.brush-wheel,.brush-wheel-center,.brush-wheel-node{animation:none}}