*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-tap-highlight-color:transparent}
body{font-family:"DM Sans",system-ui,sans-serif;background:#F7F2EA;color:#2B1A10;min-height:100vh;overflow-x:hidden}
:root{
--bg:#F9F5EF;--card:#FFFFFF;--terra:#B85432;--terra2:#9C4529;--brown:#17210F;
--sage:#4A7A3C;--sage2:#3A6030;--sage-lt:#EBF3E6;--sage-md:#C8E0BE;
--border:#E2D4C4;--border2:#D0BFA8;--text-md:#7A5C48;--text-lt:#B8967E;
--red:#DC2626;--red-lt:#FEE2E2;--yellow:#FEF3C7;--yellow-dk:#92400E;
--blue:#1D6FA4;--blue-lt:#EAF4FB;--white:#FFFFFF;
--serif:"Playfair Display",Georgia,serif;
--radius:16px;--radius-sm:10px;--radius-lg:24px;
--shadow:0 2px 12px rgba(43,26,16,.08);--shadow-md:0 6px 24px rgba(43,26,16,.12);
--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);
}
.brand-avatar{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:visible;background:#e7efe2;border:2px solid rgba(255,255,255,.55);position:relative;flex-shrink:0}
.brand-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.brand-avatar.mini{width:32px;height:32px}.brand-avatar.tiny{width:32px;height:32px}
.duffie-chef::before,.duffie-chef::after{display:none}
.brand-mark{display:flex;align-items:center;gap:12px;font-weight:800;color:#fff;font-size:23px}
.brand-text{display:inline-flex;gap:0;align-items:baseline;white-space:nowrap;word-spacing:0;letter-spacing:0}
.brand-text span{color:#90B84A}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-family:"DM Sans",sans-serif;font-size:14px;font-weight:500;transition:all .18s;white-space:nowrap;-webkit-appearance:none}
.btn-p{background:var(--terra);color:#fff}.btn-s{background:var(--sage-lt);color:var(--sage)}
.btn-b{background:var(--blue-lt);color:var(--blue)}.btn-g{background:transparent;color:var(--text-md)}
.btn-d{background:var(--red-lt);color:var(--red)}.btn-outline{background:transparent;color:var(--terra);border:1.5px solid var(--terra)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;font-size:18px;background:transparent;color:var(--text-md)}
.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius);font-weight:600}
input:not([type=checkbox]):not([type=radio]),textarea,select{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--border);font-family:"DM Sans",sans-serif;font-size:15px;color:var(--brown);background:var(--white);outline:none;transition:border-color .18s;-webkit-appearance:none;appearance:none}
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus{border-color:var(--sage)}
textarea{resize:vertical;min-height:80px}
.alert{border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;line-height:1.4;margin-top:10px}
.alert-err{background:var(--red-lt);color:var(--red)}.alert-ok{background:var(--sage-lt);color:var(--sage2)}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{display:flex;flex-direction:column;align-items:center;padding:28px 20px;gap:10px}
.spin-ring{width:28px;height:28px;border:3px solid var(--sage-lt);border-top:3px solid var(--sage);border-radius:50%;animation:spin .8s linear infinite}
.spinner p{color:var(--text-md);font-size:13px}
.duffie-loading{position:fixed;inset:0;z-index:900;background:rgba(8,20,10,.72);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(8px)}
.duffie-loading-card{width:min(360px,92vw);background:#fff;border-radius:28px;padding:24px 22px;text-align:center;box-shadow:0 26px 70px rgba(0,0,0,.28);border:1px solid var(--border)}
.duffie-loading-card img{width:150px;max-width:58vw;height:auto;display:block;margin:0 auto 12px;filter:drop-shadow(0 14px 20px rgba(43,26,16,.16))}
.duffie-loading-card .spin-ring{margin:0 auto 12px}
#duffie-loading-title{font-family:var(--serif);font-size:24px;font-weight:800;color:var(--brown);margin-bottom:5px}
#duffie-loading-text{font-size:14px;line-height:1.45;color:var(--text-md)}
.tags{display:flex;gap:5px;flex-wrap:wrap}
.tag{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500}
.tag-sage{background:var(--sage-lt);color:var(--sage2)}.tag-yellow{background:var(--yellow);color:var(--yellow-dk)}
.tag-green{background:#E8F3E4;color:#3A6B30}.tag-blue{background:var(--blue-lt);color:var(--blue)}
.tab-bar{display:flex;background:var(--sage-lt);border-radius:var(--radius-sm);padding:4px;gap:2px}
.tab-bar button{flex:1;padding:9px 8px;border:none;border-radius:8px;cursor:pointer;font-family:"DM Sans",sans-serif;font-size:13px;background:transparent;color:var(--text-md);transition:all .18s;display:inline-flex;align-items:center;justify-content:center;gap:5px;line-height:1.1;min-width:0}
.tab-bar button span{display:inline-flex;align-items:center;line-height:1}
.tab-bar button.active{background:var(--white);color:var(--brown);font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.profile-stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px;width:100%;max-width:520px;margin-left:auto;margin-right:auto}
.profile-stats-row>button{text-align:center;min-width:0;border:none;background:rgba(255,255,255,.08);border-radius:14px;padding:8px 4px;color:#fff;cursor:pointer;font-family:"DM Sans",sans-serif}
.profile-stats-row>button:active{transform:scale(.98)}
.profile-stats-row>button>div{font-size:20px;font-weight:700;color:#fff;line-height:1.1}
.profile-stats-row small{display:block;font-size:11px;opacity:.72;line-height:1.2;margin-top:4px;color:#fff}
.overlay{position:fixed;inset:0;background:rgba(20,10,4,.55);display:flex;align-items:flex-end;justify-content:center;z-index:300;padding:0;backdrop-filter:blur(4px)}
@media(min-width:600px){.overlay{align-items:center;padding:20px}}
.modal{background:var(--white);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;box-shadow:0 16px 48px rgba(43,26,16,.18);padding-bottom:calc(20px + var(--safe-b))}
@media(min-width:600px){.modal{border-radius:var(--radius-lg);max-height:88vh;padding-bottom:0}}
.modal-handle{width:40px;height:4px;background:var(--border2);border-radius:2px;margin:12px auto 0}
.modal-body{padding:20px 22px 24px}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.modal-title{font-family:var(--serif);font-size:22px;color:var(--brown)}
#screen-auth{min-height:100vh;background:#07190D;display:none;flex-direction:column;position:relative;z-index:50}
#screen-app{display:none;min-height:100vh;padding-bottom:calc(var(--nav-h) + var(--safe-b))}
.app-header{background:rgba(255,255,255,.86);border-bottom:1px solid rgba(226,212,196,.75);padding:0 16px;position:sticky;top:0;z-index:100;box-shadow:0 12px 30px rgba(43,26,16,.04);backdrop-filter:blur(16px)}
.app-header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:62px}
.header-logo{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:22px;color:var(--brown);font-weight:800;cursor:pointer}
.header-user-area{display:flex;align-items:center;gap:8px;position:relative}
.header-profile-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--sage-lt);display:none;align-items:center;justify-content:center;padding:0;overflow:hidden;cursor:pointer}
.header-menu-btn{width:36px;height:36px;border:none;border-radius:12px;background:var(--sage-lt);color:var(--sage);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1}
.app-menu{position:absolute;top:46px;right:0;width:210px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 48px rgba(43,26,16,.16);padding:8px;z-index:250}
.app-menu button{width:100%;border:none;background:transparent;text-align:left;padding:10px 12px;border-radius:11px;color:var(--brown);font-family:"DM Sans",sans-serif;font-weight:700;cursor:pointer}
.app-menu button:hover{background:var(--sage-lt)}
.app-menu .danger-link{color:#c0392b}
.app-menu hr{border:none;border-top:1px solid var(--border);margin:6px 4px}
.profile-edit-toggle{width:100%;border:0;background:var(--sage-lt);border-radius:16px;padding:14px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;color:var(--brown);font-family:"DM Sans",sans-serif}
.profile-edit-toggle span{font-family:var(--serif);font-size:20px;font-weight:800;color:var(--brown)}
.profile-edit-toggle small{font-size:12px;color:var(--text-md);line-height:1.35;text-align:right;font-weight:600}
.vegan-import-toggle{display:flex;align-items:flex-start;gap:10px;background:var(--sage-lt);border:1px solid var(--sage-md);border-radius:14px;padding:11px 12px;margin-top:12px;color:var(--brown);font-size:13px;font-weight:700;line-height:1.35;cursor:pointer}
.vegan-import-toggle input{width:18px;height:18px;accent-color:var(--sage);margin-top:0;flex-shrink:0}
.header-profile-btn img,#bottom-profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
#bottom-profile-avatar{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:22px;line-height:1}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(72px + var(--safe-b));padding:8px 12px var(--safe-b);background:rgba(255,255,255,.94);border-top:1px solid rgba(226,212,196,.8);display:flex;align-items:center;z-index:200;box-shadow:0 -10px 30px rgba(43,26,16,.08);backdrop-filter:blur(16px);border-radius:28px 28px 0 0}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;cursor:pointer;padding:8px 4px 0;color:var(--text-lt);font-family:"DM Sans",sans-serif;-webkit-appearance:none;transition:color .18s}
.nav-item.active{color:var(--sage)}
.nav-icon{font-size:22px;line-height:1}.nav-label{font-size:10px;font-weight:500}
.nav-create-btn{background:linear-gradient(135deg,#6FA53C,#2A5C35);color:#fff;border-radius:50%;width:58px;height:58px;display:flex;align-items:center;justify-content:center;font-size:34px;line-height:1;margin-top:-26px;box-shadow:0 10px 28px rgba(42,92,53,.35);border:5px solid #fff;cursor:pointer;flex-shrink:0;font-weight:300}
@media(min-width:768px){
  .top-nav{display:flex!important;gap:4px}
  .top-nav button{padding:9px 15px;border:none;border-radius:14px;cursor:pointer;font-family:"DM Sans",sans-serif;font-size:14px;background:transparent;color:var(--text-md);transition:all .18s}
  .top-nav button.active{background:var(--sage-lt);color:var(--sage);font-weight:800}
  #tnav-profile{display:none}
  .header-profile-btn{display:flex}
  .bottom-nav{display:none!important}
  #screen-app{padding-bottom:0}
  #duffie-float{bottom:24px!important;right:24px!important;z-index:520!important}
  #duffie-bubble{bottom:78px!important;width:320px!important}
}
.top-nav{display:none}
.main-content{max-width:1180px;margin:0 auto;padding:24px 16px 18px}
@media(min-width:600px){.main-content{padding:34px 24px 30px}}
.landing-page{min-height:100vh;background:radial-gradient(circle at 83% 18%,rgba(144,184,74,.25),transparent 26%),linear-gradient(135deg,#07170C 0%,#0D2413 48%,#09180E 100%);color:#fff;overflow:hidden}
.landing-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1280px;margin:0 auto;padding:22px clamp(18px,5vw,64px)}
.landing-nav-actions{display:flex;align-items:center;gap:10px}
.landing-login{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:13px;font-weight:800}
.landing-cta{background:#93B94D;color:#fff;border-radius:13px;font-weight:800}
.auth-back-btn{margin-bottom:12px;padding-left:0}
.landing-page.auth-only .landing-nav,
.landing-page.auth-only .landing-hero,
.landing-page.auth-only .landing-steps{display:none}
.landing-page:not(.auth-only) .auth-section{display:none}
.landing-page.auth-only{background:var(--bg);min-height:100vh}
.landing-page.auth-only .auth-section{min-height:100vh;justify-content:center}
.landing-hero{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);gap:32px;align-items:center;padding:30px clamp(22px,5vw,70px) 40px;min-height:680px}
.landing-copy h1{font-family:var(--serif);font-size:clamp(54px,7vw,92px);line-height:.95;letter-spacing:0;color:#fff;margin-bottom:24px}
.landing-copy h1 span{color:#A5C65F}
.landing-copy p{font-size:21px;line-height:1.55;color:rgba(255,255,255,.84);max-width:560px;margin-bottom:28px}
.landing-actions{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:34px}
.landing-start{background:linear-gradient(135deg,#9FC85B,#5C8A32);color:#fff;border-radius:14px;box-shadow:0 16px 32px rgba(107,151,57,.22)}
.landing-secondary{background:transparent;color:#fff;border:1.5px solid rgba(165,198,95,.75);border-radius:999px}
.landing-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;color:rgba(255,255,255,.78);font-size:14px;max-width:720px}
.landing-benefits span{display:block;border-top:1px solid rgba(255,255,255,.14);padding-top:12px}
.landing-visual{position:relative;min-height:570px;display:flex;align-items:center;justify-content:center;overflow:visible}
.phone-mock{width:278px;background:#F9F5EF;color:var(--brown);border-radius:42px;border:10px solid #1B1D18;box-shadow:0 24px 70px rgba(0,0,0,.45);padding:26px 18px 20px;transform:rotate(7deg);position:relative;z-index:2}
.phone-head{font-size:12px;font-weight:800;margin-bottom:24px}
.phone-card{display:flex;gap:10px;align-items:center;background:#fff;border-radius:16px;padding:12px;box-shadow:var(--shadow);margin-bottom:14px}
.phone-card small{color:var(--text-md)}
.phone-input{background:#fff;border-radius:13px;padding:12px;font-size:12px;color:var(--text-md);display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.phone-input span{background:var(--sage);color:#fff;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.phone-recipe{background:#fff;border-radius:18px;padding:90px 12px 12px;font-weight:800;background-image:linear-gradient(135deg,#E9E1CF,#fff)}
.phone-recipe small{display:inline-block;margin-top:8px;background:var(--sage-lt);color:var(--sage);border-radius:20px;padding:5px 8px}
.duffie-hero{position:absolute;right:0;bottom:10px;width:min(420px,58%);max-width:420px;z-index:3;pointer-events:none}
.duffie-hero img{width:100%;max-width:100%;height:auto;display:block;filter:drop-shadow(0 28px 32px rgba(0,0,0,.36))}
.duffie-note{position:absolute;right:35px;top:90px;border:1.5px solid #A5C65F;border-radius:28px;padding:24px 26px;color:#fff;font-family:var(--serif);font-size:23px;line-height:1.35;transform:rotate(4deg);max-width:260px;text-align:center}
.landing-steps{max-width:1100px;margin:-20px auto 50px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:32px;padding:34px clamp(20px,4vw,48px);backdrop-filter:blur(16px)}
.landing-steps h2{font-family:var(--serif);font-size:36px;text-align:center;margin-bottom:24px}
.landing-legal-links{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;padding:0 20px 36px}
.landing-legal-links a{color:rgba(255,255,255,.74);font-size:13px;text-decoration:underline}
.landing-page.auth-only .landing-legal-links{display:none}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step-grid>div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:22px}
.step-grid b{display:inline-flex;width:34px;height:34px;border-radius:50%;background:#93B94D;align-items:center;justify-content:center;margin-bottom:12px}
.step-grid h3{font-size:17px;margin-bottom:6px}.step-grid p{color:rgba(255,255,255,.72);line-height:1.5}
.auth-section{background:var(--bg);padding:52px 20px 48px;display:flex;flex-direction:column;align-items:center;position:relative}
.auth-card{width:100%;max-width:430px;background:#fff;border-radius:28px;padding:28px 24px;box-shadow:0 24px 70px rgba(42,92,53,.16);border:1px solid #EDE5D8}
.auth-legal-links{margin-top:20px;font-size:12px;color:var(--text-lt);display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
@media(max-width:840px){
  .landing-page{background:var(--bg);color:var(--brown)}
  .landing-nav{padding:22px 22px}.brand-mark{color:var(--brown)}.landing-cta{display:none}.landing-login{background:var(--sage-lt);color:var(--sage);border-color:transparent}
  .landing-hero{display:block;min-height:0;padding:10px 22px 26px}
  .landing-copy h1{font-size:42px;line-height:1.05;color:var(--brown);margin-bottom:12px}
  .landing-copy p{font-size:17px;color:#2B1A10;margin-bottom:18px}
  .landing-actions,.landing-benefits{display:none}
  .landing-visual{min-height:330px;background:linear-gradient(135deg,#0E2A18,#06140A);border-radius:28px;padding:22px;margin-top:18px;align-items:flex-end;overflow:hidden}
  .phone-mock,.duffie-note{display:none}.duffie-hero{right:-30px;bottom:-12px;width:62%;max-width:230px}
  .landing-visual::before{content:"Hi, ich bin Duffie!";position:absolute;left:24px;top:30px;color:#fff;font-family:var(--serif);font-size:25px;font-weight:800}
  .landing-visual::after{content:"Schick mir ein Rezept von überall und ich mache es pflanzlich für dich.";position:absolute;left:24px;top:74px;width:54%;color:rgba(255,255,255,.86);font-size:16px;line-height:1.45}
  .landing-steps{margin:24px 20px;background:#fff;color:var(--brown);border-color:var(--border);padding:24px}.landing-steps h2{font-size:27px}
  .landing-legal-links a{color:var(--text-md)}
  .step-grid{grid-template-columns:1fr;gap:12px}.step-grid>div{background:var(--sage-lt);border-color:var(--sage-md)}.step-grid p{color:var(--text-md)}
	.auth-section{padding-top:28px}
}
.landing-phone-card{width:min(310px,58vw);background:#F9F5EF;color:var(--brown);border-radius:36px;border:9px solid #1A1F17;box-shadow:0 26px 70px rgba(0,0,0,.42);padding:22px 18px 18px;transform:rotate(7deg) translateX(-36px);position:relative;z-index:2}
.phone-topline{font-size:12px;font-weight:900;display:flex;justify-content:space-between;margin-bottom:20px;color:#111}.phone-topline span{color:var(--sage)}
.phone-panel{background:#fff;border-radius:19px;padding:14px;box-shadow:0 12px 30px rgba(43,26,16,.08);margin-bottom:14px}.phone-panel-title{font-size:13px;font-weight:900;margin-bottom:9px}
.phone-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.phone-tools span{height:42px;border-radius:12px;background:var(--sage-lt);display:flex;align-items:center;justify-content:center;font-size:21px}
.landing-steps{position:relative}.step-grid article{position:relative;min-height:210px;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.14);border-radius:26px;padding:26px 24px;overflow:hidden}
.step-grid article>b{display:inline-flex;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#9FC85B,#5C8A32);align-items:center;justify-content:center;margin-bottom:20px;color:#fff;font-size:22px}
.step-grid article h3{font-size:24px;margin-bottom:8px;color:#fff}.step-grid article p{color:rgba(255,255,255,.76);line-height:1.55;max-width:270px}
.step-grid article img{position:absolute;right:-10px;bottom:-18px;width:150px;filter:drop-shadow(0 18px 26px rgba(0,0,0,.22))}
.step-icon-row{display:flex;gap:10px;margin-top:24px}.step-icon-row span{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;font-size:20px}
.landing-hero{isolation:isolate}
@media(max-width:840px){
  .landing-phone-card{display:none}
  .step-grid article{min-height:auto;background:var(--sage-lt);border-color:var(--sage-md);padding:20px;color:var(--brown)}
  .step-grid article h3{font-size:21px;color:var(--brown)}.step-grid article p{color:var(--text-md)}
  .step-grid article img{width:105px;right:0;bottom:-20px;opacity:.9}.step-icon-row span{background:#fff}
}
.app-dashboard{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:end;background:linear-gradient(135deg,#103019,#06140A);border-radius:28px;padding:28px 30px 0;margin-bottom:28px;overflow:hidden;box-shadow:0 24px 50px rgba(43,26,16,.09);min-height:300px}
.app-dashboard::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 15%,rgba(165,198,95,.24),transparent 28%);pointer-events:none}
.dash-copy{position:relative;z-index:2;padding-bottom:28px}.dash-kicker{color:#A5C65F;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.dash-copy h1{font-family:var(--serif);color:#fff;font-size:36px;line-height:1.1;margin-bottom:9px}.dash-copy p{color:rgba(255,255,255,.8);font-size:16px;line-height:1.55;max-width:610px;margin-bottom:22px}
.dash-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.quick-action{min-height:112px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.92);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--brown);font-family:"DM Sans",sans-serif;box-shadow:0 10px 28px rgba(0,0,0,.08);transition:transform .18s}
.quick-action:active{transform:scale(.97)}.quick-action span{font-size:26px}.quick-action b{font-size:14px}.quick-action small{color:var(--text-md);font-size:12px}
.dash-duffie{position:relative;z-index:2;align-self:end;width:265px;max-width:265px;margin-right:-4px;pointer-events:none}.dash-duffie img{width:100%;max-width:100%;height:auto;display:block;filter:drop-shadow(0 18px 24px rgba(0,0,0,.26))}
.dashboard-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 14px}.dashboard-strip h2{font-family:var(--serif);font-size:25px;color:var(--brown)}.dashboard-strip p{color:var(--text-md);font-size:13px;margin-top:2px}
.recent-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:30px}.recent-row:empty{display:none}
.recent-mini{border:none;background:#fff;border-radius:18px;overflow:hidden;text-align:left;cursor:pointer;box-shadow:var(--shadow);border:1px solid var(--border)}
.recent-mini-img{height:105px;background:linear-gradient(135deg,var(--sage-lt),#F0E0CC);display:flex;align-items:center;justify-content:center;font-size:32px;overflow:hidden}.recent-mini-img img{width:100%;height:100%;object-fit:cover}
.recent-mini-body{padding:11px}.recent-mini-title{font-weight:800;font-size:13px;color:var(--brown);line-height:1.3;margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recent-mini small{display:inline-block;background:var(--sage-lt);color:var(--sage);border-radius:20px;padding:4px 8px;font-size:11px}
@media(max-width:760px){
  .app-dashboard{display:block;padding:22px 18px 18px;border-radius:26px;margin:0 0 22px;min-height:0}
  .dash-copy{padding-bottom:0}.dash-copy h1{font-size:26px;max-width:62%;line-height:1.12}.dash-copy p{font-size:14px;max-width:58%;margin-bottom:16px}
  .dash-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;position:relative;z-index:3}.quick-action{min-height:92px;border-radius:16px}.quick-action span{font-size:24px}
  .dash-duffie{position:absolute;right:-22px;top:34px;width:43%;max-width:165px;min-width:125px;z-index:1}
  .recent-row{display:flex;overflow-x:auto;gap:12px;margin-bottom:26px;padding-bottom:6px}.recent-mini{min-width:190px}
}
@media(max-width:420px){
  .main-content{padding:18px 12px 20px}
  .app-dashboard{border-radius:24px;padding:20px 14px 16px}
  .dash-copy h1{font-size:24px;max-width:60%}.dash-copy p{font-size:13px;max-width:56%}
  .quick-action{min-height:84px;padding:10px 6px}.quick-action b{font-size:12px}.quick-action small{font-size:10px}.quick-action span{font-size:21px}
  .dash-duffie{right:-30px;top:28px;max-width:150px;width:48%}
  .dashboard-strip{align-items:flex-end}.dashboard-strip h2{font-size:21px}
  .page-title{font-size:24px}
  .recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .card-img{height:118px}.card-title{font-size:15px}.card-body{padding:11px}
  .recipe-search-row{grid-template-columns:minmax(0,1fr) 94px;gap:8px}
  .filter-toggle{padding:0 10px;font-size:13px}
}
.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;gap:12px;flex-wrap:wrap}
.page-title{font-family:var(--serif);font-size:28px;color:var(--brown);line-height:1.2}
.page-sub{color:var(--text-md);font-size:13px;margin-top:4px}
.recipe-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;margin-bottom:14px}
.recipe-search-row .search-wrap{margin-bottom:0}
.filter-toggle{height:49px;border:1.5px solid var(--border);background:#fff;color:var(--brown);border-radius:15px;padding:0 16px;font-family:"DM Sans",sans-serif;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 6px 18px rgba(43,26,16,.04);white-space:nowrap}
.filter-toggle.active{background:var(--sage);border-color:var(--sage);color:#fff}
.filter-panel{display:none;background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px;margin:-2px 0 18px;box-shadow:0 12px 28px rgba(43,26,16,.08)}
.filter-panel.open{display:block}
.filter-panel-title{font-size:12px;font-weight:900;color:var(--text-md);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.filter-chip-wrap{display:flex;gap:8px;flex-wrap:wrap}
.filter-chip{border:1.5px solid var(--border);background:#fff;color:var(--text-md);border-radius:999px;padding:8px 12px;font-family:"DM Sans",sans-serif;font-size:13px;font-weight:700;cursor:pointer}
.filter-chip.active{border-color:var(--sage);background:var(--sage-lt);color:var(--sage2)}
.filter-panel-actions{display:flex;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.search-wrap{position:relative;margin-bottom:20px}
.search-wrap input:not([type=checkbox]){padding-left:42px;background:var(--white)}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;pointer-events:none}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px}
@media(min-width:500px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))}}
@media(min-width:900px){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}}
.recipe-card{background:var(--card);border-radius:20px;overflow:hidden;cursor:pointer;border:1px solid rgba(226,212,196,.9);transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;box-shadow:0 8px 26px rgba(43,26,16,.06)}
.recipe-card:active{transform:scale(.97)}
@media(min-width:600px){.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}}
.card-img{height:138px;background:linear-gradient(135deg,var(--sage-lt),#F0E0CC);display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden;position:relative}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-fav{position:absolute;top:10px;right:10px;font-size:18px;background:rgba(255,255,255,.92);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;box-shadow:0 8px 20px rgba(43,26,16,.14)}
.card-body{padding:14px 15px 15px}
.card-title{font-family:var(--serif);font-size:18px;color:var(--brown);margin-bottom:9px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-meta{color:var(--text-md);font-size:12px;margin-top:8px}
.card-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
.card-status strong{font-size:12px;color:var(--sage)}
.duffie-rating-mini{display:flex;gap:2px;align-items:center}
.duffie-rating-mini button{border:none;background:none;padding:0;cursor:pointer;line-height:0}
.duffie-rating-mini img{width:19px;height:19px;border-radius:50%;object-fit:cover;display:block}
.public-badge{position:absolute;top:8px;left:8px;background:var(--sage);color:#fff;font-size:10px;font-weight:600;padding:2px 7px;border-radius:20px}
.community-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;margin-bottom:16px}
.c-img{height:220px;background:linear-gradient(135deg,var(--sage-lt),#F0E0CC);display:flex;align-items:center;justify-content:center;font-size:60px;overflow:hidden;cursor:pointer}
.c-img img{width:100%;height:100%;object-fit:cover}
.c-body{padding:16px}
.c-author{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--sage-lt);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;color:var(--sage);overflow:hidden;flex-shrink:0}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-lg{width:80px;height:80px;border-radius:50%;font-size:32px}
.profile-hero{background:linear-gradient(135deg,#1E3A20,#2D5530);padding:32px 20px 24px;text-align:center;color:#fff}
.plan-row{background:var(--card);border-radius:var(--radius);padding:14px 16px;border:1px solid var(--border);display:flex;align-items:center;gap:14px;cursor:pointer;transition:background .15s;margin-bottom:8px}
.plan-row:active{background:var(--sage-lt)}
.plan-day{min-width:80px;font-size:14px;font-weight:600;color:var(--brown)}
.section-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:18px;margin-bottom:16px}
.section-card-title{font-family:var(--serif);font-size:19px;color:var(--brown);margin-bottom:14px}
.detail-actions{padding-top:14px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.detail-action-row{display:contents}
.detail-action-row .btn{min-height:44px;font-size:12px;padding:10px 9px;white-space:nowrap;width:100%;justify-content:center}
.detail-action-row.primary .btn{grid-column:span 2}
.detail-action-row.primary .btn.cooked-action{display:flex!important}
.detail-action-row.primary .btn:first-child{background:var(--sage-lt);color:var(--sage)}
.detail-action-row:not(.primary):not(.publish-row) .btn{grid-column:span 2}
.detail-action-row.publish-row .btn{grid-column:span 3;min-height:44px}
@media(max-width:420px){
  .detail-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .detail-action-row.primary .btn,
  .detail-action-row:not(.primary):not(.publish-row) .btn,
  .detail-action-row.publish-row .btn{grid-column:span 1;min-height:52px;font-size:15px;padding:12px 10px}
  .detail-action-row.primary .btn.cooked-action{grid-column:1/-1}
}
.settings-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}
.settings-row:last-child{border-bottom:none}
.settings-label{font-size:15px;color:var(--brown);font-weight:500}
.settings-sub{font-size:12px;color:var(--text-md);margin-top:2px}
.toggle{width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}
.toggle.on{background:var(--sage)}.toggle.off{background:var(--border2)}
.toggle::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;transition:left .2s;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.btn.active,.plan-day-toggle.active{background:var(--sage)!important;color:#fff!important;border-color:var(--sage)!important;box-shadow:0 3px 10px rgba(74,124,74,.2)}
.plan-day-toggle{border:1.5px solid var(--border2)}
.toggle.on::after{left:23px}.toggle.off::after{left:3px}
.ingredient-row{display:flex;align-items:center;gap:10px;padding:9px 0;cursor:pointer;border-bottom:1px solid var(--border);transition:opacity .18s}
.ingredient-row:last-child{border-bottom:none}
.check-box{width:20px;height:20px;border-radius:5px;border:2px solid var(--border2);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sage);transition:all .18s}
.check-box.checked{border-color:var(--sage);background:var(--sage-lt)}
.sel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px}
.sel-card{border-radius:var(--radius);border:2px solid var(--border);background:var(--card);cursor:pointer;overflow:hidden;transition:all .18s}
.sel-card.selected{border-color:var(--sage);background:var(--sage-lt)}
.shopping-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-width:20px;cursor:pointer;accent-color:var(--sage);flex-shrink:0;-webkit-appearance:auto;appearance:auto;padding:0;border:none;background:transparent}
.shopping-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--sage);flex-shrink:0}
.shopping-item.done span{text-decoration:line-through;opacity:.4}
.drop-zone{border:2px dashed var(--border2);border-radius:var(--radius);padding:28px 20px;text-align:center;cursor:pointer;color:var(--text-md);font-size:14px;background:var(--bg);transition:all .18s}
.drop-zone:hover{border-color:var(--sage);background:var(--sage-lt)}
.comment-row{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.comment-row:last-child{border-bottom:none}
.empty{text-align:center;padding:72px 20px;color:var(--text-md)}
.empty-icon{font-size:52px;margin-bottom:16px}
.empty h2{font-family:var(--serif);font-size:22px;color:var(--brown);margin-bottom:10px}
.empty p{font-size:14px;max-width:320px;margin:0 auto 20px;line-height:1.5}
.ad-card{grid-column:1/-1;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;margin:4px 0 8px;overflow:hidden}
.ad-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-lt);margin-bottom:6px}
.ad-card ins{min-height:90px}
.community-ad{margin:14px 0}
@media(max-width:480px){.ad-card{padding:8px;margin:2px 0 10px}.ad-card ins{min-height:72px}}
.invite-code{font-family:monospace;font-size:20px;letter-spacing:4px;background:var(--bg);border:1.5px solid var(--border2);border-radius:var(--radius-sm);padding:8px 16px;color:var(--brown);font-weight:700;display:inline-block}
.mb-4{margin-bottom:16px}.mt-4{margin-top:16px}.text-md{color:var(--text-md)}.text-sm{font-size:13px}

.lang-switcher{display:flex;gap:4px;align-items:center}
.lang-btn{background:transparent;border:1px solid var(--border);border-radius:6px;padding:3px 7px;font-size:11px;cursor:pointer;color:var(--text-md);font-family:"DM Sans",sans-serif;transition:all .15s}
.lang-btn.active{background:var(--sage-lt);color:var(--sage);border-color:var(--sage);font-weight:600}




.timer-btn{display:inline-flex;align-items:center;gap:6px;background:#EBF3E6;color:#2A5C35;border:1.5px solid #C8E4C8;border-radius:20px;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;margin-top:8px;transition:all .18s}
.timer-btn:active{background:#C8E4C8}
.timer-btn.running{background:#2A5C35;color:#fff;border-color:#2A5C35}
.timer-display{font-family:monospace;font-size:15px;font-weight:700;letter-spacing:1px}
@keyframes timerPulse{0%,100%{opacity:1}50%{opacity:.5}}
.timer-done{animation:timerPulse .6s ease-in-out infinite}

.view{display:none}.screen{display:none}

/* ── Toast-Benachrichtigungen ─────────────────── */
#toast-container{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:min(360px,90vw)}
.toast{background:#2A5C35;color:#fff;padding:12px 18px;border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,.2);opacity:0;transform:translateY(12px);transition:opacity .25s,transform .25s;pointer-events:auto;display:flex;align-items:center;gap:10px;line-height:1.4}
.toast.toast-err{background:#c0392b}
.toast.toast-warn{background:#e67e22}
.toast.show{opacity:1;transform:translateY(0)}
/* ── Bild-Fallback ───────────────────────────── */
.img-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--sage-lt);border-radius:inherit}

@media(max-width:420px){
  .recipe-search-row{grid-template-columns:minmax(0,1fr) 94px;gap:8px}
  .filter-toggle{padding:0 10px;font-size:13px}
}
