@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#252a31;background:#f7f8fa;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#242932;--muted:#818894;--line:#e9ebef;--accent:#7558e8;--soft:#f1efff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid #b9adff;outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.brand{font-family:Manrope,sans-serif;font-weight:800;font-size:19px;letter-spacing:-.7px;display:flex;align-items:center;gap:10px}.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:16px}.top-actions,.toolbar,.zoom-controls{display:flex;align-items:center;gap:9px}.button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer}.button:hover:not(:disabled){border-color:#c7c0ef;background:#faf9ff}.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button.primary:hover:not(:disabled){background:#6244d3}.button:disabled{opacity:.43;cursor:not-allowed}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;flex:1;min-height:0}.editor{padding:22px 26px;display:flex;flex-direction:column;min-width:0}.toolbar{justify-content:space-between;margin-bottom:16px}.toolbar-left{display:flex;align-items:center;gap:8px}.tool-tab{border:0;background:none;color:var(--muted);font-weight:600;font-size:13px;padding:10px 13px;border-radius:8px;cursor:pointer}.tool-tab.active{background:var(--soft);color:var(--accent)}.stage{position:relative;flex:1;min-height:420px;background:#eef0f4;border:1px solid #e7e9ed;border-radius:13px;overflow:hidden;display:grid;place-items:center}.stage.dragging{outline:3px dashed var(--accent);outline-offset:-10px}.welcome{text-align:center;padding:30px}.welcome-icon{width:62px;height:62px;border-radius:20px;background:#fff;color:var(--accent);display:grid;place-items:center;font-size:27px;margin:0 auto 18px;box-shadow:0 4px 16px #2529320d}.welcome h1{font:700 21px Manrope,sans-serif;margin:0 0 8px;letter-spacing:-.5px}.welcome p{color:var(--muted);font-size:14px;margin:0 0 22px}.upload-button{display:inline-block}.image-wrap{position:absolute;inset:20px;display:grid;place-items:center;overflow:auto}.image-wrap[hidden],.welcome[hidden],.crop-overlay[hidden]{display:none}.image-wrap canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 8px 28px #14182226;transform-origin:center;transition:transform .15s}.crop-overlay{position:absolute;inset:20px;touch-action:none;cursor:crosshair}.crop-selection{position:absolute;border:2px solid #fff;box-shadow:0 0 0 9999px #10131b80;pointer-events:none}.crop-help{position:absolute;left:50%;top:14px;transform:translateX(-50%);border-radius:7px;background:#222831;color:white;padding:7px 12px;font-size:12px;white-space:nowrap}.crop-actions{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.stage-footer{height:48px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;padding:0 2px}.zoom-controls{gap:12px}.zoom-controls button{border:0;background:none;color:#6d7480;cursor:pointer;font-size:18px;padding:2px 7px}.zoom-label{min-width:36px;text-align:center}.sidebar{background:#fff;border-left:1px solid var(--line);padding:23px 20px;overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.panel-head h2{font:700 16px Manrope,sans-serif;margin:0}.text-button{border:0;background:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}.section{margin-bottom:25px}.section-title{font-size:12px;font-weight:700;color:#5c626d;margin-bottom:12px}.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.preset{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 5px 7px;font-size:11px;cursor:pointer}.preset:hover:not(:disabled){border-color:#c7c0ef}.preset-swatch{height:39px;border-radius:5px;margin-bottom:6px;background:linear-gradient(135deg,#f3bca0,#9b78d2 55%,#476d91)}.preset[data-preset="soft"] .preset-swatch{filter:sepia(.25) brightness(1.1)}.preset[data-preset="mono"] .preset-swatch{filter:grayscale(1)}.adjustment{margin:0 0 19px}.adjustment label{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;margin-bottom:10px}.adjustment output{font-weight:500;color:var(--muted);min-width:30px;text-align:right}.range{width:100%;height:4px;appearance:none;background:#e9e8ef;border-radius:8px;cursor:pointer}.range::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px #0002}.range::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--accent)}.crop-panel[hidden],.adjust-panel[hidden]{display:none}.ratio-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ratio{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 4px;font-size:12px;cursor:pointer}.ratio.active{color:var(--accent);border-color:var(--accent);background:#faf9ff}.crop-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:18px}.file-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#727987}.icon{display:inline-block;margin-right:5px}@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr) 270px}.editor{padding:18px}.sidebar{padding:20px 16px}.stage{min-height:350px}}@media(max-width:650px){.topbar{height:60px;padding:0 15px}.brand{font-size:17px}.topbar .button{padding:8px 10px}.workspace{display:flex;flex-direction:column}.editor{padding:14px;min-height:55vh}.stage{min-height:320px}.sidebar{border-left:0;border-top:1px solid var(--line);padding:19px}.toolbar{flex-wrap:wrap}.toolbar-left{gap:2px}.tool-tab{padding:9px}.stage-footer{font-size:11px}.image-wrap,.crop-overlay{inset:12px}}
