:root{--md-primary: #6750a4;--md-on-primary: #ffffff;--md-primary-container: #eaddff;--md-on-primary-container: #21005d;--md-surface: #fef7ff;--md-surface-container: #f3edf7;--md-surface-container-high: #ece6f0;--md-on-surface: #1d1b20;--md-on-surface-variant: #49454f;--md-outline: #cac4d0;--md-error: #b3261e;--md-error-container: #f9dedc;--md-on-error-container: #410e0b;--md-elevation-1: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px 1px rgba(0, 0, 0, .15);--md-elevation-2: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 6px 2px rgba(0, 0, 0, .15);--md-elevation-3: 0 4px 8px 3px rgba(0, 0, 0, .15), 0 1px 3px rgba(0, 0, 0, .3);--radius: 16px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Roboto,system-ui,-apple-system,sans-serif;background:var(--md-surface);color:var(--md-on-surface);-webkit-font-smoothing:antialiased}.app-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:0 24px;height:64px;background:var(--md-primary);color:var(--md-on-primary);box-shadow:var(--md-elevation-2)}.app-bar__brand{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.app-bar__icon{font-size:28px}.app-bar__title{font-size:1.375rem;font-weight:500;margin:0;letter-spacing:.1px}.app-bar__link{position:relative;display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:8px 16px;border-radius:999px;color:var(--md-on-primary);text-decoration:none;font-size:.875rem;font-weight:500;transition:background .15s ease}.app-bar__link:hover{background:#ffffff24}.app-bar__link .material-icons{font-size:20px}.app-bar__badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--md-on-primary);color:var(--md-primary);font-size:.6875rem;font-weight:700}.content{max-width:1200px;margin:0 auto;padding:24px 16px 64px}.meta-line{color:var(--md-on-surface-variant);font-size:.875rem;margin:8px 4px 20px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}.search{position:relative;display:flex;align-items:center;flex:1 1 260px;min-width:220px;background:var(--md-surface-container-high);border:1px solid var(--md-outline);border-radius:28px;padding:0 8px 0 14px;height:48px;transition:border-color .15s ease,box-shadow .15s ease}.search:focus-within{border-color:var(--md-primary);box-shadow:0 0 0 1px var(--md-primary)}.search__icon{color:var(--md-on-surface-variant);font-size:22px}.search--busy .search__icon{animation:spin 1s linear infinite}.search input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:.9375rem;color:var(--md-on-surface);padding:0 8px}.search input::-webkit-search-cancel-button{display:none}.select{display:flex;flex-direction:column;gap:2px}.select__label{font-size:.6875rem;font-weight:500;color:var(--md-on-surface-variant);padding-left:12px;text-transform:uppercase;letter-spacing:.4px}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--md-surface-container-high) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="%2349454f"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 10px center;border:1px solid var(--md-outline);border-radius:12px;padding:10px 36px 10px 14px;font-family:inherit;font-size:.875rem;color:var(--md-on-surface);cursor:pointer;max-width:220px}.select select:focus-visible{outline:2px solid var(--md-primary);outline-offset:1px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--md-on-surface-variant);cursor:pointer}.icon-btn:hover{background:#0000000f}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.new-recipes{margin-bottom:32px}.row-title{display:flex;align-items:center;gap:8px;font-size:1.125rem;font-weight:500;margin:20px 4px 16px}.row-title .material-icons{color:var(--md-primary);font-size:22px}.row-title__count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:.75rem;font-weight:500}.card{display:flex;flex-direction:column;background:var(--md-surface-container);border-radius:var(--radius);overflow:hidden;box-shadow:var(--md-elevation-1);transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:var(--md-elevation-3);transform:translateY(-2px)}.card__media{position:relative;aspect-ratio:16 / 10;background:var(--md-surface-container-high)}.card__media img{width:100%;height:100%;object-fit:cover;display:block}.card__media-fallback{display:flex;align-items:center;justify-content:center;height:100%;color:var(--md-outline)}.card__media-fallback .material-icons{font-size:48px}.card__fav{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:#ffffffe6;color:var(--md-on-surface-variant);cursor:pointer;box-shadow:var(--md-elevation-1);transition:transform .12s ease,background .15s ease,color .15s ease}.card__fav:hover{background:#fff;transform:scale(1.08)}.card__fav--active{color:var(--md-error)}.card__fav .material-icons{font-size:22px}.badge{position:absolute;top:12px;left:12px;background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:.75rem;font-weight:500;padding:4px 12px;border-radius:999px;box-shadow:var(--md-elevation-1)}.card__body{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1}.card__title{font-size:1.0625rem;font-weight:500;line-height:1.35;margin:0}.card__comment{margin:0;color:var(--md-on-surface-variant);font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card__stats{display:flex;flex-wrap:wrap;gap:14px;margin-top:auto;color:var(--md-on-surface-variant);font-size:.8125rem}.stat{display:inline-flex;align-items:center;gap:4px}.stat .material-icons{font-size:18px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-block;background:var(--md-surface-container-high);border:1px solid var(--md-outline);color:var(--md-on-surface-variant);font-family:inherit;font-size:.75rem;padding:3px 10px;border-radius:8px;text-transform:capitalize;text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{background:var(--md-primary-container);color:var(--md-on-primary-container);border-color:var(--md-primary-container)}.chip--active{background:var(--md-primary);color:var(--md-on-primary);border-color:var(--md-primary)}.card__footer{padding:10px 16px;border-top:1px solid var(--md-outline);color:var(--md-on-surface-variant);font-size:.75rem}.load-more{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:32px}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--md-primary);color:var(--md-on-primary);border:none;border-radius:999px;padding:12px 24px;font-family:inherit;font-size:.875rem;font-weight:500;letter-spacing:.1px;cursor:pointer;box-shadow:var(--md-elevation-1);transition:box-shadow .2s ease,filter .2s ease}.btn:hover:not(:disabled){box-shadow:var(--md-elevation-2);filter:brightness(1.05)}.btn:disabled{opacity:.7;cursor:default}.btn--tonal{background:var(--md-primary-container);color:var(--md-on-primary-container);box-shadow:none}.btn--tonal:hover:not(:disabled){box-shadow:var(--md-elevation-1)}.load-more__error{color:var(--md-error);font-size:.875rem;margin:0 0 12px;text-align:center}.btn .material-icons{font-size:20px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.banner{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:12px;margin-bottom:24px}.banner--error{background:var(--md-error-container);color:var(--md-on-error-container)}.banner p{margin:4px 0 0;font-size:.875rem}.empty{text-align:center;color:var(--md-on-surface-variant);padding:64px 16px}.empty .material-icons{font-size:56px;opacity:.6}.card__title-link{color:inherit;text-decoration:none}.card__title-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.card{position:relative}.card .chip{position:relative;z-index:2}.card__title-link:hover{color:var(--md-primary)}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--md-primary);text-decoration:none;font-size:.875rem;font-weight:500;margin-bottom:16px}.back-link:hover{text-decoration:underline}.back-link .material-icons{font-size:20px}.detail{display:flex;flex-direction:column;gap:32px}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;background:var(--md-surface-container);border-radius:var(--radius);overflow:hidden;box-shadow:var(--md-elevation-1)}.hero__media{position:relative;min-height:260px;background:var(--md-surface-container-high)}.hero__media img{width:100%;height:100%;object-fit:cover;display:block}.hero__media-fallback{display:flex;align-items:center;justify-content:center;height:100%;color:var(--md-outline)}.hero__media-fallback .material-icons{font-size:64px}.hero__body{padding:24px 24px 24px 0;display:flex;flex-direction:column;gap:16px}.hero__title{font-size:1.75rem;font-weight:500;line-height:1.25;margin:0}.hero__comment{margin:0;color:var(--md-on-surface-variant);font-size:.9375rem;line-height:1.5}.hero__stats{display:flex;flex-wrap:wrap;gap:16px;color:var(--md-on-surface-variant);font-size:.9375rem}.hero__author{margin:auto 0 0;color:var(--md-on-surface-variant);font-size:.8125rem}.hero__actions{display:flex;flex-wrap:wrap;gap:12px}.btn--large{align-self:flex-start;padding:14px 28px;font-size:.9375rem}.btn--fav-active{color:var(--md-error)}.fav-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:8px}.empty__hint{font-size:.8125rem;max-width:360px;margin:4px auto 20px}.section__title{font-size:1.125rem;font-weight:500;margin:0 0 16px}.detail__columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px;align-items:start}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.gallery__img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;background:var(--md-surface-container-high)}.ingredients{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ingredient{display:flex;align-items:center;gap:14px;padding:8px;border-radius:12px}.ingredient:hover{background:var(--md-surface-container)}.ingredient__thumb{flex:0 0 auto;width:44px;height:44px;border-radius:10px;overflow:hidden;background:var(--md-surface-container-high);display:flex;align-items:center;justify-content:center;color:var(--md-outline)}.ingredient__thumb img{width:100%;height:100%;object-fit:cover}.ingredient__text{display:flex;flex-direction:column;min-width:0}.ingredient__name{font-size:.9375rem}.ingredient__note{font-size:.75rem;color:var(--md-on-surface-variant)}.ingredient__amount{margin-left:auto;text-align:right;display:flex;flex-direction:column;font-size:.9375rem;font-weight:500;white-space:nowrap}.ingredient__amount-us{font-size:.75rem;font-weight:400;color:var(--md-on-surface-variant)}.nutrition{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px}.nutrition__cell{background:var(--md-surface-container);border-radius:12px;padding:12px;text-align:center}.nutrition__value{display:block;font-size:1.25rem;font-weight:500}.nutrition__value small{font-size:.6875rem;font-weight:400;color:var(--md-on-surface-variant);margin-left:2px}.nutrition__label{font-size:.75rem;color:var(--md-on-surface-variant)}.nutrition__highlights{display:flex;align-items:center;gap:6px;margin:14px 0 0;font-size:.8125rem;color:var(--md-on-surface-variant)}.nutrition__highlights .material-icons{font-size:18px;color:var(--md-primary)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;counter-reset:step}.step{display:grid;grid-template-columns:40px 160px 1fr;gap:16px;align-items:start;background:var(--md-surface-container);border-radius:var(--radius);padding:16px}.step__index{width:32px;height:32px;border-radius:50%;background:var(--md-primary);color:var(--md-on-primary);display:flex;align-items:center;justify-content:center;font-weight:500}.step__img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px}.step__body{display:flex;flex-direction:column;gap:10px}.step__text{margin:0;line-height:1.5}.step__timer{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:.8125rem;font-weight:500;padding:4px 12px;border-radius:999px}.step__timer .material-icons{font-size:16px}.chips--detail{margin-top:4px}.chips--detail .chip{text-decoration:none}.cook{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--md-surface);display:flex;flex-direction:column;outline:none}.cook__bar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.cook__count{font-size:.9375rem;font-weight:500;color:var(--md-on-surface-variant)}.icon-btn--light{color:var(--md-on-surface)}.cook__progress{height:4px;background:var(--md-surface-container-high)}.cook__progress-fill{display:block;height:100%;background:var(--md-primary);transition:width .25s ease}.cook__stage{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 24px;max-width:720px;width:100%;margin:0 auto;text-align:center}.cook__img{width:100%;max-height:42vh;object-fit:cover;border-radius:var(--radius)}.cook__text{font-size:1.375rem;line-height:1.45;margin:0}.cook__timer{display:inline-flex;align-items:center;gap:6px;background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:1rem;font-weight:500;padding:8px 18px;border-radius:999px}.cook__ingredients{list-style:none;margin:0;padding:0;width:100%;max-width:420px;display:flex;flex-direction:column;gap:8px}.cook__ingredients li{display:flex;justify-content:space-between;gap:12px;background:var(--md-surface-container);border-radius:12px;padding:12px 16px;font-size:.9375rem;text-align:left}.cook__ingredient-amount{font-weight:500;white-space:nowrap}.cook__nav{display:flex;justify-content:space-between;gap:16px;padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--md-outline);max-width:720px;width:100%;margin:0 auto}.cook__nav .btn{flex:1;justify-content:center}@media(max-width:720px){.hero{grid-template-columns:1fr}.hero__body{padding:0 20px 24px}.hero__media{min-height:220px}.detail__columns{grid-template-columns:1fr}.step{grid-template-columns:32px 1fr}.step__img{grid-column:1 / -1}}
