:root {
  --white:       #FDFCFA;
  --cream:       #F5F0E8;
  --beige-light: #EDE5D8;
  --beige:       #DDD0BF;
  --beige-dark:  #C4B09A;
  --brown-light: #A08060;
  --brown:       #7A5540;
  --brown-dark:  #5C3D2A;
  --brown-deep:  #3D2415;
  --green:       #4e8a4e;
  --green-bg:    #eaf3ea;
  --text:        #2C1A0E;
  --text-light:  #7A6050;
  --text-muted:  #A89080;
  --shadow:      rgba(92,61,42,0.10);
  --shadow-md:   rgba(92,61,42,0.18);
  --cork:        #b8864e;
  --fb-bg:       var(--cork);
  --fb-text:     #fff;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

body{font-family:'Lato',sans-serif;background:var(--cream);color:var(--text);min-height:100dvh}

/* LOGIN */
#login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--cream),var(--beige-light));padding:2rem}
.login-card{background:var(--white);border-radius:28px;padding:2.5rem 2rem 3rem;max-width:640px;width:100%;box-shadow:0 24px 64px var(--shadow-md);text-align:center}
.login-logo{font-family:'Cormorant Garamond',serif;font-size:3rem;font-weight:300;color:var(--brown-dark);letter-spacing:.04em;line-height:1;margin-bottom:.3rem}
.login-logo span{color:var(--brown-light)}
.login-domain{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2rem}
.login-prompt{font-size:.88rem;color:var(--text-light);margin-bottom:1.75rem;letter-spacing:.04em}

/* Profile tiles */
.profiles-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}
.profile-tile{display:flex;flex-direction:column;align-items:center;gap:.6rem;cursor:pointer;transition:transform .2s}
.profile-tile:hover{transform:translateY(-4px)}
.profile-tile:hover .p-avatar{box-shadow:0 0 0 3px var(--brown-light),0 8px 20px var(--shadow-md)}
.p-avatar{width:96px;height:96px;border-radius:22px;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:500;color:#fff;overflow:hidden;transition:box-shadow .2s;flex-shrink:0}
.p-avatar img{width:100%;height:100%;object-fit:cover}
.p-name{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:400;color:var(--brown-dark);letter-spacing:.02em}
.p-settings .p-avatar{background:var(--beige-light);color:var(--text-muted);font-size:1.6rem;border:2px dashed var(--beige-dark)}
.p-settings:hover .p-avatar{background:var(--beige);border-color:var(--brown-light)}
.p-settings .p-name{color:var(--text-muted)}

/* Color swatches */
.color-swatches{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.4rem}
.swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s;flex-shrink:0}
.swatch:hover{transform:scale(1.2)}
.swatch.picked{border-color:var(--brown-dark);transform:scale(1.15);box-shadow:0 0 0 2px #fff inset}

/* Settings modal profile list */
.sp-profile-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--beige-light)}
.sp-profile-row:last-child{border-bottom:none}
.sp-p-av{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:500;color:#fff;overflow:hidden;flex-shrink:0}
.sp-p-av img{width:100%;height:100%;object-fit:cover}

/* MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(44,26,14,.42);z-index:200;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(2px)}
.overlay.open{display:flex}
.modal{background:var(--white);border-radius:22px;padding:2rem;max-width:520px;width:100%;box-shadow:0 24px 64px rgba(0,0,0,.22);max-height:88vh;overflow-y:auto}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:400;color:var(--brown-dark);margin-bottom:1.4rem}

/* APP SHELL */
#app{display:none;min-height:100dvh;flex-direction:column}
#app.on{display:flex}
.app-header{background:var(--white);border-bottom:1px solid var(--beige);padding:0 1.75rem;height:62px;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:90;box-shadow:0 2px 10px var(--shadow)}
.app-logo{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:300;color:var(--brown-dark);letter-spacing:.04em;flex-shrink:0}
.app-logo span{color:var(--brown-light)}
.hspacer{flex:1}
.user-pill{display:flex;align-items:center;gap:.5rem;background:var(--beige-light);border-radius:999px;padding:.3rem .9rem .3rem .35rem;font-size:.85rem;color:var(--brown-dark)}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--brown);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}
.logout-btn{background:none;border:1.5px solid var(--beige-dark);border-radius:10px;padding:.3rem .8rem;font-size:.78rem;color:var(--text-light);cursor:pointer;font-family:'Lato',sans-serif;transition:all .2s}
.logout-btn:hover{border-color:var(--brown);color:var(--brown-dark)}

/* HAMBURGER */
.hamburger-btn{background:none;border:none;cursor:pointer;padding:.35rem;display:flex;flex-direction:column;gap:5px;flex-shrink:0;border-radius:8px;transition:background .2s}
.hamburger-btn:hover{background:var(--beige-light)}
.hamburger-btn span{display:block;width:22px;height:2px;background:var(--brown-dark);border-radius:2px;transition:all .25s}
.hamburger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger-btn.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.active-tab-label{font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--brown-dark);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}

/* SIDEBAR NAV */
.menu-backdrop{display:none;position:fixed;inset:0;background:rgba(44,26,14,.35);z-index:150;backdrop-filter:blur(1px)}
.menu-backdrop.open{display:block}
.side-nav{position:fixed;left:-300px;top:0;width:270px;height:100dvh;background:var(--white);z-index:151;box-shadow:4px 0 32px var(--shadow-md);transition:left .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}
.side-nav.open{left:0}
.side-nav-head{padding:1.4rem 1.5rem 1rem;border-bottom:1px solid var(--beige-light);flex-shrink:0}
.side-nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:300;color:var(--brown-dark);letter-spacing:.04em}
.side-nav-logo span{color:var(--brown-light)}
.side-nav-items{flex:1;overflow-y:auto;padding:.6rem 0;min-height:0}
.nav-item{display:flex;align-items:center;gap:.85rem;width:100%;background:none;border:none;padding:.78rem 1.5rem;font-family:'Lato',sans-serif;font-size:.9rem;color:var(--text-light);cursor:pointer;text-align:left;transition:all .18s;border-left:3px solid transparent}
.nav-item:hover{background:var(--cream);color:var(--brown-dark)}
.nav-item.on{background:var(--beige-light);color:var(--brown-dark);font-weight:700;border-left-color:var(--brown)}
.nav-item-icon{font-size:1.05rem;width:22px;text-align:center;flex-shrink:0}


/* CONTENT */
.content{flex:1;padding:2rem;max-width:1440px;margin:0 auto;width:100%}
.pane{display:none}
.pane.on{display:block}
.page-head{display:flex;align-items:baseline;gap:.9rem;margin-bottom:1.5rem;flex-wrap:wrap}
.page-title{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--brown-dark)}
.page-sub{font-size:.82rem;color:var(--text-muted)}

/* CARD */
.card{background:var(--white);border-radius:18px;padding:1.5rem;box-shadow:0 2px 14px var(--shadow);margin-bottom:1.5rem}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--brown-dark);margin-bottom:1rem}

/* FORMS */
.row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}
input[type=text],input[type=date],input[type=time],input[type=password],textarea,select{background:var(--white);border:1.5px solid var(--beige);border-radius:10px;padding:.6rem .95rem;font-family:'Lato',sans-serif;font-size:.88rem;color:var(--text);outline:none;transition:border-color .2s}
input[type=text]:focus,input[type=date]:focus,input[type=time]:focus,input[type=password]:focus,textarea:focus,select:focus{border-color:var(--brown-light)}
textarea{resize:vertical;min-height:80px;line-height:1.55}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath fill='%237A5540' d='M5.5 7L0 0h11z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.2rem}

.btn{background:var(--brown);color:#fff;border:none;border-radius:10px;padding:.6rem 1.2rem;font-family:'Lato',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.06em;cursor:pointer;white-space:nowrap;transition:all .2s}
.btn:hover{background:var(--brown-dark);transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow-md)}
.btn-ghost{background:var(--beige-light);color:var(--brown-dark)}
.btn-ghost:hover{background:var(--beige);box-shadow:0 4px 10px var(--shadow)}
.btn-danger{background:#b83232}
.btn-danger:hover{background:#962828}
.btn-sm{padding:.38rem .8rem;font-size:.76rem}
.icon-btn{width:34px;height:34px;border-radius:8px;flex-shrink:0;background:var(--beige-light);border:1.5px solid var(--beige);cursor:pointer;font-size:1.1rem;color:var(--brown);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;line-height:1}
.icon-btn:hover{background:var(--beige);border-color:var(--brown-light)}

/* SHOPPING */
.shop-layout{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}
.s-item{display:flex;align-items:center;gap:.7rem;padding:.72rem 0;border-bottom:1px solid var(--beige-light);transition:opacity .2s}
.s-item:last-child{border-bottom:none}
.s-item.done{opacity:.48}
.s-item.overdue{border-left:2.5px solid #e05050;padding-left:.5rem;margin-left:-.5rem}
.s-item.done .s-name{text-decoration:line-through}
.s-check{width:20px;height:20px;border:2px solid var(--beige-dark);border-radius:6px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:.72rem;color:transparent}
.s-check.ticked{background:var(--brown);border-color:var(--brown);color:#fff}
.s-name{flex:1;font-size:.93rem}
.for-tag{background:var(--beige-light);color:var(--brown);border-radius:999px;padding:.18rem .65rem;font-size:.72rem;font-weight:700;flex-shrink:0}
.x-btn{background:none;border:none;color:var(--beige-dark);cursor:pointer;font-size:1.1rem;padding:.15rem;transition:color .2s;flex-shrink:0;line-height:1}
.x-btn:hover{color:#b83232}
.shop-person-row{display:none;align-items:center;gap:.5rem;margin-bottom:.25rem;flex-wrap:wrap;padding:.6rem .75rem;background:var(--cream);border-radius:10px;margin-top:.25rem}

/* Custom select for "für wen" */
.cs-wrap{position:relative;flex-shrink:0}
.cs-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--white);border:1.5px solid var(--beige);border-radius:10px;padding:.6rem .95rem;cursor:pointer;font-size:.88rem;color:var(--text);transition:border-color .2s;user-select:none;min-width:120px;white-space:nowrap}
.cs-wrap.open .cs-trigger,.cs-trigger:hover{border-color:var(--brown-light)}
.cs-arrow{font-size:.65rem;color:var(--text-muted);flex-shrink:0}
.cs-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:100%;background:var(--white);border:1.5px solid var(--beige);border-radius:12px;box-shadow:0 8px 24px var(--shadow-md);z-index:150;overflow:hidden}
.cs-wrap.open .cs-dropdown{display:block}
.cs-opt{display:flex;align-items:center;justify-content:space-between;padding:.48rem .85rem;font-size:.88rem;cursor:pointer;color:var(--text);transition:background .12s;gap:.5rem}
.cs-opt:hover{background:var(--cream)}
.cs-opt.sel{background:var(--beige-light);font-weight:700}
.cs-opt-del{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:0 .1rem;line-height:1;transition:color .15s;flex-shrink:0}
.cs-opt-del:hover{color:#b83232}
.cs-sep{height:1px;background:var(--beige-light);margin:.2rem 0}
.cs-add-opt{color:var(--brown);font-size:.83rem;font-style:italic}

/* MEAL PLAN */
.mp-layout{display:grid;grid-template-columns:1fr 280px;gap:1.5rem}
@media(max-width:900px){.mp-layout{grid-template-columns:1fr}}
.week-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1.1rem}
.week-label{font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--brown-dark);flex:1;text-align:center}
.nav-arrow{background:var(--beige-light);border:1.5px solid var(--beige);border-radius:8px;padding:.38rem .8rem;cursor:pointer;font-size:.9rem;color:var(--brown-dark);transition:all .2s;font-family:'Lato',sans-serif}
.nav-arrow:hover{background:var(--beige);border-color:var(--brown-light)}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.65rem}
@media(min-width:901px){.week-row-top,.week-row-bot{display:contents}}
@media(max-width:900px){
  .week-grid{display:flex;flex-direction:column;gap:.65rem}
  .week-row-top{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}
  .week-row-top>.day-card{min-width:0;overflow:hidden}
  .week-row-bot{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}
  .week-row-bot>.day-card{min-width:0}
  .week-grid .day-card{padding:.5rem .4rem}
  .week-grid .meal-ta{height:36px;font-size:.8rem;padding:.25rem .35rem}
  .week-grid .meal-lbl{font-size:.55rem}
  .week-grid .day-short,.week-grid .day-num{font-size:.7rem}
  .bot-meal-row{display:flex;gap:.3rem}
  .bot-meal-row>.meal-slot{flex:1 0 0;min-width:0;margin:0}
  .week-row-bot .meal-lbl{font-size:.42rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .week-row-bot .meal-ta{height:60px}
}
.dash-greeting{margin-bottom:1.5rem}
.dash-hi{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--brown-dark);font-weight:500;line-height:1.1}
.dash-date{font-size:.82rem;color:var(--text-muted);margin-top:.25rem;letter-spacing:.03em}
.dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.dash-card{display:flex;flex-direction:column}
.dash-card-head{display:flex;align-items:center;gap:.5rem}
.dash-card-icon{font-size:1.1rem;flex-shrink:0}
.dash-card-title{font-size:.88rem;font-weight:700;color:var(--brown-dark);letter-spacing:.02em}
@media(max-width:600px){.dash-grid{grid-template-columns:1fr}}
.day-card{background:var(--white);border:1.5px solid var(--beige-light);border-radius:14px;padding:.9rem .8rem;box-shadow:0 2px 8px var(--shadow)}
.day-card.today{border-color:var(--brown-light);background:linear-gradient(150deg,var(--white) 60%,#f0e8dc)}
.day-short{font-size:.67rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.18rem}
.day-card.today .day-short{color:var(--brown)}
.day-num{font-family:'Cormorant Garamond',serif;font-size:1.25rem;color:var(--brown-dark);margin-bottom:.65rem}
.meal-slot{margin-bottom:.5rem}
.meal-slot:last-child{margin-bottom:0}
.meal-lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin-bottom:.18rem}
.meal-ta{width:100%;background:var(--cream);border:1px solid var(--beige);border-radius:8px;padding:.38rem .55rem;font-size:1rem;font-family:'Lato',sans-serif;color:var(--text);outline:none;resize:none;height:58px;line-height:1.35;transition:border-color .2s;overflow:hidden;box-sizing:border-box}
.meal-ta:focus{border-color:var(--brown-light);background:var(--white)}

/* WER IST DA – attendance chips */
.at-chip{display:inline-flex;align-items:center;padding:.22rem .6rem;border-radius:999px;font-size:.73rem;background:var(--beige-light);color:var(--text-muted);border:1.5px solid var(--beige);transition:all .15s;white-space:nowrap;cursor:default;user-select:none}
.at-chip.here{background:var(--green-bg);color:var(--green);border-color:var(--green);font-weight:700}
.at-chip.away{background:#fdeaea;color:#b83232;border-color:#e8aaaa;font-weight:700}
.at-chip.clickable{cursor:pointer}
.at-chip.clickable:not(.here):not(.away):hover{border-color:var(--brown-light);color:var(--text)}
.at-chip.clickable.here:hover{background:#d5ead5}
.at-chip.clickable.away:hover{background:#f9d5d5}
.at-chips{display:flex;flex-wrap:wrap;gap:.25rem}
.at-slot{margin-bottom:.55rem}
.at-slot:last-child{margin-bottom:0}
.at-slot-lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);margin-bottom:.22rem}
.at-week-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}

/* WISHES */
.wish-item{display:flex;align-items:center;gap:.55rem;padding:.6rem 0;border-bottom:1px solid var(--beige-light)}
.wish-item:last-child{border-bottom:none}
.wish-name{flex:1;font-size:.88rem}
.wish-by{font-size:.73rem;color:var(--text-muted);flex-shrink:0}
.wish-vote{display:flex;align-items:center;gap:.25rem;background:none;border:1.5px solid var(--beige);border-radius:20px;padding:.18rem .55rem;font-size:.78rem;cursor:pointer;color:var(--text-muted);transition:all .15s;flex-shrink:0;font-family:'Lato',sans-serif;line-height:1}
.wish-vote:hover{border-color:var(--brown-light);color:var(--brown-light)}
.wish-vote.voted{background:var(--brown-light);border-color:var(--brown-light);color:#fff}

/* RECIPES */
.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem}
.rc{background:var(--white);border:1.5px solid var(--beige-light);border-radius:18px;overflow:hidden;box-shadow:0 2px 12px var(--shadow);cursor:pointer;transition:transform .2s,box-shadow .2s}
.rc:hover{transform:translateY(-3px);box-shadow:0 10px 28px var(--shadow-md)}
.rc-img{width:100%;height:150px;background:linear-gradient(135deg,var(--beige-light),var(--beige));display:flex;align-items:center;justify-content:center;font-size:3rem;overflow:hidden}
.rc-img img{width:100%;height:100%;object-fit:cover}
.rc-body{padding:1rem}
.rc-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:500;color:var(--brown-dark);margin-bottom:.25rem}
.rc-meta{font-size:.73rem;color:var(--text-muted)}
.rc-desc{font-size:.82rem;color:var(--text-light);margin-top:.5rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.img-lbl{display:block;border:1.5px dashed var(--beige-dark);border-radius:12px;padding:1rem;text-align:center;cursor:pointer;transition:all .2s;overflow:hidden;color:var(--text-muted);font-size:.85rem}
.img-lbl:hover{border-color:var(--brown-light);background:var(--cream)}
.img-lbl img{width:100%;max-height:160px;object-fit:cover;border-radius:8px;display:block}
.fab{position:fixed;bottom:2rem;right:2rem;width:54px;height:54px;border-radius:50%;background:var(--brown);color:#fff;border:none;font-size:1.6rem;cursor:pointer;box-shadow:0 6px 20px var(--shadow-md);transition:all .2s;display:none;align-items:center;justify-content:center;z-index:80;line-height:1}
.fab:hover{background:var(--brown-dark);transform:scale(1.1)}
.fab.on{display:flex}

/* RECIPE DETAIL */
.rd-title{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:400;color:var(--brown-dark);margin-bottom:.4rem}
.sec-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brown);margin-bottom:.45rem}
.sec-box{background:var(--cream);border-radius:12px;padding:.9rem 1.1rem;margin-bottom:1rem}
.pre-text{font-size:.88rem;line-height:1.7;color:var(--text);white-space:pre-wrap}
.ing-row{display:flex;align-items:center;gap:.3rem}
.ing-amt{width:60px;text-align:right;padding:.3rem .4rem;font-size:.82rem}
.ing-unit{width:70px;font-size:.78rem;padding:.3rem .25rem;border:1.5px solid var(--beige);border-radius:8px;background:var(--beige-light);color:var(--text);font-family:'Lato',sans-serif;cursor:pointer;outline:none}
.ing-name{font-size:.82rem;flex:1}
.ing-del{background:none;border:none;cursor:pointer;color:rgba(0,0,0,.22);font-size:.95rem;line-height:1;padding:0 .15rem;flex-shrink:0;transition:color .15s}
.ing-del:hover{color:rgba(180,0,0,.7)}
.ing-det-row{display:flex;gap:.65rem;padding:.22rem 0;border-bottom:1px solid var(--beige-light);font-size:.85rem;align-items:baseline}
.ing-det-row:last-child{border-bottom:none}
.ing-det-qty{min-width:72px;text-align:right;font-weight:600;color:var(--brown-dark);flex-shrink:0}

/* GUESTS TAB */
.guest-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.guest-card{background:var(--white);border:1.5px solid var(--beige-light);border-radius:16px;padding:1.25rem;box-shadow:0 2px 10px var(--shadow)}
.guest-card-name{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:400;color:var(--brown-dark);margin-bottom:.2rem}
.guest-card-meta{font-size:.78rem;color:var(--text-muted);margin-bottom:.9rem;line-height:1.5}
.guest-card-meta strong{color:var(--text-light)}
.guest-card-meta a{color:var(--text-muted);text-decoration:none}
.guest-meal-row{display:flex;align-items:center;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}
.meal-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .75rem;border-radius:999px;font-size:.78rem;font-family:'Lato',sans-serif;font-weight:400;background:var(--beige-light);color:var(--text-muted);border:1.5px solid var(--beige);cursor:pointer;transition:all .18s;user-select:none}
.meal-toggle.on{background:var(--green-bg);color:var(--green);border-color:var(--green);font-weight:700}
.meal-toggle.off{background:#fdeaea;color:#b83232;border-color:#e8aaaa;font-weight:700}
.meal-toggle:hover:not(.on):not(.off){border-color:var(--brown-light);color:var(--text)}
.meal-toggle.on:hover{background:#d5ead5}
.meal-toggle.off:hover{background:#f9d5d5}
.meal-toggle .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.guest-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-bottom:.9rem}

/* PACKAGES */
.pak-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.75rem}

/* MONEY */
.money-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.geld-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.75rem}

/* CORKBOARD */
.corkboard{background:var(--cork);background-image:radial-gradient(ellipse at 15% 25%,rgba(255,255,255,.06) 0%,transparent 55%),radial-gradient(ellipse at 80% 75%,rgba(0,0,0,.08) 0%,transparent 55%),radial-gradient(ellipse at 50% 10%,rgba(255,255,255,.04) 0%,transparent 40%);border-radius:18px;padding:2.5rem 1.8rem 3rem;min-height:660px;position:relative;overflow:visible}
.sticky{width:190px;min-height:190px;padding:1.1rem 1rem .9rem;border-radius:3px 3px 10px 3px;position:absolute;box-shadow:3px 4px 10px rgba(0,0,0,.28),0 1px 3px rgba(0,0,0,.15);cursor:grab;transition:box-shadow .2s;word-break:break-word;font-family:'Lato',sans-serif;line-height:1.45;user-select:none}
.sticky:hover{box-shadow:5px 7px 18px rgba(0,0,0,.32);z-index:10}
.sticky.is-dragging{cursor:grabbing;z-index:200;box-shadow:10px 14px 35px rgba(0,0,0,.5);transition:none}
.sticky-pin{position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff7070,#b01818);box-shadow:0 2px 4px rgba(0,0,0,.4);touch-action:none;cursor:grab;z-index:5}
.sticky::after{content:'';position:absolute;bottom:max(env(safe-area-inset-bottom,0px),16px);right:0;width:20px;height:20px;background:inherit;filter:brightness(.88);clip-path:polygon(100% 0,100% 100%,0 100%)}
.sticky-del{position:absolute;top:.35rem;right:.4rem;background:none;border:none;cursor:pointer;color:rgba(0,0,0,.25);font-size:.9rem;line-height:1;padding:0;transition:color .15s}
.sticky-del:hover{color:rgba(180,0,0,.7)}
.sticky-by{font-size:.6rem;opacity:.5;letter-spacing:.04em}

/* FOTOBUCH */
.fotobuch{display:flex;background:var(--fb-bg);border-radius:3px 14px 14px 3px;box-shadow:-5px 0 14px var(--shadow-md),0 8px 32px var(--shadow-md),5px 0 10px var(--shadow);width:100%;max-width:720px;overflow:hidden}
.fb-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.6rem 1.4rem 2.2rem;position:relative;min-height:460px;background:var(--fb-bg)}
.fb-page img{max-width:100%;max-height:340px;object-fit:contain;border-radius:3px;box-shadow:0 2px 12px var(--shadow-md)}
.fb-pgnum{position:absolute;bottom:.6rem;font-size:.65rem;color:var(--fb-text);font-family:'Cormorant Garamond',serif;font-style:italic;opacity:.55}
.fb-quote-view{margin-top:.6rem;cursor:text;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:.95rem;text-align:center;padding:.25rem .4rem;border-radius:3px;min-height:1.8em;line-height:1.5;width:100%;box-sizing:border-box;transition:background .15s;color:var(--fb-text)}
.fb-quote-view:hover{background:rgba(128,128,128,.12)}
.fb-quote-edit{width:100%;box-sizing:border-box;resize:none;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:.95rem;text-align:center;border:none;border-bottom:1px solid rgba(128,128,128,.25);background:transparent;outline:none;padding:.3rem .2rem;color:var(--fb-text);min-height:2.6em;margin-top:.55rem;line-height:1.5}
.fb-del{position:absolute;top:.55rem;right:.6rem;background:rgba(128,128,128,.2);border:none;color:var(--fb-text);border-radius:50%;width:23px;height:23px;font-size:.9rem;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1;transition:background .15s,color .15s}
.fb-del:hover{background:#c03030;color:#fff}
.fb-page:hover .fb-del{display:flex}
.fb-spine{width:22px;background:linear-gradient(to right,var(--shadow-md),transparent 40%,rgba(255,255,255,.12) 60%,var(--shadow));flex-shrink:0;position:relative}
.fb-spine::after{content:'';position:absolute;top:0;bottom:0;left:7px;width:2px;background:rgba(255,255,255,.3)}
.fb-nav{background:none;border:none;font-size:3.8rem;color:var(--brown-light);cursor:pointer;padding:.2rem .4rem;transition:color .15s,transform .15s;line-height:1;flex-shrink:0;font-family:serif}
.fb-nav:hover:not(:disabled){color:var(--brown-dark);transform:scale(1.12)}
.fb-nav:disabled{opacity:.16;cursor:default;transform:none}
.fb-empty{color:var(--fb-text);opacity:.6;font-size:1rem;text-align:center;font-style:italic;font-family:'Cormorant Garamond',serif;line-height:1.7}
@keyframes fbFlip{0%{opacity:1;transform:none}35%{opacity:0;transform:perspective(700px) rotateY(-10deg) scaleX(.93)}100%{opacity:1;transform:none}}
.fb-anim{animation:fbFlip .38s ease}

/* TERMINE */
.term-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
@media(max-width:660px){.term-layout{grid-template-columns:1fr}}
.term-cal-wrap{background:var(--white);border-radius:14px;padding:1rem .9rem 1.2rem;border:1.5px solid var(--beige-light)}
.term-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}
.term-month-lbl{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:600;color:var(--brown-deep)}
.term-nav{background:none;border:none;cursor:pointer;color:var(--brown-light);font-size:1.1rem;padding:.1rem .5rem;border-radius:6px;transition:background .15s}
.term-nav:hover{background:var(--beige-light)}
.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3px}
.cal-dow{text-align:center;font-size:.62rem;font-family:'Lato',sans-serif;color:var(--text-muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.15rem 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-cell{text-align:center;padding:.2rem 0 .25rem;border-radius:7px;cursor:default;min-height:38px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.cal-cell.other-month .cal-day{color:var(--beige-dark)}
.cal-cell.today .cal-day{background:var(--brown);color:var(--white);font-weight:700;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;margin:0 auto}
.cal-day{font-size:.78rem;font-family:'Lato',sans-serif;color:var(--text);line-height:1.6}
.cal-dots{display:flex;gap:2px;justify-content:center;flex-wrap:wrap;padding:0 2px}
.cal-dot{width:4px;height:4px;border-radius:50%;background:#e8829a;flex-shrink:0}
.cal-cell.today .cal-dot{background:#fff}
.term-add-card{background:var(--white);border-radius:14px;padding:1.1rem 1rem 1rem;border:1.5px solid var(--beige-light)}
.term-add-card h3{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:600;color:var(--brown-deep);margin:0 0 .8rem}
.term-field-row{display:flex;gap:.5rem;margin-bottom:.5rem}
.term-field-row:last-of-type{margin-bottom:.75rem}
.term-field{flex:1;padding:.5rem .75rem;border:1.5px solid var(--beige);border-radius:10px;font-size:.86rem;font-family:'Lato',sans-serif;background:var(--white);color:var(--text);outline:none;transition:border-color .15s}
.term-field:focus{border-color:var(--brown-light)}
.term-list-wrap{margin-top:1.2rem;display:flex;flex-direction:column;gap:.65rem}
.term-group{}
.term-date-lbl{font-size:.7rem;font-family:'Lato',sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;padding-left:.2rem}
.term-item{display:flex;align-items:flex-start;gap:.6rem;background:var(--white);border:1.5px solid var(--beige-light);border-radius:11px;padding:.65rem .8rem}
.term-item.term-past{opacity:.5}.cal-dot-bday{background:#e8789a}
.term-time{min-width:38px;font-size:.8rem;font-family:'Lato',sans-serif;color:var(--brown-light);font-weight:700;padding-top:.05rem}
.term-title{font-size:.9rem;font-family:'Lato',sans-serif;color:var(--brown-deep);font-weight:600;line-height:1.3}
.term-desc{font-size:.8rem;color:var(--text-muted);margin-top:.2rem;line-height:1.4}
.term-by{font-size:.7rem;color:var(--beige-dark);margin-top:.25rem;letter-spacing:.02em}

/* ZAZU */
@keyframes zazuTailWag{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(22deg)}}
@keyframes alarmHorn{0%,100%{transform:rotate(-12deg) scale(1)}30%{transform:rotate(14deg) scale(1.15)}60%{transform:rotate(-8deg) scale(1.05)}}
.alarm-horn{font-size:2.8rem;display:inline-block;animation:alarmHorn .6s ease-in-out infinite;transform-origin:bottom center}
@keyframes zazuBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes zazuBobSlow{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes zazuZzz{0%{opacity:0;transform:translate(0,0) scale(.55)}45%{opacity:.9}100%{opacity:0;transform:translate(-5px,-16px) scale(1)}}
.zazu-tail{transform-origin:44px 49px;animation:zazuTailWag .85s ease-in-out infinite}
.zazu-tail-sm{transform-origin:32px 36px;animation:zazuTailWag .85s ease-in-out infinite}
.zazu-tail-sleep{transform-origin:58px 18px;animation:zazuTailWag 1.4s ease-in-out infinite}
.zazu-bob{animation:zazuBob 3.2s ease-in-out infinite}
.zazu-bob-slow{animation:zazuBobSlow 4s ease-in-out infinite}
.zazu-zzz1{animation:zazuZzz 3.6s ease-in-out infinite}
.zazu-zzz2{animation:zazuZzz 3.6s ease-in-out infinite .95s}
.zazu-zzz3{animation:zazuZzz 3.6s ease-in-out infinite 1.9s}
.zazu-corner{position:fixed;bottom:0;right:1.6rem;z-index:9;pointer-events:none;width:44px;opacity:.52}
.zazu-cork-deco{position:absolute;top:.8rem;right:1.2rem;pointer-events:none;width:66px;opacity:.62}

/* THEME DOTS */
.theme-dot{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:transform .15s,border-color .15s;flex-shrink:0;box-shadow:0 1px 4px var(--shadow)}
.theme-dot:hover{transform:scale(1.18)}
.theme-dot-on{border-color:var(--brown-dark) !important;transform:scale(1.15);box-shadow:0 0 0 2.5px var(--white) inset,0 1px 4px var(--shadow)}
/* THEME POPOVER */
.zazu-theme-wrap{position:relative;display:flex;align-items:center}
.zazu-theme-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;width:22px;height:26px;flex-shrink:0;margin-left:.35rem;opacity:.8;transition:opacity .15s}
.zazu-theme-btn:hover{opacity:1}
.zazu-theme-btn svg{width:22px;height:26px;display:block}
#theme-popover{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--white);border:1px solid var(--beige);border-radius:14px;padding:.65rem .8rem;display:none;flex-direction:row;gap:.5rem;align-items:center;box-shadow:0 6px 24px var(--shadow-md);z-index:200;white-space:nowrap}
#theme-popover.open{display:flex}
#theme-popover .theme-dot{width:24px;height:24px}

/* MISC */
.empty{text-align:center;padding:2.5rem 1rem;color:var(--text-muted)}
.empty-icon{font-size:2.8rem;margin-bottom:.6rem}
.empty-txt{font-size:.87rem}
.sep{height:1px;background:var(--beige-light);margin:.9rem 0}
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(80px);background:var(--brown-deep);color:#fff;padding:.7rem 1.4rem;border-radius:10px;font-size:.83rem;z-index:300;transition:transform .28s ease;pointer-events:none;white-space:nowrap}
.toast.show{transform:translateX(-50%) translateY(0)}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--beige-light)}
::-webkit-scrollbar-thumb{background:var(--beige-dark);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--brown-light)}

/* PIN overlay */
.pin-dots{display:flex;justify-content:center;gap:.6rem;margin:.75rem 0}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--beige-dark);transition:background .15s}
.pin-dot.filled{background:var(--brown)}

/* RESPONSIVE */
@media(max-width:768px){
  .shop-layout{grid-template-columns:1fr}
  #next-shop-card{position:static}
  .money-layout{grid-template-columns:1fr}
  .at-week-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .guest-form-grid{grid-template-columns:1fr 1fr}
  .pak-form-grid{grid-template-columns:1fr}
  .geld-form-grid{grid-template-columns:1fr}
  .at-week-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .guest-form-grid{grid-template-columns:1fr}
  .fotobuch{max-width:100%}
  .fb-page{min-height:280px;padding:1rem .8rem 1.8rem}
  #theme-popover{left:auto;right:0;transform:none}
  .zazu-theme-btn{width:20px;height:24px}
  .zazu-theme-btn svg{width:20px;height:24px}
}
@media(max-width:560px){
  .content{padding:1rem}
  .tab-btn{padding:.72rem .65rem;font-size:.68rem}
  .login-card{padding:2rem 1.25rem}
  .app-header{padding:0 1rem}
}
.side-nav-logout{position:absolute;bottom:max(env(safe-area-inset-bottom,0px),16px);left:0;right:0;padding:.85rem 1.5rem;background:var(--white);border-top:1px solid var(--beige-light);font-family:'Lato',sans-serif;font-size:.9rem;color:#b83232;cursor:pointer;border:none;text-align:left;letter-spacing:.02em}
.side-nav-logout:hover{background:var(--cream)}
.side-nav-items{padding-bottom:80px}

/* NAV BADGE */
.nav-badge{background:#b83232;color:#fff;border-radius:999px;font-size:.6rem;font-weight:700;padding:.1rem .45rem;margin-left:.45rem;min-width:18px;text-align:center;line-height:1.65;display:inline-block;vertical-align:middle}

/* MEAL RATING */
.meal-rating{display:flex;gap:.35rem;margin-top:.5rem;padding-top:.42rem;border-top:1px solid var(--beige-light)}
.rate-btn{background:none;border:1.5px solid var(--beige);border-radius:20px;padding:.18rem .52rem;font-size:.82rem;cursor:pointer;transition:all .15s;font-family:'Lato',sans-serif;line-height:1}
.rate-btn:hover{border-color:var(--brown-light)}
.rate-up-on{background:#eaf3ea;border-color:#4e8a4e}
.rate-down-on{background:#fdeaea;border-color:#b83232}

/* ABSTIMMUNG */
.abstm-item{display:flex;align-items:center;gap:.5rem;padding:.6rem 0;border-bottom:1px solid var(--beige-light)}
.abstm-item:last-child{border-bottom:none}
.abstm-text{flex:1;font-size:.88rem}
.abstm-meta{font-size:.72rem;color:var(--text-muted);flex-shrink:0}
.abstm-btns{display:flex;gap:.3rem;flex-shrink:0}
.abstm-btn{background:none;border:1.5px solid var(--beige);border-radius:20px;padding:.18rem .55rem;font-size:.78rem;cursor:pointer;color:var(--text-muted);transition:all .15s;flex-shrink:0;font-family:'Lato',sans-serif;line-height:1}
.abstm-btn:hover{border-color:var(--brown-light)}
.abstm-ja-on{background:#eaf3ea;border-color:#4e8a4e;color:#2a8a3e}
.abstm-nein-on{background:#fdeaea;border-color:#b83232;color:#b83232}

/* URLAUBSPLANER */
.url-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.65rem;margin-bottom:.75rem}
@media(max-width:600px){.url-form-grid{grid-template-columns:1fr}}
