.library-filters{min-width:0;margin:0 calc(-1 * var(--page-gutter))}.library-filters-track{display:flex;align-items:center;gap:8px;padding:2px var(--page-gutter) 4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--page-gutter),#000 calc(100% - var(--page-gutter) - 40px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--page-gutter),#000 calc(100% - var(--page-gutter) - 40px),transparent 100%)}.library-filters-track::-webkit-scrollbar{display:none}.library-filters-emoji{margin-right:5px;font-size:.9375rem;line-height:1}@media(min-width:1024px){.library-filters{margin:0}.library-filters-track{flex-wrap:wrap;padding:0;overflow:visible;-webkit-mask-image:none;mask-image:none}}.library-filters-clear,.library-filters-manage{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:var(--radius-pill);font-size:.875rem;font-weight:650;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.library-filters-clear{padding:0 12px 0 10px;border:1px solid transparent;background:var(--color-tomato-soft);color:var(--color-on-tomato-soft)}.library-filters-clear .num{font-weight:700}@media(hover:hover){.library-filters-clear:hover{border-color:color-mix(in srgb,var(--color-tomato) 35%,transparent)}}.library-filters-manage{border:1px dashed var(--color-border-strong);background:transparent;color:var(--color-ink-muted)}@media(hover:hover){.library-filters-manage:hover{border-style:solid;background:var(--color-surface);color:var(--color-ink)}}.library-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 10px 10px 14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-small);line-height:var(--text-small-line-height)}.library-notice-warning{border-color:color-mix(in srgb,var(--color-butter) 50%,transparent);background:var(--color-butter-soft);color:var(--color-on-butter-soft)}.library-notice-icon{display:grid;flex-shrink:0;place-items:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--color-surface-tint);color:var(--color-ink-muted)}.library-notice-warning .library-notice-icon{background:color-mix(in srgb,var(--color-butter) 45%,transparent);color:var(--color-on-butter-soft)}.library-notice-text{flex:1 1 200px;min-width:0;font-weight:550}.library-notice-actions{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}.library-notice-button,.library-notice-actions .library-notice-link{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-ink);font-size:var(--text-small);font-weight:700;white-space:nowrap;text-decoration:none;cursor:pointer}.library-notice-button:hover,.library-notice-actions .library-notice-link:hover{border-color:var(--color-border-strong);text-decoration:none}.library-quota{display:flex;align-items:center;gap:12px 14px;padding:12px 12px 12px 18px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface)}.library-quota-copy{display:flex;flex:1 1 auto;flex-direction:column;gap:5px;min-width:0}.library-quota-title{grid-area:title;min-width:0;color:var(--color-ink);font-family:var(--font-family-serif);font-size:1.0625rem;font-weight:700;letter-spacing:-.015em;line-height:1.2}.library-quota-text{grid-area:text;min-width:0;color:var(--color-ink-muted);font-size:var(--text-small);line-height:1.4}.library-quota-text .num{color:var(--color-ink);font-weight:700}.library-quota-bar{grid-area:bar;max-width:280px;margin-top:2px}.library-quota-action.btn{flex-shrink:0;grid-area:action}.library-quota.is-prompt{display:grid;grid-template-areas:"icon title action" "icon text action" "icon bar action";grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:4px 14px;padding:14px 16px 16px 14px;border-color:color-mix(in srgb,var(--color-butter) 45%,transparent);background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--color-butter) 22%,transparent) 0,transparent 55%),var(--color-butter-soft)}.library-quota.is-prompt .library-quota-text{color:var(--color-on-butter-soft)}.library-quota.is-prompt .library-quota-bar{max-width:360px;margin-top:6px}.library-quota-icon{display:grid;grid-area:icon;align-self:start;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-butter);color:var(--color-on-butter)}@media(max-width:559px){.library-quota.is-prompt{grid-template-areas:"icon title action" "text text text" "bar bar bar";row-gap:8px}.library-quota.is-prompt .library-quota-title{align-self:center}.library-quota.is-prompt .library-quota-bar{max-width:none;margin-top:0}.library-quota.is-prompt .library-quota-action.btn{padding-inline:14px}}.library-shelf{display:flex;flex-direction:column;gap:12px;min-width:0}.library-shelf-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.library-shelf-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.library-shelf-title{display:flex;align-items:center;gap:10px;color:var(--color-ink);font-family:var(--font-family-serif);font-size:1.3125rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.library-shelf-icon{display:inline-grid;flex-shrink:0;place-items:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-tomato-soft);color:var(--color-on-tomato-soft)}.library-shelf-subtitle{color:var(--color-ink-muted);font-size:var(--text-small);line-height:var(--text-small-line-height)}.library-shelf-tools{display:flex;flex-shrink:0;align-items:center;gap:8px}.library-shelf-action{display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:0 4px 0 10px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-primary);font-size:var(--text-small);font-weight:700;cursor:pointer;transition:background-color var(--transition-fast)}.library-shelf-action:hover{background:var(--color-state-hover)}.library-shelf-arrows{display:none;gap:6px}@media(hover:hover)and (pointer:fine)and (min-width:768px){.library-shelf-arrows{display:inline-flex}}.library-shelf-track{display:grid;grid-auto-columns:156px;grid-auto-flow:column;gap:12px;margin:0 calc(-1 * var(--page-gutter));padding:2px var(--page-gutter) 10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:var(--page-gutter);scroll-snap-type:x mandatory;scrollbar-width:none;list-style:none}.library-shelf-track::-webkit-scrollbar{display:none}.library-shelf-track>li{display:flex;min-width:0;scroll-snap-align:start}.library-shelf-track>li>*{flex:1 1 auto}@media(min-width:640px){.library-shelf-track{grid-auto-columns:208px;gap:16px}}@media(min-width:1024px){.library-shelf-track{grid-auto-columns:calc((100% - 48px)/4);margin:0;padding:2px 0 10px;scroll-padding-inline:0}}@media(min-width:1280px){.library-shelf-track{grid-auto-columns:calc((100% - 72px)/5);gap:18px}}.paste-link{display:flex;flex-direction:column;gap:8px;width:100%}.paste-link-field{position:relative;display:flex;align-items:center;gap:8px;min-height:60px;padding:6px 6px 6px 48px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.paste-link-field:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-focus-ring-strong),var(--shadow-sm)}.paste-link-field.has-error{border-color:var(--color-danger)}.paste-link-icon{position:absolute;left:18px;color:var(--color-tomato);pointer-events:none}.paste-link-input{flex:1 1 auto;min-width:0;height:46px;padding:0;border:0;background:transparent;color:var(--color-ink);font-size:var(--text-body-lg);outline:none}.paste-link-input::placeholder{color:var(--color-placeholder);opacity:1}.paste-link-button.btn{flex-shrink:0;min-height:46px;padding-inline:18px}.paste-link-error{display:flex;align-items:flex-start;gap:6px;padding:0 16px;color:var(--color-danger);font-size:var(--text-small);font-weight:600;line-height:var(--text-small-line-height)}.paste-link-error svg{flex-shrink:0;margin-top:2px}.library-welcome{display:flex;flex-direction:column;gap:32px}.library-welcome-hero{position:relative;display:flex;flex-direction:column;gap:20px;padding:28px 20px 22px;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--color-butter) 18%,transparent) 0,transparent 40%),radial-gradient(circle at 0% 100%,color-mix(in srgb,var(--color-primary-soft) 70%,transparent) 0,transparent 46%),var(--color-surface);box-shadow:var(--shadow-sm);isolation:isolate}.library-welcome-copy{display:flex;flex-direction:column;gap:10px}.library-welcome-eyebrow{color:var(--color-tomato-ink);font-size:var(--text-label);font-weight:800;letter-spacing:var(--text-label-letter-spacing);line-height:var(--text-label-line-height);text-transform:uppercase}.library-welcome-title{color:var(--color-ink);font-family:var(--font-family-serif);font-size:clamp(2.125rem,1.6rem + 2.4vw,3.25rem);font-weight:700;letter-spacing:-.035em;line-height:1.02}.library-welcome-accent{display:table;color:var(--color-primary);font-style:italic;font-weight:600;background-image:linear-gradient(var(--color-butter),var(--color-butter));background-position:0 90%;background-repeat:no-repeat;background-size:100% .13em}.library-welcome-body{max-width:46ch;color:var(--color-ink-muted);font-size:var(--text-body-lg);line-height:var(--text-body-lg-line-height)}.library-welcome-art{display:none}.library-welcome-steps{display:grid;gap:10px;margin-top:4px;list-style:none}.library-welcome-step{display:flex;align-items:flex-start;gap:12px}.library-welcome-step-icon{position:relative;display:grid;flex-shrink:0;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-on-primary-soft)}.library-welcome-step-number{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--color-surface);border-radius:var(--radius-pill);background:var(--color-tomato);color:var(--color-on-tomato);font-size:.625rem;font-weight:800;line-height:1}.library-welcome-step-copy{display:flex;flex-direction:column;gap:1px;min-width:0;padding-top:1px}.library-welcome-step-title{color:var(--color-ink);font-size:var(--text-body);font-weight:700;line-height:1.3}.library-welcome-step-body{color:var(--color-ink-muted);font-size:var(--text-small);line-height:var(--text-small-line-height)}@media(min-width:768px){.library-welcome-hero{gap:24px;padding:40px 40px 32px}.library-welcome-hero .paste-link{max-width:620px}.library-welcome-art{position:absolute;top:32px;right:40px;z-index:-1;display:block;width:clamp(180px,24vw,280px)}.library-welcome-art svg{width:100%;height:auto}.library-welcome-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px;padding-top:24px;border-top:1px solid var(--color-border-subtle)}}.library-welcome-sample-placeholder{pointer-events:none}.library-welcome-sample-photo{aspect-ratio:4 / 3;border-radius:0}.skeleton.library-welcome-sample-text{display:inline-block;width:88%;clip-path:inset(.22em 0 .22em 0 round 6px)}.skeleton.library-welcome-sample-text.is-short{width:56%}.skeleton.library-welcome-sample-text.is-meta{display:block;width:48%}.library-welcome-starter .library-welcome-title{font-size:clamp(1.875rem,1.5rem + 1.8vw,2.75rem)}.library-page.container-wide{max-width:var(--max-width-wide)}.library-content{--library-gap: 20px;display:flex;flex-direction:column;gap:var(--library-gap);min-width:0}.library-header.page-header{align-items:center;margin-bottom:0}.library-header .page-header-subtitle{font-size:var(--text-body)}@media(max-width:559px){.library-header.page-header{flex-wrap:nowrap;gap:12px}.library-header .page-header-actions{flex-shrink:0}}@media(max-width:359px){.library-header.page-header{flex-wrap:wrap}}.library-search-sentinel{height:0;margin-bottom:calc(-1 * var(--library-gap))}.library-search-bar{position:sticky;top:var(--app-sticky-top, 0px);z-index:var(--z-sticky);margin:-8px calc(-1 * var(--page-gutter)) -4px;padding:calc(8px + env(safe-area-inset-top,0px)) var(--page-gutter) 8px;border-bottom:1px solid transparent;background:transparent;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.library-search-bar.is-stuck{border-bottom-color:var(--color-border-subtle);background:radial-gradient(1100px 520px at 50% -8%,var(--color-canvas) 0%,var(--color-bg) 58%) fixed,var(--color-bg);box-shadow:var(--shadow-xs)}.library-search-bar .search-field-input{text-overflow:ellipsis}@media(min-width:1024px){.library-search-bar{padding-top:12px}}.library-search-bar .search-field{box-shadow:var(--shadow-sm)}.library-highlight{padding:0 1px;border-radius:3px;background:color-mix(in srgb,var(--color-butter) 45%,transparent);box-shadow:inset 0 -2px 0 var(--color-butter);color:inherit}.library-page .recipe-card-meta:has(.library-meta-item),.library-welcome .recipe-card-meta:has(.library-meta-item){display:flex;flex-wrap:wrap;column-gap:10px;height:calc(var(--text-caption-line-height) * 1em);overflow:hidden}.library-meta-item{flex-shrink:0;white-space:nowrap}.library-page .recipe-card-meta:has(.library-meta-sep){column-gap:6px}.library-meta-sep{margin-right:6px;color:var(--color-ink-subtle)}.library-meta-icon{margin-right:4px;color:var(--color-ink-subtle);vertical-align:-2px}.library-results{display:flex;flex-direction:column;gap:14px;min-width:0}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.library-section-title{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;color:var(--color-ink);font-family:var(--font-family-serif);font-size:1.3125rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.library-section-count{padding:3px 8px;border-radius:var(--radius-pill);background:var(--color-surface-tint);color:var(--color-ink-muted);font-family:var(--font-family-sans);font-size:.75rem;font-weight:750;letter-spacing:0;line-height:1.2}.library-results-count{min-width:0;overflow:hidden;color:var(--color-ink-muted);font-size:var(--text-small);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.library-results-count .num{color:var(--color-ink);font-weight:750}.library-toolbar-tools{display:flex;flex-shrink:0;align-items:center;gap:8px}.library-sort-button.btn{min-height:36px;padding-inline:12px 10px;gap:6px;font-size:var(--text-small)}.library-sort-label-short{display:none}@media(max-width:559px){.library-toolbar{flex-wrap:wrap;row-gap:8px}.library-toolbar-tools{margin-left:auto}.library-sort-label{display:none}.library-sort-label-short{display:inline}.library-sort-button.btn{padding-inline:12px 8px;gap:2px}.library-sort-button.btn .btn-icon:not(.btn-icon-trailing){display:none}}.library-view-toggle{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-sunken)}.library-view-toggle .icon-btn.is-pressed{--icon-btn-bg: var(--color-surface-raised);--icon-btn-bg-hover: var(--color-surface-raised);--icon-btn-fg: var(--color-ink);--icon-btn-fg-hover: var(--color-ink);box-shadow:var(--shadow-xs)}.library-grid,.library-list{display:grid;list-style:none}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}@media(min-width:600px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px}}@media(min-width:1280px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}}.library-item{display:flex;min-width:0}.library-item>.recipe-card{flex:1 1 auto}.library-grid>.library-item{content-visibility:auto;contain-intrinsic-size:auto 280px}.library-list>.library-item{content-visibility:auto;contain-intrinsic-size:auto 96px}.library-grid .recipe-card-title{font-size:1rem}@media(min-width:600px){.library-grid .recipe-card-title{font-size:1.0625rem}}.library-list{gap:0}.library-list>.library-item+.library-item{border-top:1px solid var(--color-border-subtle)}.library-list .recipe-card-list{min-height:96px;padding:12px 8px}.library-list .recipe-card-list .recipe-card-media{width:76px}@media(min-width:900px){.library-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}.library-list>.library-item+.library-item{border-top:0}.library-list>.library-item{border-bottom:1px solid var(--color-border-subtle)}}.library-card .recipe-card-meta{margin-top:1px}.library-card-owner{color:var(--color-ink);font-weight:650}.badge.library-media-badge{--badge-bg: color-mix(in srgb, var(--color-surface-raised) 90%, transparent);min-height:22px;padding:3px 8px 3px 7px;box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.02em}.badge-neutral.library-media-badge{--badge-fg: var(--color-ink)}.badge-butter.library-media-badge,.badge-primary.library-media-badge,.badge-danger.library-media-badge{--badge-bg: color-mix(in srgb, var(--color-surface-raised) 90%, transparent)}.badge-butter.library-media-badge{--badge-fg: var(--color-on-butter-soft)}.badge-butter.library-media-badge svg{color:var(--color-butter)}.badge-primary.library-media-badge{--badge-fg: var(--color-on-primary-soft)}.badge-danger.library-media-badge{--badge-fg: var(--color-danger)}.recipe-card-grid .library-favorite.icon-btn.is-pressed,.recipe-card-list .library-favorite.icon-btn.is-pressed{--icon-btn-fg: var(--color-tomato);--icon-btn-fg-hover: var(--color-tomato-hover)}.library-favorite.is-pressed svg{animation:library-heart-pop var(--duration-base) var(--ease-spring)}@keyframes library-heart-pop{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}.library-shelf-card.recipe-card-grid{box-shadow:none}.library-shelf-card .recipe-card-title{font-size:.9375rem;-webkit-line-clamp:2;line-clamp:2}.library-shelf-card .recipe-card-body{padding:10px 12px 12px}@media(min-width:640px){.library-shelf-card .recipe-card-title{font-size:1rem}}.library-skeleton .library-skeleton-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface)}.library-skeleton-image{aspect-ratio:4 / 3;border-radius:0}.library-skeleton-copy{display:flex;flex-direction:column;gap:8px;padding:14px}.library-skeleton-line{width:85%;height:14px}.library-skeleton-line.is-short{width:50%;height:11px}.library-list.library-skeleton .library-skeleton-card{flex-direction:row;align-items:center;gap:14px;padding:12px 8px;border:0;border-radius:0;background:transparent}.library-list.library-skeleton .library-skeleton-image{width:76px;flex-shrink:0;aspect-ratio:1;border-radius:var(--radius-md)}.library-list.library-skeleton .library-skeleton-copy{flex:1 1 auto;padding:0}.library-family-perks{display:flex;flex-direction:column;gap:10px;list-style:none}.library-family-perks li{position:relative;padding-left:28px;color:var(--color-ink);font-size:var(--text-body);line-height:1.45}.library-family-perks li:before{position:absolute;top:3px;left:0;display:grid;width:18px;height:18px;place-items:center;border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-on-primary-soft);content:"✓";font-size:.6875rem;font-weight:800}@media(prefers-reduced-motion:reduce){.library-favorite.is-pressed svg{animation:none}}.library-page .recipe-image.is-fallback{background:radial-gradient(circle at 28% 18%,color-mix(in srgb,var(--color-butter) 22%,transparent) 0,transparent 55%),var(--color-monogram-bg)}.library-page .recipe-image.is-fallback:before{position:absolute;top:50%;left:50%;width:56%;aspect-ratio:1;border:1.5px solid color-mix(in srgb,var(--color-monogram-ink) 16%,transparent);border-radius:50%;background:color-mix(in srgb,var(--color-surface-raised) 42%,transparent);box-shadow:0 0 0 8px color-mix(in srgb,var(--color-surface-raised) 18%,transparent),var(--shadow-sm);content:"";transform:translate(-50%,-50%)}.library-page .recipe-image.is-fallback .recipe-image-monogram{position:relative;font-size:clamp(1.125rem,20cqi,3.25rem)}.recipe-card-list .recipe-image.is-fallback:before{display:none}.library-page .recipe-card-list .recipe-image.is-fallback .recipe-image-monogram{font-size:1.75rem}.library-family-locked{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-xs)}
