:root{--purple:rgb(63,0,222);--ink:#111;--muted:#5b5b66;--line:#e3e1ea;--bg:#f6f5fa;--card:#fff;--error:#b3261e;--ok:#1d6b3a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}.page{max-width:760px;margin:0 auto;padding:32px 16px 64px}.masthead img{display:block;width:260px;height:30px;max-width:100%;object-fit:contain;object-position:left}.masthead h1{font-size:28px;margin:24px 0 4px}.masthead p{margin:0 0 24px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px}.card h2{font-size:18px;margin:0 0 12px}.fields{display:grid;grid-gap:14px;gap:14px}label{display:grid;grid-gap:4px;gap:4px;font-size:14px;font-weight:700}input:not([type=range]):not([type=file]),select{font:inherit;font-weight:400;padding:10px 12px;border:1px solid #c9c6d6;border-radius:8px;width:100%;background:#fff;color:var(--ink)}button:focus-visible,input:focus,select:focus{outline:2px solid var(--purple);outline-offset:1px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row input{flex:1 1 220px}button{font:inherit;font-weight:700;padding:10px 18px;border-radius:999px;border:1px solid var(--purple);background:#fff;color:var(--purple);cursor:pointer}button.primary{background:var(--purple);color:#fff}button:disabled{opacity:.4;cursor:not-allowed}.hint{color:var(--muted);margin:4px 0 12px}.hint,.note{font-size:14px}.note{color:#7a4b00}.error{color:var(--error);font-weight:400;margin:6px 0 0}.error,.ok{font-size:14px}.ok{color:var(--ok);margin:8px 0 0}.todo{color:var(--muted);font-size:14px;margin:0 0 12px;padding-left:20px}.steps{padding-left:22px}.steps li{margin-bottom:6px}.cropper{margin-top:16px;display:grid;grid-gap:10px;gap:10px;justify-items:start}.cropper-canvas{border-radius:50%;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0 /16px 16px;cursor:-webkit-grab;cursor:grab;touch-action:none}.cropper-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.zoom{display:flex;align-items:center;gap:10px;width:260px}.zoom input{flex:1 1}.preview-wrap{margin-top:16px;border:1px dashed var(--line);border-radius:8px;padding:16px;overflow-x:auto;background:#fff}