:root{--forest:#1f4d3e;--forest-dark:#163a2e;--sand:#f7f4ec;--paper:#fff;--amber-dark:#9c5c29;--ink:#1e211f;--ink-soft:#5c6360;--line:#e3dfd2;--badge-bg:#fbeadd;--badge-border:#efcba6}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--sand);color:var(--ink)}.wrap{max-width:760px;margin:0 auto;padding:0 20px 60px}.badge{display:inline-block;margin:18px 0 0;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--amber-dark);background:var(--badge-bg);border:1px solid var(--badge-border);padding:4px 10px;border-radius:20px}.brand-row{display:flex;align-items:center;gap:12px}.brand-logo{width:40px;height:40px;border-radius:9px;display:block;object-fit:contain}header{padding-top:6px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:28px}.brand-name{font-size:22px;font-weight:700;color:var(--forest-dark);letter-spacing:-.01em}.brand-sub{font-size:13px;color:var(--ink-soft);margin-top:2px}h1{font-size:26px;margin:22px 0 4px;color:var(--forest-dark)}.lede{color:var(--ink-soft);font-size:14.5px;margin:0}.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-bottom:20px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 16px;font-weight:600}.field-row{display:flex;gap:16px;flex-wrap:wrap}.field{flex:1 1;min-width:180px}label{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:6px}input[type=number],input[type=text],select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14.5px;background:var(--sand);color:var(--ink)}input:focus,select:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px rgba(31,77,62,.12)}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:0 8px 10px;font-weight:600}tbody td{padding:6px 8px;vertical-align:middle}tbody tr{border-top:1px solid var(--line)}.col-ing{width:42%}.col-qty{width:18%}.col-unit{width:16%}.col-price{width:18%;text-align:right}.col-remove{width:6%;text-align:center}.price-cell{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--forest-dark);padding-right:8px}.unit-cell{color:var(--ink-soft);font-size:13.5px}.remove-btn{background:none;border:none;color:var(--ink-soft);font-size:18px;cursor:pointer;line-height:1;padding:4px 8px;border-radius:6px}.remove-btn:hover{background:#f3efe3;color:var(--amber-dark)}.add-row{margin-top:14px;background:none;border:1px dashed #c9c3af;color:var(--forest-dark);font-size:13.5px;font-weight:600;padding:9px 14px;border-radius:8px;cursor:pointer;width:100%}.add-row:hover{background:#f1eee2;border-color:var(--forest)}.totals-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14.5px}.totals-line.sub{color:var(--ink-soft)}.totals-line .val{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total-card{background:var(--forest-dark);color:#efebdd;border-radius:14px;padding:24px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.total-card .label{font-size:13px;text-transform:uppercase;letter-spacing:.05em;opacity:.75}.total-card .amount{font-size:34px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total-card .per-portion{font-size:13px;opacity:.8;margin-top:4px}footer{margin-top:26px;font-size:12px;text-align:center;line-height:1.6}.status-note,footer{color:var(--ink-soft)}.status-note{font-size:12.5px;margin:0 0 16px}.new-recipe-btn{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--sand);color:var(--forest-dark);font-size:13.5px;font-weight:600;cursor:pointer}.new-recipe-btn:hover{background:#f1eee2}.delete-recipe-btn{width:100%;padding:10px 12px;border:1px solid #e3b5a8;border-radius:8px;background:#fbeeea;color:#9c3b23;font-size:13.5px;font-weight:600;cursor:pointer}.delete-recipe-btn:hover{background:#f7ddd4}.delete-recipe-btn:disabled{opacity:.6;cursor:default}.actions-row{display:flex;gap:10px;margin:18px 0 6px}.print-btn,.save-btn{flex:1 1;padding:12px 16px;border-radius:10px;font-size:14.5px;font-weight:600;cursor:pointer;border:1px solid var(--line)}.save-btn{background:var(--forest-dark);color:#fff;border-color:var(--forest-dark)}.save-btn:hover{opacity:.92}.save-btn:disabled{opacity:.6;cursor:default}.print-btn{background:var(--paper);color:var(--forest-dark)}.print-btn:hover{background:#f1eee2}.print-sheet{display:none}@media print{.no-print{display:none!important}.print-sheet{display:block}body{background:#fff}.wrap{max-width:100%;padding:0}}.print-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.print-brand img{width:40px;height:40px;border-radius:9px;object-fit:contain}.print-brand-name{font-size:18px;font-weight:700;color:#111}.print-brand-sub{font-size:12px;color:#555;margin-top:2px}.print-sheet h1{font-size:22px;margin:0 0 6px;color:#111}.print-yield{color:#555;margin:0 0 20px;font-size:13.5px}.print-sheet table{width:100%;border-collapse:collapse;margin-bottom:22px}.print-sheet td,.print-sheet th{text-align:left;padding:8px;border-bottom:1px solid #ddd;font-size:13px;color:#222}.print-sheet td:last-child,.print-sheet td:nth-child(2),.print-sheet th:last-child,.print-sheet th:nth-child(2){text-align:right}.print-total{display:flex;justify-content:space-between;font-size:16px;font-weight:700;padding:6px 0;color:#111}.print-total.sub{color:#555;font-size:13px;font-weight:500}.login-panel{max-width:360px;margin:60px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:32px 28px;text-align:center}.login-panel .brand-logo{margin:0 auto 16px}.login-panel h1{font-size:21px;margin:0 0 6px}.login-panel .lede{margin-bottom:22px}.login-panel form{text-align:left}.login-panel .field{margin-bottom:14px}.login-panel .status-note{color:#9c3b23}