@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,400;1,700&family=DM+Sans:wght@300;400;500;600;700&display=swap");:root{--brand:#1671d3;--brand-dark:#0e56a8;--brand-light:#e8f2fd;--accent:#e85d2f;--accent-light:#fdf0eb;--success:#22c55e;--danger:#ef4444;--bg:#faf9f7;--surface:#fff;--surface-2:#f4f1ec;--border:#e8e3db;--text:#1a1208;--text-muted:#6b6255;--text-light:#9e9488;--radius:12px;--radius-sm:8px;--radius-lg:20px;--shadow:0 1px 3px rgba(0,0,0,.07),0 4px 12px rgba(0,0,0,.05);--shadow-lg:0 8px 40px rgba(0,0,0,.12);--shadow-xl:0 24px 80px rgba(0,0,0,.18);--sidebar-width:240px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Playfair Display,serif;line-height:1.15}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 22px;border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .18s ease;white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:0 4px 16px rgba(22,113,211,.35)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#c94d20;transform:translateY(-1px);box-shadow:0 4px 16px rgba(232,93,47,.35)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-ghost{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}.btn-ghost:hover{background:var(--brand-light)}.btn-white{background:#fff;color:var(--text)}.btn-white:hover{background:#f5f5f5;transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:7px 14px;font-size:14px}.btn-lg{padding:15px 32px;font-size:17px;border-radius:var(--radius)}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:15px;background:var(--surface);color:var(--text);transition:border-color .15s;outline:none}.input:focus{border-color:var(--brand)}.input.error{border-color:var(--danger)}textarea.input{resize:vertical;min-height:80px}.select{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:15px;background:var(--surface);color:var(--text);cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6255' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding:11px 40px 11px 14px}.select:focus{border-color:var(--brand)}label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.form-group{margin-bottom:20px}.error-text{color:var(--danger);font-size:13px;margin-top:4px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .15s ease}.modal-box{background:var(--surface);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .2s ease}.modal-title{font-size:22px;margin-bottom:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;background:var(--brand-light);color:var(--brand)}.badge-orange{background:var(--accent-light);color:var(--accent)}.badge-red{background:#fee2e2;color:var(--danger)}.badge-pro{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.notif-dot{width:8px;height:8px;background:var(--danger);border-radius:50%;display:inline-block}.page-content{max-width:1000px;margin:0 auto;padding:32px 24px 80px}.tab-group{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--radius-sm);width:-moz-fit-content;width:fit-content}.tab-btn{padding:8px 20px;border-radius:6px;border:none;background:transparent;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s}.tab-btn.active{background:var(--surface);color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.1)}.multiplier-control{gap:12px}.mult-btn,.multiplier-control{display:flex;align-items:center}.mult-btn{width:34px;height:34px;border-radius:50%;border:2px solid var(--brand);background:transparent;color:var(--brand);font-size:20px;font-weight:700;cursor:pointer;justify-content:center;transition:all .15s}.mult-btn:hover{background:var(--brand);color:#fff}.mult-value{font-size:22px;font-weight:700;color:var(--brand);min-width:44px;text-align:center}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:18px;gap:18px}.ingredient-row{display:grid;grid-template-columns:80px 1fr 2fr 36px;grid-gap:8px;gap:8px;align-items:start;margin-bottom:10px}@media (max-width:640px){.recipe-grid{grid-template-columns:repeat(2,1fr);gap:12px}.ingredient-row{grid-template-columns:70px 90px 1fr 36px}.page-content{padding:20px 16px 80px}}