:root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text);background:var(--color-page);--color-page: #f7f4ef;--color-surface: #ffffff;--color-surface-raised: #fffaf5;--color-surface-soft: #f0ebe6;--color-text: #211d1a;--color-muted: #6f6b66;--color-border: #ded8d1;--color-accent: #c97a56;--color-accent-hover: #d88f70;--color-accent-strong: #9b5638;--color-accent-soft: #f2dfd2;--color-on-accent: #17110d;--color-success: #4f8a5f;--color-danger: #a4332c;--shadow-card: 0 14px 34px rgba(44, 32, 24, .1);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-card: .85rem;--touch-target: 2.75rem;--content-max: 30rem}@media (prefers-color-scheme: dark){:root{--color-page: #121417;--color-surface: #1a1d21;--color-surface-raised: #23262b;--color-surface-soft: #23262b;--color-text: #f5f5f5;--color-muted: #adb5bd;--color-border: #32373d;--color-accent: #c97a56;--color-accent-hover: #d88f70;--color-accent-strong: #d88f70;--color-accent-soft: #342820;--color-on-accent: #17110d;--color-success: #77b985;--color-danger: #ff9a8f;--shadow-card: 0 18px 38px rgba(0, 0, 0, .34)}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-page)}button,input,textarea,select{font:inherit}button,input{min-height:var(--touch-target)}textarea{min-height:6rem}#root{min-height:100vh}.app-shell{width:min(100%,var(--content-max));min-height:100vh;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)}.login-shell{display:grid;align-content:center;gap:var(--space-5)}.login-hero{display:grid;gap:var(--space-2)}.app-header{display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;min-height:var(--touch-target)}.app-header h1{margin-bottom:0;font-size:1.35rem}.login-hero h1{margin-bottom:0}.eyebrow{margin:0 0 var(--space-2);color:var(--color-accent-strong);font-size:.85rem;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:var(--space-3);font-size:2.25rem;line-height:1.05}h2{margin-bottom:var(--space-3);font-size:1rem;line-height:1.25}h3{margin:0;font-size:1.05rem;line-height:1.25}.lede{max-width:34rem;margin-bottom:0;color:var(--color-muted);font-size:1.05rem}.shell-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-raised);box-shadow:var(--shadow-card);padding:var(--space-5)}.shell-card p{margin-bottom:0;color:var(--color-muted)}.auth-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-raised);box-shadow:var(--shadow-card);padding:var(--space-6)}.auth-card h2{margin-bottom:var(--space-5);font-size:1.25rem}.auth-form{display:grid;gap:var(--space-4)}.auth-form label{display:grid;gap:var(--space-2);color:var(--color-text);font-size:.95rem;font-weight:700}.auth-form input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);padding:var(--space-3) var(--space-4)}.auth-form input:focus{border-color:var(--color-accent);outline:3px solid color-mix(in srgb,var(--color-accent) 24%,transparent)}.button-primary,.button-secondary{width:100%;border:0;border-radius:.8rem;cursor:pointer;font-weight:800;padding:var(--space-3) var(--space-4)}.button-primary{background:var(--color-accent);color:var(--color-on-accent)}.button-primary:hover,.serving-control button:hover,.cook-switch.is-on:hover{background:var(--color-accent-hover)}.button-secondary{margin-top:var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.button-primary:disabled,.button-secondary:disabled,.auth-form input:disabled{cursor:not-allowed;opacity:.65}.form-message{margin-top:var(--space-3);color:var(--color-danger);font-weight:700}.user-menu{display:flex;gap:var(--space-2);align-items:center;justify-content:flex-end;min-width:0}.auth-email{margin-bottom:0;color:var(--color-muted);font-size:.76rem;overflow-wrap:anywhere}.compact-button{width:auto;min-height:2rem;margin-top:0;border-radius:999px;padding:var(--space-1) var(--space-3);font-size:.8rem}.recipe-section{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.section-heading h2{margin-bottom:0;font-size:1.35rem}.recipe-list{display:grid;gap:var(--space-4)}.recipe-card{overflow:hidden;border:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);border-radius:var(--radius-card);background:var(--color-surface-raised);box-shadow:var(--shadow-card)}.recipe-card-button{width:100%;display:grid;gap:var(--space-3);min-height:0;border:0;border-radius:var(--radius-card);background:transparent;color:inherit;cursor:pointer;padding:var(--space-5);text-align:left}.recipe-card-button:focus{outline:3px solid color-mix(in srgb,var(--color-accent) 24%,transparent);outline-offset:3px}.recipe-card-button:hover{background:color-mix(in srgb,var(--color-surface-soft) 60%,transparent)}.recipe-card-header{display:flex;gap:var(--space-3);align-items:flex-start;justify-content:space-between}.recipe-title{color:var(--color-text);font-size:1.05rem;font-weight:800;line-height:1.25}.open-indicator{flex:0 0 auto;color:var(--color-muted);font-size:1.2rem;font-weight:800;line-height:1.2;padding-top:.1rem}.favorite-card-icon,.favorite-dot{color:var(--color-accent-strong);font-size:.9rem;font-weight:800;line-height:1}.recipe-description{display:block;margin-bottom:0;color:var(--color-muted)}.recipe-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:0}.time-indicator,.detail-summary{display:inline-flex;gap:var(--space-2);align-items:center;color:var(--color-muted);font-size:.84rem;font-weight:700}.time-indicator span{color:var(--color-accent-strong)}.recipe-meta div,.recipe-meta>span{display:grid;gap:var(--space-1);min-height:2.45rem;align-content:center;border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-2) var(--space-3)}.recipe-card-footer{display:flex;flex-wrap:wrap;gap:var(--space-2)}.recipe-meta dt,.meta-label{color:var(--color-muted);font-size:.78rem;font-weight:800}.recipe-meta dd,.meta-value{display:block;margin:0;color:var(--color-text);font-weight:800}.back-link{display:grid;width:2.25rem;min-height:2.25rem;place-items:center;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);cursor:pointer;font-size:1.15rem;font-weight:800;padding:0}.recipe-detail{display:grid;gap:var(--space-5);position:relative;border:1px solid color-mix(in srgb,var(--color-border) 86%,transparent);border-radius:var(--radius-card);background:var(--color-surface-raised);box-shadow:var(--shadow-card);padding:var(--space-6) var(--space-5) var(--space-5)}.recipe-detail.is-cook-mode{border-color:color-mix(in srgb,var(--color-accent) 42%,var(--color-border));background:var(--color-surface-raised)}.recipe-detail-header{display:grid;gap:var(--space-3)}.recipe-detail-header h2{margin-bottom:0;font-size:1.65rem}.recipe-title-row{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between}.delete-recipe-button{display:grid;width:2.35rem;min-height:2.35rem;place-items:center;position:absolute;top:var(--space-3);right:var(--space-3);border:1px solid color-mix(in srgb,var(--color-danger) 44%,var(--color-border));border-radius:999px;background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface-raised));color:var(--color-danger);cursor:pointer;padding:0}.delete-recipe-button svg{width:1.1rem;height:1.1rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.delete-recipe-button:hover{background:color-mix(in srgb,var(--color-danger) 18%,var(--color-surface-raised))}.delete-recipe-button:disabled{cursor:not-allowed;opacity:.6}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#000000ad;padding:var(--space-4)}.delete-dialog{width:min(100%,24rem);display:grid;gap:var(--space-4);border:1px solid color-mix(in srgb,var(--color-danger) 32%,var(--color-border));border-radius:var(--radius-card);background:var(--color-surface-raised);box-shadow:var(--shadow-card);padding:var(--space-5)}.delete-dialog h3{margin-bottom:var(--space-2)}.delete-dialog p{margin-bottom:0;color:var(--color-muted)}.delete-dialog strong{color:var(--color-text)}.delete-dialog-icon{display:grid;width:2.6rem;min-height:2.6rem;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--color-danger) 14%,transparent);color:var(--color-danger)}.delete-dialog-icon svg{width:1.25rem;height:1.25rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.delete-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.dialog-cancel-button,.dialog-delete-button{border:0;border-radius:.8rem;cursor:pointer;font-weight:800;padding:var(--space-3) var(--space-4)}.dialog-cancel-button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.dialog-delete-button{background:var(--color-danger);color:#fff}.dialog-cancel-button:disabled,.dialog-delete-button:disabled{cursor:not-allowed;opacity:.65}.detail-summary{flex-wrap:wrap}.detail-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.cook-toggle-row{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:var(--space-3) var(--space-4)}.cook-toggle-row>div{display:grid;gap:.1rem}.cook-toggle-title{color:var(--color-text);font-weight:800}.cook-toggle-state{color:var(--color-muted);font-size:.82rem;font-weight:800}.wake-lock-status{color:var(--color-muted);font-size:.74rem;font-weight:700}.cook-switch{width:3.25rem;min-height:1.85rem;flex:0 0 auto;border:0;border-radius:999px;background:var(--color-border);cursor:pointer;padding:.2rem}.cook-switch span{display:block;width:1.45rem;height:1.45rem;border-radius:999px;background:var(--color-surface-raised);box-shadow:0 2px 8px #0000002e;transition:transform .16s ease}.cook-switch.is-on{background:var(--color-accent)}.cook-switch.is-on span{transform:translate(1.35rem)}.recipe-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:var(--space-1)}.recipe-tab{min-height:var(--touch-target);border:0;border-radius:.65rem;background:transparent;color:var(--color-muted);cursor:pointer;font-weight:800;padding:var(--space-2) var(--space-3)}.recipe-tab:hover{background:color-mix(in srgb,var(--color-surface-soft) 68%,transparent);color:var(--color-text)}.recipe-tab:focus{outline:3px solid color-mix(in srgb,var(--color-accent) 24%,transparent);outline-offset:2px}.recipe-tab.is-active{background:var(--color-accent);color:var(--color-on-accent)}.detail-tab-panel{display:grid;gap:var(--space-5)}.scaling-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:var(--space-2) var(--space-3)}.scaling-panel h3{margin-bottom:0;font-size:.95rem}.scaling-panel p{margin-bottom:0;color:var(--color-muted)}.serving-control{display:grid;grid-template-columns:2.05rem 3.75rem 2.05rem;gap:var(--space-2);align-items:center}.serving-control button{border:0;border-radius:999px;background:var(--color-accent);color:var(--color-on-accent);cursor:pointer;font-size:1.15rem;font-weight:800;min-height:2.05rem}.serving-control label{display:block}.serving-control input{width:100%;min-height:2.05rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);padding:var(--space-1) var(--space-2);text-align:center}.detail-block{display:grid;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.detail-block h3{font-size:1.15rem}.ingredient-list,.step-list{display:grid;gap:var(--space-3);margin:0;padding:0}.ingredient-list{list-style:none}.ingredient-list li,.step-list li{border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface-soft);padding:var(--space-4)}.cook-check-list li{padding:0;overflow:hidden;transition:background-color .16s ease,border-color .16s ease,opacity .16s ease}.recipe-detail.is-cook-mode .cook-check-list li:not(.is-checked){border-color:color-mix(in srgb,var(--color-accent) 18%,var(--color-border))}.step-list.cook-check-list{list-style:none;padding-left:0}.cook-check-list li.is-checked{background:color-mix(in srgb,var(--color-surface) 84%,var(--color-page));border-color:color-mix(in srgb,var(--color-border) 82%,transparent);opacity:.78}.cook-check-list li.is-checked .ingredient-line,.cook-check-list li.is-checked .cook-check-item>span>span:last-child{color:var(--color-muted);text-decoration:line-through}.step-list.cook-check-list li.is-checked .cook-step-content>span:last-child{display:-webkit-box;overflow:hidden;max-height:3em;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.5}.cook-check-list li.is-checked .section-label,.cook-check-list li.is-checked .ingredient-note{opacity:.82}.cook-check-item{display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:var(--space-3);min-height:4rem;align-items:start;cursor:pointer;padding:var(--space-4);-webkit-user-select:none;user-select:none;width:100%}.cook-check-list li.is-checked .cook-check-item{min-height:var(--touch-target);align-items:center;padding:var(--space-2) var(--space-3)}.cook-check-item:hover{background:color-mix(in srgb,var(--color-surface-soft) 72%,var(--color-accent-soft))}.cook-check-item:focus-within{outline:3px solid color-mix(in srgb,var(--color-accent) 24%,transparent);outline-offset:3px}.cook-check-item input{width:1.3rem;height:1.3rem;min-height:0;margin-top:.15rem;accent-color:var(--color-accent)}.cook-check-item>span{display:block;font-size:1.06rem;transition:font-size .16s ease}.cook-check-list li.is-checked .cook-check-item>span{font-size:.94rem}.cook-step-content{position:relative;padding-left:2rem}.cook-step-number{position:absolute;left:0;top:.05rem;display:grid;width:1.35rem;height:1.35rem;place-items:center;border-radius:999px;background:var(--color-surface);color:var(--color-muted);font-size:.78rem;font-weight:800}.step-list{padding-left:var(--space-5)}.ingredient-line{display:flex;flex-wrap:wrap;gap:var(--space-2);color:var(--color-text)}.ingredient-line em{color:var(--color-muted);font-size:.85rem;font-style:normal;font-weight:700}.ingredient-note{display:block;margin-top:var(--space-2);color:var(--color-muted)}.cook-check-list li.is-checked .ingredient-note{margin-top:var(--space-1)}.section-label{display:block;margin-bottom:var(--space-2);color:var(--color-muted);font-size:.78rem;font-weight:800}.source-panel{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.source-panel summary{min-height:var(--touch-target);cursor:pointer;color:var(--color-muted);font-weight:800}.source-panel-content{display:grid;gap:var(--space-4);padding-top:var(--space-2)}.source-list{display:grid;gap:var(--space-3);margin:0}.source-list div{display:grid;gap:var(--space-1)}.source-list dt{color:var(--color-muted);font-size:.78rem;font-weight:800}.source-list dd{margin:0;overflow-wrap:anywhere}.source-list a{color:var(--color-text);font-weight:800}.notes-panel{display:grid;gap:var(--space-4);border-top:1px solid var(--color-border);padding-top:var(--space-5)}.notes-header{display:grid;gap:var(--space-1)}.notes-header p{margin-bottom:0;color:var(--color-muted);font-size:.9rem}.note-form{display:grid;gap:var(--space-3)}.note-form label{color:var(--color-text);font-size:.95rem;font-weight:800}.note-form textarea{width:100%;resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);padding:var(--space-3) var(--space-4)}.note-form textarea:focus{border-color:var(--color-accent);outline:3px solid color-mix(in srgb,var(--color-accent) 24%,transparent)}.note-form textarea:disabled{cursor:not-allowed;opacity:.65}.note-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.note-list li{display:grid;grid-template-columns:minmax(0,1fr) 2.35rem;gap:var(--space-3);align-items:start;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:var(--space-4)}.note-list p{margin-bottom:var(--space-2);overflow-wrap:anywhere}.note-list time{color:var(--color-muted);font-size:.78rem;font-weight:800}.delete-note-button{display:grid;width:2.35rem;min-height:2.35rem;place-items:center;border:1px solid color-mix(in srgb,var(--color-danger) 36%,var(--color-border));border-radius:999px;background:color-mix(in srgb,var(--color-danger) 7%,var(--color-surface-raised));color:var(--color-danger);cursor:pointer;padding:0}.delete-note-button svg{width:1.05rem;height:1.05rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.delete-note-button:hover{background:color-mix(in srgb,var(--color-danger) 16%,var(--color-surface-raised))}.delete-note-button:disabled{cursor:not-allowed;opacity:.6}.empty-note-state{margin-bottom:0;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-muted);padding:var(--space-4)}@media (min-width: 720px){:root{--content-max: 44rem}.app-shell{padding-inline:var(--space-6)}.login-shell{--content-max: 32rem}.recipe-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
