.app{max-width:1100px;margin:0 auto;padding:0 16px 48px}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:16px 0;display:flex}.topbar h1{margin:0;font-size:22px}.topbar nav{gap:24px;display:flex}.topbar-user{align-items:center;gap:10px;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:left;width:320px}.login-card h2{text-align:center;margin-top:0;margin-bottom:20px}.error{color:var(--danger);font-size:13px}.topbar nav a{color:#888;border-bottom:2px solid #0000;padding:4px 0;font-weight:500}.topbar nav a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:16px}.btn{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:8px;padding:8px 14px}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-small{padding:4px 10px;font-size:13px}input,textarea,select{border:1px solid var(--border);background:var(--card-bg);width:100%;color:var(--text);border-radius:8px;padding:8px 10px}label{color:var(--text-h);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.field{margin-bottom:12px}.row{gap:12px;display:flex}.row>.field{flex:1}.stars{color:#f5a623;letter-spacing:2px;cursor:pointer}.recipe-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.recipe-card{background:var(--card-bg);border:1px solid var(--border);text-align:left;border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.recipe-card-img{aspect-ratio:4/3;background:var(--accent-bg);width:100%;overflow:hidden}.recipe-card-img img{object-fit:cover;width:100%;height:100%;display:block}.recipe-card-body{flex-direction:column;gap:6px;padding:14px;display:flex}.recipe-card h3{margin:0;font-size:16px}.group-input{color:var(--accent);border-style:dashed;margin-bottom:6px;font-weight:600}.ingredient-row{grid-template-columns:1.4fr 1fr .8fr auto;gap:8px;margin-bottom:8px;display:grid}.amount-input{text-align:right}.step-row{grid-template-columns:auto 1fr auto;align-items:start;gap:8px;margin-bottom:8px;display:grid}.step-row .step-num{margin-top:8px}.step-num{background:var(--accent-bg);width:24px;height:24px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.tag-list{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.tag-pill{background:var(--accent-bg);color:var(--accent);border-radius:16px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.tag-pill button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.tag-pill.readonly{cursor:default}.detail-tabs{border-bottom:1px solid var(--border);gap:4px;margin:16px 0;display:flex;overflow-x:auto}.detail-tab{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-weight:600}.detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.group-heading{color:var(--accent);margin:16px 0 4px;font-size:14px}.ingredient-list{flex-direction:column;display:flex}.ingredient-list-item{border-bottom:1px solid var(--border);text-align:left;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.ingredient-name{font-weight:600}.ingredient-amount{color:var(--text-h);white-space:nowrap;font-weight:600}.step-list{text-align:left;flex-direction:column;gap:14px;display:flex}.step-list-item{gap:12px;display:flex}.step-list-item p{white-space:pre-wrap;margin:0}.image-preview{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%;max-height:160px;margin-top:8px}.muted{color:#888;font-size:13px}.tag{background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.week-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.month-label{cursor:pointer;color:var(--text-h);background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;font-size:22px;font-weight:700;display:flex}.week-header-controls{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;width:36px;height:36px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{border-color:var(--accent)}.view-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.view-toggle button{background:var(--card-bg);color:#999;cursor:pointer;border:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.view-toggle button.active{background:var(--accent-bg);color:var(--accent)}.calendar-popup{background:var(--card-bg);border:1px solid var(--border);z-index:20;border-radius:12px;width:280px;margin-top:6px;padding:12px;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0000001f}.calendar-popup-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.calendar-popup-header .icon-btn{width:28px;height:28px}.calendar-popup-weekdays{text-align:center;color:#999;grid-template-columns:repeat(7,1fr);margin-bottom:4px;font-size:11px;display:grid}.calendar-popup-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:8px;padding:6px 0;font-size:13px}.calendar-day:hover{background:var(--accent-bg)}.calendar-day.outside{color:#ccc}.calendar-day.selected-week{background:var(--accent-bg)}.calendar-day.today{color:var(--accent);font-weight:700}.week-grid{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;grid-auto-columns:minmax(220px,1fr);grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}@media (width>=1000px){.week-grid{scroll-snap-type:none;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-flow:row;overflow-x:visible}}.week-grid::-webkit-scrollbar{display:none}.day-col{background:var(--card-bg);border:1px solid var(--border);scroll-snap-align:start;border-radius:14px;flex-direction:column;gap:10px;min-height:200px;padding:14px;display:flex;box-shadow:0 1px 3px #0000000d}.day-col h3{text-align:center;margin:0;font-size:15px;font-weight:600}.day-col .date{color:var(--text-h);text-align:center;margin-bottom:4px;font-size:22px;font-weight:600;display:block}.day-col.today{border-color:var(--accent)}.day-col.today h3,.day-col.today .date{color:var(--accent)}.day-col-entries{flex-direction:column;flex:1;gap:10px;display:flex}.tag-picker{flex-wrap:wrap;gap:6px;display:flex}.tag-chip{border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.tag-chip.active.tag-vanessa{color:#1a4d33;background:#8fe3b0;border-color:#8fe3b0}.tag-chip.active.tag-andre{color:#1a4566;background:#92d3f5;border-color:#92d3f5}.tag-chip.active.tag-gemeinsam{color:#5a3d0a;background:#f5c97a;border-color:#f5c97a}.plan-entry-tag{background:var(--accent-bg);color:var(--text-h);border-radius:999px;align-self:center;margin:0 10px;padding:2px 8px;font-size:11px;font-weight:600}.plan-entry-tag.tag-vanessa{color:#1a4d33;background:#d7f5e3}.plan-entry-tag.tag-andre{color:#1a4566;background:#d8eefb}.plan-entry-tag.tag-gemeinsam{color:#5a3d0a;background:#fbe8c8}.plan-entry-card{background:var(--accent-bg-soft,#f7f7f9);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;position:relative}.plan-entry-link{display:block}.plan-entry-img{aspect-ratio:4/3;background:var(--accent-bg);border-radius:12px 12px 0 0;width:100%;overflow:hidden}.plan-entry-img img{object-fit:cover;width:100%;height:100%;display:block}.img-placeholder{background:var(--accent-bg);justify-content:center;align-items:center;width:100%;height:100%;font-size:28px;display:flex}.plan-entry-footer{justify-content:space-between;align-items:center;gap:4px;padding:10px;display:flex;position:relative}.plan-entry-name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none;overflow:hidden}.kebab{color:#999;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:16px}.kebab-menu{background:var(--card-bg);border:1px solid var(--border);z-index:10;border-radius:8px;position:absolute;top:100%;right:8px;overflow:hidden;box-shadow:0 4px 12px #0000001f}.kebab-menu button{width:100%;color:var(--danger);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;padding:8px 16px;display:block}.kebab-menu button:hover{background:var(--accent-bg)}.add-entry{width:100%}.plan-list{flex-direction:column;gap:18px;display:flex}.plan-list-day h3{color:var(--text-h);margin-bottom:8px;font-size:15px}.plan-list-day h3.today-label{color:var(--accent)}.plan-list-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 0;display:flex}.plan-list-thumb{background:var(--accent-bg);border-radius:8px;flex-shrink:0;width:48px;height:48px;overflow:hidden}.plan-list-thumb img{object-fit:cover;width:100%;height:100%;display:block}.plan-list-name{color:var(--text);flex:1;font-weight:500;text-decoration:none}.nutrition-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.nutrition-grid div{background:var(--accent-bg);border-radius:8px;padding:8px}.nutrition-grid .num{color:var(--text-h);font-size:16px;font-weight:700}.recipe-pick-list{max-height:220px;margin-top:8px;overflow-y:auto}.backlog-list{flex-direction:column;gap:10px;display:flex}.backlog-item{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.backlog-item .actions{gap:6px;display:flex}select.day-select{width:auto}.empty{color:#999;text-align:center;padding:20px 0;font-size:13px}.modal-overlay{z-index:50;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:24px;overflow-y:auto}@media (width<=640px){.app{padding:0 12px 32px}.topbar{margin-bottom:16px;padding:12px 0}.topbar h1{font-size:18px}.topbar nav{gap:4px;width:100%;overflow-x:auto}.topbar nav a{white-space:nowrap;padding:8px 12px;font-size:14px}.row{flex-wrap:wrap}.row>.field{min-width:130px}.toolbar h2{font-size:18px}.recipe-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.nutrition-grid{grid-template-columns:repeat(2,1fr)}.week-grid{grid-auto-columns:minmax(150px,1fr);gap:10px}.week-header{width:100%}.month-label{font-size:18px}.ingredient-row{grid-template-columns:1fr 1fr}.ingredient-row .amount-input{text-align:left}.backlog-item{flex-wrap:wrap}.backlog-item .actions{justify-content:flex-end;width:100%}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:92vh;padding:16px}}:root{--text:#3a3a3a;--text-h:#111;--bg:#f7f7f7;--card-bg:#fff;--border:#e0e0e0;--accent:#2b2b2b;--accent-bg:#0000000f;--danger:#d33;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--text-h);margin:0 0 8px;font-weight:600}button,input,select,textarea{font:inherit}a{color:var(--accent);text-decoration:none}
