:root{color:#162117;background:radial-gradient(circle at top left,#f6ffe8,#eff7ea 40%,#f8f3e6);font-family:Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}.page{max-width:1240px;margin:0 auto;padding:20px}.topbar{display:flex;align-items:center;gap:18px;margin-bottom:18px}.topbar h1{margin:0;font-size:2rem}.topbar p{margin:2px 0 0;color:#40533f}.logo{width:190px;height:auto}.layout{display:grid;grid-template-columns:2fr 1fr;gap:18px}.catalog,.checkout{background:#ffffffdb;border:1px solid #dbe7d4;border-radius:16px;padding:16px;box-shadow:0 8px 28px #11231614}.category-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}button{border:1px solid #43653a;background:#fff;color:#193016;border-radius:999px;padding:8px 13px;cursor:pointer}button.active,button:hover{background:#244b35;color:#fff}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.product-card{border:1px solid #d9e7d0;border-radius:12px;padding:10px;background:#fff}.product-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:8px}.product-card h3{margin:8px 0 4px;font-size:1rem}.product-card p{margin:0 0 8px;color:#4f5f4d;min-height:34px}.row{display:flex;justify-content:space-between;align-items:center;gap:6px}.checkout h2{margin-top:0}.checkout ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.checkout li{border:1px solid #dbe5d4;border-radius:10px;padding:8px}.checkout li div{display:flex;justify-content:space-between;gap:8px}.qty-row{margin-top:6px}.qty-row button{min-width:28px;padding:4px 8px}.total-row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:10px;border-top:1px solid #dbe5d4}.checkout-form{margin-top:16px;display:grid;gap:8px}.checkout-form input{border:1px solid #c8d6c0;border-radius:9px;padding:10px;font:inherit}.row-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checkout-form button{margin-top:4px;padding:11px;border-radius:10px;background:#244b35;color:#fff}.state{margin:8px 0;padding:10px 12px;border-radius:10px;background:#eef4ea}.state.error{background:#fbe9e9;color:#7f1f1f}.state.success{background:#eaf8e7;color:#1f5f21}@media(max-width:940px){.layout{grid-template-columns:1fr}.logo{width:150px}}
