body,html{height:auto;min-height:100%;margin:0;padding:0}#app{font-family:Avenir,Helvetica,Arial,sans-serif;min-height:100vh;transition:background-color .3s,color .3s;--bg-color:#f5f5f7;--bg-color-secondary:#fff;--text-color:#1d1d1f;--text-muted:#86868b;--accent-color:#0071e3;--accent-hover:#0077ed;--card-bg:#fff;--input-bg:#e8e8ed;--border-color:#d2d2d7;--shadow:0 2px 8px rgba(0,0,0,.08)}#app,#app.dark-mode{background-color:var(--bg-color);color:var(--text-color)}#app.dark-mode{--bg-color:#000;--bg-color-secondary:#1c1c1e;--text-color:#f5f5f7;--text-muted:#98989d;--accent-color:#0a84ff;--accent-hover:#409cff;--card-bg:#1c1c1e;--input-bg:#2c2c2e;--border-color:#38383a;--shadow:0 2px 8px rgba(0,0,0,.3)}body{transition:background-color .3s}.app-header{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:1em 1.5em;border-bottom:1px solid var(--border-color);margin-bottom:1em}.logo{font-size:1.5em;font-weight:700;text-decoration:none;color:var(--text-color)}.logo:hover{color:var(--accent-color)}.theme-toggle{background:var(--input-bg);border:none;border-radius:50%;width:44px;height:44px;font-size:1.3em;cursor:pointer;transition:transform .2s,background-color .3s}.theme-toggle:hover{transform:scale(1.1)}main{max-width:1200px;padding:0 1.5em 2em}.header-controls{display:flex;align-items:center;gap:.5em}.admin-btn{padding:.5em 1em;background:var(--input-bg);border:1px solid var(--border-color);border-radius:.5em;cursor:pointer;font-size:.9em;color:var(--text-color);transition:all .2s}.admin-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.admin-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--card-bg,#fff);padding:2em;border-radius:1em;width:90%;max-width:400px;box-shadow:var(--shadow)}.modal h2{margin:0 0 1em;color:var(--text-color)}.setup-info{color:var(--text-muted);font-size:.9em;margin:-.5em 0 1em}.password-input{width:100%;padding:.75em 1em;border:1px solid var(--border-color);border-radius:.5em;font-size:1em;background:var(--input-bg);color:var(--text-color);box-sizing:border-box}.password-input:focus{outline:none;border-color:var(--accent-color)}.login-error{color:#e53935;margin:.5em 0;font-size:.9em}.modal-actions{display:flex;gap:.5em;justify-content:flex-end;margin-top:1.5em}.btn-cancel,.btn-login{padding:.6em 1.2em;border-radius:.5em;cursor:pointer;font-size:1em;transition:all .2s}.btn-cancel{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-color)}.btn-cancel:hover{background:var(--border-color)}.btn-login{background:var(--accent-color);border:none;color:#fff}.btn-login:hover{opacity:.9}ul.dropdown-menu[data-v-40fe5220]{width:100%;max-width:calc(100% - 52px);border-radius:0 0 4px 4px;margin:0;margin-left:26px;overflow-y:auto;max-height:600px;position:absolute;z-index:200}.search[data-v-40fe5220]{position:relative;height:56px;margin:30px 0}.search-container[data-v-40fe5220]{height:100%;width:100%;border-radius:28px;background-color:var(--input-bg,#f2f2f2);display:flex;align-items:center;position:absolute;transition:background-color .3s}.search-container form[data-v-40fe5220]{width:100%;height:100%}.search-container input[data-v-40fe5220]{padding-left:80px;background-color:transparent;border:0;width:100%;height:100%;color:var(--text-color,#000);font-size:1em}.search-container input[data-v-40fe5220]::-moz-placeholder{color:var(--text-color,#666);opacity:.6}.search-container input[data-v-40fe5220]:-ms-input-placeholder{color:var(--text-color,#666);opacity:.6}.search-container input[data-v-40fe5220]::placeholder{color:var(--text-color,#666);opacity:.6}.search-container img[data-v-40fe5220]{position:absolute;margin-left:32px;opacity:.6}:root{--base-text-size:100%;--font-stack:Avenir,Helvetica Neue,Helvetica,Arial,sans-serif;--base-line-height:1.6}body{font-family:var(--font-stack);line-height:var(--base-line-height);font-size:var(--base-text-size);background-color:var(--bg-color,#f5f5f7)}body,h1,h2,h3{color:var(--text-color,#1d1d1f)}h1,h2,h3{font-size:1.2em}a,a:visited{color:var(--accent-color,#0071e3)}main{max-width:100ch;margin:0 auto}.post-listing{display:grid}@media (min-width:800px){.post-listing{grid-template-columns:repeat(3,1fr);gap:0 3em}}@media (min-width:1000px){.post-listing{grid-template-columns:repeat(4,1fr)}}.post-link,.post-link:visited{text-decoration:none;color:inherit;transition:color .2s,background .2s;padding:.1em .3em;border-radius:.25em}.post-link:hover{color:#fff;background:var(--accent-color)}.post-list-item{list-style:none;padding:0}.post-list-item .post-excerpt p{margin-top:0}.category-title{font-size:2em;padding-bottom:0;margin-bottom:0;color:inherit}.page-header[data-v-0bd0f8a6]{justify-content:space-between}.header-actions[data-v-0bd0f8a6],.page-header[data-v-0bd0f8a6]{display:flex;align-items:center;flex-wrap:wrap;gap:1em}.add-recipe-btn[data-v-0bd0f8a6]{padding:.5em 1em;background:var(--accent-color,#0071e3);color:#fff;text-decoration:none;border-radius:.5em;font-weight:500;transition:opacity .2s}.add-recipe-btn[data-v-0bd0f8a6]:hover{opacity:.9}.sort-controls[data-v-0bd0f8a6]{display:flex;align-items:center;gap:.5em}.sort-select[data-v-0bd0f8a6]{padding:.5em 1em;border-radius:.5em;border:1px solid var(--border-color,#ddd);background:var(--input-bg,#f2f2f2);color:var(--text-color,#333);font-size:1em;cursor:pointer}.category-count[data-v-0bd0f8a6]{font-size:.6em;font-weight:400;color:var(--text-muted,#666)}.loading-state[data-v-0bd0f8a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4em 2em;color:var(--text-muted,#666)}.loading-spinner[data-v-0bd0f8a6]{width:40px;height:40px;border:3px solid var(--border-color,#ddd);border-top-color:var(--accent-color,#0071e3);border-radius:50%;-webkit-animation:spin-data-v-0bd0f8a6 1s linear infinite;animation:spin-data-v-0bd0f8a6 1s linear infinite}@-webkit-keyframes spin-data-v-0bd0f8a6{to{transform:rotate(1turn)}}@keyframes spin-data-v-0bd0f8a6{to{transform:rotate(1turn)}}.empty-state[data-v-0bd0f8a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4em 2em;text-align:center}.empty-icon[data-v-0bd0f8a6]{font-size:4em;margin-bottom:.5em}.empty-state h2[data-v-0bd0f8a6]{margin:0 0 .5em;font-size:1.5em}.empty-state p[data-v-0bd0f8a6]{color:var(--text-muted,#666);margin:0 0 1.5em}.clear-search-btn[data-v-0bd0f8a6]{padding:.75em 1.5em;background:var(--accent-color,#0071e3);color:#fff;border:none;border-radius:.5em;font-size:1em;cursor:pointer;transition:opacity .2s}.clear-search-btn[data-v-0bd0f8a6]:hover{opacity:.9}@media (min-width:800px){.recipe-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:0 2em}.recipe-grid .header{grid-row:1;grid-column:1/5}.recipe-grid .ingredients{grid-row:2;grid-column:1/3}.recipe-grid .instructions{grid-row:2;grid-column:3/-1}.recipe-grid .meta{grid-row:1;grid-column:5/-1}}@media (max-width:799px){.recipe-grid{display:block}}.header h1{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin-bottom:.5em;font-size:2.2em}.header .description{color:var(--text-muted,#666);margin:0 0 1em 0;font-size:1.1em}.source-link{font-size:.4em;font-weight:400}.source-link a{color:var(--accent-color)}.tags{list-style:none}.ingredient{list-style-position:outside;margin-left:1em}.ingredient-group{list-style:none}.ingredient-group h3{margin:0;padding:0;font-size:1em;font-weight:700}.instructions ol{padding-left:1em;list-style-position:outside}.instruction{margin-bottom:1.2em}ul{padding-left:0}.category-badge{background-color:var(--accent-color);color:#fff;padding:.25em .8em;border-radius:.75em;font-size:.4em;font-weight:500;vertical-align:middle;white-space:nowrap}.ingredient-checkbox{display:flex;align-items:flex-start;gap:.5em;cursor:pointer}.ingredient-checkbox input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;min-width:18px;min-height:18px;border:2px solid var(--border-color,#ccc);border-radius:3px;background:var(--card-bg,#fff);margin-top:.2em;cursor:pointer;position:relative}.ingredient-checkbox input[type=checkbox]:checked{background:var(--accent-color,#0071e3);border-color:var(--accent-color,#0071e3)}.ingredient-checkbox input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.ingredient-checkbox .checked{text-decoration:line-through;opacity:.6}.loading-state[data-v-864e2780]{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4em 2em;color:var(--text-muted,#666)}.loading-spinner[data-v-864e2780]{width:40px;height:40px;border:3px solid var(--border-color,#ddd);border-top-color:var(--accent-color,#0071e3);border-radius:50%;-webkit-animation:spin-data-v-864e2780 1s linear infinite;animation:spin-data-v-864e2780 1s linear infinite}@-webkit-keyframes spin-data-v-864e2780{to{transform:rotate(1turn)}}@keyframes spin-data-v-864e2780{to{transform:rotate(1turn)}}.recipe-controls[data-v-864e2780]{display:flex;gap:.5em;margin-top:1em}.control-btn[data-v-864e2780]{padding:.6em 1.2em;background:var(--input-bg,#f2f2f2);border:1px solid var(--border-color,#ddd);border-radius:.5em;cursor:pointer;font-size:.95em;transition:all .2s}.control-btn.active[data-v-864e2780],.control-btn[data-v-864e2780]:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.edit-btn[data-v-864e2780]{text-decoration:none;display:inline-flex;align-items:center}.cooking-mode[data-v-864e2780]{font-size:1.15em}.cooking-mode .instruction[data-v-864e2780]{padding:.75em;border-radius:.5em;cursor:pointer;transition:background .2s}.cooking-mode .instruction[data-v-864e2780]:hover{background:var(--input-bg,#f2f2f2)}.cooking-mode .instruction.current-step[data-v-864e2780]{background:var(--accent-color);color:#fff;font-weight:500}.cooking-nav[data-v-864e2780]{display:flex;justify-content:center;align-items:center;gap:1.5em;margin-top:2em;padding:1em;background:var(--input-bg,#f2f2f2);border-radius:.75em;position:sticky;bottom:1em}.nav-btn[data-v-864e2780]{padding:.75em 1.5em;background:var(--accent-color);color:#fff;border:none;border-radius:.5em;cursor:pointer;font-size:1em;transition:opacity .2s}.nav-btn[data-v-864e2780]:hover:not(:disabled){opacity:.9}.nav-btn[data-v-864e2780]:disabled{opacity:.4;cursor:not-allowed}.step-counter[data-v-864e2780]{font-weight:500;color:var(--text-muted,#666)}.persons-info[data-v-864e2780]{color:var(--text-muted,#666);font-weight:400}.recipe-form-container[data-v-33e89110]{max-width:800px;margin:0 auto}.recipe-form-container h1[data-v-33e89110]{margin-bottom:1.5em}.recipe-form[data-v-33e89110]{display:flex;flex-direction:column;gap:1.5em}.form-group[data-v-33e89110]{display:flex;flex-direction:column;gap:.5em}.form-group label[data-v-33e89110]{font-weight:500;color:var(--text-color)}.help-text[data-v-33e89110]{font-weight:400;font-size:.85em;color:var(--text-muted,#666);display:block;margin-top:.25em}.form-group input[data-v-33e89110],.form-group textarea[data-v-33e89110]{padding:.75em 1em;border:1px solid var(--border-color,#ddd);border-radius:.5em;font-size:1em;background:var(--input-bg,#f2f2f2);color:var(--text-color,#333);font-family:inherit}.form-group input[data-v-33e89110]:focus,.form-group textarea[data-v-33e89110]:focus{outline:none;border-color:var(--accent-color,#0071e3)}.form-group textarea[data-v-33e89110]{resize:vertical;min-height:100px}.form-actions[data-v-33e89110]{display:flex;gap:1em;justify-content:flex-end;margin-top:1em}.btn-cancel[data-v-33e89110],.btn-save[data-v-33e89110]{padding:.75em 1.5em;border-radius:.5em;font-size:1em;cursor:pointer;transition:all .2s}.btn-cancel[data-v-33e89110]{background:var(--input-bg,#f2f2f2);border:1px solid var(--border-color,#ddd);color:var(--text-color,#333)}.btn-cancel[data-v-33e89110]:hover{background:var(--border-color,#ddd)}.btn-save[data-v-33e89110]{background:var(--accent-color,#0071e3);border:none;color:#fff}.btn-save[data-v-33e89110]:hover:not(:disabled){opacity:.9}.btn-save[data-v-33e89110]:disabled{opacity:.6;cursor:not-allowed}.error-message[data-v-33e89110]{color:#e53935;text-align:center}