:root{font-family:Segoe UI,system-ui,sans-serif;color:#263b35;background:#f6f7f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}aside{width:245px;background:#fff;padding:36px 24px;border-right:1px solid #e4e9df;position:fixed;height:100vh}.brand{font-size:23px;font-weight:750;letter-spacing:-1px}aside p{font-size:13px;color:#768078;margin:10px 0 42px}nav{display:grid;gap:9px}button,input,select,textarea{font:inherit}button{cursor:pointer}nav button{background:transparent;border:0;border-radius:12px;padding:14px;text-align:left;color:#5b6d63}nav button.active{background:#e9f1e7;color:#27533d;font-weight:700}.local{position:absolute;bottom:30px;color:#47755a;font-size:13px;line-height:1.9}.local small{color:#7c857e}main{margin-left:245px;padding:48px 5%;width:calc(100% - 245px);max-width:1500px}header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:32px}.eyebrow{font-size:11px;letter-spacing:2px;color:#839279;font-weight:700}h1{font-size:38px;letter-spacing:-1.5px;margin:12px 0}header p,#today{color:#758078;font-size:14px}#today{white-space:nowrap}.card{background:white;border:1px solid #e2e7dc;border-radius:18px;padding:24px;margin-bottom:20px}h2{font-size:19px;margin:0 0 20px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.stat{font-size:34px;font-weight:700;margin:12px 0;color:#3b654a}.muted{color:#7a857c;font-size:14px;line-height:1.6}form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}label{display:grid;gap:7px;font-size:13px;flex:1;min-width:140px}input,select,textarea{width:100%;border:1px solid #d7ded1;border-radius:9px;padding:11px;background:#fcfdf9;color:#263b35}textarea{min-height:100px}button.primary{background:#375e45;color:white;border:0;border-radius:9px;padding:12px 19px}.row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #edf0e8}.row:last-child{border:0}.row .text{flex:1;min-width:0;overflow-wrap:anywhere}.row input[type=checkbox]{width:20px;height:20px;accent-color:#375e45}.done{text-decoration:line-through;color:#859084}.delete{border:0;background:none;color:#94685c;padding:10px}.empty{padding:25px 0;color:#83907e}.badge{font-size:12px;background:#eff3e9;border-radius:6px;padding:4px 8px;display:inline-block;margin-top:7px}.wide{flex-basis:100%}#notice{color:#a13e30;margin-bottom:15px;white-space:pre-wrap}.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.day{background:#fff;border:1px solid #e2e7dc;border-radius:14px;padding:17px}.day h2{font-size:15px}.recipe-text{white-space:pre-wrap;font-size:14px;line-height:1.6}.week-tools{display:flex;align-items:center;gap:12px;margin-bottom:20px}.week-tools button{border:1px solid #d7ded1;background:white;border-radius:8px;padding:8px 14px}@media(max-width:760px){body{display:block}aside{position:static;width:100%;height:auto;padding:18px;border-right:0}.brand{font-size:22px}aside p,.local{display:none}nav{display:flex;overflow-x:auto;margin-top:18px;gap:4px}nav button{white-space:nowrap;padding:10px;font-size:13px}main{margin:0;width:100%;padding:26px 18px}h1{font-size:30px}#today{display:none}.card{padding:18px}header{margin-bottom:22px}}
/* Ruhige dunkle Oberflächen für alle Bereiche */
:root{color-scheme:dark;color:#e3e9e5;background:#111714}aside{background:#151d19;border-color:#2d3931}aside p,header p,#today,.muted,.local small{color:#a8b7ac}nav button{color:#b5c3b9}nav button.active{background:#293e31;color:#c3e7cd}.local,.eyebrow{color:#9ebca6}.card,.day{background:#1b241f;border-color:#344238}.stat{color:#b4d7bf}input,select,textarea{background:#141c17;border-color:#45574a;color:#e3e9e5}input::placeholder,textarea::placeholder{color:#93a598}button.primary{background:#a6cfb1;color:#14231a;font-weight:650}button.primary:hover{background:#b8ddc2}.row{border-color:#344238}.row input[type=checkbox]{accent-color:#a6cfb1}.done,.empty{color:#a2b2a7}.delete{color:#e5a69b}.badge{background:#2c3d30;color:#c2d8c8}#notice{color:#efb6a7}.week-tools button,.calendar-toolbar button,.event-actions button,#cancel-event{background:#243229;color:#d9e7dd;border:1px solid #485c4e;border-radius:8px;padding:8px 12px}button:hover{filter:brightness(1.12)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #b6ddc1;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.calendar-card{padding:20px;min-width:0}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.calendar-toolbar h2{margin:0;font-size:23px}.calendar-toolbar>div{display:flex;gap:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{color:#a6b7ac;text-align:center;font-size:12px;font-weight:600;padding:10px 0}.calendar-day{min-width:0;min-height:103px;background:#202c24;border:1px solid #36463b;color:#e3e9e5;border-radius:9px;text-align:left;padding:8px;display:flex;flex-direction:column;gap:5px;overflow:hidden}.calendar-day.outside{background:#18201b;color:#9ba99e}.calendar-day.selected{border:2px solid #acd6b8;padding:7px;background:#304638}.day-number{width:26px;height:26px;display:grid;place-items:center;font-size:13px}.is-today .day-number{border-radius:50%;background:#acd6b8;color:#14231a;font-weight:800}.calendar-event{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#3b5141;border-left:2px solid #b3d7bb;border-radius:3px;padding:3px 4px;font-size:11px;color:#eff5f0}.more{font-size:10px;color:#bacebf}.calendar-hint{margin-bottom:0;font-size:12px}.agenda h2{margin-top:15px;line-height:1.4}.agenda form{display:grid;gap:14px}.agenda label{min-width:0}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.agenda form p{margin:0;font-size:12px}.agenda-event{padding:16px 0;border-bottom:1px solid #35453a;overflow-wrap:anywhere}.event-time{color:#b4d7bf;font-size:12px;margin-bottom:8px}.event-actions{display:flex;gap:8px;margin-top:12px}.event-actions button{font-size:12px}hr{border:0;border-top:1px solid #3b4b40;margin:22px 0}main{max-width:1700px;padding-left:3%;padding-right:3%}@media(max-width:1150px){.calendar-layout{grid-template-columns:1fr}.agenda form{grid-template-columns:1fr 1fr}.agenda form p,.agenda form>label:last-of-type{grid-column:1/-1}}@media(max-width:760px){main{padding:26px 12px}.calendar-card{padding:12px}.calendar-toolbar h2{font-size:19px}.calendar-toolbar button{padding:7px 10px}.calendar-day{min-height:80px;padding:4px;border-radius:6px}.calendar-day.selected{padding:3px}.calendar-grid{gap:3px}.calendar-event{font-size:10px;padding:2px}.agenda form{grid-template-columns:1fr}.calendar-toolbar{gap:8px}.day-number{width:23px;height:23px}}
.undo-task{background:transparent;border:0;color:#b4d7bf;padding:8px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.event-title{font-size:16px;margin:10px 0;line-height:1.4}
.shopping-toolbar,.shopping-actions,.shopping-undo{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.shopping-toolbar{justify-content:space-between}.shopping-toolbar h2{margin:0 0 8px}.secondary{background:#243229;color:#d9e7dd;border:1px solid #485c4e;border-radius:9px;padding:11px 16px}.shopping-undo{justify-content:space-between;background:#293e31;border-radius:10px;padding:12px;margin:16px 0;color:#c3e7cd;font-size:14px}button:disabled{cursor:default}
.food-title{margin:16px 0 12px;line-height:1.35}.food-meta{display:flex;gap:12px;flex-wrap:wrap;color:#c4d3c7;font-size:13px;padding:12px 0;border-block:1px solid #344238}.book-form{margin-top:22px}.cookbook-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}summary{cursor:pointer;font-weight:650;color:#c3e7cd;padding:6px 0}.recipe-details{margin:16px 0}.recipe-details h3{font-size:15px;margin:20px 0 10px}.recipe-details li{line-height:1.65;margin-bottom:12px;padding-left:5px}.recipe-details ol{padding-left:22px}.source-link{color:#b4d7bf}.cookbook-intro{background:linear-gradient(120deg,#293e31,#1b241f)}.cookbook-intro h2{margin-top:14px}.book-form textarea{min-height:85px}
.food-photo{margin:-24px -24px 18px;position:relative}.food-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:17px 17px 0 0}.food-photo figcaption{position:absolute;bottom:8px;right:8px;background:#111b15cf;color:#e0e9e1;padding:4px 7px;border-radius:4px;font-size:10px}@media(max-width:760px){.food-photo{margin:-18px -18px 18px}}
.calendar-task-check{display:flex;align-items:center;gap:10px}.calendar-task-check input{width:20px;height:20px;accent-color:#a6cfb1}
.access-page{display:block}.access-page main{margin:0 auto;width:100%;max-width:680px;padding:40px 20px}.access-page form{display:grid;gap:16px}.access-page [hidden]{display:none!important}.access-page #network-info{overflow-wrap:anywhere}.access-page #access-result{line-height:1.6;color:#b4d7bf}
.mobile-event-count{display:none}
@media(max-width:760px){
 body{font-size:14px}aside{padding:10px 12px}.brand{font-size:19px;letter-spacing:-.5px}nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:9px;overflow:visible}nav button{min-height:42px;padding:7px 3px;font-size:12px;text-align:center;border-radius:8px;white-space:normal}main{padding:14px 10px 24px}header{margin-bottom:12px;gap:8px}header .eyebrow,header #intro{display:none}h1{font-size:25px;letter-spacing:-.7px;margin:0}h2{font-size:17px;margin-bottom:12px}.card{padding:12px;border-radius:12px;margin-bottom:12px;min-width:0}.grid{gap:9px;grid-template-columns:1fr}.grid:has(>.card>.stat){grid-template-columns:repeat(3,minmax(0,1fr))}.grid:has(>.card>.stat) .card{padding:10px 8px}.grid:has(>.card>.stat) .muted{font-size:11px;line-height:1.3}.stat{font-size:25px;margin:8px 0 0}.muted{font-size:12px;line-height:1.45}.row{gap:7px;padding:10px 0;flex-wrap:wrap}.row .text{flex:1 1 120px;font-size:14px}.row .secondary{font-size:12px;padding:8px;min-height:40px}.row .delete{min-width:40px;min-height:40px;padding:8px}.row input[type=checkbox]{flex-shrink:0;width:23px;height:23px;margin:8px 2px}.badge{font-size:11px;line-height:1.45;padding:3px 6px;margin-top:4px}.empty{padding:13px 0}.mobile-form summary{min-height:42px;display:flex;align-items:center;font-size:14px}.mobile-form[open] summary{margin-bottom:12px}.mobile-form form{margin:0}form{gap:10px}label{min-width:0;flex-basis:calc(50% - 10px);font-size:12px;gap:5px}label:has(input[name=title]),label.wide{flex-basis:100%}input,select,textarea{font-size:16px;padding:9px;min-height:42px;min-width:0}textarea,.book-form textarea{min-height:74px}button.primary,.secondary{min-height:42px;padding:10px 12px;font-size:13px}.wide{flex-basis:100%}.mobile-form form>p{margin:2px 0;font-size:11px}.week-tools{gap:8px;margin-bottom:12px;font-size:13px}.week-tools button{min-height:42px;min-width:42px}.week{grid-template-columns:1fr;gap:7px;margin-bottom:12px}.day{padding:10px 12px;border-radius:10px;display:grid;grid-template-columns:85px minmax(0,1fr);column-gap:10px;align-items:center}.day h2{margin:0;font-size:13px}.day .row{padding:4px 0;grid-column:2}.day .empty{padding:5px 0;font-size:12px}.shopping-toolbar{gap:10px}.shopping-actions{width:100%;gap:8px}.shopping-actions button{flex:1}.shopping-undo{padding:10px;gap:8px}.calendar-layout{gap:0}.calendar-toolbar{margin-bottom:8px}.calendar-toolbar h2{font-size:17px}.calendar-toolbar button{min-width:40px;min-height:42px}.weekday{padding:7px 0;font-size:11px}.calendar-day{min-height:48px;height:48px;padding:3px;align-items:center;gap:1px}.calendar-day.selected{padding:2px}.calendar-day .calendar-event,.calendar-day .more{display:none}.mobile-event-count{display:block;color:#b9d6c2;font-size:10px;line-height:12px}.calendar-hint{font-size:11px;margin:9px 0 0}.agenda h2{margin-top:8px;font-size:17px}.agenda-event{padding:10px 0}.event-title{margin:7px 0;font-size:15px}.event-actions{flex-wrap:wrap;gap:6px;margin-top:8px}.event-actions button{min-height:42px}.agenda hr{margin:14px 0}.agenda form{gap:10px;grid-template-columns:1fr}.food-photo{margin:-12px -12px 12px}.food-photo img{height:155px;aspect-ratio:auto;border-radius:11px 11px 0 0}.food-title{font-size:17px;margin:10px 0}.food-meta{padding:9px 0;font-size:12px;gap:10px}.recipe-details{margin:10px 0}.recipe-details summary,details.card>summary{min-height:42px;align-content:center}.recipe-text{font-size:13px;line-height:1.5}.book-form{margin-top:12px}.access-page main{padding:20px 12px}.access-page h1{margin:18px 0}.access-page form label{display:grid}
}
/* Einkaufsliste: kurze Zeilen ohne zusätzliche vertikale Ränder. */
.shopping-compact .card{margin-bottom:10px;padding:14px}
.shopping-compact .row{padding:2px 0;gap:8px;flex-wrap:nowrap;min-height:40px}
.shopping-compact .row .text{flex:1;line-height:1.3}
.shopping-compact .row input[type=checkbox]{margin:0 8px 0 0;width:22px;height:22px;flex-shrink:0}
.shopping-compact .row .delete{padding:5px 9px;min-width:40px;min-height:40px;font-size:20px}
.shopping-compact .shopping-toolbar{margin-bottom:8px;gap:8px}
.shopping-compact .shopping-toolbar h2{margin:0 0 3px;font-size:16px}
.shopping-compact .shopping-help{border-top:1px solid #344238;margin-top:5px;padding-top:4px}
.shopping-compact .shopping-help summary{font-size:12px;color:#a8b7ac;font-weight:400;min-height:36px;align-content:center}
.shopping-compact .shopping-help p{margin:4px 0;font-size:12px}
.shopping-compact .shopping-undo{margin:7px 0;padding:8px}
@media(max-width:760px){
 .shopping-compact .card{padding:10px;margin-bottom:8px}
 .shopping-compact form{display:flex;flex-wrap:nowrap;gap:7px}
 .shopping-compact form label{flex:1;min-width:0;font-size:11px;gap:3px}
 .shopping-compact form button{flex-shrink:0;padding:9px 10px}
 .shopping-compact .shopping-toolbar{gap:7px;margin-bottom:5px}
 .shopping-compact .shopping-actions{gap:7px}
 .shopping-compact .shopping-actions button{padding:8px;font-size:12px;min-height:40px}
 .shopping-compact .row{padding:0;min-height:40px}
 .shopping-compact .row .text{font-size:14px}
}
.shopping-add-input{flex:1;min-width:0}.shopping-add-input:focus::placeholder{color:transparent}

/* Desktop: Inhalt 20 px näher an die Seitenüberschrift. */
@media(min-width:761px){main>header{margin-bottom:12px}}
/* Abstand zwischen Wochenplan und Zutatenübernahme. */
.week + .card{margin-top:20px}
.member-green{color:#b4dfbf!important}.member-blue{color:#9fcaff!important}.member-purple{color:#d1b2ff!important}.member-orange{color:#ffc18c!important}.member-pink{color:#f6b2d4!important}.member-yellow{color:#ead789!important}.member-dot{font-size:24px}.autostart-toggle{display:flex;align-items:center;gap:12px;line-height:1.5}.autostart-toggle input{width:24px;height:24px;min-height:24px;accent-color:#a6cfb1}form[data-kind=members]{margin-top:18px}
.download-action{display:inline-flex;align-items:center;text-decoration:none;font-size:13px;line-height:1.4}.event-actions:has(.download-action){flex-wrap:wrap}
/* Eigenes Hauszeichen mit Haken: Zuhause und gemeinsam erledigt. */
.brand{display:flex;align-items:center;gap:10px;font-size:19px;letter-spacing:-.6px;line-height:1.2}
.brand-mark{display:block;width:38px;height:38px;flex:none;filter:drop-shadow(0 3px 7px #0003)}
.brand span{white-space:nowrap}
@media(max-width:760px){.brand{font-size:18px;gap:9px}.brand-mark{width:32px;height:32px}}

#sync-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;color:var(--muted);font-size:12px}#sync-status:empty{display:none}#sync-status small{flex-basis:100%}#sync-status button,#sync-status a{font-size:12px;padding:5px 9px}.sync-conflict{flex-basis:100%;padding:12px;border:1px solid #bb9363;border-radius:10px}.sync-conflict pre{white-space:pre-wrap;overflow-wrap:anywhere}.sync-conflict button{margin:5px}

#settings-sync-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px}#settings-sync-status small{flex-basis:100%}

@media(max-width:760px){.overview-stats{align-items:stretch}.overview-stats>.card{display:flex;flex-direction:column;height:100%;margin-bottom:0}.overview-stats>.card>.muted{flex:1;min-height:2.6em}.overview-stats>.card>.stat{flex:none}.overview-stats{margin-bottom:12px}}

.entry-add{margin-bottom:14px}.entry-editor>summary{cursor:pointer;font-weight:600;padding:8px 0;min-height:42px}.entry-editor[open]>summary{margin-bottom:12px}.entry-editor form{scroll-margin-top:20px}.entry-editor form>.secondary{min-height:42px}
/* Wochenkarten: Namen über den Aktionen statt zwischen die Buttons quetschen. */
.week .day{min-width:0}
.week .day .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.week .day .row .text{grid-column:1 / -1;min-width:0}
.week .day .row .secondary{justify-self:start;padding:8px 10px;font-size:13px;max-width:100%}
.week .day .row .delete{justify-self:end}

/* Schichtwochen bleiben auch im kompakten mobilen Kalender lesbar. */
.shift-mid{--shift-color:#f2bb79;--shift-bg:#3c3022}
.shift-early{--shift-color:#99d7ca;--shift-bg:#213b35}
.shift-night{--shift-color:#c5b4f4;--shift-bg:#332d47}
.shift-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px;font-size:12px;color:var(--muted)}
.shift-legend>span[class]{color:var(--shift-color);background:var(--shift-bg);padding:5px 8px;border-radius:6px}
.shift-week{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:7px;padding:7px 10px;border-left:3px solid var(--shift-color);border-radius:6px;background:var(--shift-bg);color:var(--shift-color);font-size:12px}
.shift-week span{font-size:11px;text-align:right}
.shift-selected{padding:9px 10px;margin:10px 0;border-left:3px solid var(--shift-color);border-radius:6px;background:var(--shift-bg);color:var(--shift-color);font-size:13px}
@media(max-width:760px){.shift-legend{gap:4px;font-size:10px}.shift-legend>span[class]{padding:4px 5px}.shift-week{font-size:11px;padding:5px 7px;margin-top:4px}.shift-week span{font-size:10px}}

.shift-free{--shift-color:#c1cbc5;--shift-bg:#303b35}
.shift-editor{margin:0 0 14px;border:1px solid #45574a;border-radius:8px;padding:0 10px}
.shift-editor>summary{color:#c3e7cd;font-size:13px}
.shift-editor form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 0;border-top:1px solid #45574a}
.shift-editor form h3,.shift-editor form p,.shift-editor .event-actions{grid-column:1/-1;margin:0}
.shift-feedback{color:#efb6a7;font-size:13px}.shift-feedback:empty{display:none}
.shift-editor label{min-width:0}.shift-editor input,.shift-editor select{width:100%;min-width:0}
@media(max-width:760px){.shift-editor form{grid-template-columns:1fr}.shift-exceptions .row{font-size:12px}}

.calendar-add-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.calendar-add-actions .entry-add{margin:0}.calendar-add-actions button{flex:1 1 auto}
.calendar-dialog{width:min(680px,calc(100% - 24px));max-height:90dvh;overflow:auto;box-sizing:border-box;background:#1b241f;color:#e3e9e5;border:1px solid #526b59;border-radius:16px;padding:22px}
.calendar-dialog::backdrop{background:#000a}.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.dialog-heading h2{margin:0;font-size:22px}.dialog-heading button{font-size:22px;min-width:42px}
.calendar-dialog .shift-editor{padding:0;border:0;margin:0}.calendar-dialog form{display:grid;gap:14px}.vacation-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vacation-dates input{width:100%;min-width:0}.vacation-dates label{min-width:0}
.vacation-person{display:flex;align-items:center;gap:10px;margin:10px 0}.vacation-person input{width:20px;height:20px;min-height:20px;accent-color:currentColor}.calendar-dialog fieldset{border:1px solid #45574a;border-radius:8px}
.calendar-day.vacation-orange{background:#614023;border-color:#db9b5f;color:#fff0de}.calendar-day.vacation-purple{background:#493565;border-color:#a48ace;color:#f5eaff}.calendar-day.vacation-both{background:linear-gradient(90deg,#614023 0%,#614023 50%,#493565 50%,#493565 100%);border-color:#c5a0c8;color:#fff}.calendar-day.vacation-other{background:#355444}
.calendar-day.selected[class*="vacation-"]{outline:2px solid #e6efe9;outline-offset:-3px}.calendar-day[class*="vacation-"] .calendar-event{background:#18251dde}.calendar-day[class*="vacation-"] .mobile-event-count{color:#fff}
@media(max-width:760px){.calendar-dialog{padding:16px}.dialog-heading h2{font-size:19px}.vacation-dates{grid-template-columns:1fr}.calendar-dialog .shift-editor form{grid-template-columns:1fr}}

.calendar-add-actions{flex-direction:column}

.vacation-cell-label{display:block;font-size:11px;line-height:1.25;color:#fff7ef;white-space:normal;overflow-wrap:anywhere;max-width:100%;text-align:left}

@media(max-width:760px){.calendar-day:has(.vacation-cell-label){height:auto;min-height:64px}.calendar-day .vacation-cell-label{font-size:9px;line-height:1.15;text-align:center}}
