:root{--color-bg:#fff;--color-card:#fff;--color-text:#1a1a1a;--color-text-soft:#5a5a5a;--color-navy:#003c64;--color-navy-dark:#002a48;--color-gold:#c8a014;--color-gold-dark:#a8850a;--color-error-bg:#fbe7df;--color-error-text:#9c3b25;--color-border:#003c6424;color:var(--color-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Playfair Display,serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--color-bg)}h1,h2,h3{margin:0}button,input,select,textarea{font-family:inherit}.login-page{justify-content:center;align-items:flex-start;min-height:100%;padding:64px 24px 24px;display:flex}.login-page-content{flex-direction:column;align-items:center;width:100%;max-width:460px;display:flex}.login-page-logo{width:360px;max-width:80vw;margin-bottom:40px}.login-page-logo svg{width:100%;height:auto;display:block}.login-card{background:var(--color-card);border:1px solid var(--color-border);text-align:center;border-radius:20px;flex-direction:column;align-items:center;width:100%;padding:44px 40px;display:flex;box-shadow:0 20px 40px #001e3226}.login-form{text-align:left;flex-direction:column;width:100%;display:flex}.login-form input{border:1px solid var(--color-border);width:100%;min-height:44px;color:var(--color-text);background:#fff;border-radius:10px;padding:11px 14px;font-size:15px}.login-form input:focus{border-color:var(--color-navy);outline:none;box-shadow:0 0 0 3px #003c641f}.password-field{margin-bottom:18px;position:relative}.password-field input{margin-bottom:0;padding-right:44px}.password-toggle{width:44px;height:100%;color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.password-toggle:hover{color:var(--color-navy)}.error-message{background:var(--color-error-bg);color:var(--color-error-text);border-radius:8px;margin:-4px 0 16px;padding:10px 12px;font-size:13.5px}.login-button{background:var(--color-navy);color:#fff;cursor:pointer;border:none;border-radius:10px;min-height:44px;padding:12px;font-size:15px;font-weight:700;transition:background .15s,color .15s}.login-button:hover{background:var(--color-gold);color:#1a1a1a}@media (width<=480px){.login-page{padding:40px 24px 24px}.login-card{padding:32px 24px}.login-page-logo{width:220px;margin-bottom:28px}}.modal-overlay{z-index:200;background:#001e3273;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-card);border-radius:18px;width:100%;max-width:520px;max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 24px 48px #001e3247}.modal-title{color:var(--color-navy);margin-bottom:20px;font-size:22px}.modal-card .form-field{flex-direction:column;margin-bottom:20px;display:flex}.modal-card .form-field:last-of-type{margin-bottom:0}.modal-card .form-label{color:var(--color-text-soft);margin-bottom:10px;font-size:13px;font-weight:700;display:block}.modal-card .form-input{border:1px solid var(--color-border);width:100%;min-height:44px;color:var(--color-text);background:#fff;border-radius:10px;padding:11px 14px;font-size:15px}.modal-card .form-input:focus{border-color:var(--color-navy);outline:none;box-shadow:0 0 0 3px #003c641f}.modal-card .form-input-error{border-color:var(--color-error-text)}.modal-card .other-cuisine-input{max-width:320px;margin-top:12px}.modal-card .field-error{color:var(--color-error-text);margin:8px 0 0;font-size:13px;font-weight:600}.modal-card .other-chip{color:var(--color-text-soft);background:#f0f0f0}.modal-card .add-chip-button{width:44px;height:44px;color:var(--color-text-soft);cursor:pointer;background:#f0f0f0;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.modal-card .add-chip-button:hover{background:var(--color-navy);color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #001e321f}.modal-card .add-chip-button-active{background:var(--color-navy);color:#fff;border-color:#c8a014;box-shadow:0 4px 10px #c8a01440}.modal-card .filter-chip-row{flex-wrap:wrap;gap:10px;display:flex}.modal-checkbox-label{color:var(--color-text);cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:600;display:inline-flex}.modal-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-navy);cursor:pointer}.modal-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:28px;display:flex}.modal-actions-right{gap:12px;display:flex}.modal-button{cursor:pointer;border:none;border-radius:10px;min-height:44px;padding:0 20px;font-size:14px;font-weight:700;transition:background .15s,color .15s}.modal-button-cancel{color:var(--color-text);background:#f0f0f0}.modal-button-cancel:hover{background:#e2e2e2}.modal-button-save{background:var(--color-navy);color:#fff}.modal-button-save:hover:not(:disabled){background:var(--color-gold);color:#1a1a1a}.modal-button:disabled{opacity:.6;cursor:default}.modal-button-delete{color:var(--color-error-text);border:1px solid var(--color-error-text);background:0 0}.modal-button-delete:hover:not(:disabled){background:var(--color-error-bg)}.modal-button-delete-confirm{background:var(--color-error-text);color:#fff}.modal-button-delete-confirm:hover:not(:disabled){background:#7a2d1c}.delete-confirm-message{color:var(--color-text);margin:4px 0 0;font-size:14px}@media (width<=480px){.modal-card{padding:22px}}.home-page{max-width:900px;min-height:100%;margin:0 auto;padding:40px 24px 60px}.toast-success{z-index:100;background:var(--color-gold);min-height:44px;color:var(--color-navy);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;animation:.2s ease-out toast-in;display:flex;position:fixed;top:20px;left:20px;right:20px;box-shadow:0 10px 24px #001e3240}.toast-success svg{flex-shrink:0;width:18px;height:18px}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width>=480px){.toast-success{width:max-content;max-width:calc(100% - 40px);left:auto}}.home-header{text-align:center;flex-direction:column;align-items:center;gap:16px;margin-bottom:32px;display:flex;position:relative}.add-recipe-button{background:var(--color-navy);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s,color .15s;display:flex;position:absolute;top:0;right:0;box-shadow:0 6px 16px #001e322e}.add-recipe-button:hover{background:var(--color-gold);color:#1a1a1a}.add-recipe-button svg{width:20px;height:20px}.home-logo-image{width:360px;max-width:80vw}.home-logo-image svg{width:100%;height:auto;display:block}.home-footer{justify-content:center;padding-top:40px;display:flex}.logout-link{min-height:44px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 8px;font-size:14px;font-weight:600;text-decoration:underline;display:flex}.logout-link:hover{color:var(--color-navy)}.see-all-row{justify-content:flex-end;margin-bottom:10px;display:flex}.search-bar{background:var(--color-card);border:1px solid var(--color-border);border-radius:14px;align-items:center;gap:10px;margin-bottom:20px;padding:10px 16px;display:flex;box-shadow:0 8px 20px #001e320f}.search-icon{width:20px;height:20px;color:var(--color-text-soft);flex-shrink:0}.search-input{min-width:0;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-height:32px;padding:6px 0;font-size:15px}.search-input::placeholder{color:var(--color-text-soft)}.filters-dropdown{margin-bottom:32px}.see-all-button{min-height:44px;color:var(--color-navy);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 8px;font-size:13.5px;font-weight:700;text-decoration:underline;display:inline-flex}.see-all-button:hover{color:var(--color-gold-dark)}.filters-toggle{background:var(--color-navy);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:12px 20px;font-size:15px;font-weight:700;transition:background .15s,color .15s;display:flex;box-shadow:0 8px 20px #001e3224}.filters-toggle:hover{background:var(--color-gold);color:#1a1a1a}.filters-toggle-open{border-radius:14px 14px 0 0}.filters-toggle-label{align-items:center;gap:8px;display:inline-flex}.filters-count-badge{background:var(--color-gold);color:#1a1a1a;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:800;display:inline-flex}.filters-chevron{width:18px;height:18px;transition:transform .2s}.filters-chevron-open{transform:rotate(180deg)}.filters-body{background:var(--color-card);border:1px solid var(--color-border);border-top:none;border-radius:0 0 14px 14px;padding:20px;box-shadow:0 8px 20px #001e320f}.filters-body-header{color:var(--color-text-soft);justify-content:space-between;align-items:center;margin-bottom:18px;font-size:13px;display:flex}.clear-filters{min-height:44px;color:var(--color-navy);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;font-size:12.5px;font-weight:700;display:flex}.clear-filters:hover:not(:disabled){text-decoration:underline}.clear-filters:disabled{color:var(--color-text-soft);cursor:default;opacity:.6}.filter-group{margin-bottom:18px}.filter-group:last-child{margin-bottom:0}.filter-group-label{letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:10px;font-size:12.5px;font-weight:700;display:block}.filter-chip-row{flex-wrap:wrap;gap:10px;display:flex}.filter-chip{cursor:pointer;border:2px solid #0000;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s;display:inline-flex}.filter-chip:hover{transform:translateY(-1px);box-shadow:0 4px 10px #001e321f}.filter-chip-active{box-shadow:0 4px 10px #c8a01440}.filter-chip-check{font-size:12px}.recipe-main{width:100%}.empty-state{color:var(--color-text-soft);text-align:center;padding:100px 24px;font-size:15px}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.recipe-card{background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text);border-radius:14px;padding:20px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:block;position:relative;box-shadow:0 8px 20px #001e3214}.recipe-card:hover{border-color:var(--color-navy);transform:translateY(-2px);box-shadow:0 12px 24px #001e3229}.recipe-card h3{margin-bottom:12px;padding-right:32px;font-size:18px}.recipe-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{letter-spacing:.02em;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:700}.quick-badge{background:var(--color-gold);color:#fff;letter-spacing:.04em;border-radius:999px;margin-top:10px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.edit-recipe-button{width:30px;height:30px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex;position:absolute;top:14px;right:14px}.edit-recipe-button:hover{color:var(--color-gold-dark);background:#c8a01426}.edit-recipe-button svg{width:16px;height:16px}@media (width<=640px){.home-page{padding:28px 16px 48px}.home-logo-image{width:220px}.filters-toggle{padding:10px 16px;font-size:14px}.filters-body{padding:16px}.filter-chip{padding:0 13px;font-size:13px}.recipe-grid{grid-template-columns:1fr}}.add-recipe-page{min-height:100%;padding:32px 24px 60px}.add-recipe-content{max-width:640px;margin:0 auto}.back-link{min-height:44px;color:var(--color-navy);align-items:center;margin-bottom:8px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.back-link:hover{text-decoration:underline}.page-title{color:var(--color-text);margin:12px 0 20px;font-size:28px}.add-recipe-form{flex-direction:column;gap:24px;display:flex}.form-field{flex-direction:column;display:flex}.form-label{color:var(--color-text-soft);margin-bottom:10px;font-size:13px;font-weight:700;display:block}.form-input{border:1px solid var(--color-border);background:var(--color-card);width:100%;min-height:44px;color:var(--color-text);border-radius:10px;padding:11px 14px;font-size:15px}.form-input:focus{border-color:var(--color-navy);outline:none;box-shadow:0 0 0 3px #003c641f}.form-input-error{border-color:var(--color-error-text)}.other-cuisine-input{max-width:320px;margin-top:12px}.field-error{color:var(--color-error-text);margin:8px 0 0;font-size:13px;font-weight:600}.other-chip{color:var(--color-text-soft);background:#f0f0f0}.add-chip-button{width:44px;height:44px;color:var(--color-text-soft);cursor:pointer;background:#f0f0f0;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.add-chip-button:hover{background:var(--color-navy);color:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #001e321f}.add-chip-button-active{background:var(--color-navy);color:#fff;border-color:#c8a014;box-shadow:0 4px 10px #c8a01440}.file-picker{border:2px dashed var(--color-border);background:var(--color-card);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:18px;display:flex}.file-picker-error{border-color:var(--color-error-text)}.file-input-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.file-picker-label{min-height:44px;color:var(--color-text);cursor:pointer;align-items:center;gap:10px;padding:0 8px;font-size:14px;font-weight:600;display:inline-flex}.file-picker-label svg{width:20px;height:20px;color:var(--color-navy);flex-shrink:0}.file-remove-button{min-height:44px;color:var(--color-navy);cursor:pointer;background:0 0;border:none;padding:0 12px;font-size:13px;font-weight:700}.file-remove-button:hover{text-decoration:underline}.submit-button{background:var(--color-navy);color:#fff;cursor:pointer;border:none;border-radius:10px;min-height:48px;font-size:15px;font-weight:700;transition:background .15s,color .15s}.submit-button:hover:not(:disabled){background:var(--color-gold);color:#1a1a1a}.submit-button:disabled{opacity:.6;cursor:default}@media (width<=640px){.add-recipe-page{padding:20px 16px 48px}.page-title{font-size:23px}.file-picker{flex-direction:column;align-items:flex-start}}
