:root{font-family:DM Sans,system-ui,sans-serif;color:#41343a;background:#f9f5f1;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#9c526c}p{line-height:1.55}input,select,textarea{border:1px solid #e6d9d9;border-radius:11px;background:#fffdfb;color:#46343f;padding:12px 13px;min-width:0;width:100%;outline-color:#b77b90}textarea{resize:vertical}.app{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:#282027;color:#fbeff1;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;max-height:100vh}.brand{text-align:center;padding:35px 12px 29px;border-bottom:1px solid #493943}.brand-heart{font-family:Georgia,serif;font-size:50px;display:block;line-height:1;color:#f2c4d3}.brand strong{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500;line-height:1.1;display:block}.brand strong em{font-style:italic;color:#f0bccf}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#c69eae;margin-top:14px}.sidebar nav{display:flex;flex-direction:column;padding:26px 12px;gap:6px}.sidebar nav button{background:transparent;color:#d4c4ce;border:0;text-align:left;padding:14px 17px;border-radius:11px;display:flex;align-items:center;gap:13px}.sidebar nav button span:first-child{font-size:21px;width:20px;text-align:center}.sidebar nav button.active,.sidebar nav button:hover{background:#523947;color:#ffe5ec}.unread-count{background:#c37592;color:#fff;border-radius:20px;font-size:11px;padding:2px 7px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:17px 14px;display:flex;align-items:center;gap:10px;border-top:1px solid #493943}.sidebar-bottom>div{min-width:0;flex:1}.sidebar-bottom strong,.sidebar-bottom small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-bottom strong{font-size:12px}.sidebar-bottom small{font-size:10px;color:#b9a3af}.sidebar-bottom button{border:0;background:transparent;color:#f5c5d6;font-size:25px}.content{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:70px;border-bottom:1px solid #ebdedf;background:#fffdfb;padding:0 32px;display:flex;align-items:center;gap:10px;color:#88576b;font-weight:600;font-size:14px}.topbar-heart{font-size:26px;color:#c27f9c}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:15px}.topbar-date{font-weight:400;color:#927f88;font-size:12px}.container{width:min(1120px,calc(100% - 60px));margin:36px auto 50px;flex:1}.container.narrow{max-width:680px}.footer{text-align:center;padding:15px;color:#ac93a0;font-size:11px}.section-intro{padding:4px 0 28px}.section-intro h1,.welcome h1{font-size:clamp(32px,4vw,49px);letter-spacing:-1.5px;margin-bottom:8px}.section-intro>p:last-child,.welcome p{color:#867782;font-size:14px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;color:#c07b99}.panel{background:#fffdfb;border:1px solid #ebddde;border-radius:18px;padding:28px 30px;box-shadow:0 4px 24px #4b2b3b09;margin-bottom:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:23px}.panel-head h2{font-size:25px;margin-bottom:5px}.panel-head p{font-size:13px;color:#93818a;margin:0}.button{border:1px solid transparent;border-radius:10px;background:#a65e7c;color:#fff;font-size:13px;font-weight:700;padding:11px 15px;white-space:nowrap;transition:.15s}.button:hover:not(:disabled){filter:brightness(.95);transform:translateY(-1px)}.button.subtle{background:#f6ebee;color:#8e5370;border-color:#ead8df}.button.primary{background:#a65e7c;color:#fff}.search-row,.inline-form{display:flex;gap:12px;align-items:center;margin-bottom:22px}.search-row input,.inline-form input{flex:1}.search-row select,.inline-form select{max-width:280px}.stack{display:flex;flex-direction:column;gap:14px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:15px}.recipe-card{border:1px solid #e9dce0;background:#fffbfa;border-radius:14px;padding:22px;text-align:left;display:flex;flex-direction:column;min-height:208px;color:inherit;transition:.2s}.recipe-card:hover{border-color:#c992aa;transform:translateY(-2px);box-shadow:0 7px 20px #90617618}.recipe-icon{font-family:Georgia,serif;color:#d09cb2;font-size:26px}.category{font-size:10px;text-transform:uppercase;color:#ad7290;letter-spacing:1px;font-weight:700;margin:7px 0}.recipe-card strong{font-family:Fraunces,Georgia,serif;font-size:17px;line-height:1.35;font-weight:500;flex:1}.recipe-meta,.recipe-stars{font-size:11px;color:#9a8a92;margin-top:12px}.recipe-stars{color:#b76683;margin-top:7px}.empty{text-align:center;color:#95818c;background:#fcf5f5;border:1px dashed #edd9e0;padding:35px;border-radius:12px;font-size:13px}.alert{border-radius:11px;padding:12px 14px;margin-bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.alert.error{background:#fff0ee;border:1px solid #e9bcb8;color:#9c454b}.alert.success{background:#f2f7ec;border:1px solid #cbddbb;color:#416b42}.alert button{border:0;background:transparent;color:inherit;font-size:20px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#785a69;margin-bottom:16px}.field span{display:block}.auth-screen{min-height:100vh;background:radial-gradient(circle at 20% 20%,#5b3e50,#251e28 60%);padding:30px 18px;display:flex;justify-content:center;align-items:center}.auth-card{background:#fffaf7;border-radius:24px;padding:40px min(6vw,65px);width:min(525px,100%);text-align:center;box-shadow:0 15px 65px #120b1850}.ornament{font-family:Georgia,serif;font-size:51px;color:#c98ca5;line-height:1}.auth-card h1{font-size:43px;line-height:1.07;margin:15px 0;color:#4b3643}.auth-card h1 em{color:#b66f8b}.tagline{font-size:13px;color:#877880;margin-bottom:28px}.auth-form{text-align:left;border-top:1px solid #e8d9dd;padding-top:25px}.auth-form h2{font-size:22px}.auth-form .button[type=submit]{width:100%;margin-top:6px}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.auth-links button{border:0;background:transparent;color:#a65e7c;font-size:12px}.auth-foot{color:#bda5af;font-size:11px;margin:26px 0 0}.welcome{text-align:center;padding:25px 0 28px}.heart{font-size:48px;color:#cc8da8}.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border:1px solid #ede2e3;border-radius:12px;background:#fffbfb}.list-row strong{font-size:13px}.list-row p{color:#a08b95;font-size:11px;margin:3px 0 0}.list-row.unread{border-color:#dfb1c2;background:#fff6f8}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.pill{background:#f7e7ee;color:#a35f78;padding:6px 10px;font-size:11px;border-radius:15px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.recipe-editor{padding:20px;border-radius:14px;background:#fff8f8;border:1px solid #f1e3e3;margin-bottom:18px}.edit-line{display:flex;gap:8px;align-items:center}.edit-line button,.remove{background:transparent;color:#ad6e85;font-size:24px;border:0;padding:4px}.recipe-editor .actions{margin-top:8px}.detail-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.rating-label{font-size:12px;color:#987c89;margin-left:12px}.star{font-size:22px;border:0;background:none;color:#cfc0c7;padding:1px}.star.lit{color:#ca819c}.recipe-tip{border-left:3px solid #d99eb6;color:#91627c;background:#faf0f4;margin:23px 0;padding:18px;font-family:Fraunces,Georgia,serif;font-size:16px}.recipe-body{display:grid;grid-template-columns:1fr 1.35fr;gap:35px}.recipe-body h3,.day-plans h3{font-size:21px}.ingredients{padding-left:20px}.ingredients li{font-size:13px;color:#5c4f55;padding:6px 0}.steps{padding-left:22px}.steps li{padding:0 0 12px 7px;color:#a65e7c}.steps li p{font-size:13px;color:#4b4246;margin-bottom:3px}.steps li small{font-size:11px;color:#967585}.recipe-foot{border-top:1px solid #f0e5e5;margin-top:22px;padding-top:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.day-label{text-align:center;color:#ae8d9e;font-size:11px;font-weight:700;padding:8px 0}.calendar-day{min-height:83px;padding:9px;border:1px solid #efe1e5;border-radius:8px;text-align:left;background:#fffcfb;color:#654957}.calendar-day:disabled{background:#f9f5f5;border-color:transparent;cursor:default}.calendar-day.active{outline:2px solid #b86687}.calendar-day.today{background:#fff1f5}.day-number{font-weight:700;display:block;font-size:13px}.calendar-day small{display:block;background:#f3dce7;color:#965875;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px;padding:3px;margin-top:5px}.day-plans{margin-top:26px;padding-top:24px;border-top:1px solid #eee1e4}.day-plans .inline-form{margin-top:18px}.muted{color:#9d8992;font-size:13px}.small{font-size:11px}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button{border:1px solid #e8d4dd;background:#fbf4f5;color:#94657a;padding:9px 14px;border-radius:20px;font-size:12px}.tabs button.selected{background:#a65e7c;color:#fff}.check-row{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:13px}.check-row input{width:auto;accent-color:#b76c89}.checked{text-decoration:line-through;color:#b2a0a8}.divider{height:1px;background:#eee2e5;margin:25px 0}.members{display:flex;gap:20px;flex-wrap:wrap}.member{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:100px}.member strong{font-size:13px}.avatar{width:55px;height:55px;display:grid;place-items:center;border-radius:50%;font-size:27px;color:#fff}.avatar.mini{width:30px;height:30px;font-size:16px;flex-shrink:0}.mobile-nav{display:none}.splash{min-height:100vh;display:grid;place-items:center;color:#a65e7c;font-family:Georgia,serif;font-size:24px;background:#f9f5f1}@media(max-width:900px){.sidebar{width:205px}.container{width:min(100% - 36px,900px)}.panel{padding:22px}.calendar-day{min-height:68px}}@media(max-width:680px){.sidebar{display:none}.topbar{padding:0 17px;height:58px}.topbar-date{display:none}.container{width:calc(100% - 24px);margin:22px auto 35px}.panel{padding:19px 16px;border-radius:14px}.panel-head h2{font-size:22px}.panel-head{flex-wrap:wrap}.mobile-nav{display:flex;justify-content:space-around;gap:2px;overflow-x:auto;border-bottom:1px solid #f0dfe7;background:#fffcfb;padding:7px 4px}.mobile-nav button{min-width:58px;display:flex;flex-direction:column;gap:3px;align-items:center;border:0;background:transparent;color:#886776;border-radius:9px;padding:8px 4px}.mobile-nav button.active{color:#ae5277;background:#f7e9ef}.mobile-nav button span{font-size:19px}.mobile-nav button small{font-size:9px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.recipe-card{padding:16px;min-height:190px}.search-row,.inline-form{flex-wrap:wrap}.search-row select,.inline-form select{max-width:none;flex:1}.inline-form .button{flex:0 0 auto}.recipe-body{grid-template-columns:1fr;gap:18px}.two-col{grid-template-columns:1fr 1fr}.calendar-day{padding:4px;min-height:55px}.calendar-day small{font-size:7px}.section-intro h1{font-size:35px}.auth-card{padding:30px 20px}.auth-card h1{font-size:36px}}@media(max-width:360px){.recipe-grid{grid-template-columns:1fr}.calendar-day{min-height:48px}.mobile-nav button small{font-size:8px}}
