.configurator{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,4vw,32px);display:flex;flex-direction:column;gap:20px}.configurator h2:focus{outline:none}.steps{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0;padding:0;font-size:.9rem;color:var(--muted)}.steps li{display:flex;align-items:center;gap:6px}.steps span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid currentColor;font-size:.8rem;font-weight:700}.steps .done{color:var(--ok)}.steps .done span{background:var(--ok);border-color:var(--ok);color:var(--cream)}.step-back{all:unset;display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 2px;margin:-2px -8px -2px -2px;border-radius:999px;cursor:pointer;transition:background-color .15s ease}.step-back:hover{background:color-mix(in srgb,var(--ok) 10%,transparent);text-decoration:underline;text-underline-offset:3px}.step-back:focus-visible{outline:2px solid var(--ok);outline-offset:2px}.step-back:disabled{cursor:default;background:none;text-decoration:none}@media(prefers-reduced-motion:reduce){.step-back{transition:none}}.steps .current{color:var(--walnut);font-weight:700}.steps .current span{background:var(--walnut);border-color:var(--walnut);color:var(--cream)}.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}.mode-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:20px;border:2px solid var(--line);border-radius:var(--radius);background:var(--cream)}.mode-card strong{font:700 1.4rem var(--serif);color:var(--walnut)}.mode-card span{color:var(--muted)}.mode-card:hover{border-color:var(--gold)}.mode-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.upload{display:grid;gap:16px}.tips h3{font-size:1.15rem;margin-top:.6em}.tips ul{margin:0;padding-left:1.2em;display:grid;gap:4px}.dropzone{position:relative;display:grid;place-items:center;gap:4px;min-height:140px;border:2px dashed var(--gold);border-radius:var(--radius);background:var(--cream);cursor:pointer;text-align:center;padding:16px}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone:focus-within{outline:3px solid var(--focus);outline-offset:2px}.dropzone strong{font-size:1.1rem;color:var(--walnut)}.dropzone span{color:var(--muted);font-size:.9rem}.dropzone.busy{opacity:.7}.ce-stage{position:relative;width:100%;max-height:72vh;touch-action:none;user-select:none;margin:0 auto;max-width:min(100%,54vh)}.ce-img{width:100%;height:100%;display:block;border-radius:6px}.ce-overlay{position:absolute;inset:0;pointer-events:none}.ce-handle{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:3px solid #fff;background:#a67c468c;box-shadow:0 0 0 2px var(--walnut);cursor:grab;touch-action:none;padding:0}.ce-handle.active{cursor:grabbing;background:#a67c4640}.ce-loupe{position:absolute;width:130px;height:130px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 12px #00000059;pointer-events:none;background:#fff}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;align-items:start}.controls{display:grid;gap:14px}.crop-stage{position:relative;overflow:hidden;width:100%;max-width:420px;touch-action:none;user-select:none}.crop-stage canvas{width:100%;height:100%;display:block;border:1px solid var(--line)}.crop-rect{position:absolute;border:2px solid var(--gold-strong);background:#a67c461f;box-shadow:0 0 0 9999px #f5f1ea8c;cursor:move;touch-action:none}.crop-h{position:absolute;width:28px;height:28px;background:var(--gold-strong);border:3px solid #fff;border-radius:50%;touch-action:none}.crop-h.tl{left:-14px;top:-14px;cursor:nwse-resize}.crop-h.tr{right:-14px;top:-14px;cursor:nesw-resize}.crop-h.br{right:-14px;bottom:-14px;cursor:nwse-resize}.crop-h.bl{left:-14px;bottom:-14px;cursor:nesw-resize}.settings .link{all:unset;cursor:pointer;color:var(--gold-strong);text-decoration:underline;text-underline-offset:3px;margin-top:8px;display:inline-block}.settings .link:focus-visible{outline:3px solid var(--focus)}.settings h3+.small{margin:-4px 0 10px}.settings .corners{display:grid;gap:12px;justify-items:start}.settings .corners>p{margin:0}.field{display:grid;gap:4px}.field>span{font-weight:600;color:var(--walnut)}.field.inline{grid-template-columns:auto 1fr;align-items:center;gap:10px;max-width:360px}.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea,.field select{font:inherit;padding:10px 12px;min-height:46px;border:1.5px solid #cbbda8;border-radius:8px;background:#fff;color:var(--ink);width:100%}.field textarea{resize:vertical;line-height:1.45}.field input[aria-invalid=true]{border-color:var(--err)}.field small{color:var(--muted)}.field input[type=range]{width:100%;accent-color:var(--gold-strong);min-height:32px}.check{display:flex;gap:10px;align-items:flex-start}.check input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--walnut);flex:none}.radios{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px}.radios legend{font-weight:600;color:var(--walnut);margin-bottom:6px}.radios label{display:flex;align-items:center;gap:6px;min-height:32px}.radios input{accent-color:var(--walnut);width:18px;height:18px}.err{color:var(--err);font-size:.9rem}.muted{color:var(--muted)}.small{font-size:.88rem;color:var(--muted)}.counter{font-size:.92rem;color:var(--muted);font-variant-numeric:tabular-nums}.counter.bad{color:var(--err)}.text-mode{display:grid;gap:14px}.alert{border-radius:8px;padding:10px 14px;margin:0}.alert.warn,.warnings li{background:#fbf1e1;border:1px solid #e8c99a;color:#5e3a0b}.err-box{background:#fbe7e3;border:1px solid #e6b2a8;color:#6e1f12}.warnings{list-style:none;margin:0;padding:0;display:grid;gap:8px}.warnings li{padding:10px 14px;border-radius:8px}.preview{margin:0;display:grid;gap:8px;justify-items:center}.preview canvas{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 14px rgba(58,38,20,.25))}.preview.portrait canvas{width:auto;max-width:100%;max-height:78vh}.preview figcaption{font-size:.86rem;color:var(--muted);text-align:center}.brand-check .discount{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok);font-size:.88rem;white-space:nowrap}.preview-step{display:grid;gap:16px}.details{display:grid;gap:20px}.details fieldset{border:0;padding:0;margin:0;display:grid;gap:14px}.details legend{font:700 1.3rem var(--serif);color:var(--walnut);margin-bottom:8px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}.grid2 .wide{grid-column:1 / -1}.summary{display:grid;grid-template-columns:1fr auto;gap:4px 20px;max-width:360px;padding:14px 16px;background:var(--cream);border-radius:8px;font-variant-numeric:tabular-nums}.nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
