:root{--bg:#f2f3f0;--panel:#fff;--text:#18201d;--muted:#68716d;--line:#d7dcd8;--accent:#176e52;--soft:#dcefe6;--danger:#a13f2c}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:14px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit;color:inherit}header{height:58px;display:flex;align-items:center;gap:9px;max-width:1180px;margin:auto;padding:0 24px;border-bottom:1px solid var(--line);font-size:13px}header a{color:var(--accent)}header span{color:#9ba29f}main{max-width:1180px;margin:auto;padding:32px 24px 64px}.title h1{font-size:30px;letter-spacing:-.8px;margin:0}.title p{color:var(--muted);margin:7px 0 24px}.drop{height:210px;border:2px dashed #aeb8b2;border-radius:12px;background:rgba(255,255,255,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.15s}.drop:hover,.drop:focus-visible,.drop.drag{outline:none;border-color:var(--accent);background:#edf6f1}.drop svg{width:31px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.drop strong{font-size:17px}.drop span{color:var(--accent);font-size:12px}.drop small{color:var(--muted);font-size:10px;margin-top:5px}.drop small.error{color:var(--danger)}.app{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;margin-top:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}.controls{padding:20px;align-self:start;position:sticky;top:16px}.control-title,.output-head,.palette-head,.number-label,.toggle{display:flex;align-items:center;justify-content:space-between}.controls h2,.output h2{font-size:16px;margin:0}.control-title button,.palette-head button{border:0;background:none;color:var(--accent);font-size:11px;font-weight:700;cursor:pointer}.number-label{margin-top:23px;font-size:12px;font-weight:700}.number-label input{width:68px;padding:5px;border:1px solid var(--line);border-radius:6px;text-align:right}input[type=range]{width:100%;margin:13px 0 8px;accent-color:var(--accent)}.presets{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.presets button{padding:5px 2px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:10px;cursor:pointer}.presets button.active{border-color:var(--accent);background:var(--soft);color:var(--accent);font-weight:700}.toggle{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);cursor:pointer}.toggle span strong,.toggle span small{display:block}.toggle strong{font-size:12px}.toggle small{font-size:9px;color:var(--muted);margin-top:2px}.toggle input{position:absolute;opacity:0}.toggle i{position:relative;width:36px;height:20px;border-radius:20px;background:#bfc6c2}.toggle i:after{content:"";position:absolute;width:14px;height:14px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.15s}.toggle input:checked+i{background:var(--accent)}.toggle input:checked+i:after{transform:translateX(16px)}.source-info{margin-top:22px;padding:11px;background:#f4f5f2;border-radius:7px}.source-info span,.source-info strong,.source-info small{display:block}.source-info span{text-transform:uppercase;color:var(--muted);font-size:8px;letter-spacing:.6px}.source-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;margin-top:5px}.source-info small{font-size:9px;color:var(--muted);margin-top:3px}.output{overflow:hidden}.output-head{padding:17px 20px;border-bottom:1px solid var(--line)}.output-head p{font-size:10px;color:var(--muted);margin:4px 0 0}.output-head p.error{color:var(--danger)}.output-head button{border:0;background:var(--accent);color:#fff;padding:9px 13px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer}.output-head button:disabled{opacity:.4;cursor:not-allowed}.compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}figure{margin:0;background:#fff}figcaption{padding:8px 13px;font-size:9px;font-weight:700;text-transform:uppercase}.checker{height:min(48vh,480px);display:grid;place-items:center;overflow:auto;background-color:#eef0ed;background-image:linear-gradient(45deg,#dce0dc 25%,transparent 25%),linear-gradient(-45deg,#dce0dc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dce0dc 75%),linear-gradient(-45deg,transparent 75%,#dce0dc 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.checker img{display:block;max-width:100%;max-height:100%;object-fit:contain}.palette-head{padding:16px 20px 10px}.palette-head h3{font-size:13px;margin:0}.palette-head p{font-size:9px;color:var(--muted);margin:3px 0 0}.palette{display:flex;flex-wrap:wrap;gap:7px;padding:0 20px 20px}.swatch{position:relative;width:38px;height:38px;border:1px solid rgba(0,0,0,.15);border-radius:6px;cursor:pointer}.swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.swatch span{position:absolute;z-index:2;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);display:none;background:#17201c;color:#fff;padding:5px 7px;border-radius:4px;font:9px ui-monospace,monospace;white-space:nowrap}.swatch:hover span,.swatch:focus span{display:block}.swatch:after{content:"";position:absolute;inset:0;border-radius:5px;background:var(--color)}.options{display:grid;gap:9px;margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.options>label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.options label>span{display:flex;align-items:center;gap:5px}.options select{max-width:180px;padding:5px;border:1px solid var(--line);border-radius:5px;background:#fff}.options input[type=range]{width:92px;accent-color:var(--accent)}.options output{width:35px;text-align:right;color:var(--muted);font-size:9px}.options input[type=color]{width:42px;height:25px;padding:2px;border:1px solid var(--line);border-radius:5px;background:#fff}.options .check input{accent-color:var(--accent)}#quality-meta{margin-top:2px}.swatch.used{box-shadow:0 0 0 2px var(--accent)}@media(max-width:760px){main{padding:24px 14px 50px}.app{grid-template-columns:1fr}.controls{position:static}.compare{grid-template-columns:1fr}.checker{height:36vh}.title h1{font-size:26px}.drop{height:185px;text-align:center;padding:15px}.drop small{line-height:1.5}}
