@layer base,components,pages;@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&family=Quicksand:wght@500;700&display=swap"layer(base);@layer base{[hidden]{display:none!important}html{background:var(--color-bg);box-sizing:border-box;scroll-behavior:smooth;overflow-x:clip;max-width:100vw}body{margin:0;font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;position:relative;z-index:0;min-height:100vh;overflow-x:clip;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}a{color:var(--color-link);transition:all 1s ease-in-out}a:hover{color:var(--color-link-hover)}b{color:var(--color-bold)}button{padding:.45rem 1rem;background-color:var(--color-btn-bg);border:var(--color-input-border) 1px solid;font-family:var(--font-body);color:var(--color-btn-text);font-size:.9rem;transition:background-color var(--transition-base),color var(--transition-base);cursor:pointer}button:hover{background-color:var(--color-surface);color:var(--color-btn-text)}textarea{font-family:var(--font-body);font-size:1rem;color:var(--color-input-text);background:var(--color-input-bg);border:1px solid var(--color-input-border);box-sizing:border-box;border-radius:var(--radius-base);transition:border-color var(--transition-base);display:block;width:auto;margin:4px 0;padding:10px}.container{margin-top:.25vh;margin-left:1.5vw;min-height:84.5vh;margin-right:1.5vw}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[data-title]:hover:after{opacity:1;transition:all .1s ease .5s;visibility:visible}[data-title]:after{content:attr(data-title);position:absolute;bottom:-1.6em;left:100%;padding:4px 4px 4px 8px;color:var(--color-input-text);white-space:nowrap;font-family:var(--font-body);font-size:8px;font-weight:700;text-transform:uppercase;background-color:var(--color-tooltip-bg);box-shadow:var(--color-tooltip-shadow) 1px 1px 2px;letter-spacing:1px;border-radius:var(--radius-base);opacity:0;z-index:99999;visibility:hidden}[data-title]{position:relative}h1{text-align:center;font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3rem);font-weight:500;margin:clamp(2.4rem,6vw,3rem) 1.5rem 1.75rem;color:var(--color-text)}h2{font-family:var(--font-display);text-transform:uppercase;margin:2vh 0;width:100%;clear:both;font-weight:700;text-align:center;font-size:calc(10px + .25vw);display:block}.menu-dropdown__panel,.auth-card,.recipe-note,.recipe-similar__card{transition:background-color .3s ease,color .3s ease}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}@layer base{:root{--color-bg: #fcfaf7;--color-text: #1a1a1a;--color-accent: #e9572a;--color-border: #d8d3ca;--color-hover: #f4f0ec;--color-pill-bg: #f7f7f7;--color-pill-border: #d8d3ca;--color-surface: #ffffff;--color-surface-glass: rgba(255, 255, 255, .65);--color-header-glass: rgba(252, 250, 247, .72);--color-text-muted: rgba(26, 26, 26, .45);--color-text-secondary: rgba(26, 26, 26, .65);--color-link: #667963;--color-link-hover: #4C424A;--color-bold: #4C424A;--color-logo-num: #327039;--color-logo-text: #222222;--color-input-bg: #ffffff;--color-input-border: #cccccc;--color-input-text: #222222;--color-title-accent: #c1440e;--color-btn-bg: #ebebeb;--color-btn-text: #333333;--color-tooltip-bg: #fff;--color-tooltip-shadow: #ebebeb;--color-dropdown-bg: rgba(252, 250, 247, .92);--color-success: #2e7d32;--color-success-strong: #246828;--color-success-soft: #d4edda;--color-success-text: #155724;--color-danger: #c0392b;--color-danger-strong: #962d22;--color-danger-soft: #f8d7da;--color-danger-text: #721c24;--color-danger-toast: #b32d2d;--color-warn: #b76d12;--color-warn-strong: #985a0e;--color-warn-soft: #fef3cd;--color-warn-text: #856404;--color-warn-bright: #d68910;--color-info: #2b6cb0;--color-info-soft: #d1ecf1;--color-info-text: #0c5460;--color-ai: #6e3cb8;--color-ai-strong: #8a4ad6;--color-ai-soft: #f7f0ff;--color-ai-border: #d6c2f0;--color-ai-soft-strong: #efe4ff;--color-admin-soft: #e2d5f1;--color-admin-text: #4a2070;--color-superadmin-soft:#fde4cf;--color-superadmin-text:#7a3a00;--glass-filter: saturate(180%) blur(20px);--layout-content-width: min(90%, 1100px);--font-body: "Nunito", "Quicksand", sans-serif;--font-display: "Quicksand", "Nunito", sans-serif;--radius-sm: 4px;--radius-md: 6px;--radius-base: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--radius-circle: 50%;--transition-fast: .15s ease;--transition-base: .2s ease;--header-height: 3.4rem;--capsule-width: min(78vw, 970px)}html[data-theme=dark]{color-scheme:dark;--color-bg: #1c1a17;--color-text: #e8e4df;--color-accent: #f0734e;--color-border: #3a3530;--color-hover: #2a2622;--color-pill-bg: #2a2622;--color-pill-border: #3a3530;--color-surface: #242120;--color-surface-glass: rgba(36, 33, 32, .7);--color-header-glass: rgba(28, 26, 23, .78);--color-text-muted: rgba(255, 255, 255, .85);--color-text-secondary: rgba(255, 255, 255, .95);--color-link: #8fa68c;--color-link-hover: #c9b8c2;--color-bold: #c9b8c2;--color-logo-num: #5aad63;--color-logo-text: #e8e4df;--color-input-bg: #2a2622;--color-input-border: #3a3530;--color-input-text: #e8e4df;--color-title-accent: #e8744a;--color-btn-bg: #2a2622;--color-btn-text: #e8e4df;--color-tooltip-bg: #2a2622;--color-tooltip-shadow: #1a1a1a;--color-dropdown-bg: rgba(36, 33, 32, .92)}}@layer base{.menu-dropdown{position:relative}.menu-dropdown__caret{font-size:.5rem;opacity:.5;transition:transform var(--transition-base)}.menu-dropdown:hover .menu-dropdown__caret,.menu-dropdown.is-open .menu-dropdown__caret{transform:rotate(180deg)}.menu-dropdown__panel:before{content:"";position:absolute;top:-.5rem;left:0;right:0;height:.5rem}.menu-dropdown__panel{position:absolute;top:calc(100% + .35rem);right:0;min-width:170px;background:var(--color-surface);border:1px solid rgba(26,26,26,.1);border-radius:.6rem;box-shadow:0 8px 24px #0000001a;padding:.35rem;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--transition-fast),transform var(--transition-fast),visibility .15s}.menu-dropdown:hover .menu-dropdown__panel,.menu-dropdown.is-open .menu-dropdown__panel{opacity:1;visibility:visible;transform:translateY(0)}.menu-dropdown__panel a,.menu-dropdown__panel button.dialog-trigger{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem!important;border-radius:.4rem;font-size:.78rem;white-space:nowrap;color:var(--color-text-secondary)!important}.menu-dropdown__panel button.dialog-trigger{width:100%;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;font-weight:inherit}.menu-dropdown__panel a:hover,.menu-dropdown__panel button.dialog-trigger:hover{background:var(--color-hover);color:var(--color-text)!important}.menu-dropdown__panel a i,.menu-dropdown__panel button.dialog-trigger i{width:1rem;text-align:center;font-size:.7rem;opacity:.6}.menu-dropdown--create .menu-btn--split{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:.5rem}.menu-dropdown--create .menu-btn--split-caret{border-top-left-radius:0;border-bottom-left-radius:0;padding:.4rem .55rem;margin-left:-1px;border-left:1px solid rgba(255,255,255,.25);box-shadow:none}.menu-dropdown--create .menu-btn--split-caret .menu-dropdown__caret{opacity:.85;color:#fff}.menu-dropdown--create.is-open .menu-btn--split-caret .menu-dropdown__caret,.menu-dropdown--create:hover .menu-btn--split-caret .menu-dropdown__caret{transform:rotate(180deg)}}@layer base{#header{background-color:var(--color-header-glass);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter);padding:.85rem 2vw;box-sizing:border-box;padding-left:calc(1.25rem + max(2vw,calc((100% - var(--layout-content-width)) / 2)));padding-right:calc(1.25rem + max(2vw,calc((100% - var(--layout-content-width)) / 2)));display:flex;align-items:center;justify-content:space-between;gap:2vw;flex-wrap:wrap;border-bottom:1px solid color-mix(in srgb,var(--color-text) 4%,transparent);position:sticky;top:0;z-index:100;max-width:100%;margin-left:auto;margin-right:auto;transition:max-width .45s cubic-bezier(.22,1,.36,1),padding-left .45s cubic-bezier(.22,1,.36,1),padding-right .45s cubic-bezier(.22,1,.36,1),gap .4s cubic-bezier(.22,1,.36,1),border-radius .3s ease,top .45s cubic-bezier(.22,1,.36,1),background-color .35s ease,backdrop-filter .35s ease,-webkit-backdrop-filter .35s ease,border-color .3s ease,box-shadow .3s ease}#header.is-floating{max-width:var(--layout-content-width);margin-left:auto;margin-right:auto;padding-left:5.5rem;padding-right:5.5rem;gap:.5rem;border-bottom-color:transparent;top:3rem;background-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}}@layer components{.jobs-bell{position:relative}.jobs-bell__btn{position:relative;padding:.45rem .6rem}.jobs-bell__btn i{font-size:.9rem}.jobs-bell__badge{position:absolute;top:0;right:0;min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-size:.65rem;font-weight:700;line-height:1.1rem;text-align:center;transform:translate(40%,-25%)}.jobs-bell__panel{position:absolute;right:0;top:calc(100% + .35rem);width:min(320px,90vw);max-height:60vh;overflow-y:auto;background:var(--color-surface);border:1px solid rgba(26,26,26,.1);border-radius:.5rem;box-shadow:0 6px 20px #0000001a;padding:.1rem .5rem .4rem;z-index:1000}.jobs-panel__list+.jobs-panel__heading-row,.jobs-panel__list+.jobs-panel__heading{border-top:1px solid color-mix(in srgb,var(--color-border) 55%,transparent);margin-top:.25rem}.jobs-panel__heading{font-family:var(--font-display);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0;padding:.5rem 0 .2rem}.jobs-panel__heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem}.jobs-panel__action{background:none;border:none;padding:.5rem 0 .2rem;margin:0;font-family:inherit;font-size:.68rem;color:var(--color-text-muted);cursor:pointer;border-radius:.25rem}.jobs-panel__action:hover{color:var(--color-text);text-decoration:underline}.jobs-panel__action:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.jobs-panel__list{list-style:none;padding:0;padding-inline-start:0;margin:0}.jobs-panel__empty{text-align:center;color:var(--color-text-muted);padding:.75rem;margin:0;font-size:.8rem}.jobs-row{padding:.35rem 0;border-radius:.35rem}.jobs-row--linked{cursor:pointer}.jobs-row--linked:hover{background:var(--color-hover)}.jobs-row__head{display:flex;align-items:center;gap:.4rem;min-height:1.9rem}.jobs-row__title{font-weight:400;font-size:.75rem;line-height:1.25;flex:1;min-width:0;overflow-wrap:anywhere;color:var(--color-text);text-decoration:none}a.jobs-row__title:hover{text-decoration:underline}.jobs-row__time{font-size:.7rem;color:var(--color-text-muted);white-space:nowrap}.jobs-row__close{background:none;border:none;color:color-mix(in srgb,var(--color-text-muted) 70%,transparent);cursor:pointer;padding:.1rem .2rem;font-size:.7rem;line-height:1;opacity:.7;transition:opacity var(--transition-fast),color var(--transition-fast)}.jobs-row__close:hover{color:var(--color-text);opacity:1}.jobs-row__error{color:var(--color-danger);margin:.2rem 0 0;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jobs-bell--pulse .jobs-bell__btn{animation:jobs-bell-pulse 1.4s ease-in-out infinite}.jobs-bell--pulse .jobs-bell__btn i{animation:jobs-bell-icon-pulse 1.4s ease-in-out infinite}@keyframes jobs-bell-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-accent) 45%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--color-accent) 0%,transparent)}}@keyframes jobs-bell-icon-pulse{0%,to{transform:scale(1);color:inherit}50%{transform:scale(1.15);color:var(--color-accent)}}.jobs-row--pulse{animation:jobs-row-pulse .8s ease-in-out 2}@keyframes jobs-row-pulse{0%,to{background:transparent}50%{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}}@media(prefers-reduced-motion:reduce){.jobs-bell--pulse .jobs-bell__btn,.jobs-bell--pulse .jobs-bell__btn i,.jobs-row--pulse{animation:none}}}@layer base{.logo{font-size:calc(18px + .25vw);padding:0;margin:0;text-align:left;letter-spacing:2.5px;position:relative;font-weight:700;font-family:var(--font-display);text-transform:uppercase;display:inline-block;flex-shrink:0;transition:transform .4s cubic-bezier(.22,1,.36,1)}#header.is-floating .logo{transform:scale(.82);transform-origin:left center}.logo b{letter-spacing:-2px;font-size:calc(18px + .45vw);line-height:1;font-weight:700;font-family:var(--font-display);color:var(--color-logo-num);margin-right:10px}.logo a{color:var(--color-logo-text);text-decoration:none;transition:opacity var(--transition-base)}.logo a:hover{text-decoration:none;opacity:.7}}@layer base{#user-menu .menu-container .menu-btn{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;font-size:.75rem;padding:.45rem .85rem;border:1px solid transparent;border-radius:var(--radius-pill);transition:background var(--transition-base),color var(--transition-base),box-shadow var(--transition-base),transform .25s cubic-bezier(.34,1.56,.64,1)}#user-menu .menu-container .menu-btn i{font-size:.65rem}#user-menu .menu-container .menu-btn--accent{background:var(--color-accent);color:#fff;box-shadow:0 2px 8px #e9572a40}#user-menu .menu-container .menu-btn--accent:hover{background:#d44e24;color:#fff;box-shadow:0 4px 14px #e9572a59;transform:translateY(-1px)}#user-menu .menu-container .menu-btn--admin,#user-menu .menu-container .menu-btn--logout{background:color-mix(in srgb,var(--color-text) 6%,transparent);color:var(--color-text-muted);border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent)}#user-menu .menu-container .menu-btn--admin:hover,#user-menu .menu-container .menu-btn--logout:hover{color:var(--color-text);transform:translateY(-1px)}#user-menu .menu-container .menu-btn--admin:hover{background:color-mix(in srgb,var(--color-text) 10%,transparent)}#user-menu .menu-search{display:inline-flex;align-items:center;min-width:180px}}@layer base{.zoom-toggle,.theme-toggle,.units-toggle{position:fixed;right:1.5rem;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;z-index:9999;box-shadow:0 2px 12px #0000001a;transition:color var(--transition-base),background var(--transition-base),transform .2s cubic-bezier(.22,1,.36,1),box-shadow var(--transition-base)}.zoom-toggle{bottom:5rem;font-size:.85rem;font-weight:700}.units-toggle{bottom:8.5rem;font-size:.8rem;font-weight:700}.units-toggle[aria-pressed=true]{color:var(--color-text);border-color:color-mix(in srgb,var(--color-text) 24%,transparent)}.theme-toggle{bottom:1.5rem;font-size:1.05rem}.zoom-toggle:hover,.theme-toggle:hover,.units-toggle:hover{color:var(--color-text);transform:scale(1.08);box-shadow:0 4px 18px #00000026}.theme-toggle .theme-icon--light{display:none!important}html[data-theme=dark] .theme-toggle .theme-icon--light{display:inline-block!important}html[data-theme=dark] .theme-toggle .theme-icon--dark{display:none!important}}@layer pages{.toast-region{right:5.5rem}}@layer base{.filter-search{position:relative;display:inline-flex}.filter-search__form{display:flex;align-items:center;position:relative}#user-menu .menu-search .filter-search--topbar{width:auto}.filter-search--topbar{width:auto;float:none}.filter-search--topbar .filter-search__form{width:auto}.filter-search.filter-search--topbar .search-input{width:clamp(180px,18vw,280px);padding:.45rem 1.1rem;height:auto;font-size:.875rem;font-family:var(--font-body);border-radius:var(--radius-pill);background-color:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-text) 14%,transparent);color:var(--color-text);box-shadow:0 1px 4px #0000000f;transition:width .25s ease,border-color .2s ease,box-shadow .2s ease;line-height:normal}.filter-search.filter-search--topbar .search-input:focus,.filter-search.filter-search--topbar .search-input:hover,.filter-search.filter-search--topbar .search-input:not(:placeholder-shown){width:clamp(220px,22vw,340px);background-color:var(--color-surface);border-color:color-mix(in srgb,var(--color-text) 28%,transparent);box-shadow:0 2px 8px #00000014;outline:none}.filter-search--topbar .search-reset{right:.75rem}.filter-search--topbar .search-loading{right:2.05rem}}@layer base{#user-menu{display:flex;align-items:center;justify-content:flex-end;flex:1;text-align:right;margin-left:auto;transition:transform .4s cubic-bezier(.22,1,.36,1)}#header.is-floating #user-menu{transform:scale(.88);transform-origin:right center}.hi-user{font-size:calc(10px + .15vw);text-transform:uppercase;opacity:1;transition:all .5s ease-in-out}#user-menu .menu-container{font-family:var(--font-display);font-weight:600;font-size:.82rem;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.4rem;text-align:left;transition:all .5s ease-in-out}#user-menu .menu-container a{padding:.3rem .7rem;border-radius:var(--radius-pill);transition:color var(--transition-fast);text-decoration:none;color:var(--color-text-muted)}#user-menu .menu-container a:hover{color:var(--color-text)}}@layer base{@media(max-width:1024px){#header.is-floating{top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}#header.is-floating .logo,#header.is-floating #user-menu{transform:none}}@media(max-width:768px){#header{flex-wrap:nowrap;gap:.5rem;padding:.55rem .75rem}#header.is-floating{top:1rem;padding-left:.75rem;padding-right:.75rem}.logo{font-size:16px}.logo b{font-size:18px;margin-right:4px}.logo a>span{display:none}#user-menu .menu-container{flex-wrap:nowrap;gap:.2rem;font-size:.72rem}#user-menu .menu-search{max-width:clamp(80px,40vw,180px)!important;min-width:0!important;overflow:hidden}#user-menu .menu-search .search-input,#user-menu .menu-search .search-input:focus,#user-menu .menu-search .search-input:hover,#user-menu .menu-search .search-input:not(:placeholder-shown){width:100%!important;max-width:100%!important;box-sizing:border-box!important;font-size:16px!important}#user-menu .menu-container a{padding:.2rem .45rem}#user-menu .menu-container a.extra{display:none}#user-menu .menu-container .menu-btn{padding:.45rem .65rem;font-size:.68rem;gap:.2rem}#user-menu .menu-container .menu-btn i{font-size:.95rem}#user-menu .menu-container .menu-btn span{display:none}#user-menu .menu-container .menu-btn--accent,#user-menu .menu-container .menu-btn--admin,#user-menu .menu-container .menu-btn--logout{width:36px;height:36px;padding:0;justify-content:center;flex-shrink:0}#user-menu .menu-container .menu-dropdown__caret{display:none!important}.menu-dropdown__panel{min-width:150px}}}@layer pages{.jobs-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.jobs-modal-hint{font-size:.85rem;color:var(--color-text-secondary);margin:.4rem 0 0}.jobs-toolbar-date{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--color-text-secondary)}.toolbar input[type=date]{height:2rem;box-sizing:border-box;padding:0 .6rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.88rem;line-height:1}.job-row td{vertical-align:middle}.jobs-detail{display:grid;grid-template-columns:12rem 1fr;gap:.4rem 1rem;margin:0}.jobs-detail dt{font-weight:600;color:var(--color-text-secondary)}.jobs-detail dd{margin:0}.jobs-detail__section{margin-top:.85rem}.jobs-detail__heading{margin:0 0 .4rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.jobs-detail__actions{display:flex;gap:.5rem;margin-top:1rem}.jobs-detail__pre{background:var(--color-hover);padding:.6rem .75rem;border-radius:var(--radius-md);overflow-x:auto;font-size:.78rem;white-space:pre-wrap;word-break:break-word;color:var(--color-text);margin:0}.jobs-detail__error-kind{margin-top:0;font-size:.85rem;color:var(--color-text-secondary)}}@layer pages{.changelog{border-top:1px solid var(--color-border);padding-top:1.25rem}.changelog h2{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 1rem}.changelog h3{font-family:var(--font-display);margin-top:1.25rem}.changelog ul{padding-left:1.25rem}.changelog li{margin-bottom:.3rem}.empty-changelog{color:var(--color-text-secondary);font-style:italic}}@layer pages{.ai-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem;margin-bottom:1.75rem}.model-card,.user-card{border:1px solid var(--color-border);border-radius:10px}.model-card{padding:.75rem .9rem}.model-card__name{font-family:var(--font-mono, monospace);font-size:.8rem;color:var(--color-text);word-break:break-all;margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.4rem}.model-card__row{display:grid;grid-template-columns:3rem 1fr 4rem;align-items:center;gap:.4rem;font-size:.78rem;margin:.2rem 0}.model-card__lbl{color:var(--color-text-muted);font-weight:500}.model-card__bar,.user-card__bar{display:block;height:.65rem;background:var(--color-hover);border-radius:var(--radius-pill);overflow:hidden}.model-card__bar{position:relative}.model-card__bar-fill,.user-card__bar-fill{display:block;height:100%;border-radius:var(--radius-pill);transition:width .3s}.model-card__bar-fill{background:var(--color-ai)}.user-card__bar-fill{background:var(--color-success)}.model-card__bar-fill--warn,.user-card__bar-fill--warn{background:#d6a050}.model-card__bar-fill--full,.user-card__bar-fill--full{background:var(--color-danger-toast)}.model-card__nums{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;text-align:right}.model-card__blocked{color:var(--color-danger-toast);font-weight:600}.model-card--blocked{border-color:var(--color-danger-toast);background:color-mix(in srgb,var(--color-danger-toast) 4%,transparent)}.model-card--disabled{opacity:.55;border-color:var(--color-border);background:var(--color-hover)}.model-card__toggle{background:none;border:none;padding:.15rem .35rem;cursor:pointer;color:var(--color-text-secondary);font-size:.75rem;flex-shrink:0;border-radius:var(--radius-sm)}.model-card__toggle:hover{color:var(--color-text);background:var(--color-hover)}.model-card--disabled .model-card__toggle{color:var(--color-success);opacity:1}.model-card--disabled .model-card__toggle:hover{background:color-mix(in srgb,var(--color-success) 10%,transparent)}.model-card__disabled-badge{font-size:.72rem;color:var(--color-text-secondary);font-style:italic;margin:-.2rem 0 .4rem}.model-card--not-in-chain{opacity:.45}.model-card__not-in-chain{font-size:.65rem;color:var(--color-text-muted);font-family:inherit;text-transform:uppercase;letter-spacing:.04em}.ai-users{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.6rem;margin-bottom:1.75rem}.user-card{padding:.65rem .85rem;display:flex;flex-direction:column;gap:.4rem}.user-card__head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.user-card__name{font-weight:600;font-size:.92rem;color:var(--color-text)}.user-card__name--system{font-style:italic;color:var(--color-text-muted)}.user-card__pct{font-size:.78rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.user-card__meta{display:flex;gap:1.1rem;font-size:.74rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.user-card__meta strong{color:var(--color-text-secondary);font-weight:600;margin-right:.2rem}.ai-refresh-info{margin-left:auto;font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.table--ai{font-size:.82rem;table-layout:fixed}.table--ai th{padding:.4rem .5rem;font-size:.7rem;color:var(--color-text-muted);letter-spacing:.04em}.table--ai td{padding:.45rem .5rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-section-title{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem}.table--ai th.col-time,.table--ai td.col-time{width:11rem}.table--ai th.col-user,.table--ai td.col-user{width:6rem}.table--ai th.col-feature,.table--ai td.col-feature{width:7rem}.table--ai th.col-model,.table--ai td.col-model{width:11rem}.table--ai th.col-status,.table--ai td.col-status,.table--ai th.col-tokens,.table--ai td.col-tokens{width:5rem}.table--ai th.col-cred,.table--ai td.col-cred,.table--ai th.col-ms,.table--ai td.col-ms{width:4.5rem}}@layer pages{.auth-page{display:flex;justify-content:center;align-items:flex-start;min-height:60vh;padding:2rem 1rem}.auth-card{max-width:440px;width:100%;background:var(--color-bg);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:0 4px 24px #00000012;padding:2rem 2.25rem;animation:fade-up .6s cubic-bezier(.22,1,.36,1) both}.auth-card h1{text-align:left;font-size:clamp(1.4rem,3vw,1.8rem);margin:0 0 .25rem;padding:0;height:auto}.auth-card>p{font-size:.88rem;color:color-mix(in srgb,var(--color-text) 60%,transparent);margin:0 0 1.25rem;line-height:1.5}.auth-nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.5rem}.auth-nav__link{padding:.3rem .75rem;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;text-decoration:none;color:color-mix(in srgb,var(--color-text) 45%,transparent);border:1.5px solid color-mix(in srgb,var(--color-text) 8%,transparent);transition:color var(--transition-base),border-color var(--transition-base),background-color var(--transition-base)}.auth-nav__link:hover{color:var(--color-text);border-color:color-mix(in srgb,var(--color-text) 20%,transparent);background-color:color-mix(in srgb,var(--color-text) 5%,transparent)}.auth-message{background:color-mix(in srgb,var(--color-text) 5%,transparent);border-radius:var(--radius-lg);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:var(--color-text);border:1px solid var(--color-border)}.auth-form{display:flex;flex-direction:column;gap:.25rem}.auth-card form p{display:flex;flex-direction:column;gap:.3rem;margin:0 0 .85rem;text-align:left}.auth-card form label{font-family:var(--font-display);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:color-mix(in srgb,var(--color-text) 50%,transparent);display:block;min-width:auto}.auth-card form input[type=text],.auth-card form input[type=password],.auth-card form input[type=email],.auth-card form input[type=number],.auth-card form input[type=url],.auth-card form input[type=tel]{width:100%;padding:.65rem .85rem;box-sizing:border-box;border:1.5px solid color-mix(in srgb,var(--color-text) 10%,transparent);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:.9rem;color:var(--color-text);background:var(--color-input-bg);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.auth-card form input[type=text]:focus,.auth-card form input[type=password]:focus,.auth-card form input[type=email]:focus{border-color:#66796380;box-shadow:0 0 0 3px #6679631a;outline:none}.auth-card form input[type=radio]{accent-color:#667963}.email-list{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.25rem}.email-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .5rem;border-radius:var(--radius-lg);border:1px solid transparent}.email-row:hover{background:color-mix(in srgb,var(--color-text) 4%,transparent)}.email-row input[type=radio]{width:auto;flex:none;margin:0;accent-color:#667963}.auth-card .email-row__addr{flex:1;min-width:0;margin:0;font-family:var(--font-body);font-size:.9rem;font-weight:500;text-transform:none;letter-spacing:normal;color:var(--color-text);overflow-wrap:anywhere;cursor:pointer}.badge--success{background:var(--color-success-soft);color:var(--color-success-text)}.badge--warning{background:var(--color-warn-soft);color:var(--color-warn-text)}.badge--muted{background:color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text-secondary)}.email-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.email-actions .btn{font-size:.8rem}.email-actions .btn--danger{background:transparent;color:var(--color-danger);border:1.5px solid color-mix(in srgb,var(--color-danger) 45%,transparent);box-shadow:none}.email-actions .btn--danger:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.auth-card form input:disabled{background:color-mix(in srgb,var(--color-text) 5%,transparent);color:var(--color-text-secondary);border-color:color-mix(in srgb,var(--color-text) 8%,transparent);cursor:not-allowed}.pending-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.4rem}.pending-actions .btn{font-size:.75rem;padding:.3rem .7rem;box-shadow:none}.pending-actions .btn--danger{background:transparent;color:var(--color-danger);border:1.5px solid color-mix(in srgb,var(--color-danger) 45%,transparent)}.pending-actions .btn--danger:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.auth-card form .helptext{font-size:.72rem;color:color-mix(in srgb,var(--color-text) 40%,transparent)}.auth-card form .helptext a{color:var(--color-link);font-size:inherit}.auth-card form>ul:not([class]){margin:.1rem 0 .85rem;padding:0;list-style:none;font-size:.72rem}.auth-card form>ul:not([class]) li{position:relative;padding-left:.95rem;margin:.15rem 0;font-size:.72rem;line-height:1.5;color:color-mix(in srgb,var(--color-text) 45%,transparent)}.auth-card form>ul:not([class]) li:before{content:"";position:absolute;left:.15rem;top:.6em;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.55}.auth-card h2{text-align:left;margin:1.25rem 0 .75rem;color:color-mix(in srgb,var(--color-text) 50%,transparent)}.auth-card a{color:var(--color-link);text-decoration:none;font-weight:600;transition:color var(--transition-base)}.auth-card a:hover{color:var(--color-link-hover)}.auth-card form p:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:.5rem}.auth-card form input[type=checkbox]{width:auto;accent-color:#667963;margin:0}.social-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0}.social-divider:before,.social-divider:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--color-text) 8%,transparent)}.social-divider span{font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,var(--color-text) 30%,transparent)}.social-providers{display:flex;justify-content:center;gap:.65rem;list-style:none;margin:0;padding:0}.social-provider-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-lg);background:var(--color-surface);border:1.5px solid var(--color-border);text-decoration:none;color:var(--color-text);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform .2s cubic-bezier(.22,1,.36,1)}.social-provider-btn:hover{border-color:color-mix(in srgb,var(--color-text) 15%,transparent);box-shadow:0 2px 8px #00000014;transform:translateY(-1px);color:var(--color-text)}.social-provider-btn svg{display:block}.social-provider-btn__name{font-family:var(--font-display);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}@media only screen and (max-width:480px){.auth-card{padding:1.5rem 1.25rem;border-radius:var(--radius-lg)}.auth-nav{gap:.25rem}.auth-nav__link{padding:.25rem .6rem;font-size:.65rem}}}@layer pages{.imp-form-row{margin-top:1rem}.imp-form-row label{display:block;font-weight:600;margin-bottom:.35rem;color:var(--color-text)}.imp-form-row input[type=file]{display:block}.imp-help{font-size:.85rem;color:var(--color-text-secondary);margin-top:.25rem}.imp-help--warn{color:var(--color-danger)}.imp-checkbox{display:flex;align-items:center;gap:.5rem;margin-top:1.25rem;font-weight:600}.progress-log{background:#1e1e1e;color:#0f0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;padding:1rem;border-radius:var(--radius-base);max-height:400px;overflow-y:auto}.progress-log .line{opacity:0;animation:imp-fade-in .3s ease forwards;white-space:pre-wrap}@keyframes imp-fade-in{to{opacity:1}}.opt-inline{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #333}.opt-inline .bar-wrap{background:#333;border-radius:var(--radius-sm);height:18px;overflow:hidden;position:relative;margin-top:.3rem}.opt-inline .bar-fill{background:#27ae60;height:100%;width:0;transition:width .4s}.opt-inline .bar-label{position:absolute;inset:0;text-align:center;line-height:18px;font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.5)}.opt-inline .opt-text{color:#8f8;font-size:.8rem}.imp-badge--pending{background:var(--color-warn);color:#fff}.imp-badge--running{background:var(--color-info);color:#fff}.imp-badge--completed{background:var(--color-success);color:#fff}.imp-badge--failed{background:var(--color-danger);color:#fff}.imp-table{width:100%;border-collapse:collapse;font-size:.9rem}.imp-table th,.imp-table td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--color-border);color:var(--color-text)}.imp-table th{font-family:var(--font-display);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.04em}.imp-bar-wrap{background:var(--color-border);border-radius:var(--radius-sm);height:22px;overflow:hidden;position:relative;margin-top:.4rem}.imp-bar-fill{background:#3498db;height:100%;width:0;transition:width .2s}.imp-bar-label{position:absolute;inset:0;text-align:center;line-height:22px;font-size:.8rem;font-weight:600;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.5)}.upload-progress{display:none;margin-top:1rem}.upload-progress.show{display:block}.upload-error{color:var(--color-danger);margin-top:.5rem;font-size:.9rem;display:none}.imp-error{color:var(--color-danger);margin-top:.5rem;font-size:.9rem}.imp-badge--inline{margin-left:auto}.imp-action-row{margin-top:1rem}.imp-submit-row{margin-top:1.5rem}.imp-retry-btn{margin-right:.3rem}.imp-progress--secondary{margin-top:.5rem}}@layer pages{#filter-form{display:contents}.toolbar>input[type=text]{width:9rem;min-width:0}.toolbar>select{width:9rem;min-width:0}.nutrition-create input[type=text]{width:9rem;min-width:0}.nutrition-create select{width:7rem;min-width:0}.toolbar-break{flex:0 0 100%;height:0}.recipe-filter-x{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:1rem;color:var(--color-text-muted);height:2rem;padding:0 .5rem;line-height:1}.recipe-filter-x:hover{color:var(--color-text);border-color:var(--color-text-muted)}#bekijk-in-recept-btn{max-width:32rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-badge{margin-left:.5rem;color:var(--color-text-muted);font-size:.78rem;font-variant-numeric:tabular-nums;opacity:.65}#nutrition-summary .stat__lbl{display:flex;flex-direction:column;height:100%}#nutrition-summary .stat__action{margin-top:auto}.dialog--autofill{min-width:min(28rem,92vw)}.autofill-intro{margin:0 0 .85rem;padding:.55rem .8rem;background:color-mix(in srgb,var(--color-info) 6%,transparent);border-left:3px solid var(--color-info);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:.85rem;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:.4rem}.autofill-intro__lead{margin:0}.autofill-scope{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem .85rem;margin:0 0 .85rem}.autofill-scope legend{font-size:.78rem;color:var(--color-text-muted);padding:0 .35rem}.autofill-scope label{display:flex;align-items:center;gap:.5rem;margin:.25rem 0;font-size:.92rem}.autofill-count{color:var(--color-text-muted);font-size:.82rem;font-variant-numeric:tabular-nums}.autofill-fields{margin:0;font-size:.82rem;color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.autofill-field-tag{display:inline-block;padding:.1rem .5rem;background:var(--color-hover);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:.75rem;color:var(--color-text)}.autofill-quota{color:var(--color-text-muted);font-size:.82rem;margin-left:.35rem}.autofill-warning{margin:.6rem 0 0;color:var(--color-danger);font-size:.85rem}.autofill-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.autofill-status{font-size:.85rem;line-height:1.4}.autofill-status__estimate{color:var(--color-text)}.autofill-status__note{color:var(--color-text-muted);font-size:.8rem}.autofill-status__note .fa-floppy-disk{color:var(--color-success);margin-right:.3rem}.autofill-actions__buttons{display:flex;gap:.5rem}.usage-badge:before{content:"×";margin-right:.15rem}.piece-hint{font-size:.7rem;color:var(--color-text-muted);margin-top:.2rem;line-height:1.1;font-style:italic}.btn-save-all{display:inline-flex;align-items:center;gap:.4rem;height:2rem;padding:0 .85rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);font-size:.88rem;font-weight:600;cursor:pointer;opacity:.5;transition:opacity .15s,background .15s,border-color .15s,color .15s}.btn-save-all[disabled]{cursor:not-allowed}.btn-save-all:not([disabled]){background:var(--color-warn);border-color:var(--color-warn);color:#fff;opacity:1;animation:save-all-blink 1.4s ease-in-out infinite}.btn-save-all:not([disabled]):hover{background:var(--color-warn-strong);border-color:var(--color-warn-strong)}.btn-save-all .save-all-count{background:#ffffff40;border-radius:var(--radius-pill);padding:.05rem .45rem;font-size:.75rem;font-variant-numeric:tabular-nums}@keyframes save-all-blink{0%,to{box-shadow:0 0 #b76d1200}50%{box-shadow:0 0 0 5px #b76d1240}}.nutrition-create{display:flex;gap:.4rem;align-items:center;margin-left:auto;padding:.35rem .5rem;background:color-mix(in srgb,var(--color-success) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 35%,transparent);border-radius:var(--radius-base)}.nutrition-create input[type=text],.nutrition-create select,.nutrition-create button{height:2rem;box-sizing:border-box;padding:0 .6rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.88rem;line-height:1}.nutrition-create input[type=text]{width:9.5rem}.nutrition-create select{max-width:8rem}.nutrition-create button{border-color:var(--color-success);background:var(--color-success);color:#fff;cursor:pointer;font-size:.95rem;padding:0 .75rem}.nutrition-create button:hover{background:var(--color-success-strong)}.table--nutrition th,.table--nutrition td{padding:.4rem .5rem}.table--nutrition .category-select{width:100%;max-width:10rem;height:1.7rem;padding:0 .35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.82rem;line-height:1;box-sizing:border-box}.table--nutrition input[type=number]{width:4.5rem;height:1.7rem;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:.85rem;text-align:right;font-variant-numeric:tabular-nums;box-sizing:border-box}.table--nutrition .th-unit{display:block;font-size:.65rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--color-text-muted);margin-top:.1rem}.table--nutrition td.col-name{font-weight:600;min-width:12rem}.table--nutrition .save-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.3rem .5rem;cursor:pointer;color:var(--color-text-secondary)}.table--nutrition .save-btn:hover{color:var(--color-text);background:var(--color-hover)}.table--nutrition tr.has-nutrition td.col-name:before{content:"";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--color-success);margin-right:.4rem;font-size:.7rem}.table--nutrition thead th a{color:inherit;text-decoration:none;white-space:nowrap}.table--nutrition thead th a:hover{color:var(--color-link)}.table--nutrition thead th a.sort-active{color:var(--color-link);font-weight:700}.table--nutrition tr.is-non-food td{opacity:.5}.table--nutrition tr.is-non-food td.col-name{opacity:1}.non-food-badge{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-hover);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.05rem .45rem;vertical-align:.1em;margin-left:.25rem}.table--nutrition tr.is-dirty{background:color-mix(in srgb,var(--color-warn) 10%,transparent)}.table--nutrition tr.is-dirty .save-btn{border-color:var(--color-warn);color:var(--color-warn);animation:dirty-pulse 1.4s ease-in-out infinite}.table--nutrition tr.is-suggested{background:color-mix(in srgb,var(--color-accent, #b76d12) 7%,transparent)}.table--nutrition .is-suggested{background:color-mix(in srgb,var(--color-accent, #b76d12) 18%,transparent);border-color:var(--color-accent, #b76d12)}.suggestion-banner[hidden]{display:none}.suggestion-banner{display:flex;align-items:center;gap:.75rem;padding:.55rem .9rem;margin:.5rem 0;background:color-mix(in srgb,var(--color-accent, #b76d12) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-accent, #b76d12) 40%,transparent);border-radius:.4rem;font-size:.9rem}.suggestion-banner__text{flex:1;color:var(--color-text)}.suggestion-filter-toggle.btn--active{background:var(--color-accent, #b76d12);color:#fff;border-color:var(--color-accent, #b76d12)}@keyframes dirty-pulse{0%,to{box-shadow:0 0 #b76d1200}50%{box-shadow:0 0 0 4px #b76d122e}}.ai-autofill-btn{background:none;border:0;color:var(--color-text-muted);cursor:pointer;padding:.15rem .3rem;font-size:.85rem;opacity:.55;transition:opacity .15s,color .15s}.col-name:hover .ai-autofill-btn,.ai-autofill-btn:focus{opacity:1}.ai-autofill-btn:hover{color:var(--color-ai-strong);opacity:1}.ai-autofill-btn.is-loading{opacity:1;animation:ai-autofill-spin .9s linear infinite}@keyframes ai-autofill-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-ai-autofill{display:inline-flex;align-items:center;gap:.3rem;height:2rem;padding:0 .55rem;border-radius:var(--radius-md);border:1px solid var(--color-ai-border);background:var(--color-ai-soft);color:var(--color-ai);font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.btn-ai-autofill:hover:not([disabled]){background:var(--color-ai-soft-strong);border-color:#b88af0}.btn-ai-autofill[disabled]{opacity:.8;cursor:progress}.btn-ai-autofill .ai-autofill-spinner{display:none;width:.85rem;height:.85rem;border:2px solid color-mix(in srgb,var(--color-ai) 25%,transparent);border-top-color:var(--color-ai);border-radius:50%;animation:ai-spin .7s linear infinite;flex-shrink:0}.btn-ai-autofill[disabled] .ai-autofill-spinner{display:inline-block}@keyframes ai-spin{to{transform:rotate(360deg)}}.btn-ai-autofill .ai-quota-inline{display:inline-flex;align-items:center;height:1.3rem;padding:0 .4rem;margin-left:.15rem;border-radius:var(--radius-sm);background:#6e3cb821;color:var(--color-ai);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums}.btn-ai-autofill .ai-autofill-progress{font-size:.78rem;font-weight:500;color:var(--color-ai);font-variant-numeric:tabular-nums}.ai-quota-badge{display:none;align-items:center;height:2rem;padding:0 .6rem;border-radius:var(--radius-md);background:var(--color-hover);color:var(--color-text-muted);font-size:.78rem;font-variant-numeric:tabular-nums}.category-list__label{cursor:pointer}.category-list__label:hover{color:var(--color-link)}.category-list__rename-input{width:100%;font-size:.88rem;padding:.1rem .35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.cat-action-btn{background:none;border:none;padding:.2rem .3rem;cursor:pointer;color:var(--color-text-secondary);font-size:.85rem;line-height:1}.cat-action-btn:hover:not(:disabled){color:var(--color-text)}.cat-action-btn:disabled{opacity:.3;cursor:default}.cat-action-btn--delete:hover:not(:disabled){color:var(--color-danger)}.ai-menu-popover .popover__item{font-size:.8rem;padding:.35rem .55rem;gap:.45rem}.dialog--dedup{width:min(95vw,1000px);height:85vh;padding:0;overflow:hidden;display:flex;flex-direction:column}.dialog--dedup .dialog__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border);flex-shrink:0;gap:.75rem}.dialog--dedup .dialog__title{margin:0;font-size:1rem}.dedup-panel__tabs{display:flex;gap:.25rem;padding:.4rem 1.25rem;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.dedup-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.dedup-header-actions .dialog__close{position:static}.dedup-tab{background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:.2rem .6rem;font-size:.8rem;cursor:pointer;color:var(--color-text-muted)}.dedup-tab--active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.dialog--dedup .dialog__body,.dedup-panel__body{overflow-y:auto;flex:1 1 0;min-height:0;padding:.75rem 1.25rem;display:flex;flex-direction:column;gap:.6rem}.dedup-loading,.dedup-empty,.dedup-error{color:var(--color-text-muted);font-style:italic;font-size:.85rem;padding:.5rem 0}.dedup-error{color:var(--color-danger);font-style:normal}.dedup-group{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.6rem;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);transition:opacity .3s}.dedup-group--merged,.dedup-group--skipped{opacity:.3;pointer-events:none}.dedup-group__meta{display:flex;flex-direction:column;gap:.25rem;min-width:5rem}.dedup-conf-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;padding:.15rem .4rem;border-radius:var(--radius-sm);text-align:center}.dedup-conf-badge--high{background:color-mix(in srgb,var(--color-success) 15%,transparent);color:var(--color-success)}.dedup-conf-badge--medium{background:color-mix(in srgb,#f59e0b 15%,transparent);color:#92400e}.dedup-conf-badge--low{background:color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text-muted)}.dedup-score{width:100%;height:4px;background:color-mix(in srgb,var(--color-border) 60%,transparent);border-radius:2px;overflow:hidden;margin:.15rem 0}.dedup-score__bar{height:100%;border-radius:2px;background:var(--color-accent);transition:width .3s}.dedup-group--high .dedup-score__bar{background:var(--color-success)}.dedup-group--medium .dedup-score__bar{background:#f59e0b}.dedup-group--low .dedup-score__bar{background:var(--color-text-muted)}.dedup-score__label{font-size:.7rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center}.dedup-method-badge{font-size:.68rem;color:var(--color-text-muted);text-align:center}.dedup-group__ingredients{display:flex;flex-direction:column;gap:.3rem}.dedup-ingredient{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.dedup-ingredient:not(.dedup-ingredient--keep){cursor:pointer}.dedup-ingredient input[type=checkbox]{flex-shrink:0;cursor:pointer}.dedup-ingredient__name{font-weight:500}.dedup-ingredient--keep{padding:.2rem 0;opacity:.9}.dedup-keep-name{font-weight:500;font-size:.85rem;border:1px solid transparent;border-radius:var(--radius-sm);padding:.1rem .35rem;background:transparent;color:var(--color-text);flex:1;min-width:0;transition:border-color .15s,background .15s}.dedup-keep-name:hover,.dedup-keep-name:focus{border-color:var(--color-border);background:var(--color-surface);outline:none}.dedup-keep-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent);padding:.1rem .4rem;border-radius:var(--radius-sm);flex-shrink:0}.dedup-swap-keep{margin-left:auto;font-size:.75rem;color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:0;white-space:nowrap;opacity:0;transition:opacity .15s}.dedup-ingredient:hover .dedup-swap-keep{opacity:1}.dedup-usage{font-size:.78rem;color:var(--color-text-muted)}.dedup-usage--none{opacity:.5}.dedup-badge--nutrition{font-size:.72rem;color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent);padding:.1rem .35rem;border-radius:var(--radius-sm)}.dedup-group__actions{display:flex;flex-direction:column;gap:.35rem;align-self:center}.dedup-impact{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem;max-height:220px;overflow-y:auto;grid-column:1 / -1}.dedup-impact__recipe{font-size:.8rem;display:flex;flex-direction:column;gap:.1rem}.dedup-impact__title{font-weight:600;color:var(--color-text);text-decoration:none}.dedup-impact__title:hover{color:var(--color-accent)}.dedup-impact__usages{color:var(--color-text-muted);font-size:.77rem}.dedup-impact__section{opacity:.7}.dedup-impact__empty{color:var(--color-text-muted);font-style:italic;font-size:.82rem}.dedup-impact__more{font-size:.78rem;color:var(--color-text-muted);font-style:italic;margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--color-border)}.dedup-ai-spinner{display:none;width:.8rem;height:.8rem;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:bex-spin .8s linear infinite;vertical-align:middle}.dedup-ai-spinner:not([hidden]){display:inline-block}}@layer pages{.copy-field__label{display:block;font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:color-mix(in srgb,var(--color-text) 50%,transparent);margin:0 0 .35rem}.copy-field{display:flex;gap:.5rem;align-items:stretch;flex-wrap:wrap}.copy-field__input{flex:1;min-width:12rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;padding:.55rem .7rem;border:1.5px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text)}.copy-field__input:focus{outline:none;border-color:#66796380;box-shadow:0 0 0 3px #6679631a}.copy-field__btn{white-space:nowrap;height:auto;align-self:stretch}}@layer components{#star-rating{display:inline-flex;align-items:center;gap:2px;padding:0;transition:background-color .1s}.star-button{display:inline-block;padding:4px 2px;font-size:.9rem;color:#dadada;cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast)}.star-button:hover{transform:scale(1.1)}i.fa-solid.fa-star.star-button{margin:0}.star-button.star-button-additional{opacity:0;transition:opacity var(--transition-fast)}#star-rating i.starred{color:#f5c518!important}p#average-rating{font-size:.72rem;font-weight:800;margin:0;color:var(--color-text)}p#count-of-ratings{font-size:.6rem;margin:0;font-style:italic;color:#1a1a1a73}.star-rating.rated i{color:#f5c518!important}.star-rating p{font-size:.65rem;padding:0;color:#1a1a1a80;font-weight:800;margin:0;text-transform:uppercase}}@layer pages{.recipe-grid{column-count:4;column-gap:.7rem;list-style:none;margin:0;padding:0}.recipe-grid__item{list-style:none;break-inside:avoid;margin-bottom:.7rem}.recipe-grid--masonry-ready{column-count:unset;column-gap:unset;margin-left:-.35rem;margin-right:-.35rem}.recipe-grid--masonry-ready .recipe-grid__item{width:25%;padding:0 .35rem .7rem;margin-bottom:0;box-sizing:border-box}.recipe-card{display:block;width:100%;border-radius:10px;overflow:hidden;position:relative;transition:transform .35s cubic-bezier(.22,1,.36,1)}.recipe-card--animated{opacity:0;transform:translateY(18px);transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .65s ease-out;will-change:transform,opacity}.recipe-card--animated.recipe-card--visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.recipe-card--animated{opacity:1;transform:none;transition:none}}.recipe-card:hover{transform:none}.recipe-card__link{display:block;text-decoration:none;color:inherit;position:relative}.recipe-card__image{display:block;overflow:hidden}.recipe-card__image img{display:block;width:100%;object-fit:cover;filter:saturate(.85) brightness(.95);transition:transform .5s cubic-bezier(.22,1,.36,1),filter .5s ease}.recipe-card__image-placeholder{display:block;width:100%;aspect-ratio:4 / 3;background:linear-gradient(135deg,#2a2a2a,#1a1a1a)}.recipe-card:hover .recipe-card__image img{transform:scale(1.05);filter:saturate(1) brightness(1)}.recipe-card__overlay{position:absolute;bottom:0;left:0;right:0;padding:2.5rem .75rem .65rem;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.2) 65%,transparent 100%);display:flex;flex-direction:column;gap:.2rem;pointer-events:none}.recipe-card__title{margin:0;font-family:var(--font-display);font-size:clamp(.85rem,1.5vw,1rem);font-weight:600;line-height:1.3;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4)}.recipe-card__meta{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#fffc}.recipe-card__meta-item{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}.recipe-card__meta-item i{font-size:.6rem}.recipe-card__meta-divider{width:3px;height:3px;border-radius:var(--radius-circle);background:#ffffff80;flex-shrink:0}.recipe-card__badges{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.35rem;z-index:2;pointer-events:none}.recipe-card__badge{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:var(--radius-circle);background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:.65rem}.recipe-card__badge--bookmark,.recipe-card__badge--private,.recipe-card__badge--mine{color:#fff}.recipe-card__badge--vegetarian{background:#5a8a4a;color:#fff}.recipe-grid__load-more{display:none}.recipe-grid__load-more:not(.is-disabled){display:block;height:0;overflow:hidden!important;padding:0;margin:0;border:none}.recipe-grid__empty{margin:4rem auto;text-align:center;font-size:1.1rem;color:#1a1a1abf}.feather-loader{display:none;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);justify-content:center;align-items:flex-end;gap:.8rem;padding:.6rem 1.4rem .5rem;background:var(--color-surface);border-radius:var(--radius-pill);box-shadow:0 2px 16px #0000001f;z-index:100}.feather-loader.is-visible{display:flex}.feather-loader__feather{display:block;width:16px;height:44px}.feather-loader__feather svg{width:100%;height:100%;display:block}.feather-loader__feather:nth-child(1){animation:feather-drift 1.8s ease-in-out infinite}.feather-loader__feather:nth-child(2){animation:feather-drift 1.8s ease-in-out .3s infinite;width:18px;height:48px}.feather-loader__feather:nth-child(3){animation:feather-drift 1.8s ease-in-out .6s infinite}@keyframes feather-drift{0%,to{opacity:.15;transform:translateY(-8px) rotate(-25deg) translate(-3px)}50%{opacity:1;transform:translateY(6px) rotate(12deg) translate(3px)}}@media(prefers-reduced-motion:reduce){.feather-loader__feather{animation:none!important}.feather-loader.is-visible .feather-loader__feather{opacity:.5}}@media(max-width:1024px){.recipe-grid{column-count:3}}@media(max-width:767px){.recipe-grid{column-count:2;column-gap:.5rem}.recipe-grid__item{margin-bottom:.5rem}.recipe-card{border-radius:var(--radius-base)}.recipe-card__overlay{padding:2rem .6rem .55rem}.recipe-card__title{font-size:clamp(.85rem,3vw,1rem)}}@media(max-width:1024px){.recipe-grid--masonry-ready .recipe-grid__item{width:33.3333%}}@media(max-width:767px){.recipe-grid--masonry-ready{margin-left:-.25rem;margin-right:-.25rem}.recipe-grid--masonry-ready .recipe-grid__item{width:50%;padding:0 .25rem .5rem}}@media only screen and (max-width:1200px)and (orientation:portrait){.recipe-grid{column-count:2}}@media only screen and (max-width:1200px)and (orientation:landscape){.recipe-grid{column-count:3}}}@layer pages{.table td.col-name{font-weight:600;min-width:14rem}.table td.col-name .recipe-name{color:var(--color-text);text-decoration:none}.table td.col-name .recipe-name:hover{color:var(--color-accent)}.table tr.recipe-row.is-not-public{opacity:.55}.visibility-btn{background:none;border:1px solid transparent;cursor:pointer;color:var(--color-text);font-size:.95rem;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background .15s,border-color .15s}.visibility-btn:hover{background:var(--color-hover);border-color:var(--color-border)}.table td.col-portions{white-space:nowrap}.table td.col-date{white-space:nowrap;color:var(--color-text-secondary);font-size:.8rem}.table .has-structured{color:var(--color-success)}.struct-pending{background:none;border:none;padding:.2rem .35rem;color:var(--color-accent);cursor:pointer;font-size:.95rem;line-height:1;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.struct-pending:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.row-counter{margin-left:auto;font-size:.82rem;color:var(--color-text-muted);white-space:nowrap}@media(max-width:720px){.toolbar input[type=text]{min-width:0;flex:1 1 100%}.row-counter{margin-left:0}}.dialog--bulk-review{width:min(95vw,1100px)}.bulk-review--readonly .wizard-ingredient__delete,.bulk-review--readonly .wizard-ingredient__add,.bulk-review--readonly .wizard-component__add,.bulk-review--readonly .wizard-actions,.bulk-review--readonly .wizard-toolbar{display:none}.bulk-review--readonly .wizard-ingredient__edit input,.bulk-review--readonly .wizard-ingredient__edit select,.bulk-review--readonly .wizard-ingredient__edit textarea{pointer-events:none;cursor:default}.bulk-review--readonly .wizard-component__header input{pointer-events:none}.bulk-review--readonly{overflow-y:auto;max-height:360px}.bulk-review-card{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.bulk-review-card__raw{overflow-y:auto;max-height:360px;padding:.75rem;background:var(--color-surface);border-radius:var(--radius-sm);font-size:.88rem;line-height:1.5}.bulk-review-card__actions{display:flex;gap:.5rem;margin-top:1rem}.bulk-review-card--approved{opacity:.45;pointer-events:none}.bulk-review-card--denied{opacity:.3;pointer-events:none}.bex-notice--warn{color:var(--color-text-muted);font-style:italic}.bex-skip-note{display:block;font-size:.82rem;color:var(--color-text-muted);margin-top:.25rem}.bex-rate-limit-banner{background:var(--color-warning-bg, #fff3cd);border:1px solid var(--color-warning-border, #ffc107);color:var(--color-warning-text, #856404);border-radius:var(--radius-sm);padding:.65rem .85rem;font-size:.85rem;line-height:1.4;margin-bottom:.75rem}.pill--rate-limited{background:var(--color-warning-bg, #fff3cd);color:var(--color-warning-text, #856404);border:1px solid var(--color-warning-border, #ffc107)}.bex-progress-header{display:flex;align-items:baseline;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border);margin-bottom:.5rem}.bex-progress-count{font-size:1.25rem;font-weight:600;color:var(--color-text)}.bex-progress-label{font-size:.85rem;color:var(--color-text-muted)}.bex-progress-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;max-height:340px;overflow-y:auto}.bex-progress-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--color-border-subtle, var(--color-border));font-size:.875rem}.bex-progress-item:last-child{border-bottom:none}.bex-progress-item__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bex-waiting-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2.5rem 1rem;color:var(--color-text-muted)}.bex-spinner{display:block;width:1.75rem;height:1.75rem;border:2px solid var(--color-border);border-top-color:var(--color-accent, currentColor);border-radius:50%;animation:bex-spin .8s linear infinite}@keyframes bex-spin{to{transform:rotate(360deg)}}.bex-running{font-size:.82rem;color:var(--color-text-muted)}.bulk-review-card__raw .ingredients{font-size:.88rem;line-height:1.5;display:flex;flex-direction:column}.bulk-review-card__raw .ingredients p,.bulk-review-card__raw .ingredients div,.bulk-review-card__raw .ingredients li{margin:0}.bex-no-structured{color:var(--color-text-muted);font-style:italic;font-size:.85rem;padding:.75rem}.bex-portions{font-size:.8rem;color:var(--color-text-muted);margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--color-border)}@media(max-width:700px){.dialog--bulk-review{width:95vw}.bulk-review-card{grid-template-columns:1fr}}}@layer pages{@media(prefers-reduced-motion:reduce){.recipe-sheet *,.recipe-sheet *:before,.recipe-sheet *:after{animation:none!important;transition-duration:0s!important}}.recipe-sheet{max-width:min(92%,1100px);margin:0 auto 4rem;display:flex;flex-direction:column;gap:1.5rem}.recipe-sheet:has(.recipe-form-preview){margin-bottom:2rem}.recipe-hero{display:grid;grid-template-columns:1fr minmax(0,60%);align-items:center;gap:1.5rem;animation:fade-up .6s cubic-bezier(.22,1,.36,1) both}.recipe-hero__info{display:flex;flex-direction:column;justify-content:center;padding:1rem 0;gap:.85rem}.recipe-hero__image{position:relative;overflow:hidden;border-radius:var(--radius-xl);box-shadow:0 8px 32px #0000001f}.recipe-hero__image img{display:block;width:100%;height:70vh;object-fit:cover}.recipe-hero__placeholder{width:100%;height:480px;background:linear-gradient(135deg,#e0dbd5,#d4cfc8)}.recipe-hero__title{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.8rem);font-weight:700;color:var(--color-title-accent);text-align:left;padding:0;height:auto;line-height:1.15}.recipe-hero__meta{display:inline-flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:0;align-self:flex-start;max-width:100%}.recipe-hero__meta-item{font-family:var(--font-display);font-weight:600;font-size:clamp(.72rem,1vw,.82rem);color:var(--color-text-muted);display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}.recipe-hero__meta-item i{font-size:.75em;opacity:.7}.recipe-hero__meta-item--source{color:color-mix(in srgb,var(--color-text) 30%,transparent);overflow:hidden;text-overflow:ellipsis;max-width:20ch}.recipe-hero__meta-divider{width:3px;height:3px;border-radius:var(--radius-circle);background:color-mix(in srgb,var(--color-text) 20%,transparent);flex-shrink:0}.recipe-hero__meta-rating{white-space:nowrap}.recipe-hero__meta-rating .recipe-action-rating{gap:.35rem}.recipe-hero__meta-rating .recipe-action-rating__info{flex-direction:row;gap:.3rem;align-items:baseline;min-height:auto;min-width:auto}.recipe-hero__meta-rating p#average-rating{color:color-mix(in srgb,var(--color-text) 45%,transparent);font-size:.75rem;font-weight:600}.recipe-hero__meta-rating p#count-of-ratings{color:color-mix(in srgb,var(--color-text) 25%,transparent);font-size:.65rem}.bookmark-icon{position:absolute;top:2rem;right:2rem;left:auto;font-size:1.6rem;color:#ffffffd9;cursor:pointer;z-index:2;width:auto;display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.22,1,.36,1),color .3s ease;text-align:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.bookmark-icon:hover{transform:scale(1.2)}.bookmark-icon .fa-solid,.bookmark-icon:hover .fa-regular{display:none!important}.bookmark-icon:hover .fa-solid{display:inline-block!important}.bookmark-icon.bookmarked{color:#f5c518;filter:drop-shadow(0 2px 6px rgba(245,197,24,.4))}.bookmark-icon.bookmarked .fa-regular{display:none!important}.bookmark-icon.bookmarked .fa-solid{display:inline-block!important}.recipe-actions-row{display:flex;gap:.75rem;align-items:stretch;animation:fade-up .6s cubic-bezier(.22,1,.36,1) .08s both}.recipe-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.75rem 1.25rem;background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 12px #0000000f}.recipe-actions--tags{flex:1;min-width:0}.recipe-actions--buttons{flex-shrink:0}.recipe-actions__categories{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.recipe-tag{text-decoration:none;transition:background-color var(--transition-base),border-color var(--transition-base),transform .2s cubic-bezier(.22,1,.36,1)}.recipe-tag:hover{background:var(--color-hover);border-color:color-mix(in srgb,var(--color-text) 18%,transparent);transform:translateY(-1px);color:var(--color-bold)}a.recipe-tag{text-decoration:none}.recipe-tag--empty{color:var(--color-text-muted);border-color:color-mix(in srgb,var(--color-text) 6%,transparent)}.recipe-actions__buttons{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.recipe-action-btn{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text-muted);font-size:.8rem;text-decoration:none;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base),transform .2s cubic-bezier(.22,1,.36,1);position:relative}.recipe-action-btn:hover{background:var(--color-hover);color:var(--color-link-hover);border-color:color-mix(in srgb,var(--color-text) 15%,transparent);transform:translateY(-1px)}.recipe-action-btn i{display:inline-flex;margin:0;padding:0;background:none;box-shadow:none;font-size:inherit;border-radius:0}.recipe-action-btn[data-title]:after{bottom:auto;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.recipe-action-btn--vis-private{color:var(--color-link)}.recipe-action-btn--vis-personal{color:var(--color-primary)}.recipe-hero__rating{display:inline-flex}.turnstile-dialog{width:min(92vw,360px);text-align:center}.turnstile-dialog .cf-turnstile{display:inline-block;margin-top:1rem}.recipe-action-rating{display:flex;align-items:center;gap:.5rem}.recipe-action-rating__info{display:flex;flex-direction:column;align-items:flex-start;gap:0}.recipe-hero__rating .star-button,.recipe-hero__rating .star-button.star-button-additional{opacity:1!important}.recipe-hero__rating .star-button{color:color-mix(in srgb,var(--color-text) 15%,transparent);text-shadow:none;font-size:.7rem}.recipe-hero__rating .star-button:hover{transform:none}.recipe-hero__rating #star-rating i.starred{color:#d4a84b!important;text-shadow:none}@media(max-width:768px){.recipe-hero{grid-template-columns:1fr;gap:1rem}.recipe-hero__image{order:-1}.recipe-hero__image img{height:320px}.recipe-hero__info{padding:0 .5rem .5rem}.recipe-hero__title{font-size:clamp(1.4rem,6vw,2rem)}.recipe-hero__meta-divider--rating{display:none}.bookmark-icon{top:1rem;right:1rem}.recipe-content{grid-template-columns:1fr}.recipe-ingredients,.recipe-instructions{overflow:hidden;word-break:break-word;min-width:0}}.recipe-content{display:grid;grid-template-columns:1fr 2fr;gap:1.25rem;width:100%;margin:0;white-space:pre-line;animation:fade-up .6s cubic-bezier(.22,1,.36,1) .16s both}.rfp-content{flex:1 1 auto;grid-template-rows:auto}.rfp-content .recipe-ingredients,.rfp-content .recipe-instructions{overflow-y:visible}.recipe-content h2{margin:0 0 .75rem;position:static;opacity:1;color:var(--color-text-muted);font-family:var(--font-display);font-weight:700;font-size:calc(10px + .25vw);text-transform:uppercase;text-align:left}.recipe-ingredients,.recipe-instructions{padding:1.5rem 1.75rem;background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 12px #0000000d;position:relative;display:flex;flex-direction:column}.recipe-content .recipe-ingredients h2{right:auto;text-align:left;display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.recipe-content .recipe-instructions h2{left:auto;text-align:left}.recipe-ingredients .ingredients{font-size:.88rem;line-height:1.45;display:flex;flex-direction:column}.recipe-ingredients .ingredients p,.recipe-ingredients .ingredients div,.recipe-instructions p{margin:0}.ingredients-classic-btn{width:1.5rem;height:1.5rem;aspect-ratio:1;border-radius:var(--radius-circle);border:1px solid var(--color-border);background:none;padding:0;font-size:.65rem;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;transition:none;margin-left:auto}.ingredients-classic-btn:hover{color:var(--color-text);background:var(--color-hover);border-color:var(--color-text-secondary)}.structured-ingredients{font-size:.88rem;line-height:1.5;margin:0;padding:0}.structured-ingredients--readonly{opacity:.95;-webkit-user-select:text;user-select:text;margin-top:0;cursor:pointer}.rfp-ingredients-hint{margin:.6rem 0 0;font-size:.8rem;line-height:1.4;color:var(--color-text-secondary);font-style:italic;cursor:pointer}.rfp-nutrition-status{flex:0 0 auto;align-self:stretch;margin-top:.6rem;padding:.5rem .75rem;border-radius:var(--radius-md);font-size:.8rem;line-height:1.35;white-space:normal}.rfp-nutrition-status *{white-space:normal}.rfp-nutrition-status--ok{background:color-mix(in srgb,var(--color-success) 9%,transparent);color:var(--color-text)}.rfp-nutrition-status--partial,.rfp-nutrition-status--none{background:color-mix(in srgb,var(--color-warn) 9%,transparent);color:var(--color-text)}.rfp-nutrition-status__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.rfp-nutrition-status__head strong{font-weight:700;font-size:.85rem}.rfp-nutrition-status--ok .rfp-nutrition-status__head strong{color:var(--color-success)}.rfp-nutrition-status--partial .rfp-nutrition-status__head strong,.rfp-nutrition-status--none .rfp-nutrition-status__head strong{color:var(--color-warn)}.rfp-nutrition-status__muted{color:var(--color-text-muted);font-size:.76rem}.rfp-nutrition-status__items{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem}.rfp-nutrition-status__items li{font-size:.76rem;color:var(--color-text-secondary);line-height:1.45}.rfp-nutrition-status__tag{display:inline-block;background:#0000000f;color:var(--color-text);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.05rem .4rem;border-radius:var(--radius-pill);margin-right:.4rem;vertical-align:.05em}.rfp-nutrition-status__tag--muted{background:var(--color-hover);color:var(--color-text-secondary)}.rfp-nutrition-status__items a{color:inherit;text-decoration:underline dotted}.rfp-nutrition-status__items a:hover{color:var(--color-text)}.structured-ingredients__section{margin:0 0 .75rem;padding:0}.structured-ingredients__section:last-child{margin-bottom:0}.structured-ingredients__heading{font-family:var(--font-display);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);margin:0 0 .3rem;padding:0 0 .2rem;border-bottom:1px solid var(--color-border)}.structured-ingredients__list{list-style:none;margin:0;padding:0}.structured-ingredients__item{display:flex;align-items:baseline;gap:0;padding:.2rem 0;border-bottom:1px dotted color-mix(in srgb,var(--color-border) 50%,transparent)}.structured-ingredients__item:last-child{border-bottom:none}.structured-ingredients__qty{flex-shrink:0;width:5.5rem;text-align:right;padding-right:.6rem;color:var(--color-text-secondary);font-size:.84rem;font-variant-numeric:tabular-nums}.structured-ingredients__body{flex:1;min-width:0}.structured-ingredients__item--optional{opacity:.65}.structured-ingredients__note{color:var(--color-text-secondary);font-size:.8rem}.recipe-nutrition{margin-top:auto;padding:.4rem .7rem;border-radius:var(--radius-base);background:color-mix(in srgb,var(--color-text) 4%,transparent);color:var(--color-text);line-height:1.2}.recipe-nutrition__primary{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.3rem;row-gap:.05rem;font-size:.92rem;margin:0}.recipe-nutrition__primary i{color:var(--color-warn);margin-right:.15rem}.recipe-nutrition__kcal{font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums}.recipe-nutrition__sep,.recipe-nutrition__unit{color:var(--color-text-secondary)}.recipe-nutrition__total{color:var(--color-text-muted);font-size:.78rem;margin-left:.25rem}.recipe-nutrition__macros{display:flex;flex-wrap:wrap;column-gap:.7rem;row-gap:.1rem;margin:.1rem 0 0;padding:0;list-style:none;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.recipe-nutrition__macros li{display:inline}.recipe-nutrition__macros-prefix{color:var(--color-text-muted);font-style:italic;margin-right:.15rem}.recipe-nutrition__macros .macro-label{color:var(--color-text-muted);font-weight:500;margin-right:.2rem}.portions-adjuster{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:400;color:var(--color-text-secondary)}.portions-adjuster__btn{width:1.5rem;height:1.5rem;aspect-ratio:1;border-radius:var(--radius-circle);border:1px solid var(--color-border);background:none;font-size:.75rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);line-height:1;padding:0;box-sizing:border-box;transition:none}.portions-adjuster__btn:hover{background:var(--color-hover);border-color:var(--color-text-secondary)}.portions-adjuster__count{font-weight:600;min-width:1.2rem;text-align:center;color:var(--color-text)}.portions-adjuster__label{color:var(--color-text-secondary)}.structured-ingredients__qty--scaled{color:var(--color-accent);font-weight:500}.recipe-similar{animation:fade-up .6s cubic-bezier(.22,1,.36,1) .24s both}.recipe-similar h2{margin-bottom:1rem}.recipe-similar__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.recipe-similar__card{display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);border:1px solid rgba(0,0,0,.05);text-decoration:none;box-shadow:0 2px 12px #0000000f;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease}.recipe-similar__card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000026}.recipe-similar__image{width:100%;height:0;padding-bottom:65%;background-image:var(--recipe-similar-bg);background-size:cover;background-position:center;filter:saturate(.85) brightness(.95);transition:filter .4s ease}.recipe-similar__card:hover .recipe-similar__image{filter:saturate(1) brightness(1)}.recipe-similar__title{margin:0;padding:.55rem .75rem;border-top:2px solid rgba(233,87,42,.15);flex:1;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.75rem;font-weight:600;text-align:center;color:var(--color-text);text-transform:uppercase;letter-spacing:.02em}.recipe-notes{animation:fade-up .6s cubic-bezier(.22,1,.36,1) .32s both}.recipe-notes h2{margin-bottom:1rem}.recipe-note{background:var(--color-surface);border:1px solid rgba(0,0,0,.05);border-radius:var(--radius-lg);padding:1rem 1.5rem 1rem 2.75rem;margin-bottom:.6rem;position:relative;box-shadow:0 1px 6px #0000000a;transition:box-shadow .25s ease;width:auto}.recipe-note:hover{box-shadow:0 3px 12px #00000014}.recipe-note:nth-child(odd){background:var(--color-surface)}.recipe-note .note-icon{position:absolute;left:1rem;top:1.15rem;font-size:.85rem;color:color-mix(in srgb,var(--color-text) 30%,transparent)}.recipe-note .note-icon.problem-note{color:var(--color-accent)}.recipe-note p{font-size:.9rem;margin:0 0 .4rem;line-height:1.5}.recipe-note-tiny{font-family:var(--font-display);font-size:.7rem;color:#4c424a99}.note-author{color:var(--color-link)}.recipe-note--problem{border-left:3px solid var(--color-accent)}.note-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.15rem;align-items:center}.note-delete-btn,.note-visibility-btn{background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--color-text) 30%,transparent);font-size:.75rem;padding:.2rem .35rem;border-radius:var(--radius-md);transition:color var(--transition-base),background var(--transition-base)}.note-delete-btn:hover,.note-visibility-btn:hover{color:var(--color-accent);background:#e9572a14}.recipe-note--hidden{opacity:.55}.recipe-note--hidden .note-visibility-btn{color:var(--color-accent);opacity:.7}@media only screen and (max-width:1200px)and (orientation:portrait){.recipe-content{grid-template-columns:1fr}.ingredients{columns:2}.recipe-similar__grid{grid-template-columns:repeat(2,1fr)}.recipe-actions-row{flex-direction:column}}.rating-admin-btn{display:inline-flex;align-items:center;justify-content:center;align-self:center;margin-left:.35rem;padding:0;background:none;border:none;color:var(--color-text-muted);font-size:.6rem;cursor:pointer;flex-shrink:0;transition:color var(--transition-fast)}.rating-admin-btn:hover{color:var(--color-text)}.dialog--rating-admin{width:min(92vw,560px)}.dialog--rating-admin #rating-admin-list{max-height:60vh;overflow-y:auto}.dialog--rating-admin .dialog__actions{margin-top:1.25rem}.rating-admin-empty{color:var(--color-text-muted);font-size:.88rem;padding:.5rem 0}.rating-admin-star{color:#d4a84b}}@layer pages{.recipe-form-preview{display:flex;flex-direction:column;gap:1.5rem;flex:1 1 auto;min-height:0}.rfp-hero{grid-template-columns:1fr 220px}.rfp-hero .recipe-hero__image{box-shadow:none;border-radius:0;overflow:visible;display:block}.rfp-hero .recipe-hero__image .dropzone:not(.dropzone--has-image){width:220px;height:260px}.rfp-hero .recipe-hero__image .dropzone:not(.dropzone--has-image) img{display:none}.rfp-hero .recipe-hero__image .dropzone__prompt{max-width:100%;padding:0 .75rem;text-align:center}.rfp-title-wrap{width:100%}.rfp-title-wrap input{width:100%;background:transparent;border:none;border-bottom:2px solid color-mix(in srgb,var(--color-text) 15%,transparent);font-family:var(--font-display);font-size:clamp(1.6rem,4vw,2.6rem);font-weight:600;color:var(--color-title-accent);padding:0 0 .15rem;outline:none;box-sizing:border-box;transition:border-color var(--transition-base)}.rfp-title-wrap input::placeholder{color:color-mix(in srgb,var(--color-text) 30%,transparent)}.rfp-title-wrap input:focus{border-bottom-color:var(--color-title-accent)}.rfp-meta{gap:.5rem}.rfp-meta__field{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-display);font-weight:700;font-size:clamp(.75rem,1.2vw,.9rem);color:color-mix(in srgb,var(--color-text) 65%,transparent);white-space:nowrap;cursor:default}.rfp-meta__field i{font-size:.75em}.rfp-meta__field input{background:color-mix(in srgb,var(--color-text) 5%,transparent);border:1px solid color-mix(in srgb,var(--color-text) 15%,transparent);border-radius:var(--radius-md);color:var(--color-input-text);font-family:var(--font-display);font-weight:700;font-size:inherit;padding:.15rem .4rem;width:3.5rem;text-align:center;outline:none;transition:border-color var(--transition-base),background var(--transition-base)}.rfp-meta__field input::placeholder{color:color-mix(in srgb,var(--color-text) 25%,transparent)}.rfp-meta__field input:focus{border-color:color-mix(in srgb,var(--color-text) 35%,transparent);background:color-mix(in srgb,var(--color-text) 8%,transparent)}.rfp-meta__field--source input{width:auto;flex:1 1 24rem;min-width:20rem;max-width:44rem;text-align:left;text-overflow:ellipsis;overflow:hidden}.rfp-meta__field--source{color:color-mix(in srgb,var(--color-text) 45%,transparent);flex:1 1 auto;min-width:0}.rfp-meta__field span{pointer-events:none}.rfp-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.6rem;justify-content:center;position:relative;z-index:10;flex:1 1 0;min-width:0;padding:.5rem}.rfp-actions-row{display:flex;align-items:stretch;gap:.6rem;flex-wrap:nowrap}.rfp-save-card{flex:0 0 auto;padding:.5rem}.rfp-actions__select{flex:1 1 0;min-width:0;position:relative}.rfp-actions__visibility{flex-shrink:0;align-self:stretch;display:flex}.rfp-visibility-label{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.85rem;color:var(--color-text-secondary)}.rfp-visibility-label i{font-size:.8rem;color:var(--color-text-muted)}.rfp-visibility-label select{padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-base);font-family:var(--font-body);font-size:.85rem;background:var(--color-input-bg);color:var(--color-input-text);cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.rfp-visibility-label select:focus{border-color:#66796380;box-shadow:0 0 0 3px #66796359}.rfp-vis-select{display:none}.rfp-vis-trigger{display:inline-flex;align-items:center;gap:.45rem;height:100%;min-height:2rem;padding:.2rem .7rem;font-size:.82rem;border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:filter .15s,transform .15s,box-shadow .15s,background .15s,border-color .15s}.rfp-vis-trigger:hover{filter:brightness(.97);transform:translateY(-1px);box-shadow:0 2px 10px #00000014}.rfp-vis-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 40%,transparent)}.rfp-vis-trigger__icon{font-size:.95rem}.rfp-vis-trigger__caret{font-size:.7rem;opacity:.7}.rfp-vis-trigger[data-visibility=public]{background:color-mix(in srgb,#2e7d52 14%,var(--color-surface));border-color:color-mix(in srgb,#2e7d52 38%,var(--color-border));color:#2e7d52}.rfp-vis-trigger[data-visibility=private]{background:color-mix(in srgb,#2c6cb0 14%,var(--color-surface));border-color:color-mix(in srgb,#2c6cb0 38%,var(--color-border));color:#2c6cb0}.rfp-vis-trigger[data-visibility=personal]{background:color-mix(in srgb,var(--color-accent) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));color:var(--color-accent)}.rfp-content .tox-tinymce{border-radius:12px!important;border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent)!important;background:transparent!important;overflow:hidden;flex:0 0 auto}.rfp-content .tox-tinymce:focus-within{box-shadow:0 0 0 3px #66796326!important;border-color:#66796359!important}.rfp-content .tox-tinymce,.rfp-content .tox,.rfp-content .tox .tox-editor-container,.rfp-content .tox .tox-editor-header,.rfp-content .tox .tox-toolbar,.rfp-content .tox .tox-toolbar__primary,.rfp-content .tox .tox-toolbar-overlord,.rfp-content .tox .tox-anchorbar,.rfp-content .tox .tox-promotion{background:var(--color-bg)!important;background-color:var(--color-bg)!important}.rfp-content .tox .tox-editor-header{border-bottom:1px solid color-mix(in srgb,var(--color-text) 6%,transparent)!important;box-shadow:none!important}.rfp-content .tox .tox-toolbar__group{border-right-color:color-mix(in srgb,var(--color-text) 6%,transparent)!important}.rfp-content .tox .tox-tbtn{background:transparent!important;color:color-mix(in srgb,var(--color-text) 50%,transparent)!important;border-radius:6px!important;transition:background .15s,color .15s}.rfp-content .tox .tox-tbtn:hover{background:#6679631a!important;color:var(--color-text)!important}.rfp-content .tox .tox-tbtn--enabled,.rfp-content .tox .tox-tbtn--enabled:hover{background:#6679632e!important;color:var(--color-link)!important}.rfp-content .tox .tox-tbtn svg{fill:currentColor!important}.rfp-content .tox .tox-edit-area__iframe{background:transparent!important}.rfp-content .tox .tox-statusbar{background:var(--color-bg)!important;border-top:1px solid color-mix(in srgb,var(--color-text) 4%,transparent)!important;color:color-mix(in srgb,var(--color-text) 30%,transparent)!important;font-size:.7rem}.rfp-content .tox .tox-statusbar__text-container,.rfp-content .tox .tox-statusbar__path-item{color:inherit!important}.rfp-submit__btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 2rem;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:.92rem;font-weight:600;background-color:#667963;color:#fff;border:1.5px solid #667963;cursor:pointer;transition:background-color var(--transition-base),transform .15s cubic-bezier(.22,1,.36,1),box-shadow var(--transition-base);box-shadow:0 2px 10px #66796340}.rfp-submit__btn:hover{background-color:#57694f;border-color:#57694f;transform:translateY(-2px);box-shadow:0 4px 16px #66796359;color:#fff}.rfp-submit__btn--inline{height:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:0 .85rem;font-size:1.35rem;border-radius:var(--radius-lg);gap:0}.rfp-submit__btn.rfp-submit__btn--inline i{font-size:1em}.rfp-submit__btn i{font-size:.8em}@media only screen and (max-width:1200px)and (orientation:portrait){.rfp-content{grid-template-columns:1fr}}@media(max-width:768px){.rfp-meta{flex-direction:column;align-items:flex-start;gap:.35rem}.rfp-meta .recipe-hero__meta-divider{display:none}.rfp-title-wrap input{font-size:clamp(.95rem,4.2vw,1.4rem);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media only screen and (max-width:1200px)and (orientation:portrait){.recipe-sheet:has(.recipe-form-preview){height:auto;overflow:visible}.recipe-form-preview{flex:0 1 auto;min-height:0;gap:1rem}.rfp-content{flex:0 1 auto;min-height:0;grid-template-rows:none;gap:1rem}.rfp-content .recipe-ingredients,.rfp-content .recipe-instructions{min-height:0;overflow:visible;padding:1rem 1.1rem}.rfp-content .tox-tinymce{flex:0 0 auto!important}.rfp-hero{grid-template-columns:1fr;gap:.75rem}.rfp-hero .recipe-hero__image{order:-1;justify-content:stretch}.rfp-hero__info{padding:0;gap:.6rem}.rfp-actions-row{gap:.5rem}.rfp-actions{padding:.4rem;gap:.4rem}.rfp-save-card{padding:.4rem}.rfp-meta__field--source,.rfp-meta__field--source input{width:100%}.rfp-vis-trigger__label{display:none}.rfp-vis-trigger{padding:.4rem .7rem;gap:.35rem}}.recipe-import{max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1rem 3rem}.recipe-import__header{display:flex;flex-direction:column;gap:1.25rem}.recipe-import__back{align-self:flex-start;font-size:.85rem;opacity:.65;text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:.4rem;transition:opacity .12s}.recipe-import__back:hover{opacity:1}.recipe-import__hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:.5rem 0}.recipe-import__hero-icon{font-size:2.5rem;color:var(--color-ai, #6e3cb8);margin-bottom:.25rem}.recipe-import__title{font-family:var(--font-display, sans-serif);font-size:2rem;font-weight:700;margin:0;line-height:1.2}.recipe-import__lead{margin:0;font-size:.95rem;color:var(--color-text-secondary);max-width:48ch}.recipe-import__card{background:var(--color-surface, #fff);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 2px 8px #0000000f}.photo-import-drop{width:100%;height:200px;background:linear-gradient(135deg,#2a2622,#1a1814);border-radius:var(--radius-lg, 12px);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:outline-color .15s}.photo-import-drop--over{outline:3px dashed rgba(110,60,184,.7);outline-offset:-6px}.photo-import-drop input[type=file]{display:none}.photo-import-drop__prompt{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#ffffff8c;font-size:.9rem;pointer-events:none;text-align:center;padding:1rem;z-index:1}.photo-import-drop__prompt i{font-size:2rem;color:#fff6}.photo-import-drop__prompt small{font-size:.75rem;opacity:.7}.photo-import-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.5rem}.photo-import-list:empty{display:none}.photo-import-list__item{position:relative;aspect-ratio:1;border-radius:var(--radius-md, 6px);overflow:hidden;background:color-mix(in srgb,var(--color-fg, #000) 6%,transparent)}.photo-import-list__thumb{width:100%;height:100%;object-fit:cover;display:block}.photo-import-list__name{display:none}.photo-import-list__remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#000000a6;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.65rem;padding:0;line-height:1;opacity:0;transition:opacity .12s}.photo-import-list__item:hover .photo-import-list__remove{opacity:1}.photo-import-list__item:has(.photo-import-list__pdf){aspect-ratio:unset;grid-column:1 / -1;display:flex;align-items:center}.photo-import-list__pdf{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;flex:1 1 auto;min-width:0;font-size:.88rem;overflow:hidden}.photo-import-list__pdf i{font-size:1.4rem;color:var(--color-danger, #c0392b);flex-shrink:0}.photo-import-list__pdf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-import-list__item:has(.photo-import-list__pdf) .photo-import-list__remove{position:static;opacity:.5;flex-shrink:0;margin-right:.4rem}.photo-import-list__item:has(.photo-import-list__pdf):hover .photo-import-list__remove{opacity:1}.recipe-import__or{display:flex;align-items:center;gap:.75rem;color:var(--color-text-secondary);font-size:.8rem}.recipe-import__or:before,.recipe-import__or:after{content:"";flex:1;height:1px;background:var(--color-border)}.recipe-import__url-section{display:flex;flex-direction:column;gap:.35rem}.recipe-import__url-label{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;gap:.35rem}.recipe-import__url-label i{font-size:.75rem}.recipe-import__url-input{width:100%;padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.9rem;transition:border-color .12s;box-sizing:border-box}.recipe-import__url-input:focus{outline:none;border-color:var(--color-ai, #6e3cb8);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-ai, #6e3cb8) 15%,transparent)}.recipe-import__url-input--active{border-color:var(--color-ai, #6e3cb8)}.recipe-import__url-section small{font-size:.78rem;color:var(--color-text-secondary)}.photo-import-drop--disabled{opacity:.4;pointer-events:none}.recipe-import__options{border-top:1px solid var(--color-border);padding-top:1rem;display:flex;flex-direction:column;gap:.85rem}.recipe-import__credit-info{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;font-size:.8rem;color:var(--color-text-secondary);padding:.5rem .6rem;background:color-mix(in srgb,var(--color-ai, #6e3cb8) 5%,transparent);border-radius:var(--radius-md)}.recipe-import__credit-cost i{color:var(--color-ai, #6e3cb8);font-size:.7rem}.recipe-import__credit-note{opacity:.75}.recipe-import__credit-balance strong{color:var(--color-text)}.photo-import-toggle{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;cursor:pointer}.photo-import-toggle input[type=checkbox]{flex-shrink:0;margin-top:.2rem;accent-color:var(--color-ai, #6e3cb8);width:1rem;height:1rem}.photo-import-toggle>span{display:flex;flex-direction:column;gap:.2rem}.photo-import-toggle small{font-size:.8rem;color:var(--color-text-secondary)}.recipe-import__progress{background:color-mix(in srgb,var(--color-ai, #6e3cb8) 6%,transparent);border:1px solid color-mix(in srgb,var(--color-ai, #6e3cb8) 25%,transparent);border-radius:var(--radius-lg, 12px);padding:1.25rem;flex-direction:column;gap:.6rem}.recipe-import__progress:not([hidden]){display:flex}.photo-import-progress__label{margin:0;font-size:.88rem;color:var(--color-text-secondary);text-align:center}.photo-import-progress__bar{width:100%;height:6px;background:color-mix(in srgb,var(--color-ai, #6e3cb8) 18%,transparent);border-radius:999px;overflow:hidden}.photo-import-progress__fill{height:100%;width:0;background:var(--color-ai, #6e3cb8);transition:width .25s ease}.recipe-import__actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem}}@layer components{.simple-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.simple-page--centered{text-align:center}.simple-page__icon{font-size:4rem;color:var(--color-accent);margin-bottom:1.5rem}.simple-page__heading{font-family:var(--font-display);font-size:2rem;font-weight:700;margin-bottom:1rem}.simple-page__heading--tight{margin-bottom:.5rem}.simple-page__heading--with-message{margin-bottom:.75rem}.simple-page__message{font-size:1.1rem;color:#666;margin-bottom:2rem}.simple-page__subtext{color:var(--color-text-secondary);margin-bottom:1.5rem;text-align:center;max-width:400px}.simple-page__text{color:var(--color-text-secondary);max-width:440px;line-height:1.6}.simple-page__text a{color:var(--color-link)}.setup-form{width:100%;max-width:400px}.setup-form__field{margin-bottom:1rem}.setup-form__label{display:block;font-weight:600;margin-bottom:.3rem}.setup-form__input{width:100%;padding:.6rem;border:1px solid var(--color-input-border, #ccc);border-radius:var(--radius-md);font-size:1rem;box-sizing:border-box;background:var(--color-input-bg, #fff);color:var(--color-input-text, inherit)}.setup-form__errors{color:var(--color-danger);margin-bottom:1rem;list-style:none;padding:0}.setup-form__login-link{margin-top:1rem;text-align:center;font-size:.9rem}.setup-form__login-link a{color:var(--color-link)}.cf-turnstile,.cf-turnstile iframe{border-radius:var(--radius-md);overflow:hidden}}@layer pages{.table--users{font-size:.95rem}.table--users th,.table--users td{padding:.6rem .8rem}.table--users th{font-weight:700;font-size:.85rem}.invite-actions,.user-actions{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}.invite-status{display:inline-flex;flex-direction:column;gap:.05rem;line-height:1.2;margin-right:.4rem}.invite-status__line{font-size:.85rem;font-weight:500;display:inline-flex;align-items:center;gap:.35rem}.invite-status__expiry{font-size:.72rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.invite-status--ok .invite-status__line{color:var(--color-success)}.invite-status--expired .invite-status__line{color:var(--color-warn)}.invite-section{display:flex;gap:.5rem;align-items:center;margin-bottom:.6rem}.invite-section input[type=email],.invite-section button{height:2rem;box-sizing:border-box;padding:0 .6rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.88rem;line-height:1}.invite-section input[type=email]{min-width:18rem}.invite-section button{cursor:pointer;padding:0 .9rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.invite-section button:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-text-muted)}.invite-section button:disabled{opacity:.5;cursor:not-allowed}.invite-result{font-size:.85rem;margin-bottom:1rem}.invite-result--success{color:var(--color-success)}.invite-result--error{color:var(--color-danger)}.group-cell{display:inline-flex;align-items:center;gap:.25rem}tr[data-blocked=true]{opacity:.55}.credits-cell{white-space:nowrap;display:flex;align-items:center;gap:.25rem}.credits-value{font-variant-numeric:tabular-nums}.credits-value--zero{color:var(--color-text-muted)}.self-tag{font-size:.72rem;color:var(--color-text-muted);margin-left:.25rem;font-weight:500}.credits-popover[hidden]{display:none}.credits-popover{position:fixed;z-index:300;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:0 4px 16px #00000026;padding:.85rem 1rem;min-width:15rem;display:flex;flex-direction:column;gap:.75rem}.credits-popover__close{position:absolute;top:.4rem;right:.5rem;background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;color:var(--color-text-muted);padding:.1rem .3rem}.credits-popover__close:hover{color:var(--color-text)}.credits-popover__section{display:flex;flex-direction:column;gap:.3rem}.credits-popover__section label{font-size:.75rem;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.credits-popover__row{display:flex;gap:.4rem;align-items:center}.credits-popover__row input[type=number]{width:5rem;height:2rem;padding:0 .5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.88rem}.credits-popover__reset-hint{font-size:.78rem;color:var(--color-text-muted);margin-left:.25rem}.row-btn--ai-access{font-size:.8rem;color:var(--color-text-muted);border-color:var(--color-border);padding:0 .65rem;height:1.75rem}.row-btn--ai-on{background:var(--color-success);color:#fff;border-color:var(--color-success-strong);font-weight:600}.row-btn--ai-on:hover{background:var(--color-success-strong)}}@layer components{.wizard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:200px}.wizard-loading p{font-size:.9rem;color:var(--color-text-secondary)}.wizard-spinner{width:36px;height:36px;border:3px solid color-mix(in srgb,var(--color-text) 15%,transparent);border-top-color:var(--color-accent);border-radius:var(--radius-circle);animation:wizard-spin .8s linear infinite}@keyframes wizard-spin{to{transform:rotate(360deg)}}.wizard-structured-panel{position:relative}.wizard-structured-panel--loading #wizard-structured{opacity:.4;pointer-events:none;transition:opacity .2s}.recipe-ingredients{position:relative}.rfp-ai-corner-btn{position:absolute;top:.75rem;right:.75rem;width:1.5rem;height:1.5rem;border-radius:var(--radius-circle);border:1px solid var(--color-border);background:none;padding:0;font-size:.65rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.rfp-ai-corner-btn:hover{color:var(--color-text);background:var(--color-hover);border-color:var(--color-text-secondary)}.rfp-ai-corner-btn--disabled{opacity:.4;cursor:not-allowed}.rfp-ai-corner-btn--active{border-color:var(--color-success);color:var(--color-success)}.rfp-ai-corner-btn--active:hover{background:color-mix(in srgb,var(--color-success) 8%,transparent);border-color:var(--color-success)}[data-theme=dark] .rfp-ai-corner-btn--active{border-color:color-mix(in srgb,#a5d6a7 50%,transparent);color:#a5d6a7}[data-theme=dark] .rfp-ai-corner-btn--active:hover{background:color-mix(in srgb,#a5d6a7 10%,transparent);border-color:#a5d6a7}.rfp-ai-corner-btn--pending{border-color:var(--color-accent);color:var(--color-accent);animation:rfp-ai-corner-pulse 1.6s ease-in-out infinite}.rfp-ai-corner-btn--pending:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-color:var(--color-accent)}@keyframes rfp-ai-corner-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-accent) 45%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-accent) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.rfp-ai-corner-btn--pending{animation:none}}.rfp-ai-corner-btn__count{position:absolute;top:-.35rem;right:-.35rem;font-size:.55rem;font-weight:700;background:var(--color-success);color:#fff;border-radius:9px;padding:0 .3rem;min-width:.9rem;text-align:center;line-height:1.4}[data-theme=dark] .rfp-ai-corner-btn__count{background:color-mix(in srgb,#a5d6a7 70%,transparent);color:#1a1a1a}.wizard-cached-info{font-size:.72rem;color:var(--color-text-secondary);margin-right:auto;opacity:.7}.wizard-component{margin-bottom:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden;box-shadow:0 1px 3px #0000000a}.wizard-component__header{display:flex;align-items:center;gap:.5rem;padding:.55rem .85rem;background:color-mix(in srgb,var(--color-text) 4%,var(--color-surface));border-bottom:1px solid var(--color-border);font-size:.82rem;font-weight:600}.wizard-component__header input[type=text]{flex:1;font-size:.82rem;font-weight:600;border:none;background:transparent;color:var(--color-text);padding:0}.wizard-component__header input[type=text]::placeholder{color:var(--color-text-secondary);font-style:italic;font-weight:400}.wizard-component__header input[type=text]:focus{outline:none;border-bottom:1px solid var(--color-accent)}.wizard-component__header label{font-size:.72rem;display:flex;align-items:center;gap:.25rem;white-space:nowrap;color:var(--color-text-secondary)}.wizard-component__body{padding:0}.wizard-ingredient{font-size:.85rem}.wizard-ingredient__summary{display:flex;align-items:center;gap:.6rem;padding:.55rem .85rem;cursor:pointer;transition:background .12s;border-bottom:1px solid color-mix(in srgb,var(--color-border) 50%,transparent)}.wizard-ingredient:last-child .wizard-ingredient__summary{border-bottom:none}.wizard-ingredient__summary:hover{background:color-mix(in srgb,var(--color-accent) 4%,var(--color-surface))}.wizard-ingredient:nth-child(2n) .wizard-ingredient__summary{background:color-mix(in srgb,var(--color-text) 2%,var(--color-surface))}.wizard-ingredient:nth-child(2n) .wizard-ingredient__summary:hover{background:color-mix(in srgb,var(--color-accent) 5%,var(--color-surface))}.wizard-ingredient__name{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-ingredient__qty{flex-shrink:0;white-space:nowrap;color:var(--color-text-secondary);font-size:.82rem;font-variant-numeric:tabular-nums;text-align:right;min-width:5em}.wizard-ingredient__category{flex-shrink:0;display:inline-block;font-size:.68rem;font-weight:600;padding:.15rem .5rem;border-radius:var(--radius-sm);letter-spacing:.02em;line-height:1.4;min-width:4em;text-align:center}.wizard-ingredient__category--produce{background:#e8f5e9;color:var(--color-success)}.wizard-ingredient__category--dairy{background:#e3f2fd;color:#1565c0}.wizard-ingredient__category--meat{background:#fce4ec;color:#c62828}.wizard-ingredient__category--seafood{background:#e0f7fa;color:#00838f}.wizard-ingredient__category--pantry{background:#fff8e1;color:#f57f17}.wizard-ingredient__category--spices{background:#fff3e0;color:#e65100}.wizard-ingredient__category--condiments{background:#f3e5f5;color:#6a1b9a}.wizard-ingredient__category--bakery{background:#efebe9;color:#4e342e}.wizard-ingredient__category--other{background:#eceff1;color:#546e7a}@media(prefers-color-scheme:dark){.wizard-ingredient__category--produce{background:#1b3d24;color:#a5d6a7}.wizard-ingredient__category--dairy{background:#0d2744;color:#90caf9}.wizard-ingredient__category--meat{background:#3e1418;color:#ef9a9a}.wizard-ingredient__category--seafood{background:#0a2e33;color:#80deea}.wizard-ingredient__category--pantry{background:#3e2e05;color:#ffe082}.wizard-ingredient__category--spices{background:#3e2007;color:#ffcc80}.wizard-ingredient__category--condiments{background:#2c1233;color:#ce93d8}.wizard-ingredient__category--bakery{background:#2c1e18;color:#bcaaa4}.wizard-ingredient__category--other{background:#252e33;color:#b0bec5}}[data-theme=dark] .wizard-ingredient__category--produce{background:#1b3d24;color:#a5d6a7}[data-theme=dark] .wizard-ingredient__category--dairy{background:#0d2744;color:#90caf9}[data-theme=dark] .wizard-ingredient__category--meat{background:#3e1418;color:#ef9a9a}[data-theme=dark] .wizard-ingredient__category--seafood{background:#0a2e33;color:#80deea}[data-theme=dark] .wizard-ingredient__category--pantry{background:#3e2e05;color:#ffe082}[data-theme=dark] .wizard-ingredient__category--spices{background:#3e2007;color:#ffcc80}[data-theme=dark] .wizard-ingredient__category--condiments{background:#2c1233;color:#ce93d8}[data-theme=dark] .wizard-ingredient__category--bakery{background:#2c1e18;color:#bcaaa4}[data-theme=dark] .wizard-ingredient__category--other{background:#252e33;color:#b0bec5}.wizard-ingredient__prep{flex-shrink:1;min-width:0;font-style:italic;color:var(--color-text-secondary);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.wizard-ingredient__actions{flex-shrink:0;display:flex;align-items:center;gap:.1rem}.wizard-ingredient__toggle{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.65rem;padding:.25rem;transition:transform .2s;line-height:1;opacity:.5}.wizard-ingredient__summary:hover .wizard-ingredient__toggle,.wizard-ingredient--expanded .wizard-ingredient__toggle{opacity:.9}.wizard-ingredient--expanded .wizard-ingredient__toggle{transform:rotate(180deg)}.wizard-ingredient__delete{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.72rem;padding:.25rem;line-height:1;opacity:.35;transition:opacity .15s,color .15s}.wizard-ingredient__summary:hover .wizard-ingredient__delete{opacity:.6}.wizard-ingredient__delete:hover{opacity:1!important;color:var(--color-accent)}.wizard-ingredient__edit{display:none;border-left:3px solid var(--color-accent);margin:0 .85rem .5rem;padding:.75rem;background:color-mix(in srgb,var(--color-text) 2%,var(--color-surface));border-radius:0 6px 6px 0}.wizard-ingredient--expanded .wizard-ingredient__edit{display:block}.wizard-ingredient__edit-section{padding-bottom:.6rem;margin-bottom:.6rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 50%,transparent)}.wizard-ingredient__edit-section:last-of-type{border-bottom:none;margin-bottom:.25rem;padding-bottom:0}.wizard-ingredient__edit-section-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin-bottom:.4rem}.wizard-ingredient__edit-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:.5rem .75rem}.wizard-ingredient__edit-grid .edit-field{display:flex;flex-direction:column;gap:.2rem}.wizard-ingredient__edit-grid .edit-field--wide{grid-column:span 2}.wizard-ingredient__edit-grid .edit-field--full{grid-column:1 / -1}.wizard-ingredient__edit-grid label{font-size:.65rem;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.wizard-ingredient__edit-grid input,.wizard-ingredient__edit-grid select{font-size:.8rem;padding:.35rem .45rem;border:1px solid var(--color-input-border);border-radius:5px;background:var(--color-input-bg);color:var(--color-input-text);width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.wizard-ingredient__edit-grid input:focus,.wizard-ingredient__edit-grid select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 15%,transparent)}.wizard-ingredient__edit-checks{display:flex;gap:1rem;padding-top:.6rem;margin-top:.4rem;border-top:1px solid color-mix(in srgb,var(--color-border) 50%,transparent);font-size:.8rem}.wizard-ingredient__edit-checks label{display:flex;align-items:center;gap:.3rem;cursor:pointer;font-size:.8rem;text-transform:none;font-weight:400;letter-spacing:normal;color:var(--color-text)}.wizard-btn--smart-fill .wizard-btn__spinner{display:none;width:.75rem;height:.75rem;border:2px solid rgba(110,60,184,.2);border-top-color:var(--color-ai);border-radius:var(--radius-circle);animation:wizard-spin .6s linear infinite;flex-shrink:0}.wizard-btn--smart-fill.is-loading .wizard-btn__spinner{display:inline-block}.wizard-ai-credits{display:inline-flex;align-items:center;height:1.3rem;padding:0 .4rem;margin-left:.15rem;border-radius:var(--radius-sm);background:#6e3cb821;color:var(--color-ai);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.wizard-ai-credits__balance.wizard-credit-badge--empty{color:var(--color-accent)}.wizard-ai-credits__balance.wizard-credit-badge--used{color:var(--color-success)}#wizard-toggle-all{margin-left:auto}.wizard-autosuggest{position:relative}.wizard-autosuggest__list{position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #0000001a;z-index:10;max-height:150px;overflow-y:auto;display:none}.wizard-autosuggest__list--visible{display:block}.wizard-autosuggest__item{padding:.35rem .5rem;cursor:pointer;font-size:.78rem}.wizard-autosuggest__item:hover{background:var(--color-hover)}.wizard-autosuggest__item small{color:var(--color-text-muted);margin-left:.3rem}@media(max-width:640px){.wizard-ingredient__edit-grid{grid-template-columns:1fr 1fr}.wizard-ingredient__edit-grid .edit-field--wide{grid-column:1 / -1}.wizard-ingredient__prep{display:none}}}.wizard-btn--smart-fill{background:var(--color-ai-soft);border-color:var(--color-ai-border);color:var(--color-ai)}.wizard-btn--smart-fill:hover:not([disabled]){background:var(--color-ai-soft-strong);border-color:#b88af0;color:var(--color-ai)}@keyframes save-moves-blink{0%,to{box-shadow:0 0 #b76d1200}50%{box-shadow:0 0 0 5px #b76d1240}}@keyframes pending-pulse{0%,to{box-shadow:0 0 #b76d1200}50%{box-shadow:0 0 0 4px #b76d122e}}#save-moves-btn[hidden],#reset-moves-btn[hidden]{display:none!important}@layer pages{#subcat-filter{height:2rem;padding:0 .7rem;font-size:.88rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);min-width:14rem}#subcat-filter:focus{outline:2px solid var(--color-accent);outline-offset:1px}#category-tree.filter-active .sub-row:not(.filter-hidden){display:table-row}#category-tree.filter-active .sub-row.filter-hidden,#category-tree.filter-active .add-sub-row{display:none}#cat-summary{grid-template-columns:repeat(3,auto);justify-content:start}#category-tree td,#category-tree th{padding:.3rem .5rem;font-size:.88rem}#category-tree .col-drag{width:1.8rem;color:var(--color-text-muted);text-align:center}#category-tree .col-name{min-width:14rem}#category-tree .col-name{display:flex;align-items:center;gap:.4rem}.row-label{flex:0 0 auto}.row-actions{display:inline-flex;gap:.1rem;opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}tr:hover .row-actions{opacity:1}.cat-row .row-label{font-weight:600;font-size:.9rem}.cat-row td:first-child{border-left:3px solid var(--color-border)}.sub-row .col-name{padding-left:2.2rem}.expand-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.2rem;line-height:1;transition:transform var(--transition-fast)}.expand-btn.collapsed{transform:rotate(-90deg)}.sub-row.cat-collapsed,.add-sub-row.cat-collapsed{display:none}.sub-row[draggable=true]{cursor:grab}.sub-row[draggable=true]:active{cursor:grabbing}.sub-row.dragging{opacity:.35}.drag-handle{opacity:.4;font-size:.85rem}.sub-row:hover .drag-handle{opacity:.8}.move-sub-btn{display:none}@media(hover:none){.drag-handle{display:none}.move-sub-btn{display:inline}.row-actions{opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}tr.touch-active .row-actions{opacity:1;pointer-events:auto}tr.touch-active{background:color-mix(in srgb,var(--color-accent) 5%,transparent)}}.cat-group.drag-over .cat-row{background:color-mix(in srgb,var(--color-accent) 10%,transparent);outline:2px dashed var(--color-accent);outline-offset:-2px}#save-moves-btn{background:var(--color-warn);border-color:var(--color-warn);color:#fff;animation:save-moves-blink 1.4s ease-in-out infinite}#save-moves-btn[disabled]{cursor:not-allowed;opacity:.6;animation:none}.sub-row.is-pending{background:color-mix(in srgb,var(--color-warn) 10%,transparent)}.add-sub-row td{padding:.25rem .5rem}.add-sub-btn{background:none;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;padding:.2rem 0}.add-sub-btn:hover{color:var(--color-accent)}.add-sub-inline:not([hidden]){display:inline-flex;align-items:center;gap:.4rem}.add-sub-input{height:1.7rem;padding:0 .5rem;font-size:.85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.dialog__label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.3rem;color:var(--color-text-secondary)}.dialog__input{width:100%;height:2.2rem;padding:0 .7rem;font-size:.95rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.dialog__input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.dialog__body{margin:.75rem 0 1rem}.dialog--browse{width:min(92vw,560px)}.browse-sub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.browse-sub-crumb{font-size:.78rem;color:var(--color-text-muted);margin:0 0 .15rem;text-transform:uppercase;letter-spacing:.04em}.browse-sub-header .dialog__title{margin:0}.browse-sub-search{padding:.5rem 0 .6rem}.browse-sub-input{width:100%;height:2rem;padding:0 .7rem;font-size:.88rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.browse-sub-input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.browse-sub-body{max-height:60vh;overflow-y:auto}.browse-sub-loading{color:var(--color-text-muted);font-size:.88rem;padding:.5rem 0}.browse-sub-empty{color:var(--color-text-muted);font-size:.88rem;font-style:italic;padding:.5rem 0}.browse-recipe-list{list-style:none;margin:0;padding:0}.browse-recipe-list li{border-bottom:1px solid var(--color-border)}.browse-recipe-list li:last-child{border-bottom:none}.browse-recipe-list a{display:flex;align-items:center;gap:.5rem;padding:.45rem .25rem;color:var(--color-text);text-decoration:none;font-size:.88rem;transition:color var(--transition-fast)}.browse-recipe-list a:hover{color:var(--color-link)}.browse-recipe-list a i{color:var(--color-text-muted);font-size:.75rem}.impact-rec-count{color:var(--color-text-muted);font-size:.82rem}.dialog__subtitle{font-size:.88rem;color:var(--color-text-secondary);margin:0 0 .6rem}.dialog__error{margin-top:.4rem;font-size:.82rem;color:var(--color-danger, #e74c3c)}}@layer base{:root{--color-bg:#fcfaf7;--color-text:#1a1a1a;--color-text-secondary:rgba(26,26,26,.65);--color-text-muted:rgba(26,26,26,.45);--color-border:#d8d3ca;--color-hover:#f4f0ec;--color-surface:#ffffff;--color-link:#667963;--color-accent:#e9572a;--color-success:#2e7d32;--color-success-strong:#246828;--color-success-soft:#d4edda;--color-success-text:#155724;--color-danger:#c0392b;--color-danger-strong:#962d22;--color-danger-soft:#f8d7da;--color-danger-text:#721c24;--color-danger-toast:#b32d2d;--color-warn:#b76d12;--color-warn-strong:#985a0e;--color-warn-soft:#fef3cd;--color-warn-text:#856404;--color-warn-bright:#d68910;--color-info:#2b6cb0;--color-info-soft:#d1ecf1;--color-info-text:#0c5460;--color-ai:#6e3cb8;--color-admin-soft:#e2d5f1;--color-admin-text:#4a2070;--color-superadmin-soft:#fde4cf;--color-superadmin-text:#7a3a00;--font-display:"Quicksand","Nunito",sans-serif;--radius-sm:4px;--radius-md:6px;--radius-base:8px;--radius-lg:12px;--radius-pill:999px;--radius-circle:50%;--transition-fast:.15s ease}html[data-theme=dark]{color-scheme:dark;--color-bg:#1c1a17;--color-text:#e8e4df;--color-text-secondary:rgba(255,255,255,.95);--color-text-muted:rgba(255,255,255,.85);--color-border:#3a3530;--color-hover:#2a2622;--color-surface:#242120;--color-link:#8fa68c;--color-accent:#f0734e}}@layer components{.alert{border-radius:var(--radius-lg);padding:1rem 1.25rem}.alert--error{background:#e9572a14;border:1px solid rgba(233,87,42,.25)}.alert--warn{background:color-mix(in srgb,var(--color-warn) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-warn) 25%,transparent)}.alert--ok{background:color-mix(in srgb,var(--color-success) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 25%,transparent)}.alert__title{margin:0 0 .4rem;font-weight:700;font-size:.88rem}.alert--error .alert__title{color:var(--color-accent)}.alert--warn .alert__title{color:var(--color-warn)}.alert--ok .alert__title{color:var(--color-success)}.alert__title i{margin-right:.3rem}.alert__list{margin:0;padding-left:1.25rem;font-size:.82rem;color:#4c424a}.alert__list li{margin-bottom:.15rem}.alert__field{display:block;margin-top:.35rem;font-size:.75rem;color:var(--color-accent);font-weight:600}}@layer components{.bulk-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-bottom:.75rem;background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 30%,var(--color-border));border-radius:var(--radius-base);flex-wrap:wrap}.bulk-bar[hidden]{display:none}.bulk-bar__info{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.bulk-bar__count{font-size:.85rem;font-weight:600;color:var(--color-text);white-space:nowrap}.bulk-bar__link{background:none;border:0;padding:0;font:inherit;font-size:.85rem;font-weight:600;color:var(--color-link);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.bulk-bar__link:hover{color:#57694f}.bulk-bar__all-label{font-size:.85rem;color:var(--color-text)}.bulk-bar select{font-weight:500}}@layer components{.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:2rem;box-sizing:border-box;padding:0 .85rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:.85rem;font-weight:500;line-height:1;cursor:pointer;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn:hover{background:var(--color-hover)}.btn[disabled],.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{height:1.7rem;padding:0 .65rem;font-size:.8rem}.btn--lg{height:2.5rem;padding:0 1.25rem;font-size:.95rem;font-weight:600}.btn--pill{border-radius:var(--radius-pill);padding-left:1.15rem;padding-right:1.15rem}.btn--primary{background:var(--color-link);border-color:var(--color-link);color:#fff;font-weight:600}.btn--primary:hover{background:#57694f;border-color:#57694f;color:#fff}.btn--success{background:var(--color-success);border-color:var(--color-success);color:#fff;font-weight:600}.btn--success:hover{background:var(--color-success-strong);border-color:var(--color-success-strong)}.btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff;font-weight:600}.btn--danger:hover{background:var(--color-danger-strong);border-color:var(--color-danger-strong)}.btn--danger[disabled]{background:var(--color-text-muted);border-color:var(--color-text-muted)}.btn--warn{background:var(--color-warn);border-color:var(--color-warn);color:#fff;font-weight:600}.btn--warn:hover{background:var(--color-warn-strong);border-color:var(--color-warn-strong)}.btn--accent{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-weight:600}.btn--accent:hover{background:#d04a22;border-color:#d04a22;color:#fff}.btn--ghost{background:transparent}.btn--outline-accent{background:transparent;border-color:var(--color-accent);color:var(--color-accent)}.btn--outline-accent:hover{background:var(--color-hover)}.row-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.25rem .45rem;font-size:.85rem;opacity:.6;border-radius:var(--radius-sm);text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;line-height:1;transition:opacity .15s,color .15s,background .15s}.row-btn:hover{opacity:1;background:var(--color-hover)}.row-btn--rename:hover,.row-btn--resend:hover,.row-btn--reset:hover,.row-btn--credits:hover,.row-btn--edit-group:hover{color:var(--color-text)}.row-btn--delete:hover,.row-btn--reject:hover{color:var(--color-danger)}.row-btn--approve:hover,.row-btn--unblock:hover{color:var(--color-success)}.row-btn--block:hover{color:var(--color-warn)}}@layer components{.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.25rem;background:var(--color-surface,transparent)}.card__title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin:0 0 .35rem;display:flex;align-items:center;gap:.6rem}.card__title i{color:var(--color-text-secondary)}.card__desc{color:var(--color-text-secondary);margin:0 0 1rem;font-size:.95rem}}@layer components{.code-block{display:block;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem;margin:.4rem 0 .75rem;font-size:.75rem;line-height:1.4;overflow:auto;max-height:28rem;white-space:pre-wrap;word-break:break-word}.code-block--sm{max-height:260px}.code-block--error{background:color-mix(in srgb,var(--color-danger-toast) 6%,transparent);border-color:color-mix(in srgb,var(--color-danger-toast) 30%,transparent);color:#7a1c1c}}@layer components{.cb{position:relative;width:100%}.cb__control{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;min-height:2rem;padding:.2rem .5rem;border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);border-radius:var(--radius-lg);background:transparent;cursor:text;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.cb__control::-webkit-scrollbar{display:none}.cb__control:focus-within{border-color:#66796359;box-shadow:0 0 0 3px #66796326}.cb__chips{display:flex;flex-wrap:nowrap;flex-shrink:0;gap:.3rem}.cb__chip{flex-shrink:0;white-space:nowrap}.cb__chip-remove{all:unset;cursor:pointer;color:color-mix(in srgb,var(--color-text) 40%,transparent);font-size:.85rem;line-height:1;transition:color var(--transition-fast)}.cb__chip-remove:hover{color:var(--color-accent)}.cb__input{flex:1 0 13.5rem;min-width:13.5rem;border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:.88rem;color:var(--color-text);padding:.15rem 0}.cb__input::placeholder{color:color-mix(in srgb,var(--color-text) 35%,transparent)}.cb__dropdown{position:absolute;top:calc(100%+4px);left:0;right:0;max-height:260px;overflow-y:auto;background:var(--color-dropdown-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000001f;z-index:100;padding:.35rem 0}.cb__group-header{padding:.45rem .75rem .2rem;font-size:.65rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb,var(--color-text) 40%,transparent)}.cb__option{padding:.4rem .75rem;font-size:.85rem;cursor:pointer;transition:background-color .12s ease}.cb__option:hover,.cb__option--highlight{background:#66796314}.cb__option--selected{color:var(--color-link);font-weight:600}.cb__option--selected:before{content:"✓";margin-right:.4em}.cb__empty{padding:.6rem .75rem;font-size:.85rem;color:color-mix(in srgb,var(--color-text) 40%,transparent);text-align:center}@media(max-width:768px){.cb__input{flex:1 1 5rem;min-width:5rem}}}@layer components{.dialog-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-overlay[hidden]{display:none}.dialog{background:var(--color-bg);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;width:min(92vw,480px);box-shadow:0 18px 60px #00000059;color:var(--color-text)}.dialog__title{margin:0 0 .75rem;font-size:1.1rem;color:var(--color-text)}.dialog__body{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-secondary)}.dialog__body p{margin:0 0 .5rem}.dialog__body p:last-child{margin-bottom:0}.dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.dialog--select{width:min(92vw,460px)}.dialog__current{margin:0 0 1rem;font-size:.88rem;color:var(--color-text-secondary)}.dialog__options{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.dialog__option{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-base);cursor:pointer;font-size:.92rem;transition:border-color .15s,background .15s}.dialog__option:hover{background:var(--color-hover)}.dialog__option input[type=radio]{margin:0;cursor:pointer}.dialog__option--selected{border-color:var(--color-text);background:var(--color-hover)}.dialog--rename{width:min(92vw,520px)}.dialog--rename label{display:block;font-size:.85rem;color:var(--color-text-secondary);margin-bottom:1rem}.dialog--rename input[type=text]{display:block;width:100%;margin-top:.3rem;padding:.5rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.95rem;box-sizing:border-box}.dialog__impact{background:color-mix(in srgb,#e67e22 12%,transparent);border-left:3px solid #e67e22;padding:.6rem .85rem;border-radius:var(--radius-md);font-size:.82rem;color:var(--color-text);margin-bottom:1rem;max-height:12rem;overflow-y:auto}.dialog__impact ul{margin:.4rem 0 0 1.2rem;padding:0}.dialog__impact li{margin:.15rem 0}.dialog__impact li.more{color:var(--color-text-muted);font-style:italic}.dialog__impact .raw-warning{margin:.6rem 0 0;padding-top:.5rem;border-top:1px dashed color-mix(in srgb,var(--color-warn) 35%,transparent);color:#8a4a05;font-size:.8rem}.dialog__impact .raw-warning i{margin-right:.3rem}.dialog__merge{background:color-mix(in srgb,var(--color-warn) 12%,transparent);border-left:3px solid var(--color-warn);padding:.7rem .9rem;border-radius:var(--radius-md);font-size:.85rem;margin-bottom:1rem}.dialog__merge p{margin:0}.dialog--confirm{width:min(92vw,420px)}.dialog--danger .dialog__title{color:var(--color-danger)}.dialog__close{position:absolute;top:.65rem;right:.85rem;background:none;border:none;cursor:pointer;color:color-mix(in srgb,var(--color-text) 35%,transparent);font-size:1.25rem;line-height:1;padding:.25rem .4rem;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.dialog__close:hover{color:var(--color-accent)}.dialog__textarea{width:100%;border-radius:var(--radius-base);border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);padding:.75rem;font-family:var(--font-body);font-size:.9rem;resize:vertical;transition:border-color var(--transition-base);box-sizing:border-box;background:var(--color-bg);color:var(--color-text)}.dialog__textarea:focus{outline:none;border-color:#66796380}.dialog__hint{font-size:.78rem;color:color-mix(in srgb,var(--color-text) 50%,transparent);margin:.35rem 0 0;min-height:1.2em}.dialog__actions--center{justify-content:center}.dialog--feedback{position:relative;width:min(92vw,460px)}.dialog--wizard{width:min(95vw,750px);padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}.dialog__header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);flex-shrink:0}.dialog__header .dialog__title{margin:0}.dialog--wizard .dialog__close{position:static;font-size:1.5rem;color:var(--color-text)}.dialog--wizard .dialog__body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;margin:0}.dialog--wizard .dialog__actions{margin-top:0;padding:1rem 1.5rem;border-top:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);gap:.75rem}}@layer components{.dropzone{position:relative;width:100%;height:260px;background:linear-gradient(135deg,#2a2a2a,#1a1a1a);border-radius:var(--radius-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:outline-color var(--transition-base)}.dropzone.dropzone--drag-over{outline:3px dashed rgba(102,121,99,.7);outline-offset:-6px}.dropzone img.dropzone__preview{display:none;max-width:100%;max-height:260px;width:auto;height:auto;object-fit:contain;object-position:center center;border-radius:14px}.dropzone.dropzone--has-image img.dropzone__preview{display:block}.dropzone.dropzone--has-image{background:transparent;height:auto;width:fit-content;max-width:100%;margin-left:auto;margin-right:0;border:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);box-shadow:0 6px 20px #0000001a;transition:box-shadow .18s ease,transform .18s ease}.dropzone.dropzone--has-image:hover{box-shadow:0 10px 28px #00000029;transform:translateY(-1px)}.dropzone__prompt{display:flex;flex-direction:column;align-items:center;gap:.6rem;color:#ffffff80;font-size:.9rem;pointer-events:none;z-index:1}.dropzone__prompt i{font-size:2rem}.dropzone.dropzone--has-image .dropzone__prompt{display:none}.dropzone__change{position:absolute;inset:0;display:none;align-items:center;justify-content:center;gap:.5rem;background:#00000073;color:#ffffffd9;font-size:.9rem;font-weight:600;z-index:2;pointer-events:none}.dropzone.dropzone--has-image:hover .dropzone__change{display:flex}.dropzone__expand{position:absolute;top:.6rem;right:.6rem;display:none;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--radius-pill);background:#0000008c;color:#fff;font-size:.85rem;cursor:pointer;z-index:4;transition:background .15s,transform .15s}.dropzone.dropzone--has-image .dropzone__expand{display:inline-flex}.dropzone__expand:hover{background:#000c;transform:scale(1.05)}.dropzone__expand:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 50%,transparent)}.dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:3}@media(max-width:768px){.dropzone{height:320px}}@media only screen and (max-width:1200px)and (orientation:portrait){.dropzone{width:100%;height:220px}.dropzone.dropzone--has-image{width:fit-content;max-width:100%;margin:0 auto;height:auto}.dropzone img.dropzone__preview{width:auto;height:auto;max-width:100%;max-height:220px}}}@layer components{.empty{text-align:center;color:var(--color-text-muted);padding:1.5rem 0;font-size:.95rem}.empty--lg{padding:3rem 1rem}}@layer components{.section{margin-top:2.25rem}.section--compact{margin-top:0;margin-bottom:2rem}.section__title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin:0 0 .9rem;display:flex;align-items:center;gap:.55rem}.section--compact .section__title{font-size:1.15rem;margin-bottom:.6rem;font-weight:600}.section__count{display:inline-block;margin-left:.4rem;padding:.1rem .55rem;border-radius:var(--radius-pill);background:var(--color-hover);color:var(--color-text-secondary);font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}.section--compact .section__count{background:transparent;color:var(--color-text-muted);font-weight:400;font-size:.9rem;padding:0}}@layer components{.lightbox{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box;background:#000000d9;cursor:zoom-out;opacity:0;overflow:hidden;transition:opacity var(--transition-fast)}.lightbox--visible{opacity:1}.lightbox__img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-base);box-shadow:0 12px 48px #00000080}.lightbox__close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:#ffffff26;color:#fff;font-size:1.1rem;cursor:pointer;transition:background .15s}.lightbox__close:hover{background:#ffffff4d}}@layer components{.meta-grid{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1.25rem;align-items:center;font-size:1rem;margin:0 0 1.5rem}.meta-grid dt{font-family:var(--font-display);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;font-size:.8rem;letter-spacing:.04em}.meta-grid dd{margin:0}.meta-grid--compact{gap:.3rem 1rem;font-size:.82rem;margin:0 0 .75rem;align-items:start}.meta-grid--compact dt{font-family:inherit;font-weight:600;color:var(--color-text-secondary);text-transform:none;letter-spacing:0;font-size:inherit}.meta-grid--compact dd{font-variant-numeric:tabular-nums}}@layer components{.page{max-width:1400px;margin:2rem auto;padding:0 1rem}.page--narrow{max-width:900px}.page__heading{font-family:var(--font-display);font-size:2rem;font-weight:700;margin-bottom:.5rem}.page__heading--with-icon{display:flex;align-items:center;gap:.6rem}.page__intro{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1.5rem}.page__intro code{background:var(--color-hover);padding:.05rem .4rem;border-radius:var(--radius-sm);font-size:.82rem}}@layer components{.pagination{margin-top:1rem;display:flex;gap:.4rem;align-items:center;justify-content:center;font-size:.85rem;flex-wrap:wrap;color:var(--color-text-muted)}.pagination a,.pagination .page-link,.pagination .page-ellipsis,.pagination span{padding:.25rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);text-decoration:none;color:var(--color-text)}.pagination .page-ellipsis,.pagination span.page-ellipsis{border:0;color:var(--color-text-muted)}.pagination .page-current{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.pagination .page-link:hover{background:var(--color-hover)}.pagination button{height:1.7rem;padding:0 .6rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer}.pagination button[disabled]{opacity:.4;cursor:not-allowed}}@layer components{.pill,.badge{display:inline-block;padding:.05rem .45rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;line-height:1.4}.pill i,.badge i{margin-right:.3rem}.pill--md,.badge{padding:.15rem .6rem;font-size:.78rem}.pill--lg{padding:.2rem .7rem;font-size:.85rem}.pill--label,.badge{font-family:var(--font-display);letter-spacing:.02em}.pill--upper{text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-display)}.pill--ok{background:color-mix(in srgb,var(--color-success) 12%,transparent);color:var(--color-success)}.pill--warn{background:color-mix(in srgb,var(--color-warn-bright) 15%,transparent);color:var(--color-warn-bright)}.pill--error{background:color-mix(in srgb,var(--color-danger) 14%,transparent);color:var(--color-danger)}.pill--info,.pill--debounced{background:color-mix(in srgb,var(--color-info) 12%,transparent);color:var(--color-info)}.pill--skipped,.pill--muted{background:var(--color-hover);color:var(--color-text-muted)}.pill--accent{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-text)}.pill--pending{background:color-mix(in srgb,var(--color-warn-bright) 15%,transparent);color:var(--color-warn-bright);position:relative;padding-left:1.1rem}.pill--pending:before{content:"";position:absolute;left:.45rem;top:50%;width:.4rem;height:.4rem;margin-top:-.2rem;border-radius:var(--radius-circle);background:currentColor;animation:pill-pulse 1.4s ease-in-out infinite}@keyframes pill-pulse{0%,to{opacity:.3}50%{opacity:1}}.pill--ok-solid{background:var(--color-success);color:#fff}.pill--warn-solid{background:var(--color-warn);color:#fff}.pill--info-solid{background:var(--color-info);color:#fff}.pill--error-solid{background:var(--color-danger);color:#fff}.pill--ok-soft{background:var(--color-success-soft);color:var(--color-success-text)}.pill--warn-soft{background:var(--color-warn-soft);color:var(--color-warn-text)}.pill--error-soft{background:var(--color-danger-soft);color:var(--color-danger-text)}.pill--info-soft{background:var(--color-info-soft);color:var(--color-info-text)}.pill--admin-soft{background:var(--color-admin-soft);color:var(--color-admin-text)}.pill--superadmin-soft{background:var(--color-superadmin-soft);color:var(--color-superadmin-text)}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);background:var(--color-surface-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 4px #0000000f;font-size:.72rem;font-weight:600;font-family:var(--font-display);color:var(--color-bold);text-transform:uppercase;letter-spacing:.03em}.badge--release,.badge--prod{background:var(--color-success);color:#fff}.badge--prerelease,.badge--on{background:var(--color-warn);color:#fff}.badge--dev{background:var(--color-info);color:#fff}.badge--off{background:var(--color-border);color:var(--color-text-secondary)}.badge--pending{background:var(--color-warn-soft);color:var(--color-warn-text)}.badge--approved,.badge--contributor{background:var(--color-success-soft);color:var(--color-success-text)}.badge--rejected,.badge--blocked{background:var(--color-danger-soft);color:var(--color-danger-text)}.badge--viewer{background:var(--color-info-soft);color:var(--color-info-text)}.badge--admin{background:var(--color-admin-soft);color:var(--color-admin-text)}.badge--superadmin{background:var(--color-superadmin-soft);color:var(--color-superadmin-text)}}@layer components{.popover{position:absolute;z-index:1100;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:0 12px 32px #0000002e;min-width:11rem;padding:.25rem;opacity:0;transform:translateY(-4px);transition:opacity .12s,transform .12s}.popover.is-open{opacity:1;transform:translateY(0)}.popover button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .6rem;background:none;border:0;border-radius:var(--radius-md);font:inherit;color:var(--color-text);text-align:left;cursor:pointer}.popover button:hover{background:var(--color-hover)}.popover button.is-active{color:var(--color-accent);font-weight:600}.popover button i{width:1.1rem;text-align:center}.popover__item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;border:none;border-radius:.4rem;background:transparent;cursor:pointer;text-align:left;color:var(--color-text);font-family:var(--font-body);font-size:.85rem}.popover__item:hover,.popover__item--active{background:var(--color-hover)}.popover__item-icon{width:1.2rem;text-align:center;font-size:.8rem;opacity:.7;flex-shrink:0}.popover__item-text{display:flex;flex-direction:column;flex:1;min-width:0}.popover__item-label{font-weight:600;line-height:1.3}.popover__item-desc{font-size:.75rem;color:var(--color-text-muted);line-height:1.3}.popover__item-check{font-size:.7rem;opacity:.6;flex-shrink:0}}@layer components{.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:1.5rem;padding:1rem 1.25rem;border:1px solid var(--color-border);border-radius:14px}.stat-row--tight{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stat-row--narrow{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat-row--wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stat-row--mb-sm{margin-bottom:1rem}.stat{display:flex;flex-direction:column;gap:.2rem}.stat+.stat{border-left:1px solid var(--color-border);padding-left:1.25rem}@media(max-width:720px){.stat+.stat{border-left:0;padding-left:0;border-top:1px solid var(--color-border);padding-top:1rem}}.stat__num{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);line-height:1.1}.stat__num--lg{font-size:1.5rem}.stat__num--bad{color:var(--color-danger)}.stat__num--warn{color:var(--color-warn-bright)}.stat__num--ok{color:var(--color-success)}.stat__pct{font-size:.78rem;font-weight:500;color:var(--color-text-muted);margin-left:.25rem}.stat__lbl{font-size:.85rem;color:var(--color-text-secondary);line-height:1.3}.stat__lbl--inline{display:flex;align-items:center;gap:.4rem}.stat__lbl small{display:block;font-size:.72rem;color:var(--color-text-muted);margin-top:.1rem}.stat__hint{display:block;font-size:.72rem;color:var(--color-text-muted);margin-top:.15rem;line-height:1.35}.stat__action{display:inline-block;margin-top:.4rem;font-size:.78rem;color:var(--color-ai);text-decoration:none;font-weight:500}.stat__action:hover{text-decoration:underline}}@layer components{.status-bar{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;margin-bottom:1.25rem;border:1px solid var(--color-border);border-radius:10px;font-size:.85rem}.status-bar__dot{width:.6rem;height:.6rem;border-radius:var(--radius-circle);background:var(--color-text-muted);flex-shrink:0}.status-bar__dot.is-ok{background:var(--color-success)}.status-bar__dot.is-bad{background:var(--color-danger)}.status-bar__dot.is-stale{background:var(--color-warn-bright)}}@layer components{.table{width:100%;border-collapse:collapse;font-size:.85rem}.table th,.table td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.table th{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;color:var(--color-text-secondary);line-height:1.25;white-space:nowrap}.table th.col-num,.table td.col-num{text-align:right;font-variant-numeric:tabular-nums}.table th.col-center,.table td.col-center{text-align:center}.table th.col-checkbox,.table td.col-checkbox{width:2rem;padding-left:.5rem;padding-right:.25rem}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.table th.sortable:hover{color:var(--color-accent)}.table th.sortable:after{content:"";display:inline-block;width:0;height:0;margin-left:.35rem;vertical-align:middle;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4.5px solid currentColor;opacity:.25;transition:opacity .15s,transform .15s}.table th.sort-asc:after{opacity:1;transform:rotate(180deg)}.table th.sort-desc:after{opacity:1;transform:rotate(0)}.table tr:hover{background:var(--color-hover)}.table tr.is-clickable{cursor:pointer}.table .muted{color:var(--color-text-muted)}.table--loading{opacity:.5;pointer-events:none;transition:opacity .15s}.detail-row>td{background:var(--color-hover);padding:.85rem 1rem;vertical-align:top}.detail-row__body{padding:.85rem 1rem}.detail-row__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-row__grid .code-block{margin:0}.detail-row__label{display:block;font-size:.75rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin:0 0 .3rem}.detail-row__error{padding:0 1rem .85rem}.detail-row__error .detail-row__label{color:var(--color-danger-toast)}.detail-row__error-status{margin-left:.4rem;padding:.05rem .45rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-danger-toast) 12%,transparent);color:var(--color-danger-toast);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}.detail-row__empty{margin:0;font-size:.82rem;color:var(--color-text-muted);font-style:italic}@media(max-width:720px){.detail-row__grid{grid-template-columns:1fr}}}@layer components{.toast-region{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000;pointer-events:none}.toast{background:var(--color-text);color:var(--color-bg);padding:.6rem 1rem;border-radius:var(--radius-base);font-size:.88rem;box-shadow:0 4px 16px #00000026;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s;pointer-events:auto}.toast.is-visible{opacity:1;transform:translateY(0)}.toast--error{background:var(--color-danger-toast);color:#fff}}@layer components{.toolbar input[type=text],.toolbar input[type=number],.toolbar select,.toolbar button,.bulk-bar select{height:2rem;box-sizing:border-box;padding:0 .6rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:.88rem;line-height:1}.toolbar{display:flex;gap:.6rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.toolbar button{padding:0 .9rem;cursor:pointer}.toolbar--filters{padding:.5rem;background:var(--color-hover);border-radius:var(--radius-base);margin-bottom:.75rem}.toolbar--filters input,.toolbar--filters select{height:auto;padding:.3rem .5rem;font-size:.83rem}}.dialog-overlay>.dialog{position:relative}.dialog-overlay .dialog__close{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem}
