:root{color:#2e2118;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fffaf5;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{background:#fffaf5}body{background:#fffaf5;min-width:320px;min-height:100vh;margin:0}button{font:inherit;cursor:pointer}#root{min-height:100vh}body{font-family:Quicksand,Trebuchet MS,sans-serif}.app-shell{color:#2e2118;background:linear-gradient(#fffaf2 0%,#fff7ec 100%);max-width:480px;min-height:100vh;margin:0 auto;padding:24px 16px 56px}.login-shell{color:#2e2118;background:linear-gradient(145deg,#fffaf2 0%,#f5e6d8 100%);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-panel{box-sizing:border-box;background:#fffdf9;border:1px solid #f0e2d7;border-radius:18px;width:min(100%,360px);padding:28px 24px;box-shadow:0 16px 40px #805c431f}.login-panel h1{margin:0 0 10px}.login-intro{color:#604d43;margin:0 0 22px;line-height:1.5}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.topbar-actions{justify-items:end;gap:6px;display:grid}.eyebrow{color:#9a6d49;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 6px;font-size:.72rem;font-weight:700;display:flex}.cream-dollop,.panel-header h2:before,.viewer-header h2:before{content:"";filter:drop-shadow(0 1.5px 1.5px #b86d3a59);background:radial-gradient(circle at 50% 24%,#fffdf8 0% 36%,#0000 37%),radial-gradient(circle at 50% 52%,#fff7ec 0% 56%,#0000 57%),radial-gradient(circle at 50% 78%,#f0dcc0 0% 72%,#0000 73%);flex:none;width:14px;height:14px;display:inline-block}h1,h2,h3{font-family:Fraunces,Quicksand,serif;font-weight:600}h1{margin:0;font-size:2rem;line-height:1.1}.primary-button{color:#fff;background:linear-gradient(104deg,#0000 38%,#ffffff52 40.5%,#0000 43%),linear-gradient(112deg,#0000 39.5%,#78421e47 41%,#0000 42.5%),linear-gradient(72deg,#0000 57%,#ffffff47 59.5%,#0000 62%),linear-gradient(64deg,#0000 58.5%,#78421e40 60%,#0000 61.5%),radial-gradient(120% 140% at 28% 22%,#e2996a 0%,#c67b45 32%,#b86d3a 62%,#a05f34 100%);border:none;border-radius:999px;padding:10px 16px;font-weight:700;position:relative;overflow:hidden;box-shadow:0 8px 18px #b86d3a38,inset 0 2px 3px #ffffff59}.primary-button:before{content:"";filter:blur(2px);pointer-events:none;background:#ffffff8c;border-radius:50%;width:30%;height:20%;position:absolute;top:10%;left:14%}.primary-button:disabled{cursor:wait;opacity:.65}.primary-button.is-cracking{animation:.48s egg-wobble}.primary-button.is-cracking:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(100deg,#0000 44%,#ffffffd9 47%,#0000 50%),linear-gradient(70deg,#0000 56%,#ffffffd9 59%,#0000 62%),linear-gradient(115deg,#0000 68%,#ffffffb3 70%,#0000 73%);animation:.48s egg-crack-flash;position:absolute;inset:0}@keyframes egg-wobble{0%{transform:scale(1)}25%{transform:scale(.93,1.08)}50%{transform:scale(1.06,.94)}75%{transform:scale(.98,1.02)}to{transform:scale(1)}}@keyframes egg-crack-flash{0%{opacity:0}20%{opacity:1}55%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.primary-button.is-cracking,.primary-button.is-cracking:after{animation:none}}.form-panel{margin-bottom:16px}.text-button{color:#9a6d49;background:0 0;border:0;font-weight:700}.recipe-form{gap:12px;display:grid}.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.recipe-form label{color:#604d43;gap:6px;font-size:.85rem;font-weight:700;display:grid}.recipe-form input,.recipe-form select,.recipe-form textarea{box-sizing:border-box;color:#2e2118;width:100%;font:inherit;background:#fffaf2;border:1px solid #eadcc9;border-radius:10px;padding:11px 12px}.recipe-form input:focus,.recipe-form select:focus,.recipe-form textarea:focus{outline-offset:1px;outline:2px solid #d88f58}.recipe-form textarea{resize:vertical}.form-fieldset{border:0;gap:10px;margin:0;padding:0;display:grid}.form-fieldset legend{color:#9a6d49;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;padding:0;font-size:.78rem;font-weight:700}.form-list{gap:8px;display:grid}.form-list-row{grid-template-columns:minmax(0,1fr) 26px;align-items:start;gap:8px;display:grid}.ingredient-row{grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,.8fr) 26px}.step-row{grid-template-columns:20px minmax(0,1fr) 26px;align-items:center}.step-number{color:#9a6d49;align-self:flex-start;margin-top:11px;font-size:.85rem;font-weight:700}.image-section{gap:12px;display:grid}.image-upload-button{color:#604d43;cursor:pointer;background:#f6efe7;border:1px solid #eadcc9;border-radius:999px;justify-content:center;align-items:center;width:fit-content;padding:10px 16px;font-weight:700;display:inline-flex}.nav-panel{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:20px;display:grid}.nav-item{color:#4b3629;background:#f6efe7;border:1px solid #eadcc9;border-radius:14px;padding:10px 8px;font-weight:600}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card,.panel{background:#fff;border:1px solid #f0e2d7;border-radius:18px;box-shadow:0 10px 28px #805c430f}.stat-card{flex-direction:column;gap:6px;padding:14px 12px;display:flex}.stat-card span{color:#8b6a50;font-size:.75rem}.stat-card strong{font-size:1.1rem}.content-grid{gap:16px;display:grid}.panel{padding:18px 16px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-header h2{align-items:center;gap:8px;margin:0;font-size:1.1rem;display:flex}.panel-subtitle{color:#8b6a50;margin:4px 0 0;font-size:.78rem}.panel-header span{color:#9a6d49;font-size:.8rem;font-weight:700}.task-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.task-list li{color:#2f241d;align-items:center;gap:10px;font-weight:600;display:flex}.task-list li>span:last-child{gap:3px;display:grid}.recipe-item{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;gap:3px;padding:0;display:grid}.recipe-item:hover strong,.recipe-item:focus-visible strong{color:#b86d3a}.recipe-item:focus-visible,.recipe-link:focus-visible,.text-button:focus-visible,.section-tab:focus-visible,.reset-button:focus-visible{outline-offset:3px;outline:2px solid #d88f58}.recipe-link{color:#2e2118;width:fit-content;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.recipe-link:hover,.recipe-link:focus-visible{color:#b86d3a}.recipe-category+.recipe-category{border-top:1px solid #f0e2d7;margin-top:10px;padding-top:10px}.recipe-category-toggle{cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.recipe-category-label{color:#9a6d49;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:flex}.recipe-category-label small{color:#b89473;text-transform:none;letter-spacing:normal;font-weight:600}.recipe-category-chevron{color:#b89473;font-size:1.1rem;transition:transform .15s;transform:rotate(90deg)}.recipe-category-chevron.open{transform:rotate(-90deg)}.recipe-table{gap:8px;margin-top:6px;display:grid}.recipe-table-row{grid-template-columns:minmax(0,1fr) 64px 92px 26px;align-items:center;gap:8px;display:grid}.recipe-table-header{color:#9a6d49;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:700}.recipe-table-cell{color:#604d43;font-size:.82rem}.recipe-note-field{display:block}.recipe-note-field textarea{box-sizing:border-box;color:#2e2118;width:100%;font:inherit;resize:vertical;background:#fffaf2;border:1px solid #eadcc9;border-radius:10px;padding:11px 12px}.recipe-note-field textarea:focus{outline-offset:1px;outline:2px solid #d88f58}.task-list small{color:#8b6a50;font-size:.75rem;font-weight:500}.journal-note{color:#8b6a50;margin:4px 0 0;font-size:.75rem;font-weight:500;line-height:1.4}.state-message{color:#604d43;margin:0}.error-message{color:#a33f2f}.dot{background:#d88f58;border-radius:50%;width:10px;height:10px;display:inline-block}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-nav-button{color:#4b3629;cursor:pointer;background:#f6efe7;border:1px solid #eadcc9;border-radius:50%;width:34px;height:34px;font-size:1.1rem;line-height:1}.calendar-month-label{color:#2f241d;text-transform:capitalize;cursor:pointer;background:0 0;border:0;font-size:.95rem;font-weight:700}.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:4px;display:grid}.calendar-weekdays span{text-align:center;color:#9a6d49;text-transform:uppercase;font-size:.72rem;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:16px;display:grid}.calendar-day{aspect-ratio:1;color:#2f241d;font:inherit;cursor:pointer;background:#f6efe7;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:600;display:flex;position:relative}.calendar-day.is-outside{color:#c3b09e;background:0 0;font-weight:500}.calendar-day.is-today{border-color:#d88f58}.calendar-day.is-selected{color:#fff;background:#b86d3a}.calendar-day-icons{letter-spacing:-1px;font-size:.7rem;line-height:1}.day-detail h3{text-transform:capitalize;margin:0 0 12px;font-size:1rem}.day-detail .task-list li{align-items:flex-start}.entry-delete-button{color:#a33f2f;cursor:pointer;background:#fffaf2;border:1px solid #eadcc9;border-radius:50%;flex:none;width:26px;height:26px;margin-left:auto;font-size:1rem;line-height:1}.day-add-options{border-top:1px solid #f0e2d7;gap:16px;margin-top:16px;padding-top:16px;display:grid}.suggestion-card{background:#fffaf2;border:1px solid #eadcc9;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.suggestion-card span{gap:3px;display:grid}.suggestion-card small{color:#8b6a50;font-size:.75rem}.day-add-option .form-row{margin-bottom:10px}.chat-messages{gap:10px;max-height:420px;margin-bottom:12px;padding-right:2px;display:grid;overflow-y:auto}.chat-bubble{border-radius:14px;max-width:88%;padding:10px 12px;line-height:1.45}.chat-bubble p{margin:0}.chat-bubble-user{color:#fff;background:#b86d3a;border-bottom-right-radius:4px;justify-self:end}.chat-bubble-assistant{color:#2f241d;background:#f6efe7;border-bottom-left-radius:4px;justify-self:start}.proposal-card{color:#2f241d;background:#fffaf2;border:1px solid #eadcc9;border-radius:12px;gap:6px;margin-top:10px;padding:12px;display:grid}.proposal-card small{color:#8b6a50;font-size:.75rem}.proposal-card p{color:#604d43;font-size:.85rem}.proposal-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.proposal-actions input{color:#2e2118;font:inherit;background:#fff;border:1px solid #eadcc9;border-radius:10px;padding:9px 10px}.chat-input-row{gap:8px;display:flex}.chat-input-row input{color:#2e2118;min-width:0;font:inherit;background:#fffaf2;border:1px solid #eadcc9;border-radius:999px;flex:1;padding:11px 16px}.chat-input-row input:focus{outline-offset:1px;outline:2px solid #d88f58}.progress-wrap{gap:12px;display:grid}.progress-bar{background:#f2e6da;border-radius:999px;width:100%;height:12px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#d88f58,#b86d3a);width:68%;height:100%}.progress-wrap p{color:#604d43;margin:0}.overview-section{padding-top:4px}.overview-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.overview-header h2{margin:0;font-size:1.1rem}.overview-header span{color:#9a6d49;font-size:.8rem;font-weight:700}.viewer-backdrop{z-index:10;background:#2e21186b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.recipe-viewer{background:#fffdf9;border:1px solid #f0e2d7;border-radius:18px;grid-template-rows:auto auto minmax(0,1fr);width:min(100%,560px);max-height:min(760px,100vh - 32px);display:grid;overflow:hidden;box-shadow:0 20px 60px #2e21183d}.viewer-header{border-bottom:1px solid #f0e2d7;justify-content:space-between;align-items:start;gap:16px;padding:22px 20px 16px;display:flex}.viewer-header h2{align-items:center;gap:8px;margin:0 0 6px;font-size:1.45rem;display:flex}.viewer-header span{color:#8b6a50;font-size:.82rem}.viewer-header-actions{justify-items:end;gap:6px;display:grid}.viewer-toolbar{border-bottom:1px solid #f0e2d7;gap:10px;padding:12px 20px;display:grid}.section-tabs{gap:6px;display:flex;overflow-x:auto}.section-tab,.reset-button{color:#604d43;font:inherit;white-space:nowrap;cursor:pointer;background:#f6efe7;border:1px solid #eadcc9;border-radius:10px;font-weight:700}.section-tab{padding:9px 12px}.section-tab.active{color:#fff;background:#b86d3a;border-color:#b86d3a}.reset-button{background:0 0;justify-self:start;padding:7px 10px;font-size:.78rem}.viewer-content{padding:18px 20px 24px;overflow-y:auto}.checklist{gap:10px;margin:0;padding:0;list-style:none;display:grid}.checklist li{background:#fff;border:1px solid #f0e2d7;border-radius:10px;transition:background-color .16s,opacity .16s}.checklist label{color:#2f241d;cursor:pointer;align-items:flex-start;gap:11px;min-height:24px;padding:12px;line-height:1.45;display:flex}.checklist input{accent-color:#b86d3a;flex:none;width:19px;height:19px;margin:2px 0 0}.checklist li.checked{opacity:.65;background:#f6efe7}.checklist li.checked span{text-decoration:line-through}.steps-list{counter-reset:recipe-step}.steps-list li{counter-increment:recipe-step}.steps-list strong{color:#9a6d49;text-transform:uppercase;margin-bottom:3px;font-size:.78rem;display:block}.notes-content{gap:16px;display:grid}.notes-content p{color:#604d43;margin:0;line-height:1.5}.notes-content h3{margin:0;font-size:1rem}.recipe-image-figure{margin:0}.recipe-image-figure img{object-fit:cover;background:#f6efe7;border-radius:12px;width:100%;max-height:360px;display:block}.recipe-image-figure figcaption{color:#8b6a50;margin-top:8px;font-size:.78rem}.confirmation-row{grid-template-columns:none!important;align-items:center!important;display:flex!important}.success-message{color:#47704d;align-items:center;gap:6px;margin:0;font-size:.85rem;display:flex}.variant-section{gap:12px;display:grid}.variant-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.variant-card{background:#fffaf2;border:1px solid #eadcc9;border-radius:12px;gap:6px;padding:12px;display:grid}.variant-card-header{color:#2f241d;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.variant-card p{color:#604d43;margin:0;font-size:.85rem;line-height:1.5}.variant-card small{color:#8b6a50;font-size:.75rem}@media (width>=700px){.app-shell{max-width:900px;padding-inline:28px}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-panel,.chat-panel,.recipe-panel{grid-column:span 2}}.print-dialog{box-sizing:border-box;background:#fffdf9;border:1px solid #f0e2d7;border-radius:18px;gap:14px;width:min(100%,420px);max-height:calc(100vh - 32px);padding:22px 20px;display:grid;overflow-y:auto;box-shadow:0 20px 60px #2e21183d}.print-dialog h2{margin:0;font-size:1.2rem}.print-dialog-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.print-sheet{display:none}@media print{body *{visibility:hidden}.print-sheet,.print-sheet *{visibility:visible}.print-sheet{color:#000;background:#fff;padding:24px;display:block;position:absolute;inset:0}.print-sheet h1{margin:0 0 4px;font-size:1.6rem}.print-meta{color:#444;margin:0 0 18px}.print-sheet h2{border-bottom:1px solid #ccc;margin:20px 0 8px;padding-bottom:4px;font-size:1.05rem}.print-sheet ul,.print-sheet ol{margin:0 0 4px;padding-left:20px}.print-sheet li{margin-bottom:4px}.print-variant{margin-bottom:12px}.print-variant h3{margin:0 0 4px;font-size:.95rem}.print-variant p{margin:0 0 4px}.print-basis{color:#555;font-style:italic}}
