@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-vietnamese-400-normal-CvGt0Ybw.woff2) format("woff2"),url(/assets/fraunces-vietnamese-400-normal-B65MOf9T.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-ext-400-normal-D8gbi3Gu.woff2) format("woff2"),url(/assets/fraunces-latin-ext-400-normal-UihxqfOe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/fraunces-vietnamese-800-normal-B5-KC0PG.woff2) format("woff2"),url(/assets/fraunces-vietnamese-800-normal-Ciifa4CI.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/fraunces-latin-ext-800-normal-DYQACqvw.woff2) format("woff2"),url(/assets/fraunces-latin-ext-800-normal-pDzgxm9I.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/fraunces-latin-800-normal-5RM8DebB.woff2) format("woff2"),url(/assets/fraunces-latin-800-normal-B3oGScaA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-berry: #7C3AED;--color-pink: #EC4899;--color-orange: #FB923C;--color-bg: #FDF7FF;--color-surface: #FFFFFF;--color-surface-alt: #F4ECFF;--color-ink: #2A1E37;--color-ink-muted: rgba(42, 30, 55, .65);--color-border: rgba(124, 58, 237, .15);--color-on-accent: #fff;--status-published-bg: #EDE4FB;--status-published-fg: #6D28D9;--status-draft-bg: #FFEAD5;--status-draft-fg: #C2410C;--status-processing-bg: #EDE4FB;--status-processing-fg: #6D28D9;--status-failed-bg: #FEE2E2;--status-failed-fg: #B91C1C;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-pill: 999px;--shadow-sm: 0 3px 10px rgba(42, 30, 55, .07);--shadow-md: 0 4px 14px rgba(42, 30, 55, .08);--shadow-lg: 0 10px 30px rgba(42, 30, 55, .12);--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--content-max: 720px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #1A1424;--color-surface: #241A33;--color-surface-alt: #2E2242;--color-ink: #F3ECFA;--color-ink-muted: rgba(243, 236, 250, .65);--color-border: rgba(200, 170, 255, .18);--color-berry: #A78BFA;--color-pink: #F472B6;--color-orange: #FDBA74;--color-on-accent: #1A1424;--shadow-sm: 0 3px 10px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .55);--status-published-bg: #3B2A5C;--status-published-fg: #D6C7F5;--status-draft-bg: #4A2E1A;--status-draft-fg: #FDBA74;--status-processing-bg: #3B2A5C;--status-processing-fg: #D6C7F5;--status-failed-bg: #4A1F24;--status-failed-fg: #FCA5A5}}:root[data-theme=dark]{--color-bg: #1A1424;--color-surface: #241A33;--color-surface-alt: #2E2242;--color-ink: #F3ECFA;--color-ink-muted: rgba(243, 236, 250, .65);--color-border: rgba(200, 170, 255, .18);--color-berry: #A78BFA;--color-pink: #F472B6;--color-orange: #FDBA74;--color-on-accent: #1A1424;--shadow-sm: 0 3px 10px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .55);--status-published-bg: #3B2A5C;--status-published-fg: #D6C7F5;--status-draft-bg: #4A2E1A;--status-draft-fg: #FDBA74;--status-processing-bg: #3B2A5C;--status-processing-fg: #D6C7F5;--status-failed-bg: #4A1F24;--status-failed-fg: #FCA5A5}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-ink);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:800;letter-spacing:-.3px;line-height:1.15}a{color:var(--color-berry);text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-berry);outline-offset:2px;border-radius:4px}.ui-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--color-berry)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.authed-img{max-width:100%;border-radius:var(--radius-md);display:block}.authed-img--loading{color:var(--color-ink-muted);font-size:13px}.ui-tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:8px 0 calc(10px + env(safe-area-inset-bottom,0px));background:var(--color-surface);box-shadow:0 -2px 12px #2a1e3714;z-index:10}.ui-tab{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-weight:700;color:var(--color-ink-muted)}.ui-tab__icon{font-size:20px}.ui-tab--active{color:var(--color-berry)}.ui-fab{position:fixed;right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:var(--radius-pill);background:var(--color-orange);color:var(--color-on-accent);font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px color-mix(in srgb,var(--color-orange) 50%,transparent);z-index:20}.layout__main{max-width:var(--content-max);margin:0 auto;padding:var(--space-4) var(--space-4) calc(96px + env(safe-area-inset-bottom,0px))}.ui-input{width:100%;border:none;background:var(--color-surface);color:var(--color-ink);border-radius:var(--radius-md);padding:11px 14px;font-size:14px;box-shadow:inset 0 0 0 1px var(--color-border)}.ui-input::placeholder{color:var(--color-ink-muted)}.ui-search{position:relative}.ui-search__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.7}.ui-search__input{padding-left:38px}.ui-btn{border:none;border-radius:var(--radius-md);font-weight:700;font-size:14px;padding:11px 18px;cursor:pointer;transition:transform .05s ease,filter .15s ease}.ui-btn:active{transform:translateY(1px)}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn--primary{background:var(--color-berry);color:var(--color-on-accent)}.ui-btn--primary:hover:not(:disabled){filter:brightness(1.05)}.ui-btn--secondary{background:var(--color-orange);color:var(--color-on-accent)}.ui-btn--ghost{background:transparent;color:var(--color-berry);box-shadow:inset 0 0 0 1.5px var(--color-border)}.ui-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:linear-gradient(160deg,var(--color-bg),var(--color-surface-alt))}.login__card{width:100%;max-width:360px;padding:var(--space-6);display:grid;gap:var(--space-4)}.login__brand{margin:0;text-align:center;color:var(--color-berry)}.login__form{display:grid;gap:var(--space-3)}.login__label{display:grid;gap:var(--space-1);font-size:13px;font-weight:600}.login__error{color:var(--status-failed-fg);font-size:13px;margin:0}.ui-badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 9px;border-radius:var(--radius-pill);white-space:nowrap}.ui-badge[data-status=published]{background:var(--status-published-bg);color:var(--status-published-fg)}.ui-badge[data-status=draft]{background:var(--status-draft-bg);color:var(--status-draft-fg)}.ui-badge[data-status=processing]{background:var(--status-processing-bg);color:var(--status-processing-fg)}.ui-badge[data-status=failed]{background:var(--status-failed-bg);color:var(--status-failed-fg)}.fav-btn{flex:none;border:none;background:transparent;cursor:pointer;font-size:20px;line-height:1;padding:6px;color:var(--color-pink)}.fav-btn:disabled{opacity:.5;cursor:default}.fav-btn[aria-pressed=false]{color:var(--color-ink-muted)}.fav-btn[data-error]{color:var(--status-failed-fg)}.thumb{width:52px;height:52px;flex:none;border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center}.thumb img{width:100%;height:100%;object-fit:cover}.thumb--placeholder{background:linear-gradient(135deg,var(--color-berry),var(--color-pink));color:var(--color-on-accent);font-size:22px}.recipe-card{display:flex;gap:var(--space-2);align-items:center;background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-2);box-shadow:var(--shadow-sm)}.recipe-card__link{flex:1;min-width:0;display:flex;gap:var(--space-3);align-items:center;color:var(--color-ink)}.recipe-card__body{display:flex;flex-direction:column;flex:1;min-width:0;gap:.15rem}.recipe-card__titlerow{display:flex;align-items:center;gap:var(--space-3)}.recipe-card__title{flex:1;min-width:0;font-weight:600;font-size:14px}.recipe-card__tags{display:flex;flex-wrap:wrap;gap:.3rem}.recipe-card__tag{font-size:.72rem;padding:.1rem .45rem;border-radius:999px;background:var(--color-surface-alt, #F4ECFF);color:var(--color-berry, #8a3d7a)}.ui-skeleton{background:linear-gradient(90deg,var(--color-surface-alt),var(--color-surface),var(--color-surface-alt));background-size:200% 100%;border-radius:var(--radius-md);animation:ui-shimmer 1.3s ease-in-out infinite}@keyframes ui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ui-spinner{display:flex;align-items:center;gap:var(--space-2);color:var(--color-ink-muted);font-size:14px}.ui-spinner__dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-berry);animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-ink-muted)}.ui-empty__icon{font-size:44px;margin-bottom:var(--space-3)}.ui-empty__title{margin:0 0 var(--space-2);color:var(--color-ink);font-size:18px}.ui-empty__text{margin:0;font-size:14px}.recipe-list{display:grid;gap:var(--space-4)}.recipe-list__items{display:grid;gap:var(--space-2)}.recipe-list__pager{display:flex;gap:var(--space-3);align-items:center;justify-content:center;font-size:13px;color:var(--color-ink-muted)}.recipe-list__error{color:var(--status-failed-fg)}.recipe-list__favfilter{justify-self:start;border:none;background:var(--color-surface);color:var(--color-ink-muted);box-shadow:inset 0 0 0 1px var(--color-border);border-radius:var(--radius-pill);padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}.recipe-list__favfilter[aria-pressed=true]{background:var(--color-surface-alt);color:var(--color-berry);box-shadow:inset 0 0 0 1px var(--color-berry)}.recipe-list__tagbar{display:flex;gap:.4rem;overflow-x:auto;padding:.25rem 0;margin-bottom:.5rem;scrollbar-width:thin}.recipe-list__tagchip{flex:0 0 auto;border:1px solid var(--color-surface-alt, #F4ECFF);background:transparent;color:var(--color-berry, #8a3d7a);border-radius:999px;padding:.25rem .7rem;font-size:.85rem;cursor:pointer;white-space:nowrap}.recipe-list__tagchip[aria-pressed=true]{background:var(--color-berry, #8a3d7a);color:#fff;border-color:var(--color-berry, #8a3d7a)}.band{background:linear-gradient(135deg,var(--color-berry),var(--color-pink));color:var(--color-on-accent);border-radius:var(--radius-lg);padding:var(--space-4);display:grid;gap:var(--space-2);justify-items:start}.band__title{color:var(--color-on-accent);margin:0;font-size:24px}.band__desc{margin:0;font-size:14px;opacity:.9}.band__row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--space-2)}.band__action .fav-btn{color:#fff}.band__action{display:flex;align-items:center;gap:var(--space-2)}.band__action .band__edit{color:#fff;font-size:1.1rem;line-height:1;text-decoration:none}.ui-stepper{display:inline-flex;align-items:center;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--color-border);overflow:hidden}.ui-stepper button{border:none;background:transparent;width:34px;height:34px;font-size:18px;font-weight:800;color:var(--color-berry);cursor:pointer}.ui-stepper button:disabled{opacity:.35;cursor:default}.ui-stepper__value{min-width:84px;text-align:center;font-size:13px;font-weight:700}.screenshot-gallery{display:flex;flex-wrap:wrap;gap:var(--space-2)}.screenshot-gallery img{max-width:160px;height:auto;border-radius:var(--radius-md)}@media (max-width: 480px){.screenshot-gallery img{max-width:100%;width:100%}}.tag-editor{display:flex;flex-direction:column;gap:.5rem}.tag-editor__chips{display:flex;flex-wrap:wrap;gap:.4rem}.tag-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;background:var(--color-surface-alt, #F4ECFF);color:var(--color-berry, #8a3d7a);font-size:.85rem}.tag-chip__x{border:none;background:none;cursor:pointer;color:inherit;font-size:.8rem;line-height:1;padding:0}.tag-editor__input{display:flex;gap:.4rem;align-items:center}.tag-editor__suggestions{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.tag-editor__suggestions button{border:1px solid var(--color-surface-alt, #F4ECFF);background:transparent;cursor:pointer;padding:.15rem .55rem;border-radius:999px;font-size:.82rem;color:var(--color-berry, #8a3d7a)}.bring{margin-top:var(--space-2)}.detail{display:grid;gap:var(--space-4)}.detail__alert{background:var(--status-failed-bg);color:var(--status-failed-fg);padding:var(--space-3);border-radius:var(--radius-md)}.detail__portions{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.detail__portions-label{font-weight:700;font-size:13px}.detail__ingredients{list-style:none;padding:0;margin:var(--space-2) 0 0}.detail__ingredients li{padding:var(--space-2) 0;border-bottom:1px dashed var(--color-border);font-size:14px}.detail__steps{list-style:none;padding:0;margin:var(--space-2) 0 0;display:grid;gap:var(--space-3)}.detail__steps li{display:flex;gap:var(--space-2);align-items:flex-start;font-size:14px}.detail__step-num{flex:none;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--color-berry);color:var(--color-on-accent);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}.detail__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.detail__tag{text-decoration:none;font-size:.82rem;padding:.2rem .6rem;border-radius:999px;background:var(--color-surface-alt, #F4ECFF);color:var(--color-berry, #8a3d7a)}.detail__tags-edit summary{cursor:pointer;font-size:.85rem;color:var(--color-berry, #8a3d7a)}.detail__danger{margin-top:var(--space-4)}.detail__delete{border:1px solid var(--status-failed-fg);background:transparent;color:var(--status-failed-fg);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:.9rem}.detail__delete-confirm{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.upload{display:grid;gap:var(--space-3)}.upload__drop{display:grid;gap:var(--space-2);justify-items:center;padding:var(--space-6);background:var(--color-surface-alt);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;font-weight:600}.upload__drop-icon{font-size:30px}.upload__drop input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.upload__drop:focus-within{outline:2px solid var(--color-berry);outline-offset:2px}.upload__hint{color:var(--color-ink-muted);font-size:13px;margin:0}.upload__list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}.upload__item{display:flex;gap:var(--space-2);align-items:center;background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-2);box-shadow:var(--shadow-sm)}.upload__name{flex:1;font-size:13px}.upload__move{border:none;background:var(--color-surface-alt);color:var(--color-berry);width:30px;height:30px;border-radius:var(--radius-sm);font-weight:800;cursor:pointer}.upload__move:disabled{opacity:.4;cursor:default}.upload__error{color:var(--status-failed-fg);font-size:13px}.recipe-form{display:grid;gap:var(--space-4)}.recipe-form section{display:grid;gap:var(--space-2)}.recipe-form textarea.ui-input{min-height:120px;resize:vertical}.recipe-form__hint{color:var(--status-failed-fg);font-size:.85rem;margin:0}.ingredient-editor{display:grid;gap:var(--space-2)}.ingredient-editor__row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:var(--space-2);align-items:center}.steps-editor{display:grid;gap:var(--space-2)}.steps-editor__row{display:flex;gap:var(--space-2);align-items:flex-start}.steps-editor__textarea{flex:1}.new-recipe{display:grid;gap:var(--space-4)}.new-recipe__actions{display:flex;gap:var(--space-3)}.processing,.shot-mgr{display:grid;gap:var(--space-3)}.shot-mgr__grid{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start}.shot-mgr__tile{position:relative;width:150px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-sm)}.shot-mgr__tile img{display:block;width:100%;height:auto}.shot-mgr__pageno{position:absolute;top:var(--space-2);left:var(--space-2);min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-pill);background:var(--color-berry);color:var(--color-on-accent);font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.shot-mgr__del{position:absolute;top:var(--space-2);right:var(--space-2);width:30px;height:30px;border-radius:var(--radius-pill);border:none;cursor:pointer;background:var(--color-surface);color:var(--status-failed-fg);box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1}.shot-mgr__scrim{position:absolute;left:0;right:0;bottom:0;height:46px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);background:linear-gradient(0deg,rgba(0,0,0,.42),transparent)}.shot-mgr__arrow{width:30px;height:30px;border-radius:var(--radius-pill);border:none;cursor:pointer;background:#ffffffeb;color:#2a1e37;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}.shot-mgr__del:disabled,.shot-mgr__arrow:disabled{opacity:.45;cursor:default}.shot-mgr__confirm{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);text-align:center;background:color-mix(in srgb,var(--color-ink) 78%,transparent);color:#fff}.shot-mgr__confirm p{margin:0;font-weight:600;font-size:.9rem}.shot-mgr__confirm-btns{display:flex;gap:var(--space-2)}.shot-mgr__btn{border:none;border-radius:var(--radius-pill);padding:7px 16px;font-weight:600;font-size:.82rem;cursor:pointer;font-family:inherit}.shot-mgr__btn--danger{background:var(--status-failed-fg);color:#fff}.shot-mgr__btn--ghost{background:#ffffff2e;color:#fff}.shot-mgr__add{position:relative;width:150px;aspect-ratio:3 / 4;border-radius:var(--radius-md);border:2px dashed color-mix(in srgb,var(--color-berry) 45%,transparent);background:color-mix(in srgb,var(--color-berry) 6%,var(--color-surface));color:var(--color-berry);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;font-weight:600;font-size:.85rem;text-align:center;padding:var(--space-3)}.shot-mgr__add-plus{font-size:1.8rem;line-height:1}.shot-mgr__add--disabled{opacity:.5;cursor:default}.shot-mgr__file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shot-mgr__hint{color:var(--color-ink-muted);font-size:.82rem;margin:0}.shot-mgr__del:focus-visible,.shot-mgr__arrow:focus-visible,.shot-mgr__btn:focus-visible,.shot-mgr__add:focus-within{outline:2px solid var(--color-berry);outline-offset:2px}@media (prefers-reduced-motion: no-preference){.shot-mgr__del,.shot-mgr__arrow{transition:opacity .15s ease}}@media (max-width: 480px){.shot-mgr__tile{width:100%}.shot-mgr__add{width:100%;aspect-ratio:auto;min-height:72px;flex-direction:row;gap:var(--space-3)}.shot-mgr__add-plus{font-size:1.4rem}}.draft{display:grid;gap:var(--space-4)}.draft__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.draft textarea.ui-input{min-height:120px;resize:vertical}.draft__reocr{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.draft__hint{color:var(--color-ink-muted);font-size:.82rem}.edit{display:grid;gap:var(--space-4)}.edit__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.account{display:grid;gap:var(--space-4);max-width:480px}.account__card{padding:var(--space-4);display:grid;gap:var(--space-3)}.account__themes{display:flex;gap:var(--space-2)}.account__theme{flex:1;border:none;padding:10px;border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-ink);font-weight:600;cursor:pointer}.account__theme[aria-pressed=true]{background:var(--color-berry);color:var(--color-on-accent)}.cook{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--color-bg);color:var(--color-ink);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.cook--msg{align-items:center;justify-content:center;gap:var(--space-4);text-align:center;padding:var(--space-6)}.cook__top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4)}.cook__x{width:36px;height:36px;border:none;border-radius:var(--radius-pill);background:var(--color-surface-alt);color:var(--color-berry);font-size:15px;font-weight:800;cursor:pointer}.cook__progress{font-size:14px;font-weight:700;color:var(--color-berry)}.cook__wake{width:20px;text-align:right;font-size:13px}.cook__bar{height:6px;margin:0 var(--space-4);background:var(--color-surface-alt);border-radius:var(--radius-pill);overflow:hidden}.cook__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--color-berry),var(--color-pink));border-radius:var(--radius-pill);transition:width .2s ease}.cook__main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-6) var(--space-5);text-align:center;overflow-y:auto}.cook__num{width:48px;height:48px;flex:none;border-radius:var(--radius-pill);background:var(--color-berry);color:var(--color-on-accent);font-family:var(--font-display);font-weight:800;font-size:22px;display:flex;align-items:center;justify-content:center}.cook__step{margin:0;font-size:24px;line-height:1.4;font-weight:600;max-width:34ch}.cook__nav{display:flex;gap:var(--space-3);padding:var(--space-4)}.cook__nav .ui-btn{flex:1;padding:16px;font-size:16px}.cook__nav .ui-btn:last-child{flex:2}
