@font-face{font-family:JetBrains Mono;src:url(https://i.sub-net.at/fonts/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg-deep:#0a0e12;--bg-base:#0f1419;--bg-surface:#151c24;--bg-elevated:#1a232e;--bg-hover:#1f2937;--accent:#27ae60;--accent-bright:#2ecc71;--accent-dim:#27ae6026;--border-subtle:#1e2832;--border-default:#2a3744;--text-primary:#e8eef4;--text-secondary:#9ca3af;--text-muted:#6b7280;--danger:#e74c3c;--danger-dim:#e74c3c26;--font-mono:"JetBrains Mono","SF Mono","Fira Code",monospace;--sidebar-width:240px;--radius:8px;--radius-sm:4px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-mono);background:var(--bg-base);color:var(--text-primary);min-height:100vh;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-bright)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-deep);border-right:1px solid var(--border-subtle);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border-subtle);padding:1.5rem 1rem}.brand{font-size:1.8rem;font-weight:700;text-decoration:none;display:inline-block}.brand-rez{color:var(--text-primary)}.brand-dot{color:var(--accent)}.nav-links{flex:1;padding:.5rem 0}.nav-link{color:var(--text-secondary);border-left:2px solid #0000;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.85rem;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active,.nav-link[aria-current]{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim)}.nav-icon{font-size:1.1rem}.nav-divider{background:var(--border-subtle);height:1px;margin:.5rem 1rem}.sidebar-footer{border-top:1px solid var(--border-subtle);padding:1rem}.user-info{justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.75rem;display:flex}.user-name,.logout-link{color:var(--text-muted)}.logout-link:hover{color:var(--danger)}.content{margin-left:var(--sidebar-width);flex:1;max-width:1200px;padding:2rem}.page{animation:.2s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-title{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem}.lang-toggle{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-mono);color:var(--text-secondary);padding:.3rem .6rem;font-size:.75rem}.lang-active{color:var(--accent);font-weight:700}.lang-inactive{color:var(--text-muted)}.lang-sep{color:var(--border-default);margin:0 .3rem}.btn{border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-bright);border-color:var(--accent-bright);color:#fff}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--danger-dim);color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.text-input{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-mono);padding:.5rem .75rem;font-size:.85rem}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim);outline:none}.text-input::placeholder{color:var(--text-muted)}textarea.text-input{resize:vertical}.filter-select{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);padding:.5rem .75rem;font-size:.85rem}.form-section{margin-bottom:1.5rem}.form-section-title{color:var(--text-secondary);margin-bottom:.75rem;font-size:1rem}.form-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem;display:flex}.form-group{flex:1;min-width:150px}.form-group label{color:var(--text-muted);margin-bottom:.25rem;font-size:.75rem;display:block}.form-group-sm{flex:0 0 100px;min-width:80px}.form-actions{gap:.75rem;margin-top:2rem;display:flex}.filters{margin-bottom:1.5rem}.search-input{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);margin-bottom:1rem;padding:.75rem 1rem;font-size:1rem}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim);outline:none}.search-input::placeholder{color:var(--text-muted)}.tag-filters{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.tag-chip{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-family:var(--font-mono);border-radius:999px;padding:.2rem .6rem;transition:all .15s;display:inline-block}.tag-chip:hover{border-color:var(--accent);color:var(--accent)}.tag-chip-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.recipe-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:inherit;text-decoration:none;transition:all .2s;display:block;overflow:hidden}.recipe-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.recipe-card-image{background:var(--bg-elevated);justify-content:center;align-items:center;height:160px;display:flex;overflow:hidden}.recipe-card-image img{object-fit:cover;width:100%;height:100%}.recipe-card-placeholder{font-size:3rem}.recipe-card-body{padding:.75rem}.recipe-card-title{margin-bottom:.4rem;font-size:.9rem}.recipe-card-meta{color:var(--text-muted);gap:.75rem;font-size:.75rem;display:flex}.recipe-card-tags{flex-wrap:wrap;gap:.3rem;margin-top:.5rem;display:flex}.recipe-detail{max-width:800px}.recipe-images{margin-bottom:1.5rem}.recipe-hero-img{object-fit:cover;border-radius:var(--radius);width:100%;max-height:400px}.recipe-description{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem}.recipe-meta{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.meta-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;padding:.5rem .75rem;display:flex}.meta-label{color:var(--text-muted);text-transform:uppercase;font-size:.7rem}.meta-value{color:var(--accent);font-size:.9rem}.recipe-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;display:flex}.recipe-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.recipe-section{margin-bottom:2rem}.recipe-section h2{margin-bottom:1rem;font-size:1.1rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-header h2{margin-bottom:0}.serving-adjuster{align-items:center;gap:.5rem;display:flex}.serving-count{text-align:center;min-width:100px;font-size:.85rem}.ingredient-list{list-style:none}.ingredient-item{border-bottom:1px solid var(--border-subtle);padding:.4rem 0;font-size:.9rem}.ingredient-amount{color:var(--accent);font-weight:700}.ingredient-unit{color:var(--text-muted)}.step-list{counter-reset:step;list-style:none}.step-item{border-bottom:1px solid var(--border-subtle);gap:1rem;padding:.75rem 0;display:flex}.step-number{background:var(--accent-dim);width:2rem;height:2rem;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.step-content{flex:1}.step-content p{font-size:.9rem}.timer-badge{background:var(--accent-dim);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;margin-top:.4rem;padding:.15rem .5rem;font-size:.75rem;display:inline-block}.recipe-source{color:var(--text-muted);margin-top:2rem;font-size:.8rem}.ingredient-row{align-items:flex-end}.step-row{align-items:flex-start}.image-preview-row{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.image-preview{border-radius:var(--radius-sm);width:120px;height:80px;position:relative;overflow:hidden}.image-preview img{object-fit:cover;width:100%;height:100%}.image-preview .btn{position:absolute;top:2px;right:2px}.tabs{border-bottom:1px solid var(--border-default);gap:0;margin-bottom:1.5rem;display:flex}.tab{color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-size:.85rem}.tab:hover{color:var(--text-primary)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.import-form{flex-wrap:wrap;align-items:flex-start;gap:.75rem;display:flex}.import-form .text-input{flex:1}.import-preview{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);padding:1.5rem}.import-preview h2{margin-bottom:1rem}.import-preview h3{color:var(--text-secondary);margin:1rem 0 .5rem;font-size:.95rem}.import-preview ul,.import-preview ol{padding-left:1.5rem}.import-preview li{margin-bottom:.3rem;font-size:.85rem}.cooking-mode{background:var(--bg-deep);z-index:1000;outline:none;flex-direction:column;padding:1rem;display:flex;position:fixed;inset:0}.cooking-progress{background:var(--bg-elevated);border-radius:2px;height:4px;overflow:hidden}.cooking-progress-bar{background:var(--accent);height:100%;transition:width .3s}.cooking-header{justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.cooking-recipe-title{font-size:1.1rem}.cooking-step{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.cooking-step-counter{color:var(--text-muted);margin-bottom:2rem;font-size:.9rem}.cooking-step-text{max-width:700px;font-size:1.5rem;line-height:1.8}.cooking-timer{margin-top:2rem}.timer-display{color:var(--accent);font-size:2rem;font-weight:700}.timer-done{color:var(--danger);animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.timer-btn{margin-top:1.5rem;font-size:1rem}.cooking-done{flex:1;justify-content:center;align-items:center;display:flex}.cooking-done h1{font-size:2.5rem}.cooking-nav{justify-content:center;gap:1rem;padding:1rem;display:flex}.timer-panel{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);flex-direction:column;gap:.5rem;min-width:200px;padding:.75rem;display:flex;position:fixed;bottom:5rem;right:1rem}.timer-item{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.timer-item-done{color:var(--danger)}.shopping-add{gap:.5rem;margin-bottom:1.5rem;display:flex}.shopping-add .text-input{flex:1}.shopping-items{list-style:none}.shopping-item{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.shopping-item-checked{opacity:.5}.shopping-item-checked .shopping-item-text{text-decoration:line-through}.shopping-item-label{cursor:pointer;flex:1;align-items:center;gap:.5rem;display:flex}.shopping-item-label input[type=checkbox]{accent-color:var(--accent)}.shopping-item-text{font-size:.9rem}.item-amount{color:var(--accent);font-weight:700}.item-unit{color:var(--text-muted)}.shopping-item-source{margin-left:.5rem;font-size:.7rem}.shopping-item-delete{opacity:0;transition:opacity .15s}.shopping-item:hover .shopping-item-delete{opacity:1}.shopping-actions{gap:.5rem;margin-top:1.5rem;display:flex}.home-hero{text-align:center;padding:3rem 0}.home-title{margin-bottom:1.5rem;font-size:2rem}.home-search{max-width:500px;margin:0 auto}.section-title{color:var(--text-secondary);margin-bottom:1rem;font-size:1.1rem}.loading-screen,.login-screen{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius);padding:3rem}.login-logo{margin-bottom:1rem;font-size:3rem}.login-subtitle{color:var(--text-muted);margin-bottom:2rem}.alert{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.alert-error{background:var(--danger-dim);color:var(--danger);border:1px solid var(--danger)}.alert-success{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent)}.loading{color:var(--text-muted);justify-content:center;align-items:center;padding:3rem;display:flex}.loading-cursor:after{content:"█";color:var(--accent);margin-left:.3rem;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.empty-state{text-align:center;color:var(--text-muted);padding:3rem;font-size:.95rem}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:2rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.85rem}.text-muted{color:var(--text-muted)}.print-page{max-width:800px;margin:0 auto;padding:2rem}.print-header{border-bottom:2px solid var(--border-default);margin-bottom:1.5rem;padding-bottom:1rem}.print-header h1{font-size:1.5rem}.print-meta{color:var(--text-muted);margin-top:.5rem;font-size:.85rem}.print-body{gap:2rem;display:flex}.print-ingredients{flex:0 0 35%}.print-steps{flex:1}.print-body h2{margin-bottom:.75rem;font-size:1rem}.print-body ul,.print-body ol{padding-left:1.5rem}.print-body li{margin-bottom:.4rem;font-size:.85rem}.print-footer{border-top:1px solid var(--border-default);color:var(--text-muted);margin-top:2rem;padding-top:1rem;font-size:.75rem}@media (max-width:768px){.sidebar{border-right:none;border-top:1px solid var(--border-subtle);flex-direction:row;width:100%;height:auto;position:fixed;inset:auto 0 0}.sidebar-header,.sidebar-footer{display:none}.nav-links{width:100%;padding:0;display:flex;overflow-x:auto}.nav-link{text-align:center;border-top:2px solid #0000;border-left:none;flex-direction:column;gap:.2rem;min-width:60px;padding:.5rem;font-size:.7rem}.nav-link.active,.nav-link[aria-current]{border-left-color:#0000;border-top-color:var(--accent)}.nav-divider,.nav-label{display:none}.nav-icon{font-size:1.3rem}.content{margin-bottom:60px;margin-left:0;padding:1rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.recipe-card-image{height:120px}.home-title{font-size:1.3rem}.home-hero{padding:1.5rem 0}.form-row{flex-direction:column}.form-group-sm{flex:1}.print-body{flex-direction:column}.cooking-step-text{font-size:1.2rem}}@media print{body{color:#000;background:#fff;font-family:serif}.sidebar,.cooking-mode,.recipe-actions,.serving-adjuster,.btn,.nav-link,.tag-filters,.shopping-actions,.lang-toggle,.alert,.form-actions{display:none!important}.content{margin-left:0;padding:0}.print-page{max-width:none;padding:0}.print-header{border-bottom:2px solid #333}.print-footer{border-top:1px solid #333}.print-body{gap:1.5cm}a{color:inherit;text-decoration:underline}@page{size:A4;margin:2cm}}