:root{--bg: #0f0f0f;--panel: #191919;--panel-2: #212121;--panel-3: #2b2b2b;--line: #303030;--line-strong: #4a4a4a;--text: #ededed;--dim: #979797;--dimmer: #6d6d6d;--accent: #ededed;--fill: #b4b4b4;--warn: #c9a227;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 ui-sans-serif,-apple-system,SF Pro Text,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.app.chrome-hidden .topbar,.app.chrome-hidden .sidebar{display:none}.chrome-hint{position:absolute;left:50%;bottom:20px;transform:translate(-50%);padding:5px 11px;border-radius:7px;background:#121212b3;color:var(--dim);font-size:11.5px;pointer-events:none;animation:fade-out 3s ease-in 1.4s forwards}@keyframes fade-out{to{opacity:0}}.topbar{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:.2px;padding-right:6px}.brand .logo{font-size:18px;color:var(--text)}.topbar-group{display:flex;gap:6px;align-items:center}.topbar-group.surround{gap:3px}.swatch-btn{width:18px;height:18px;padding:0;border-radius:5px;border:1px solid var(--line-strong);cursor:pointer}.swatch-btn:hover{border-color:var(--text)}.swatch-btn.active{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--text)}.topbar-group.zoom .zoom-label{min-width:62px}.topbar-spacer{flex:1 1 auto}.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:6px 11px;cursor:pointer;transition:background .12s,border-color .12s,opacity .12s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--panel-3);border-color:var(--line-strong)}.btn:disabled{opacity:.38;cursor:default}.btn.primary{background:#e8e8e8;border-color:#e8e8e8;color:#121212;font-weight:550}.btn.primary:hover:not(:disabled){background:#fff;border-color:#fff}.btn.active{border-color:var(--text);color:var(--text);background:var(--panel-3)}.btn.small{padding:3px 8px;font-size:12px;border-radius:6px}.btn.wide{width:100%;text-align:left}.icon-btn{background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;color:var(--dim);padding:2px 7px}.icon-btn:hover{color:var(--text);background:var(--panel-2)}.icon-btn.armed{color:#121212;background:#e8e8e8;border-color:#e8e8e8}.main{flex:1 1 auto;display:flex;min-height:0}.viewer{flex:1 1 auto;position:relative;min-width:0;overflow:hidden;background:var(--bg);cursor:grab;touch-action:none}.viewer:active{cursor:grabbing}.viewer.picking,.viewer.picking:active{cursor:crosshair}.viewer.painting,.viewer.painting:active{cursor:none}.suggestion{position:absolute;left:50%;top:16px;transform:translate(-50%);display:flex;align-items:center;gap:16px;max-width:min(560px,calc(100% - 32px));padding:10px 12px 10px 14px;border-radius:10px;border:1px solid var(--line-strong);background:#181818f0;box-shadow:0 12px 32px #00000080;z-index:25}.suggestion-text{display:flex;flex-direction:column;gap:2px;min-width:0}.suggestion-text strong{font-size:13px;font-weight:600}.suggestion-text span{font-size:11.5px;color:var(--dim)}.suggestion-actions{display:flex;gap:6px;flex:0 0 auto}.confidence{float:right;font-size:10.5px;color:var(--dim);font-weight:400}.brush-cursor{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #000000a6,inset 0 0 0 1px #00000080;pointer-events:none;z-index:20;min-width:4px;min-height:4px}.viewer.drag-over{outline:2px dashed var(--text);outline-offset:-12px}.gl-canvas{width:100%;height:100%;display:block}.sidebar{flex:0 0 336px;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.sidebar>.hist-panel{flex:0 0 auto}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.empty-card{text-align:center;padding:28px 34px;border:1px dashed var(--line);border-radius:14px;background:#191919c7;max-width:380px}.empty-card h2{margin:0 0 8px;font-size:17px;font-weight:600}.empty-card p{margin:0;color:var(--dim);font-size:12.5px}.pick-hud,.busy,.toast{position:absolute;padding:7px 13px;background:#121212f0;border:1px solid var(--line);border-radius:8px;font-size:12.5px;display:flex;align-items:center;gap:9px}.pick-hud{left:50%;bottom:18px;transform:translate(-50%)}.pick-hud .swatch{width:20px;height:20px;border-radius:4px;border:1px solid rgba(255,255,255,.35)}.busy{left:50%;top:50%;transform:translate(-50%,-50%);z-index:40}.toast{left:50%;bottom:24px;transform:translate(-50%);z-index:40}.split-labels span{position:absolute;top:12px;text-align:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none}.hist-panel{padding:10px 12px 8px;border-bottom:1px solid var(--line)}.hist-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}.histogram{width:100%;display:block;background:#00000052;border:1px solid var(--line);border-radius:7px}.image-info{margin-top:8px;font-size:11.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.stack-head{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:10px 12px 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.stack-head-actions{display:flex;gap:6px;align-items:center}.add-menu{position:fixed;width:300px;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:10px;padding:6px;z-index:60;box-shadow:0 18px 44px #0009;display:flex;flex-direction:column;min-height:0}.add-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0}.add-tabs{flex:0 0 auto;display:flex;gap:2px;padding:2px;margin-bottom:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.add-tabs button{flex:1 1 0;background:transparent;border:none;border-radius:6px;padding:5px 6px;cursor:pointer;color:var(--dim);font-size:12px}.add-tabs button:hover{color:var(--text)}.add-tabs button.active{background:var(--line-strong);color:var(--text)}.add-group+.add-group{margin-top:4px}.add-group-title{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:7px 8px 4px}.add-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:7px;padding:6px 8px;cursor:pointer}.add-menu button:hover{background:var(--panel-3)}.add-name{display:block;font-weight:500}.add-hint{display:block;font-size:11.5px;color:var(--dim);margin-top:1px}.layer-list{flex:0 1 auto;min-height:88px;max-height:40%;overflow-y:auto;overscroll-behavior:contain;padding:0 8px 8px;display:flex;flex-direction:column;gap:3px}.layer{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 4px;border:1px solid transparent;border-radius:8px;cursor:pointer}.layer{position:relative}.layer:hover{background:var(--panel-2)}.layer.sel{background:var(--panel-3);border-color:var(--line-strong)}.layer.sel:before{content:"";position:absolute;left:-1px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--text)}.layer.off{opacity:.45}.layer .eye{background:none;border:none;cursor:pointer;color:var(--text);font-size:11px;padding:2px 4px}.layer.off .eye{color:var(--dim)}.layer-thumb{flex:0 0 auto;display:block;width:40px;height:30px;border-radius:4px;overflow:hidden;border:1px solid var(--line);background:#0000004d;transition:box-shadow .12s,border-color .12s}.layer-thumb canvas{width:100%;height:100%;display:block;object-fit:cover}.layer-thumb.peeking{border-color:var(--text);box-shadow:0 0 0 2px var(--panel),0 0 0 3px var(--text)}.layer-main{flex:1 1 auto;min-width:0}.layer-name{display:block;width:100%;background:transparent;border:1px solid transparent;border-radius:5px;padding:1px 4px;font-weight:500}.layer-name:hover{border-color:var(--line)}.layer-name:focus{outline:none;border-color:var(--accent);background:#0000004d}.layer-meta{display:block;font-size:11px;color:var(--dim);padding-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-actions{display:flex;gap:1px;opacity:0;transition:opacity .12s}.layer:hover .layer-actions,.layer.sel .layer-actions{opacity:1}.layer-actions button{background:none;border:none;cursor:pointer;color:var(--dim);padding:2px 4px;border-radius:4px;font-size:12px}.layer-actions button:hover{color:var(--text);background:var(--line)}.empty-note{color:var(--dim);font-size:12px;padding:10px 12px;margin:0}.props{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}.section{border-bottom:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:center;padding:7px 12px 3px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.section-body{padding:2px 12px 12px;display:flex;flex-direction:column;gap:9px}.adjustment-body{padding-top:8px}.props-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 6px}.props-head>span{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.props-head-meta{display:flex;align-items:center;gap:6px;flex:0 0 auto}.props-head-meta select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:3px 5px;font-size:11.5px;max-width:116px}.props-head-meta select:focus{outline:none;border-color:var(--accent)}.props-opacity{padding:0 12px 8px}.props-mask-row{padding:6px 12px 10px;border-top:1px solid var(--line)}.slider.compact{flex-direction:row;align-items:center;gap:8px}.slider.compact>label{flex:0 0 auto;font-size:12px;color:var(--dim)}.slider.compact .slider-track-wrap{flex:1 1 auto}.slider.compact .num{width:46px}.sub-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:4px}.hint{font-size:11.5px;color:var(--dim);margin:2px 0 0;line-height:1.4}.hint.warn{color:var(--warn)}.hint kbd{font:inherit;font-family:ui-monospace,SFMono-Regular,monospace;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:0 4px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.callout{margin:0;padding:7px 10px;border-radius:7px;border:1px solid var(--line-strong);background:var(--panel-3);color:var(--text);font-size:11.5px;line-height:1.4}.mask-badge{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:var(--line);color:var(--text);font-size:10.5px}.slider{display:flex;flex-direction:column;gap:3px}.slider-top{display:flex;align-items:center;gap:6px}.slider-top label{flex:1 1 auto;font-size:12.5px}.slider-top .suffix{color:var(--dim);font-size:11px}.num{width:56px;text-align:right;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 5px;font-variant-numeric:tabular-nums}.num:focus{outline:none;border-color:var(--accent)}.slider-track-wrap{position:relative;height:18px;display:flex;align-items:center}.slider-neutral{position:absolute;top:3px;bottom:3px;width:1px;background:#ffffff38;pointer-events:none}.slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:3px;margin:0;background-color:#333;background-repeat:no-repeat;background-size:100% 100%;cursor:pointer}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:#f0f1f5;border:1px solid #0b0b10;box-shadow:0 1px 3px #0009}.slider input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#f0f1f5;border:1px solid #0b0b10}.toggle{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12.5px}.toggle input{accent-color:var(--accent);width:14px;height:14px}.select-row{display:flex;align-items:center;gap:8px}.select-row label{flex:0 0 auto;color:var(--dim);font-size:12px}.select-row select{flex:1 1 auto;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.select-row select:focus{outline:none;border-color:var(--accent)}.segmented{display:flex;gap:2px;padding:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px}.segmented button{flex:1 1 0;min-width:0;background:transparent;border:none;border-radius:6px;padding:4px 6px;cursor:pointer;color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--line-strong);color:var(--text)}.color-field{display:flex;align-items:center;gap:7px}.color-field label{flex:1 1 auto;font-size:12.5px}.color-field input[type=color]{width:30px;height:24px;padding:0;background:none;border:1px solid var(--line);border-radius:5px;cursor:pointer}.color-field .hex{width:78px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px}.color-field .hex:focus{outline:none;border-color:var(--accent)}.curve-wrap{display:flex;flex-direction:column;gap:5px}.curve{width:100%;max-width:264px;margin-inline:auto;aspect-ratio:272 / 276;border:1px solid var(--line);border-radius:8px;touch-action:none;cursor:crosshair;display:block}.curve circle{cursor:grab}.curve .axis-handle{cursor:ew-resize}.curve-readout{display:flex;gap:14px;justify-content:center;font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums}.curve-readout b{color:var(--text);font-weight:600}.dropper-row{display:flex;gap:4px}.dropper-row .btn{flex:1 1 0;text-align:center;padding-inline:4px}.gradient-editor{display:flex;flex-direction:column;gap:6px}.gradient-bar{height:30px;border-radius:6px;border:1px solid var(--line);cursor:copy}.gradient-stops{position:relative;height:16px}.gstop{position:absolute;top:0;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;border:2px solid #14141a;box-shadow:0 0 0 1px #ffffff59;cursor:grab;padding:0}.gstop.sel{box-shadow:0 0 0 2px var(--accent)}.gradient-controls{display:flex;flex-direction:column;gap:8px}.gradient-controls .row{display:flex;align-items:flex-end;gap:8px}.gradient-controls .row .slider{flex:1 1 auto}.fatal{padding:60px;max-width:640px;margin:0 auto}.fatal h1{font-size:20px}.fatal p{color:var(--dim)}@media (max-width: 900px){.main{flex-direction:column}.sidebar{flex:1 1 auto;border-left:none;border-top:1px solid var(--line)}.viewer{flex:0 0 46vh}}
