:root{font-family:Nunito,system-ui,sans-serif;color:#2a2a40;background:#fdfcff}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(145deg,#f6f4ff,#fffaf0)}
.shell{width:min(720px,calc(100% - 32px));margin:48px auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:26px;color:#5b3fd6;font-weight:900;text-decoration:none}.logo{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#7b61ff;color:#ffc23c;font-size:23px}
.card{background:#fff;border:2px solid #efeaff;border-radius:26px;padding:clamp(24px,5vw,42px);box-shadow:0 18px 55px rgba(91,63,214,.12)}
h1{font-size:clamp(30px,6vw,44px);color:#5b3fd6;margin:0 0 10px}h2{color:#5b3fd6}p{line-height:1.55;color:#68687d}.price{font-size:38px;font-weight:900;margin:24px 0;color:#2a2a40}
label{display:block;font-weight:800;margin:20px 0 8px}input{width:100%;padding:15px 16px;border:2px solid #ddd5fa;border-radius:14px;font:inherit;outline:none}input:focus{border-color:#7b61ff;box-shadow:0 0 0 4px #efeaff}
button,.button{width:100%;border:0;border-radius:999px;padding:15px 20px;background:#7b61ff;color:#fff;font:800 16px Nunito,system-ui;cursor:pointer;text-align:center;text-decoration:none;display:block;margin-top:18px}button:hover,.button:hover{background:#5b3fd6}button:disabled{opacity:.55;cursor:wait}
.secondary{background:#efeaff;color:#5b3fd6}.notice{padding:13px 15px;border-radius:12px;margin-top:16px;background:#fff5db;color:#725b20;font-weight:700}.error{background:#ffe9e6;color:#a33127}.success{background:#e7f6f4;color:#0c6a60}
.materials{display:grid;gap:14px;margin-top:22px}.material{border:2px solid #efeaff;border-radius:18px;padding:20px}.material h2{margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions .button{width:auto;flex:1;min-width:160px}
.small{font-size:13px}.hidden{display:none}.spinner{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
