*{box-sizing:border-box;margin:0;padding:0}body{background:#efe6d6;font-family:Work Sans,sans-serif;color:#3a2c1f}input,select,button{font-family:inherit}input:focus,select:focus{outline:2px solid #9a4d1c;outline-offset:-1px}a{color:#9a4d1c}a:hover{color:#9f4b22}select{-webkit-appearance:none;appearance:none}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app{min-height:100vh;background:radial-gradient(circle at 20% 0%,#f5ecdc,#e7dac4);padding:40px 24px 80px}.wrap{max-width:920px;margin:0 auto}.flash{position:fixed;top:22px;left:50%;transform:translate(-50%);background:#3a2c1f;color:#f5ecdc;font-size:13px;font-weight:600;padding:10px 20px;border-radius:999px;box-shadow:0 10px 30px -10px #0006;z-index:50}.modal-backdrop{position:fixed;inset:0;background:#3a2c1f73;display:flex;align-items:center;justify-content:center;z-index:60;padding:24px}.modal{background:#fbf5ea;border-radius:18px;padding:26px;width:100%;max-width:400px;box-shadow:0 30px 70px -30px #3a2c1fb3}.modal.center{max-width:360px;padding:26px 26px 22px;text-align:center}.modal-title{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:20px;color:#3a2c1f}.modal-sub{font-size:13px;color:#8a755c;margin-top:4px}.modal-icon{width:46px;height:46px;margin:0 auto 14px;border-radius:50%;background:#fbeee0;color:#c0392b;display:flex;align-items:center;justify-content:center;font-size:24px}.field-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#a08a6d;font-weight:600;margin:20px 0 6px}.field-label.tight{margin:0 0 6px}.modal-input{width:100%;border:1px solid #d8c6a5;border-radius:10px;background:#fff;font-family:"Baloo 2",sans-serif;font-weight:600;font-size:16px;color:#3a2c1f;padding:11px 12px}.modal-warn{font-size:12px;color:#9c5a24;margin-top:8px}.modal-error{font-size:13px;color:#c0392b;margin-top:8px}.modal-actions{display:flex;gap:10px;margin-top:22px}.btn{border:none;cursor:pointer;font-family:"Baloo 2",sans-serif;font-size:14px;font-weight:600;padding:11px;border-radius:10px}.btn.flex{flex:1}.btn.ghost{border:1px solid #cbb896;background:#fff;color:#6b573f}.btn.primary{background:#9a4d1c;color:#f7eee0}.btn.danger{background:#c0392b;color:#fff}.header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.header img{width:60px;height:60px;object-fit:contain;flex-shrink:0}.header h1{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:22px;line-height:1}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}.tab-group{display:flex;gap:6px;background:#ece0c9;padding:5px;border-radius:12px;width:fit-content}.tab{border:none;cursor:pointer;font-family:"Baloo 2",sans-serif;font-size:14px;font-weight:600;padding:9px 22px;border-radius:8px;transition:background .12s ease,color .12s ease,box-shadow .12s ease,transform .1s ease}.tab:active{transform:scale(.97)}.btn,.save-prices-btn,.tpl-load,.templates-btn{transition:transform .15s ease,filter .15s ease,background .15s ease}.btn:hover,.save-prices-btn:hover,.tpl-load:hover{filter:brightness(1.05)}.nav-actions{display:flex;align-items:center;gap:10px}.save-icon-btn{flex-shrink:0;width:44px;height:44px;border:none;cursor:pointer;background:#9a4d1c;color:#f7eee0;border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -10px #9a4d1cb3}.templates-btn{border:none;cursor:pointer;font-family:"Baloo 2",sans-serif;font-size:14px;font-weight:600;padding:11px 22px;border-radius:10px}.panel{background:#fbf5ea;border:1px solid #e2d3b6;border-radius:18px;padding:26px 28px;box-shadow:0 20px 50px -30px #5a3c1e80}.meta-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:22px;padding-bottom:22px;border-bottom:1px dashed #d8c6a5;margin-bottom:22px}.meta-name{flex:1;min-width:220px}.recipe-name{width:100%;border:none;border-bottom:2px solid #d8c6a5;background:transparent;font-family:"Baloo 2",sans-serif;font-weight:600;font-size:24px;color:#3a2c1f;padding:4px 2px}.meta-yield{width:130px}.yield-input{width:100%;border:1px solid #d8c6a5;border-radius:9px;background:#fff;font-size:18px;font-weight:600;color:#3a2c1f;padding:9px 11px}.section{margin-bottom:26px}.section-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.section-title{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:18px;color:#9a4d1c}.section-line{height:1px;flex:1;background:#e2d3b6}.weight-pill{font-size:12px;font-weight:600;color:#9a7a4f;background:#f3e7d0;padding:3px 9px;border-radius:999px;font-variant-numeric:tabular-nums}.subtotal{font-size:13px;color:#8a755c;font-variant-numeric:tabular-nums}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:9px}.card{position:relative;display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid #e9dcc2;border-left:4px solid #e89c23;border-radius:12px;padding:11px 11px 10px;box-shadow:0 8px 22px -18px #5a3c1e99;overflow:visible;z-index:1}.card:has(.cselect.open),.pricing-row:has(.cselect.open){z-index:30}.card.mismatch{border-left-color:#c0392b}.card-remove{position:absolute;top:6px;right:6px;width:21px;height:21px;border:none;background:#f4ecdd;color:#b89a74;font-size:15px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,transform .15s ease}.card-remove:hover{background:#f0d5c4;color:#c0392b;transform:scale(1.12)}.card-name{width:calc(100% - 22px);border:none;border-bottom:2px solid #efe4d0;background:transparent;font-family:"Baloo 2",sans-serif;font-weight:600;font-size:14px;color:#3a2c1f;padding:1px 2px 4px}.card-qty-row{display:flex;gap:8px}.qty-input{flex:1;min-width:0;text-align:right;border:1px solid #e4d7bd;border-radius:7px;background:#fbf7ee;font-size:14px;font-weight:600;color:#3a2c1f;padding:7px 8px}.cselect{position:relative;flex-shrink:0;z-index:1}.cselect.open{z-index:50}.cselect-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid #e4d7bd;border-radius:7px;background:#fbf7ee;color:#3a2c1f;font-size:12px;font-weight:600;padding:7px 8px;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.cselect-trigger:hover{border-color:#cbb896;background:#fff9ef}.cselect.open .cselect-trigger{border-color:#9a4d1c;background:#fff;box-shadow:0 0 0 2px #9a4d1c24}.cselect-chevron{color:#a08a6d;flex-shrink:0;transition:transform .18s ease}.cselect.open .cselect-chevron{transform:rotate(180deg);color:#9a4d1c}.cselect-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;min-width:100%;z-index:40;margin:0;padding:5px;list-style:none;background:#fbf5ea;border:1px solid #e2d3b6;border-radius:10px;box-shadow:0 16px 36px -18px #3a2c1f8c;overflow:hidden}.cselect-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:none;background:transparent;color:#3a2c1f;font-family:"Baloo 2",sans-serif;font-size:13px;font-weight:600;text-align:left;padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .12s ease,color .12s ease}.cselect-option:hover{background:#f3e7d0;color:#9a4d1c}.cselect-option.active{background:#9a4d1c;color:#f7eee0}.cselect-check{font-size:11px;opacity:.9}.qty-cselect{width:62px}.price-cselect{width:100%}.price-cselect .cselect-trigger{border-radius:8px;background:#fff;font-size:14px;font-weight:600;padding:9px 11px}.price-cselect .cselect-menu{min-width:96px}.card-foot{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:4px 8px;padding-top:8px;border-top:1px dashed #ecdfc8}.micro-label{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#b09a7c;font-weight:600}.micro-label.right{text-align:right}.price-label{font-size:12px;color:#9c866a;font-variant-numeric:tabular-nums;white-space:nowrap}.cost-label{font-family:"Baloo 2",sans-serif;font-variant-numeric:tabular-nums;font-weight:700;font-size:16px;color:#3a2c1f;text-align:right;white-space:nowrap}.cost-label.bad{color:#c0392b}.add-btn{min-height:104px;border:2px dashed #d3c19a;background:#faf4e8;color:#9a7a4f;font-family:"Baloo 2",sans-serif;font-size:13px;font-weight:600;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.warning-banner{margin-top:4px;margin-bottom:20px;background:#fbeee0;border:1px solid #e7c9a3;border-radius:10px;padding:11px 14px;font-size:13px;color:#9c5a24}.totals{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.total-box{flex:1;min-width:200px;background:#f3e7d0;border-radius:14px;padding:18px 20px}.total-box.accent{background:#9a4d1c;color:#f7eee0}.total-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#a08a6d;font-weight:600;margin-bottom:8px}.total-box.accent .total-label{color:#e9cdb6}.total-value{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:30px;font-variant-numeric:tabular-nums}.pricing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px dashed #d8c6a5;margin-bottom:22px}.pricing-head>div{max-width:100%}.pricing-title{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:24px}.pricing-sub{font-size:13px;color:#8a755c;margin-top:4px;max-width:460px}.save-prices-btn{flex-shrink:0;border:none;background:#9a4d1c;color:#f7eee0;font-size:14px;font-weight:600;padding:11px 22px;border-radius:10px;cursor:pointer;font-family:"Baloo 2",sans-serif}.pricing-cols{display:grid;grid-template-columns:minmax(0,1fr) 140px 96px;gap:10px;padding:0 4px 8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#a08a6d;font-weight:600}.pricing-cols .right{text-align:right}.pricing-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 96px;gap:10px;align-items:center;padding:7px 4px;border-radius:10px}.pricing-name{font-size:14px;font-weight:500;color:#3a2c1f}.price-wrap{position:relative}.price-prefix{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:12px;color:#a89273;pointer-events:none}.price-input{width:100%;text-align:right;border:1px solid #e4d7bd;border-radius:8px;background:#fff;font-size:14px;color:#3a2c1f;padding:9px 11px 9px 44px}.saved-head{padding-bottom:20px;border-bottom:1px dashed #d8c6a5;margin-bottom:22px}.saved-list{display:flex;flex-direction:column;gap:10px}.tpl-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e9dcc2;border-left:4px solid #e89c23;border-radius:12px;padding:14px 16px}.tpl-info{flex:1;min-width:0}.tpl-name{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:16px;color:#3a2c1f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-meta{font-size:12px;color:#9c866a;margin-top:2px}.tpl-total{text-align:right;font-family:"Baloo 2",sans-serif;font-weight:700;font-size:16px;color:#9a4d1c;font-variant-numeric:tabular-nums;white-space:nowrap}.tpl-load{flex-shrink:0;border:none;background:#9a4d1c;color:#f7eee0;font-family:"Baloo 2",sans-serif;font-size:13px;font-weight:600;padding:9px 18px;border-radius:9px;cursor:pointer}.tpl-delete{flex-shrink:0;width:34px;height:34px;border:1px solid #e9dcc2;background:#faf4e8;color:#b89a74;font-size:16px;border-radius:9px;cursor:pointer}.empty-templates{text-align:center;padding:40px 20px;color:#a08a6d}.empty-icon{font-size:34px;margin-bottom:10px}.empty-title{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:16px;color:#7a6a52}.empty-sub{font-size:13px;margin-top:4px}.footer-note{text-align:center;font-size:12px;color:#a89273;margin-top:18px}@media(max-width:640px){.app{padding:24px 14px 60px}.panel{padding:18px 16px}.pricing-cols,.pricing-row{grid-template-columns:minmax(0,1fr) 110px 80px}.tpl-row{flex-wrap:wrap}}
