.google-signin-btn[data-v-2f51b242]{display:inline-flex;align-items:center;gap:10px;padding:10px 20px;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:8px;font-size:.92rem;font-weight:500;cursor:pointer;font-family:var(--font-body);transition:box-shadow .15s ease}.google-signin-btn[data-v-2f51b242]:hover{box-shadow:0 1px 6px #0000001f}.google-signin-btn[data-v-2f51b242]:disabled{opacity:.5;cursor:not-allowed}.profile-page[data-v-dcc9804e]{display:flex;justify-content:center;padding-top:4rem}.profile-card[data-v-dcc9804e]{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;max-width:320px;width:100%}.profile-avatar[data-v-dcc9804e]{width:80px;height:80px;border-radius:50%;overflow:hidden;background:var(--amber);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;margin-bottom:.5rem}.profile-avatar img[data-v-dcc9804e]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.profile-name[data-v-dcc9804e]{font-family:var(--font-display);font-size:1.8rem;font-weight:400;margin:0}.profile-email[data-v-dcc9804e]{font-size:.82rem;color:var(--dim);margin:0 0 .75rem}.profile-stats[data-v-dcc9804e]{display:flex;align-items:center;gap:1.5rem;margin:.75rem 0 1.5rem;padding:1rem 2rem;border:1px solid var(--line);border-radius:12px;width:100%}.profile-stat[data-v-dcc9804e]{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.profile-stat-value[data-v-dcc9804e]{font-size:1.6rem;font-weight:700;line-height:1}.profile-stat-label[data-v-dcc9804e]{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.profile-stat-divider[data-v-dcc9804e]{width:1px;height:2rem;background:var(--line)}.signout-btn[data-v-dcc9804e]{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;background:none;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.85rem;font-family:var(--font-body);cursor:pointer;transition:border-color .15s,color .15s}.signout-btn[data-v-dcc9804e]:hover{border-color:var(--text);color:var(--text)}.shared-books[data-v-dcc9804e]{width:100%;margin-bottom:1rem;border:1px solid var(--line);border-radius:12px;overflow:hidden}.shared-books-label[data-v-dcc9804e]{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0;padding:.6rem 1rem .4rem}.shared-book-row[data-v-dcc9804e]{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1rem;border-top:1px solid var(--line);gap:.5rem}.shared-book-name[data-v-dcc9804e]{font-size:.88rem;color:var(--text)}.leave-btn[data-v-dcc9804e]{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--dim);background:none;border:1px solid var(--line);border-radius:6px;padding:3px 10px;cursor:pointer;font-family:var(--font-body);white-space:nowrap;flex-shrink:0}.leave-btn[data-v-dcc9804e]:hover{color:#c0392b;border-color:#c0392b}.leave-btn[data-v-dcc9804e]:disabled{opacity:.5;cursor:default}.leave-btn--delete[data-v-dcc9804e]:hover{color:#c0392b;border-color:#c0392b}.leave-error[data-v-dcc9804e]{font-size:.78rem;color:#c0392b;margin:.25rem .75rem .5rem}.shared-book-owner-tag[data-v-dcc9804e]{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(200,144,45,.35);border-radius:999px;padding:.1rem .5rem;white-space:nowrap}.visibility-btn[data-v-dcc9804e]{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--dim);cursor:pointer;white-space:nowrap;flex-shrink:0}.visibility-btn--public[data-v-dcc9804e]{color:var(--amber);border-color:#c8902d73}.visibility-btn[data-v-dcc9804e]:disabled{opacity:.6;cursor:default}.sidebar-profile-btn[data-v-45bfa898]{font-size:1.1rem}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.top-4{top:1rem}.z-\[190\]{z-index:190}.z-\[200\]{z-index:200}.z-\[300\]{z-index:300}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-1{margin-right:.25rem}.mr-6{margin-right:1.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.max-h-\[85vh\]{max-height:85vh}.w-72{width:18rem}.w-full{width:100%}.max-w-\[1080px\]{max-width:1080px}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:.5rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-none{border-style:none}.border-\[var\(--amber\)\]{border-color:var(--amber)}.border-\[var\(--line\)\]{border-color:var(--line)}.border-transparent{border-color:transparent}.bg-\[var\(--amber\)\]{background-color:var(--amber)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-black\/20{background-color:#0003}.bg-black\/35{background-color:#00000059}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-none{background-image:none}.p-3{padding:.75rem}.px-0{padding-left:0;padding-right:0}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-8{padding-bottom:2rem}.pt-16{padding-top:4rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.font-display{font-family:Della Respira,Georgia,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.72rem\]{font-size:.72rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-\[var\(--font-body\)\]{font-weight:var(--font-body)}.font-bold{font-weight:700}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-wide{letter-spacing:.025em}.text-\[var\(--amber\)\]{color:var(--amber)}.text-\[var\(--dim\)\]{color:var(--dim)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--text\)\]{color:var(--text)}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg: #faf6ef;--paper: #ffffff;--text: #111;--muted: #555;--dim: #8a7d72;--line: #e2d8cc;--amber: #c8902d;--font-body: "Montserrat", system-ui, sans-serif;--font-display: "Della Respira", Georgia, serif;--font-hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;--hdr: 54px}*,*:before,*:after{box-sizing:border-box}html{height:100%;overflow:hidden}body{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;overscroll-behavior:none;display:flex;flex-direction:column;font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:17px;line-height:1.6}#app{display:contents}.app-layout{flex:1 1 0;display:flex;flex-direction:row;min-height:0;overflow:hidden}.app-main{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.mobile-top-bar{display:none;position:relative}#book-sidebar{width:60px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0;background:var(--bg);border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:none}#book-sidebar::-webkit-scrollbar{display:none}.book-icon{width:40px;height:40px;border-radius:10px;background:var(--book-color, var(--amber));color:#fff;font-family:var(--font-display);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;border:2px solid transparent}.book-icon:hover{opacity:.85}.book-icon.active{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.sidebar-gap{flex:1}.book-add-btn{width:36px;height:36px;border-radius:50%;border:1.5px dashed var(--line);background:transparent;color:var(--dim);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.book-add-btn:hover{border-color:var(--amber);color:var(--amber)}#app-scroll{flex:1 1 0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-left:2rem;padding-right:2rem;padding-bottom:max(3rem,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:var(--line) transparent}.app-header{display:flex;align-items:center;gap:0;padding:10px 0 14px;margin-bottom:0;position:sticky;top:0;z-index:20;background:transparent;pointer-events:none}.app-header--recipe{position:relative;top:auto;pointer-events:auto;margin-bottom:0;padding-bottom:.5rem}.app-header--recipe .header-back{color:var(--amber)}.app-header--recipe .header-back:hover{background:#0000000a;color:var(--text)}.app-header--scrolled{background:var(--paper);border-bottom:1px solid var(--line);pointer-events:auto}.app-header--scrolled .header-back{color:var(--amber)}.app-header--scrolled .header-back:hover{background:#0000000a;color:var(--text)}.app-header--scrolled .header-recipe-title{color:var(--text)}.app-header-left{display:flex;align-items:center;flex-shrink:0}.app-header-centre{flex:1;min-width:0;padding:0 1rem}.header-recipe-title{font-size:.95rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.app-header-right{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.header-wordmark{font-family:var(--font-display);font-size:1.6rem;font-weight:400;margin:0;cursor:pointer;letter-spacing:.02em;line-height:1}.header-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--dim);cursor:pointer;font-family:var(--font-body);padding:6px 10px;border-radius:8px;min-width:48px;line-height:1}.header-btn i{font-size:1rem}.header-btn span{font-size:.55rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.header-btn:hover{color:var(--text);background:#0000000a}.header-btn--active{color:var(--amber)!important}.header-back{display:flex;flex-direction:row;gap:6px;align-items:center;min-width:auto;padding:6px 12px 6px 8px;color:var(--amber)}.header-back span{font-size:.8rem;font-weight:600;letter-spacing:0;text-transform:none}.mosaic-strip{position:relative;display:flex;gap:3px;padding:4px;background:transparent;flex-shrink:0}.mosaic-strip span{flex:1;height:7px;border-radius:2px}@keyframes mosaic-wave{0%,to{filter:brightness(1)}50%{filter:brightness(1.7) saturate(1.2)}}.mosaic-strip.loading span{animation:mosaic-wave 1.3s ease-in-out infinite}.mosaic-strip.loading span:nth-child(1){animation-delay:0s}.mosaic-strip.loading span:nth-child(2){animation-delay:.12s}.mosaic-strip.loading span:nth-child(3){animation-delay:.24s}.mosaic-strip.loading span:nth-child(4){animation-delay:.36s}.mosaic-strip.loading span:nth-child(5){animation-delay:.48s}.mosaic-strip.loading span:nth-child(6){animation-delay:.6s}.mosaic-strip.loading span:nth-child(7){animation-delay:.72s}.mosaic-strip.loading span:nth-child(8){animation-delay:.84s}.mosaic-strip.loading span:nth-child(9){animation-delay:.96s}.mosaic-strip.loading span:nth-child(10){animation-delay:1.08s}.mosaic-strip.loading span:nth-child(11){animation-delay:1.2s}.spinner{display:inline-block;width:10px;height:10px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}.panel-collapse-btn,.ing-panel-backdrop{display:none}#ingPanel{background:#fff;display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1)}.ing-panel-inner-wrap{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.ing-outer-tabs{position:absolute;display:flex}.ing-outer-tab{background:var(--bg);border:none;color:var(--dim);font-family:var(--font-body);font-size:1rem;cursor:pointer;line-height:1}.ing-outer-tab.active{color:var(--amber);background:#fff}.ing-outer-tab:not(.active):hover{color:var(--text)}.tab-badge{font-size:.6rem;font-weight:700;line-height:1}.tab-time{font-size:.58rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1;color:var(--dim)}.tab-time--running{color:var(--amber)}.panel-section{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}#panelTimers .ing-panel-inner,#panelServings .ing-panel-inner{display:flex;flex-direction:column;justify-content:center;align-items:center;overflow-y:hidden}.timer-carousel-nav-wrap{display:flex;align-items:center;width:100%}.timer-carousel-nav-wrap .timer-carousel{flex:1;min-width:0}.timer-nav-btn{flex-shrink:0;width:36px;height:36px;background:#0000000f;border:none;border-radius:50%;color:var(--dim);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;font-family:inherit}.timer-nav-btn:hover{background:#0000001f;color:var(--text)}@media(max-width:760px){.timer-nav-btn{display:none}}.panel-empty-hint{font-size:.78rem;color:var(--dim);font-style:italic;margin:0 0 .75rem;line-height:1.5}.timer-item{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.timer-item:last-child{border-bottom:none}.timer-item.timer-done{opacity:.55}.timer-info{flex:1;min-width:0}.timer-label{font-size:.82rem;font-weight:600;color:var(--text)}.timer-sublabel{font-size:.7rem;color:var(--dim);margin-top:.1rem}.timer-display{font-size:1.05rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;min-width:3rem;text-align:right;flex-shrink:0}.timer-done .timer-display{color:var(--dim);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.timer-controls{display:flex;gap:.35rem;flex-shrink:0}.timer-controls button{background:#0000000f;border:none;border-radius:8px;color:var(--text);cursor:pointer;font-size:.9rem;min-width:44px;min-height:44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;font-family:inherit}.timer-controls button:hover{background:#0000001f}.timer-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:0;scrollbar-width:none;padding:.25rem 0 .5rem;-webkit-overflow-scrolling:touch}.timer-carousel::-webkit-scrollbar{display:none}.timer-card{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem .75rem;min-height:0}.timer-card-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.timer-card-sublabel{font-size:.72rem;color:var(--dim);margin-top:-.25rem}.timer-card-display{font-size:3rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.timer-card.timer-done .timer-card-display{font-size:1.6rem;color:var(--dim)}.timer-card-controls{display:flex;gap:.5rem;margin-top:.25rem}.timer-card-controls button{min-width:52px;min-height:52px;width:52px;height:52px;background:#0000000f;border:none;border-radius:50%;color:var(--text);font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-family:inherit}.timer-card-controls button:hover{background:#0000001f}.timer-dots{display:flex;gap:5px;justify-content:center;margin-top:.25rem}.timer-dot{width:6px;height:6px;border-radius:50%;background:var(--line)}.timer-dot.active{background:var(--text)}.timer-start-btn{background:#c8902d1f;border:1px solid rgba(200,144,45,.45);color:var(--amber);cursor:pointer;font-size:.8rem;padding:0;margin-left:.4rem;vertical-align:middle;line-height:1;min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-family:var(--font-body)}.timer-start-btn:hover{background:#c8902d38;border-color:var(--amber)}.timer-start-btn--label{gap:.35rem;padding:.2rem .6rem .2rem .45rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;max-width:100%}.step-timing-label{display:inline-block;font-size:.78rem;font-weight:600;color:var(--dim);letter-spacing:.02em;margin-left:.4rem}.servings-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem 1rem;height:100%}.servings-card-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.servings-card-display{font-size:3.5rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1;min-width:4rem;text-align:center}.servings-card-unit{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:-.25rem}.servings-card-controls{display:flex;gap:.5rem;margin-top:.5rem}.servings-card-controls button{min-width:52px;min-height:52px;width:52px;height:52px;background:#0000000f;border:none;border-radius:50%;color:var(--text);font-size:1.6rem;font-weight:300;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-family:inherit;line-height:1}.servings-card-controls button:hover{background:#0000001f}.servings-card-hint{font-size:.7rem;color:var(--dim);font-style:italic;margin-top:.25rem}.sidebar-label{font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.guide-btn{background:none;border:none;padding:0;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);cursor:pointer;font-family:var(--font-body)}.guide-btn:hover{color:var(--text)}.ing-head-actions{display:flex;align-items:center;gap:.75rem}.ing-servings-inline{display:flex;align-items:center;gap:.2rem}.ing-servings-inline-count{font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--text);min-width:1rem;text-align:center}.ing-servings-inline-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-left:.15rem}.unit-toggle{display:inline-flex;gap:1.2rem;margin-bottom:.35rem}.unit-toggle-note{font-size:.62rem;color:var(--dim);letter-spacing:.02em;margin-bottom:1rem}.unit-toggle button{background:none;border:none;padding:0;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--dim);font-family:var(--font-body)}.unit-toggle button.active{color:var(--amber)}.unit-toggle button:not(.active):hover{color:var(--text)}.conv{color:var(--dim);font-size:.8rem}.ing-group+.ing-group{margin-top:1.2rem}.ing-group-name{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:.4rem}.ing-list{list-style:none;padding:0}.ing-list li{display:flex;gap:.65rem;padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.76rem;line-height:1.4}.ing-list li:last-child{border-bottom:none}.ing-qty{font-variant-numeric:tabular-nums;min-width:4.5rem;flex-shrink:0;color:var(--dim);font-size:.7rem;padding-top:.05rem}.ing-name{flex:1;color:var(--text)}.ing-notes{color:var(--dim);font-style:italic;font-size:.68rem}.ing-hint{display:block;font-size:.62rem;color:var(--dim);font-style:italic;margin-top:.1rem;letter-spacing:.01em}.queue-list{margin:0;padding:0;list-style:none}.queue-item{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.78rem;color:var(--muted)}.queue-item:last-child{border-bottom:none}.queue-item-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item-state{flex-shrink:0;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.queue-item[data-state=pending] .queue-item-state{color:var(--dim)}.queue-item[data-state=processing] .queue-item-state{color:var(--amber)}.queue-item[data-state=done] .queue-item-state{color:#2a9d8f}.queue-item[data-state=error] .queue-item-state{color:#c0392b}.dash-book-title{font-family:var(--font-display);font-size:2.5rem;font-weight:400;color:var(--text);line-height:1.1;margin:0 0 1.25rem;letter-spacing:.01em}@media(min-width:900px){.dash-book-title{font-size:3.5rem;line-height:1.05;margin-bottom:1.5rem}}.dash-search-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.dash-search-wrap{flex:1;display:flex;align-items:center;gap:.6rem;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:.6rem .9rem;min-width:0;transition:border-color .15s}.dash-search-wrap:focus-within{border-color:var(--text)}.dash-search-icon{color:var(--dim);font-size:.9rem;flex-shrink:0}.dash-search-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:.9rem;color:var(--text);min-width:0}.dash-search-input::-moz-placeholder{color:var(--dim)}.dash-search-input::placeholder{color:var(--dim)}.dash-recipe-count{font-size:.72rem;color:var(--dim);white-space:nowrap;flex-shrink:0}.dash-add-btn{display:inline-flex;align-items:center;gap:6px;padding:.6rem 1.1rem;background:var(--amber);color:#fff;border:none;border-radius:10px;font-size:.82rem;font-weight:600;font-family:var(--font-body);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .15s}.dash-add-btn:hover{opacity:.88}.dash-filter-toggle{display:inline-flex;align-items:center;gap:5px;padding:.6rem .85rem;background:var(--paper);color:var(--dim);border:1.5px solid var(--line);border-radius:10px;font-size:.78rem;font-weight:600;font-family:var(--font-body);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:border-color .15s,color .15s,background .15s}.dash-filter-toggle:hover,.dash-filter-toggle--active{border-color:var(--amber);color:var(--amber)}.dash-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--amber);color:#fff;font-size:.62rem;font-weight:700;line-height:1}.dash-filters{margin-bottom:1.5rem;padding-top:.25rem}.dash-filter-group-label{font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:0 0 .45rem}.dash-suggest-hint{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--amber);margin:0 0 .85rem}.dash-suggest-hint i{font-size:.85rem;opacity:.85}.dash-card--suggested{border-color:#c8902d66}.dash-card-suggest{position:absolute;top:.65rem;left:.75rem;font-size:.58rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--amber);line-height:1}@media(max-width:760px){.dash-search-row{gap:.5rem}.dash-search-wrap{padding:.55rem .75rem;gap:.5rem}.dash-search-input{font-size:16px}.dash-recipe-count{display:none}.dash-add-btn{padding:.55rem .7rem;min-width:2.5rem;justify-content:center}.dash-add-label{display:none}.dash-filter-toggle{padding:.55rem .7rem;min-width:2.5rem;justify-content:center}.dash-filter-toggle-label{display:none}}.dash-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.85rem}.applied-filter-chip{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.03em;background:#c8902d1f;color:var(--amber);border:1px solid rgba(200,144,45,.35);border-radius:999px;padding:.25rem .65rem;cursor:pointer}.applied-filter-chip:hover{background:#c8902d33}.dash-clear-btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--muted);background:none;border:1.5px solid var(--line);border-radius:999px;padding:.28rem .75rem;cursor:pointer}.dash-clear-btn:hover{border-color:var(--text);color:var(--text)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.dash-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem 1rem;cursor:pointer;text-align:left;font-family:var(--font-body);display:flex;flex-direction:column;gap:.3rem;position:relative}.dash-card:hover{box-shadow:0 4px 18px #00000017;transform:translateY(-2px)}.dash-card-pin{position:absolute;top:.65rem;right:.75rem;font-size:.7rem;color:var(--amber);opacity:.85}.dash-card-title{font-size:.95rem;font-weight:500;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dash-card-meta{font-size:.68rem;color:var(--dim);letter-spacing:.02em;margin-top:auto;padding-top:.5rem;display:flex;align-items:center;gap:.4rem}.dash-card-tag{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(200,144,45,.35);border-radius:999px;padding:.1rem .5rem;white-space:nowrap}.dash-card-fork{display:inline-flex;align-items:center;gap:.3rem;font-size:.62rem;font-weight:600;color:var(--dim);letter-spacing:.02em}.dash-card-fork i{font-size:.58rem;opacity:.85}.filter-chip{font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--dim);padding:.25rem .7rem;cursor:pointer;white-space:nowrap}.filter-chip:hover{border-color:var(--amber);color:var(--amber)}.filter-chip.active{background:var(--amber);border-color:var(--amber);color:#fff}.ingredient-chip{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.04em;background:var(--amber);color:#fff;border:none;border-radius:999px;padding:.25rem .65rem;cursor:pointer}.ingredient-chip:hover{opacity:.85}.dash-no-results{grid-column:1 / -1;color:var(--dim);font-size:.88rem;padding:2rem 0;text-align:center}.recipe-hero{margin-left:-2rem;margin-right:-2rem;margin-bottom:2rem;max-width:calc(100% + 4rem)}.recipe-hero-art{position:relative;width:100%;height:clamp(200px,36vw,420px);max-height:420px;background:var(--bg);overflow:hidden}.recipe-hero-photo{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;display:block}.recipe-nav{padding:.75rem 2rem 1rem;max-width:1080px;width:100%;margin:0 auto}.recipe-nav .header-back{color:var(--amber)}.recipe-nav .header-back:hover{background:#0000000a;color:var(--text)}.recipe-hero-inner{padding:0 2rem;max-width:1080px;width:100%;margin:0 auto}.recipe-hero-head{padding-top:.75rem;padding-bottom:1rem}.recipe-hero-inner .recipe-title{color:var(--text);font-size:2.5rem;line-height:1.1;margin-bottom:0}@media(min-width:900px){.recipe-hero-inner .recipe-title{font-size:3.5rem;line-height:1.05}}.recipe-hero-inner .recipe-description{color:var(--muted);margin-bottom:1.25rem;padding-top:1.25rem}.recipe-hero-inner .meta-row{margin-bottom:0;padding-bottom:1.5rem;border-bottom-color:var(--line)}.recipe-title{font-family:var(--font-display);font-size:3rem;font-weight:400;letter-spacing:.01em;line-height:1.15;margin-bottom:.4rem}.recipe-fork-badge{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.65rem;padding:.3rem .65rem;border:1px solid rgba(200,144,45,.35);border-radius:999px;background:#c8902d14;color:var(--amber);font-family:var(--font-body);font-size:.68rem;font-weight:600;letter-spacing:.03em;cursor:pointer}.recipe-fork-badge:hover{background:#c8902d24}.recipe-fork-badge i{font-size:.62rem}@media(min-width:900px){.recipe-title{font-size:5.5rem;line-height:1.05}}.recipe-source-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.recipe-source{font-size:.72rem;color:var(--dim);text-decoration:none}.recipe-source:hover{color:var(--muted)}.refetch-btn{font-size:.68rem;font-family:var(--font-body);color:var(--dim);background:none;border:1px solid var(--dim);border-radius:3px;padding:.15em .55em;cursor:pointer;opacity:.6}.refetch-btn:hover{opacity:1}.recipe-description{color:var(--muted);font-size:1rem;line-height:1.7;max-width:560px;margin-bottom:1.5rem}.meta-row{display:flex;flex-wrap:wrap;gap:2rem;align-items:flex-end;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.meta-pill{display:flex;flex-direction:column;gap:.1rem}.meta-pill .label{font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.meta-pill .value{font-size:1rem;font-weight:600}@media(min-width:900px){.meta-pill .value{font-size:1.1rem}}.recipe-body{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start;max-width:1080px;width:100%;margin:0 auto;padding:0 2rem}.recipe-article--editing .recipe-inline-title,.recipe-inline-title{width:100%;box-sizing:border-box;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.35rem .65rem;font-family:var(--font-display);color:var(--text)}.recipe-inline-input,.recipe-inline-textarea{width:100%;box-sizing:border-box;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font-family:var(--font-body);font-size:.9rem;color:var(--text);outline:none}.recipe-inline-input:focus,.recipe-inline-textarea:focus{border-color:var(--amber)}.recipe-inline-textarea{resize:vertical;min-height:3.5rem;line-height:1.5}.recipe-description-input{margin-top:.25rem;margin-bottom:1rem;max-width:560px}.recipe-meta-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}@media(min-width:640px){.recipe-meta-edit{grid-template-columns:repeat(3,minmax(0,1fr))}}.recipe-meta-edit-field{display:flex;flex-direction:column;gap:.25rem;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.recipe-edit-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.recipe-edit-bar-error{flex:1;margin:0;font-size:.78rem;color:#c0392b}.recipe-edit-bar-btn{font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:.45rem .9rem;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);cursor:pointer}.recipe-edit-bar-btn--save{background:var(--amber);border-color:var(--amber);color:#fff;margin-left:auto}.recipe-edit-bar-btn:disabled{opacity:.5;cursor:default}.recipe-ing-edit,.recipe-steps-col{min-width:0}.recipe-ing-edit-head,.recipe-steps-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.recipe-ing-edit-group{padding:.85rem;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:.75rem}.recipe-ing-edit-row{display:flex;gap:.4rem;margin:.5rem 0;align-items:center}.recipe-ing-qty{width:4.5rem;flex-shrink:0}.recipe-ing-unit{width:5rem;flex-shrink:0}.recipe-ing-name{flex:1;min-width:0}.recipe-inline-add{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--amber);background:none;border:none;cursor:pointer;padding:.15rem 0}.recipe-inline-remove{flex-shrink:0;width:2rem;height:2rem;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--dim);cursor:pointer}.recipe-inline-remove:hover{color:#c0392b;border-color:#c0392b}.step-remove-btn{width:auto;height:auto;padding:.25rem .5rem;font-size:.72rem;margin-top:.35rem}.step-note{margin-top:.85rem;padding:1.1rem 1.15rem .85rem;background:linear-gradient(118deg,rgba(255,255,255,.35) 0%,transparent 42%),linear-gradient(168deg,#fffce6,#fef08a 55%,#fde047);border:none;border-radius:1px 2px 12px 3px;box-shadow:1px 2px #b4911e2e,3px 6px 14px #5a460f29,inset 0 -18px 24px -18px #b48c1424;transform:rotate(-1.1deg);position:relative;max-width:22rem}.step-note:before{content:"";position:absolute;top:-7px;left:50%;transform:translate(-50%) rotate(-1deg);width:3.4rem;height:.85rem;background:#ffffff80;border:1px solid rgba(190,175,140,.35);box-shadow:0 1px 3px #00000012;opacity:.9}.step-note--editing{transform:rotate(-.5deg)}.step-note-label{margin:0 0 .15rem;font-family:var(--font-hand);font-size:1.05rem;font-weight:600;letter-spacing:.04em;text-transform:none;color:#463719b8;transform:rotate(.4deg)}.step-note-label i{display:none}.step-note-text{margin:0;font-family:var(--font-hand);font-size:1.45rem;font-weight:400;line-height:1.35;letter-spacing:.03em;color:#2b3f62;white-space:pre-wrap;transform:rotate(.25deg)}.step-note-textarea{width:100%;box-sizing:border-box;margin-top:.15rem;padding:.35rem .15rem;border:none;border-bottom:1px dashed rgba(43,63,98,.28);border-radius:0;background:transparent;font-family:var(--font-hand);font-size:1.4rem;font-weight:400;line-height:1.35;letter-spacing:.03em;color:#2b3f62;resize:vertical;outline:none}.step-note-textarea::-moz-placeholder{color:#2b3f6261;font-style:italic}.step-note-textarea::placeholder{color:#2b3f6261;font-style:italic}.step-note-actions{display:flex;gap:.5rem;margin-top:.45rem;transform:rotate(.2deg)}.step-note-btn{font-family:var(--font-body);font-size:.68rem;font-weight:600;padding:.2rem .55rem;border:none;background:none;color:#463719bf;cursor:pointer}.step-note-btn--save{color:var(--amber)}.step-note-btn--remove{color:sienna}.step-note-trigger{align-self:flex-start;margin-top:.4rem;display:inline-flex;align-items:center;gap:.12rem;padding:.1rem .2rem;border:none;background:none;color:#e5b800;font-size:.9rem;cursor:pointer;opacity:0;transition:opacity .15s ease,transform .15s ease}.step-note-trigger .fa-plus{font-size:.62rem}.step-body--noteable:hover .step-note-trigger,.step-body--noteable:focus-within .step-note-trigger,.step-note-trigger:focus-visible{opacity:.85}.step-note-trigger:hover,.step-note-trigger:focus-visible{opacity:1;color:#ca9a00;transform:scale(1.05)}@media(hover:none){.step-note-trigger{opacity:.55}.step-body--noteable:active .step-note-trigger,.step-note-trigger:focus-visible{opacity:1}}.step-note-input{margin-top:.5rem;font-family:var(--font-hand);font-size:1.25rem;line-height:1.35;color:#2b3f62}.section-label{font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:1rem}.steps-list{list-style:none;padding:0}.step{display:grid;grid-template-columns:1.6rem 1fr;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:none}.step-num{font-size:.72rem;font-weight:700;color:var(--amber);padding-top:.2rem;letter-spacing:.02em}.step-body{position:relative;display:flex;flex-direction:column;gap:.3rem}.step-instruction{font-size:1rem;line-height:1.7}@media(min-width:900px){.step-instruction{font-size:1.1rem;line-height:1.75}}.step-bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem;font-size:1rem;line-height:1.6}.step-timing{font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--amber);align-self:flex-start;display:inline-flex;align-items:center}.book-banner{margin-left:-2rem;margin-right:-2rem;margin-bottom:2rem;max-width:calc(100% + 4rem)}.book-banner-art{position:relative;width:100%;aspect-ratio:1 / 1;background:var(--bg);overflow:hidden}.book-banner-photo,.book-banner-drawing{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;pointer-events:none}.book-banner-drawing{z-index:1}.book-banner-inner{padding:1.5rem 2rem 0;max-width:1080px;width:100%;margin:0 auto}.book-banner-title{font-family:var(--font-display);font-size:2.5rem;font-weight:400;color:var(--text);line-height:1.1;margin:0 0 1rem}@media(min-width:900px){.book-banner-title{font-size:3.5rem;line-height:1.05}}.book-banner-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;cursor:crosshair;touch-action:none}.draw-toolbar{position:absolute;top:calc(var(--hdr) + .75rem);left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:.5rem;background:#0000009e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:.4rem .75rem;white-space:nowrap}.draw-toolbar-spacer{flex:1;min-width:.5rem}.draw-toolbar-divider{width:1px;height:18px;background:#ffffff2e;flex-shrink:0}.draw-toolbar-error{font-size:.72rem;color:#f87171}.draw-size-group{display:flex;align-items:center;gap:3px;background:#ffffff14;border-radius:999px;padding:3px 5px}.draw-size-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:transparent;border:none;cursor:pointer;transition:background .12s}.draw-size-btn:hover{background:#ffffff1f}.draw-size-btn.active{background:#ffffff38}.draw-size-dot{border-radius:50%;background:#fff;display:block;flex-shrink:0}.draw-size-dot[data-size=s]{width:4px;height:4px}.draw-size-dot[data-size=m]{width:7px;height:7px}.draw-size-dot[data-size=l]{width:11px;height:11px}.draw-tool-btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-body);font-size:.78rem;font-weight:600;padding:.3rem .65rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.22);background:transparent;color:#ffffffd9;cursor:pointer;transition:background .12s,opacity .12s}.draw-tool-btn:hover:not(:disabled){background:#ffffff1f}.draw-tool-btn:disabled{opacity:.35;cursor:default}.draw-tool-btn--danger{border-color:#f8717166;color:#f87171}.draw-tool-btn--danger:hover:not(:disabled){background:#f8717126}.draw-tool-btn--muted{color:#ffffff8c}.draw-tool-btn--save{background:var(--amber);border-color:transparent;color:#fff}.draw-tool-btn--save:hover:not(:disabled){opacity:.85;background:var(--amber)}.banner-draw-btn{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:#ffffff1f;border:1.5px solid rgba(255,255,255,.25);color:#fdf6ecd9;font-size:.8rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;margin-left:.5rem}.banner-draw-btn:hover{background:#ffffff38}.banner-draw-btn--remove{border-color:#f8717159;color:#f87171}.banner-draw-btn--remove:hover{background:#f8717126}.banner-upload-error{font-size:.7rem;color:#f87171;background:#00000080;border-radius:6px;padding:.2rem .5rem;white-space:nowrap}.book-banner-row{display:flex;align-items:center;gap:.75rem}.member-stack{display:flex;flex-direction:row;align-items:center}.member-circle{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--amber);display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;color:#fff;border:2.5px solid var(--bg);margin-right:-10px;flex-shrink:0;box-shadow:0 1px 4px #0000001f}.member-circle img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.member-invite-btn{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:#c8902d1f;border:2px solid rgba(200,144,45,.35);color:var(--amber);font-size:.8rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;margin-left:18px}.member-invite-btn:hover{background:#c8902d38}@media(max-width:760px){.book-banner{margin-left:-1rem;margin-right:-1rem;max-width:calc(100% + 2rem)}.book-banner-inner{padding-left:1rem;padding-right:1rem}.book-banner-title{font-size:2rem}}.banner-meta-row{margin-bottom:1.25rem;align-items:center;border-bottom:none!important}.banner-meta-divider{width:1px;height:32px;background:var(--line);flex-shrink:0;margin:0 .5rem}.fab-pill{position:fixed;bottom:1.75rem;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:.2rem;background:#0c0804d6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:.35rem .45rem;box-shadow:0 4px 28px #0006;white-space:nowrap}.fab-btn{width:42px;height:42px;border-radius:50%;background:transparent;border:none;color:#ffffffc7;font-size:.95rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.fab-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}.fab-btn:disabled{opacity:.28;cursor:default}.fab-btn--primary{background:var(--amber);color:#fff}.fab-btn--primary:hover:not(:disabled){opacity:.88;background:var(--amber)}.fab-btn--timer{width:auto;padding:0 .9rem;border-radius:999px;gap:.4rem;font-variant-numeric:tabular-nums}.fab-btn--timer-active{font-size:.9rem;font-weight:700;letter-spacing:.01em}.fab-timer-time{line-height:1}@keyframes tip-pop{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.fab-btn[data-tooltip],.member-invite-btn[data-tooltip]{position:relative}.fab-btn[data-tooltip]:after,.member-invite-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(0) scale(1);white-space:nowrap;background:#0c0804e0;color:#fdf6ecf2;font-family:var(--font-body);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.3em .65em;border-radius:999px;pointer-events:none;opacity:0;transition:opacity .08s;z-index:200}.fab-btn[data-tooltip]:hover:not(:disabled):after,.member-invite-btn[data-tooltip]:hover:after{animation:tip-pop .18s ease-out forwards}.fab-btn--danger{color:#f87171}.fab-btn--danger:hover:not(:disabled){background:#f8717126}.fab-btn--active{color:#fff;background:#ffffff26}.fab-btn--active:hover{background:#ffffff38!important}.fab-divider{width:1px;height:22px;background:#ffffff29;flex-shrink:0;margin:0 .15rem}.fab-pill--draw{max-width:calc(100vw - 2rem);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.fab-pill--draw::-webkit-scrollbar{display:none}.fab-pill--draw .fab-btn{width:38px;height:38px;font-size:.88rem}.fab-pill--draw .fab-btn--primary{width:38px;height:38px}.fab-draw-error{position:fixed;bottom:calc(2.35rem + 56px);left:50%;transform:translate(-50%);z-index:100;font-size:.72rem;color:#f87171;background:#000000c7;border-radius:6px;padding:.25rem .65rem;white-space:nowrap;pointer-events:none}.invite-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem}.invite-modal{background:var(--paper);border-radius:14px;padding:2rem;max-width:460px;width:100%;box-shadow:0 20px 60px #00000040;position:relative}.invite-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1rem;color:var(--dim);cursor:pointer;padding:4px 8px}.invite-modal-close:hover{color:var(--text)}.invite-modal-title{font-family:var(--font-display);font-size:1.5rem;font-weight:400;color:var(--text);margin:0 0 .4rem}.invite-modal-hint{font-size:.82rem;color:var(--dim);margin:0 0 1.25rem;line-height:1.5}.invite-link-row{display:flex;flex-direction:column;gap:.6rem}.invite-link-loading{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--dim);padding:.5rem 0}.invite-link-input{width:100%;padding:.55rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:.8rem;outline:none;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.invite-copy-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:.55rem 1.25rem;background:var(--amber);color:#fff;border:none;border-radius:8px;font-size:.82rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:opacity .15s}.invite-copy-btn:hover{opacity:.88}.invite-copy-btn.copied{background:#3ab46a}.invite-copy-btn:disabled{opacity:.45;cursor:default}.invite-modal-error{font-size:.8rem;color:#c0392b;margin:.5rem 0 0}.filter-modal{background:var(--paper);border-radius:14px;padding:2rem 2rem 1.5rem;max-width:520px;width:100%;max-height:min(85vh,640px);box-shadow:0 20px 60px #00000040;position:relative;display:flex;flex-direction:column}.filter-modal-body{overflow-y:auto;flex:1;min-height:0;padding-right:.15rem;margin-bottom:1.25rem}.filter-modal-section+.filter-modal-section{margin-top:1.1rem}.filter-modal-chips{display:flex;flex-wrap:wrap;gap:.4rem}.filter-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;padding-top:.25rem;border-top:1px solid var(--line)}.filter-modal-clear{margin-right:auto;font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--dim);background:none;border:none;cursor:pointer;padding:.5rem .25rem}.filter-modal-clear:hover{color:var(--text)}.filter-modal-done{padding:.55rem 1.35rem;background:var(--amber);color:#fff;border:none;border-radius:8px;font-size:.82rem;font-weight:600;font-family:var(--font-body);cursor:pointer}.filter-modal-done:hover{opacity:.88}.recipe-edit-modal{background:var(--paper);border-radius:14px;padding:2rem 2rem 1.5rem;max-width:640px;width:100%;max-height:min(90vh,780px);box-shadow:0 20px 60px #00000040;position:relative;display:flex;flex-direction:column}.recipe-edit-body{overflow-y:auto;flex:1;min-height:0;padding-right:.15rem;margin-bottom:1rem}.recipe-edit-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.recipe-edit-label{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.recipe-edit-input,.recipe-edit-textarea{width:100%;box-sizing:border-box;padding:.55rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:.88rem;outline:none}.recipe-edit-input:focus,.recipe-edit-textarea:focus{border-color:var(--amber)}.recipe-edit-textarea{resize:vertical;min-height:4rem;line-height:1.45}.recipe-edit-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .75rem}@media(min-width:540px){.recipe-edit-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.recipe-edit-section{margin-top:1.25rem}.recipe-edit-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.recipe-edit-section-title{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0}.recipe-edit-add-btn{font-family:var(--font-body);font-size:.72rem;font-weight:600;color:var(--amber);background:none;border:none;cursor:pointer;padding:.15rem 0}.recipe-edit-add-btn:hover{opacity:.8}.recipe-edit-group{padding:.75rem;border:1px solid var(--line);border-radius:10px;margin-bottom:.65rem;background:var(--bg)}.recipe-edit-group-name{margin-bottom:.55rem}.recipe-edit-ing-row,.recipe-edit-step{display:flex;align-items:flex-start;gap:.45rem;margin-bottom:.45rem}.recipe-edit-qty{width:4.5rem;flex-shrink:0}.recipe-edit-unit{width:5rem;flex-shrink:0}.recipe-edit-name{flex:1;min-width:0}.recipe-edit-step-num{flex-shrink:0;width:1.4rem;padding-top:.55rem;font-size:.78rem;font-weight:700;color:var(--amber);text-align:center}.recipe-edit-step-text{flex:1;min-width:0}.recipe-edit-remove{flex-shrink:0;width:2rem;height:2rem;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.recipe-edit-remove:hover{color:#c0392b;border-color:#c0392b}.recipe-edit-page{max-width:720px;width:100%;margin:0 auto;padding:1.25rem 1.25rem 6rem}.recipe-edit-page-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.recipe-edit-page-title{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:400;text-align:center}.recipe-edit-step-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:.45rem}.recipe-edit-step-remove{align-self:flex-start;color:sienna}.recipe-edit-tag-group{margin-bottom:1rem}.recipe-edit-tag-group:last-child{margin-bottom:0}.recipe-edit-tag-chips{display:flex;flex-wrap:wrap;gap:.4rem}.history-list{list-style:none;padding:0}.history-list li{margin-bottom:.15rem}.history-list button{width:100%;text-align:left;background:none;border:none;padding:.25rem 0;font-size:.82rem;cursor:pointer;color:var(--muted);line-height:1.35;font-family:var(--font-body)}.history-list button:hover{color:var(--text)}.history-list button.active{color:var(--text);font-weight:600}.hist-date{display:block;font-size:.68rem;color:var(--dim)}.guide-group+.guide-group{margin-top:1.25rem}.guide-group-name{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:.4rem}.guide-row{display:grid;grid-template-columns:5rem 1fr auto;gap:.5rem .75rem;padding:.45rem 0;border-bottom:1px solid var(--line);align-items:baseline;font-size:1rem}.guide-row:last-child{border-bottom:none}.guide-qty{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.92rem;white-space:nowrap}.guide-name{color:var(--text);line-height:1.4}.guide-notes{color:var(--dim);font-style:italic;font-size:.88rem}.guide-hint-cell{color:var(--dim);font-style:italic;font-size:.92rem;white-space:nowrap;text-align:right}@media(min-width:761px){#app-scroll.recipe-view{padding-right:320px;box-shadow:inset -20px 0 40px -10px #0000002e}.app-layout:has(#app-scroll.recipe-view) #ingPanel{transform:translate(0)}#ingPanel{position:fixed;top:0;right:0;bottom:0;width:320px;z-index:150;transform:translate(100%)}#ingPanel.open{transform:translate(0)}.fab-btn--ingredients-toggle{display:none}.panel-collapse-btn{display:flex;position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:-3px 0 8px #0000001a;color:var(--dim);font-size:.75rem;cursor:pointer;align-items:center;justify-content:center;z-index:2;transition:color .15s,background .15s}.panel-collapse-btn:hover{background:var(--bg);color:var(--text)}.ing-panel-inner{flex:1;overflow-y:auto;padding:1.5rem 1.5rem 2.5rem;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.ing-panel-head{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.25)}.ing-panel-title-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.recipe-body{display:flex;flex-direction:column}.recipe-steps-col{order:1}}@media(max-width:760px){#book-sidebar{display:none}#app-scroll{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.recipe-hero{margin-left:-1rem;margin-right:-1rem;max-width:calc(100% + 2rem)}.recipe-hero-inner,.recipe-body,.recipe-nav{padding-left:1rem;padding-right:1rem}.recipe-hero-inner .recipe-title{font-size:2rem}.dash-book-title{font-size:2rem;margin-bottom:1rem}#ingPanel{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(320px,100vw);height:auto;border-left:1px solid var(--line);border-top:none;border-radius:0;z-index:140;transform:translate(100%);display:flex;flex-direction:column;filter:drop-shadow(-5px 0 16px rgba(0,0,0,.15))}#ingPanel.open{transform:translate(0)}.ing-panel-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:135;background:#00000059}.ing-outer-tabs{top:-40px;left:0;right:0;flex-direction:row;border-radius:0;overflow:hidden;white-space:nowrap;border:1px solid var(--line);border-bottom:none}.ing-outer-tab{flex:1;padding:.55rem 0;height:40px;display:flex;align-items:center;justify-content:center;writing-mode:horizontal-tb;transform:none;border-radius:0;border:none}.ing-outer-tab+.ing-outer-tab{border-left:1px solid var(--line)}.ing-outer-tab.active{background:#fff;color:var(--amber)}.ing-panel-inner{flex:1;overflow-y:auto;padding:.75rem 1.25rem 1.5rem;scrollbar-width:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ing-panel-inner::-webkit-scrollbar{display:none}.ing-panel-head{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--line)}}.mobile-menu-btn{display:none}@media(max-width:760px){.mobile-top-bar{display:flex;align-items:center;position:relative;flex-shrink:0;padding:max(.5rem,env(safe-area-inset-top)) 0 .5rem;margin:0 -1rem .5rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));background:var(--bg);border-bottom:1px solid var(--line)}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:38px;padding:0 .85rem;border-radius:8px;background:var(--amber);color:#fff;border:none;font-size:.85rem;cursor:pointer;font-family:var(--font-body);font-weight:700;letter-spacing:.04em}.mobile-menu-btn .menu-book-label{font-size:.78rem;letter-spacing:.08em;opacity:.9}}.mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:195;background:#00000073}.mobile-drawer{position:absolute;left:0;top:0;bottom:0;width:100%;max-width:100vw;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:max(1.25rem,env(safe-area-inset-top)) 1.25rem 1rem;border-bottom:1px solid var(--line)}.mobile-drawer-wordmark{font-family:var(--font-display);font-size:1.6rem;font-weight:400;letter-spacing:.02em}.mobile-drawer-close{background:none;border:none;font-size:1.1rem;color:var(--dim);cursor:pointer;padding:6px 8px}.mobile-drawer-books{flex:1;overflow-y:auto;padding:.5rem 0}.mobile-book-row{display:flex;align-items:center;gap:.9rem;width:100%;padding:.85rem 1.25rem;background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:1rem;color:var(--text);border-bottom:1px solid var(--line)}.mobile-book-row:last-child{border-bottom:none}.mobile-book-row.active{background:#c8902d0f}.mobile-book-initial{width:38px;height:38px;border-radius:9px;flex-shrink:0;background:var(--amber);color:#fff;font-family:var(--font-display);font-size:1.1rem;display:flex;align-items:center;justify-content:center}.mobile-book-name{flex:1;font-weight:500}.mobile-book-check{color:var(--amber);font-size:.9rem}.mobile-drawer-actions{padding:.75rem 1rem max(1.5rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.25rem}.mobile-drawer-action-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem .5rem;background:none;border:none;font-family:var(--font-body);font-size:.92rem;color:var(--muted);cursor:pointer;border-radius:8px;text-align:left}.mobile-drawer-action-btn i{width:1.2rem;text-align:center}.mobile-drawer-action-btn:hover{background:#0000000a;color:var(--text)}.mobile-drawer-enter-active,.mobile-drawer-leave-active{transition:opacity .2s ease}.mobile-drawer-enter-active .mobile-drawer,.mobile-drawer-leave-active .mobile-drawer{transition:transform .25s ease}.mobile-drawer-enter-from,.mobile-drawer-leave-to{opacity:0}.mobile-drawer-enter-from .mobile-drawer,.mobile-drawer-leave-to .mobile-drawer{transform:translate(-100%)}@media(min-width:900px){body{font-size:19px}.ing-list li{font-size:.76rem}.ing-qty{font-size:.7rem}.ing-notes{font-size:.68rem}.history-list button{font-size:.9rem}.hist-date{font-size:.72rem}}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:opacity-90:hover{opacity:.9}.focus\:border-\[var\(--amber\)\]:focus{border-color:var(--amber)}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:768px){.md\:max-w-lg{max-width:32rem}.md\:items-center{align-items:center}.md\:rounded-2xl{border-radius:1rem}}
