.allergen-selector{margin-top:8px}.allergen-selector__hint{font-size:12px;color:var(--color-ink-medium);background-color:#b88a2e14;border-left:2px solid var(--color-accent-gold);padding:6px 10px;margin:0 0 10px;border-radius:var(--radius-sm)}.allergen-selector__hint strong{color:var(--color-ink);font-weight:600}.allergen-selector__hint--muted{background-color:transparent;border-left-color:var(--color-line-light);color:var(--color-ink-faded);font-style:italic}.allergen-selector__grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.allergen-pill{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:5px 12px;border-radius:20px;border:1px solid var(--color-line-light);background-color:var(--color-paper);color:var(--color-ink-faded);cursor:pointer;transition:all .15s ease;white-space:nowrap}.allergen-pill:hover{border-color:var(--color-line-dark);color:var(--color-ink)}.allergen-pill--auto{background-color:#b88a2e1f;border-color:var(--color-accent-gold);color:var(--color-accent-gold);font-weight:600}.allergen-pill--included{background-color:var(--color-accent-red);border-color:var(--color-accent-red);color:var(--color-paper);font-weight:600}.allergen-pill--included:hover{background-color:#7d1e10;border-color:#7d1e10}.allergen-pill--excluded{background-color:#2f4a3314;border-color:var(--color-accent-green);color:var(--color-accent-green);text-decoration:line-through;font-weight:500}.allergen-pill--off{background-color:transparent;border-color:var(--color-line-light);color:var(--color-ink-faded)}.allergen-selector__legend{font-size:11px;font-style:italic;color:var(--color-ink-faded);margin:4px 0 0}.allergen-selector__legend em{font-family:var(--font-mono);font-style:normal;font-weight:600;color:var(--color-ink-medium)}.additive-editor{display:flex;flex-direction:column;gap:8px}.additive-editor__empty{font-size:12px;font-style:italic;color:var(--color-ink-faded);margin:4px 0}.additive-editor__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.additive-editor__row{display:grid;grid-template-columns:180px 1fr 90px 32px;gap:6px;align-items:center}.additive-editor__select,.additive-editor__name,.additive-editor__enum{font-family:var(--font-body);font-size:13px;color:var(--color-ink);background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);padding:6px 8px;outline:none;transition:border-color .15s ease}.additive-editor__enum{font-family:var(--font-mono);font-size:12px;text-align:center}.additive-editor__select:focus,.additive-editor__name:focus,.additive-editor__enum:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.additive-editor__enum--invalid{border-color:var(--color-accent-red);background-color:#9c2a1a0a}.additive-editor__remove{background:transparent;border:1px solid var(--color-line-light);border-radius:var(--radius-sm);font-size:16px;line-height:1;color:var(--color-ink-medium);cursor:pointer;padding:4px;width:32px;height:32px;transition:all .1s ease}.additive-editor__remove:hover{background-color:#9c2a1a14;color:var(--color-accent-red);border-color:var(--color-accent-red)}.additive-editor__add{align-self:flex-start;margin-top:4px}.additive-editor__hint{font-size:11px;font-style:italic;color:var(--color-ink-faded);margin:6px 0 0;line-height:1.4}@media(max-width:600px){.additive-editor__row{grid-template-columns:1fr 1fr 32px;grid-template-areas:"fc fc fc" "name enum remove";gap:6px}.additive-editor__select{grid-area:fc}.additive-editor__name{grid-area:name}.additive-editor__enum{grid-area:enum}.additive-editor__remove{grid-area:remove}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1f1b1673;display:flex;align-items:flex-start;justify-content:center;padding:48px 24px;z-index:100;overflow-y:auto}.modal{background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);max-width:720px;width:100%;max-height:calc(100vh - 96px);display:flex;flex-direction:column}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-line-dark)}.modal__title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:24px;color:var(--color-ink);margin:0}.modal__close{background:transparent;border:none;font-size:28px;line-height:1;color:var(--color-ink-medium);cursor:pointer;padding:4px 12px;border-radius:var(--radius-sm);transition:background-color .1s ease}.modal__close:hover{background-color:var(--color-paper-shade);color:var(--color-ink)}.modal__body{padding:24px;overflow-y:auto;flex:1}.form-group{border:none;padding:0;margin:0 0 20px}.form-group:last-of-type{margin-bottom:0}.form-group__legend{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 12px;padding:0 0 6px;border-bottom:1px solid var(--color-line-dark);width:100%}.form-group__sub{font-family:var(--font-mono);font-weight:400;font-size:11px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;margin-bottom:12px}.form-field__label{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:4px}.form-input{padding:8px 10px;font-family:var(--font-body);font-size:14px;color:var(--color-ink);background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.form-input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #b88a2e1f}.form-input--textarea{font-family:var(--font-body);resize:vertical;min-height:60px}.form-input--number{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}.form-grid--compact{gap:6px 16px;margin-top:8px}.form-extended{margin-top:12px}.form-extended__heading{font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--color-ink-medium);margin:18px 0 4px;padding-bottom:4px;border-bottom:1px dashed var(--color-line-light);text-transform:uppercase;letter-spacing:.04em}.form-extended__heading:first-child{margin-top:6px}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}.nutrient-field{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed var(--color-line-light)}.nutrient-field__label{font-family:var(--font-body);font-size:13px;color:var(--color-ink);flex:1;text-transform:none;letter-spacing:0;font-weight:400;margin:0}.nutrient-field__unit{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded)}.nutrient-field input{width:90px;padding:4px 8px;font-size:13px;font-family:var(--font-mono);text-align:right;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.nutrient-field input:focus{outline:none;border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.required{color:var(--color-accent-red);margin-left:2px;font-weight:600}.form-toggle{background:transparent;border:1px dashed var(--color-line-dark);border-radius:var(--radius-md);padding:8px 14px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--color-ink-medium);cursor:pointer;width:100%;text-align:left;transition:all .15s ease}.form-toggle:hover{border-color:var(--color-accent-gold);color:var(--color-ink);background-color:var(--color-paper-shade)}.form-error{background-color:#9c2a1a14;border-left:3px solid var(--color-accent-red);padding:8px 12px;margin:12px 0 0;color:var(--color-accent-red);font-size:13px;border-radius:var(--radius-sm)}.modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid var(--color-line-light)}.btn--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.form-group--ai{background-color:#9b1c100a;border:1px dashed rgba(155,28,16,.25);border-radius:var(--radius-md);padding:12px 14px}.ai-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ai-upload__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ai-upload__hint{font-size:12px;color:var(--color-ink-medium);font-family:var(--font-mono)}.ai-upload__result{margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px}.ai-upload__result--high{background-color:#228b2214;border-left:3px solid #228b22}.ai-upload__result--medium{background-color:#daa5201a;border-left:3px solid #daa520}.ai-upload__result--low{background-color:#da5a1e1a;border-left:3px solid #da5a1e}.ai-upload__notes{margin:6px 0 0;color:var(--color-ink-medium);font-style:italic}.ai-upload__review{margin:6px 0 0;color:var(--color-ink-medium);font-size:12px}@media(max-width:600px){.modal-backdrop{padding:0;align-items:stretch}.modal{max-width:100%;max-height:100vh;height:100vh;border-radius:0;border:none}.modal__header{padding:14px 16px}.modal__title{font-size:19px}.modal__close{min-width:44px;min-height:44px;padding:8px 14px}.modal__body{padding:16px}.form-input{font-size:16px;min-height:40px}.form-input--textarea{min-height:80px}.form-group__legend{font-size:12px}}.allergen-badges{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-line-light)}.allergen-badges--compact{margin-top:0;padding-top:0;border-top:none}.allergen-badges__title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--color-line-dark)}.allergen-badges__sub{font-family:var(--font-mono);font-weight:400;font-size:11px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:8px}.allergen-badges__none{font-size:13px;color:var(--color-ink-faded);font-style:italic;margin:0}.allergen-badges__list{display:flex;flex-wrap:wrap;gap:6px}.allergen-badge{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:4px 10px;border-radius:16px;white-space:nowrap;border:1px solid transparent;cursor:help}.allergen-badge--manual{background-color:var(--color-accent-red);color:var(--color-paper);border-color:var(--color-accent-red);font-weight:600}.allergen-badge--high{background-color:#9c2a1a14;color:var(--color-accent-red);border-color:var(--color-accent-red)}.allergen-badge--medium{background-color:#b88a2e1a;color:var(--color-accent-gold);border-color:var(--color-accent-gold)}.allergen-badge--low{background-color:var(--color-bg);color:var(--color-ink-medium);border-color:var(--color-line-dark);font-style:italic}.allergen-badges__disclaimer{font-size:11px;font-style:italic;color:var(--color-ink-faded);margin:10px 0 0;line-height:1.4}.claims-block{margin:0 0 16px;padding:14px 18px;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-left:3px solid var(--color-accent-green);border-radius:var(--radius-md)}.claims-block--compact{padding:8px 0;background:transparent;border:none;margin:0}.claims-block__title{font-family:var(--font-body);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 8px}.claims-block__sub{font-family:var(--font-mono);font-weight:400;font-size:10px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:8px}.claims-block__none{font-size:12px;color:var(--color-ink-faded);font-style:italic;margin:0}.claims-list{display:flex;flex-wrap:wrap;gap:6px}.claim-pill{font-family:var(--font-body);font-size:12px;font-weight:500;padding:4px 10px;border-radius:14px;white-space:nowrap;cursor:help;border:1px solid transparent;transition:all .1s ease}.claim-pill--positive{background-color:#2f4a331a;color:var(--color-accent-green);border-color:var(--color-accent-green)}.claim-pill--positive:hover{background-color:#2f4a332e}.claim-pill--low{background-color:var(--color-bg);color:var(--color-ink-medium);border-color:var(--color-line-dark)}.claim-pill--low:hover{background-color:var(--color-paper-shade);color:var(--color-ink)}.claims-block__disclaimer{font-size:10px;font-style:italic;color:var(--color-ink-faded);margin:8px 0 0;line-height:1.4}.source-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-family:var(--font-mono);font-size:11px;font-weight:700;line-height:1;color:var(--color-paper);flex-shrink:0;vertical-align:-3px;box-shadow:0 1px 2px #1f1b1614;letter-spacing:0;-webkit-user-select:none;user-select:none}.source-badge--sm{width:16px;height:16px;font-size:9px;vertical-align:-2px}.source-badge--bls{background-color:var(--color-accent-green)}.source-badge--custom{background-color:var(--color-accent-red)}.source-badge--intl{background-color:var(--color-accent-gold)}.recipe-review-modal{max-width:880px}.recipe-review__notes{margin:0 0 18px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45}.recipe-review__notes--high{background:#228b2214;border-left:3px solid #228b22}.recipe-review__notes--medium{background:#daa5201a;border-left:3px solid #daa520}.recipe-review__notes--low{background:#da5a1e1a;border-left:3px solid #da5a1e}.recipe-review__notes-text{margin:6px 0 0;font-style:italic;color:var(--color-ink-medium)}.recipe-review__list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:10px}.recipe-review__row{background:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.recipe-review__row--ignored{opacity:.5}.recipe-review__row--unmatched{border-color:#da5a1e66;background:#da5a1e0a}.recipe-review__ing-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.recipe-review__ing-name{flex:1 1 220px;font-size:14px}.recipe-review__ing-note{color:var(--color-ink-medium);font-style:italic;font-size:13px}.recipe-review__amount-wrap{display:flex;align-items:center;gap:6px}.recipe-review__amount{width:80px;padding:4px 6px;font-family:var(--font-mono);font-size:13px;text-align:right;border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);background:var(--color-paper)}.recipe-review__amount:disabled{background:var(--color-paper-shade)}.recipe-review__unit{font-family:var(--font-mono);font-size:12px;color:var(--color-ink-medium)}.recipe-review__original{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded);margin-left:4px;padding:2px 6px;background:var(--color-paper-shade);border-radius:3px}.recipe-review__match-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.recipe-review__match-label{font-size:12px;color:var(--color-ink-medium);text-transform:uppercase;letter-spacing:.04em}.recipe-review__match-select{flex:1 1 220px;min-width:200px;padding:5px 8px;font-size:13px;border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);background:var(--color-paper)}.recipe-review__match-select:disabled{background:var(--color-paper-shade)}.recipe-review__match-info{font-size:11px;font-style:italic;color:var(--color-ink-faded)}.recipe-review__no-match{font-size:12px;color:#da5a1e;font-style:italic}.recipe-review__search-row{margin-top:4px;padding-left:70px}.recipe-review__search-input{width:100%;max-width:400px;padding:4px 8px;font-size:12px;font-family:var(--font-mono);border:1px dashed var(--color-line-dark);border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-medium)}.recipe-review__search-input:focus{outline:none;border-style:solid;border-color:var(--color-accent-red);background:var(--color-paper);color:var(--color-ink)}.ingredient-picker{position:relative;width:100%}.ingredient-picker__input{width:100%;padding:12px 14px;font-family:var(--font-body);font-size:15px;color:var(--color-ink);background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.ingredient-picker__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #b88a2e1f}.ingredient-picker__input::placeholder{color:var(--color-ink-faded)}.ingredient-picker__dropdown{list-style:none;margin:4px 0 0;padding:0;background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-card);max-height:360px;overflow-y:auto;position:absolute;top:100%;left:0;right:0;z-index:50}.ingredient-picker__item{border-bottom:1px solid var(--color-line-light)}.ingredient-picker__item:last-child{border-bottom:none}.ingredient-picker__btn{display:block;width:100%;padding:10px 14px;background:transparent;border:none;text-align:left;cursor:pointer;border-left:3px solid transparent;transition:all .1s ease}.ingredient-picker__item--active .ingredient-picker__btn{background-color:var(--color-paper-shade);border-left-color:var(--color-accent-red)}.ingredient-picker__row1{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}.ingredient-picker__name{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--color-ink);flex:1;min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden}.ingredient-picker__name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ingredient-picker__code{font-family:var(--font-mono);font-size:10px;color:var(--color-accent-gold);font-weight:500;flex-shrink:0}.ingredient-picker__row2{display:flex;align-items:center;gap:8px;font-size:11px}.ingredient-picker__category{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-green)}.ingredient-picker__empty{position:absolute;top:100%;left:0;right:0;margin-top:4px;padding:12px 14px;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-md);font-size:13px;font-style:italic;color:var(--color-ink-faded);z-index:50}.label-modal{max-width:1100px;width:100%;max-height:calc(100vh - 64px);display:flex;flex-direction:column}.label-modal-backdrop{padding:24px}.label-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-line-dark);flex-shrink:0}.label-modal__header-actions{display:flex;gap:8px;align-items:center}.label-modal__body{display:grid;grid-template-columns:320px 1fr;gap:0;flex:1;min-height:0;overflow:hidden}@media(max-width:800px){.label-modal__body{grid-template-columns:1fr}}@media(max-width:600px){.label-modal-backdrop{padding:0;align-items:stretch}.label-modal{max-width:100%;max-height:100vh;height:100vh;border-radius:0;border:none}.label-modal__header{padding:12px 14px;gap:8px;flex-wrap:wrap}.label-modal__header-actions{flex-wrap:wrap}.label-config{padding:14px;border-right:none;border-bottom:1px solid var(--color-line-light);max-height:50vh}.label-config__input{font-size:16px;min-height:38px}}.label-config{background-color:var(--color-bg);border-right:1px solid var(--color-line-light);padding:16px 18px;overflow-y:auto}.label-config__row{display:flex;flex-direction:column;margin-bottom:12px}.label-config__label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:4px}.label-config__input{padding:6px 10px;font-family:var(--font-body);font-size:13px;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);outline:none}.label-config__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.label-config__input--textarea{font-family:var(--font-body);resize:vertical;min-height:60px}.label-config__toggle{margin-top:8px;padding:6px 10px;background:transparent;border:1px dashed var(--color-line-dark);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:12px;color:var(--color-ink-medium);width:100%;text-align:left}.label-config__toggle:hover{background-color:var(--color-paper-shade);color:var(--color-ink)}.label-config__settings{margin-top:10px;padding:10px;background-color:var(--color-paper);border-radius:var(--radius-sm)}.label-config__save-row{display:flex;align-items:center;gap:12px;margin-top:8px}.label-config__saved{font-size:12px;font-weight:500;color:var(--color-accent-green)}.label-config__error{font-size:12px;font-weight:500;color:#9b1c31}.label-config__disclaimer{margin-top:16px;padding:8px 10px;font-size:11px;color:var(--color-ink-medium);background-color:#9c2a1a0f;border-left:2px solid var(--color-accent-red);border-radius:var(--radius-sm);line-height:1.4}.label-config__disclaimer strong{color:var(--color-accent-red)}.label-page-wrapper{background-color:#d9cfb9;padding:24px;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center}.label-page{background-color:#fff;color:#000;padding:24px 28px;font-family:Manrope,sans-serif;font-size:11pt;line-height:1.4;box-shadow:0 4px 16px #0000001f;border-radius:4px}.label-page--a4{width:210mm;min-height:297mm;padding:20mm 18mm;font-size:11pt}.label-page--62mm{width:62mm;padding:4mm 5mm;font-size:8pt;line-height:1.3}.label-page--50x30{width:50mm;height:30mm;padding:2mm 3mm;font-size:6.5pt;line-height:1.2;overflow:hidden}.label-page__name{font-family:Fraunces,serif;font-style:italic;font-weight:600;font-size:1.6em;margin:0 0 .6em;line-height:1.1}.label-page--62mm .label-page__name,.label-page--50x30 .label-page__name{font-size:1.3em;margin-bottom:.4em}.label-page__section{margin:0 0 1em}.label-page--50x30 .label-page__section{margin-bottom:.4em}.label-page__heading{font-family:Manrope,sans-serif;font-size:.95em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .3em;border-bottom:1px solid #000;padding-bottom:2px}.label-page--50x30 .label-page__heading{font-size:.85em;letter-spacing:.02em;border-bottom:none;padding-bottom:0}.label-page__sub{font-weight:400;font-size:.85em;text-transform:none;letter-spacing:0;color:#555;margin-left:6px}.label-page__ingredients{margin:0;font-size:.95em}.label-allergen{font-weight:700}.label-quid{font-style:italic;color:#333}.label-page__contains{margin:.4em 0 0;font-size:.95em}.label-page__contains strong{font-weight:700}.label-page__additives{margin:.3em 0 0;font-size:.92em}.label-page__additives strong{font-weight:700}.label-page__nutrients{width:100%;border-collapse:collapse;font-size:.92em}.label-page__nutrients th{font-weight:700;text-align:right;padding:4px 6px;border-bottom:1px solid #000;white-space:nowrap}.label-page__nutrients th:first-child{text-align:left}.label-page__nutrients td{padding:3px 6px;border-bottom:1px solid #ccc}.label-page__nutrients tr:last-child td{border-bottom:none}.label-page__num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.label-page__nutrient-indent td:first-child{padding-left:16px;font-style:italic;font-size:.92em}.label-page__portion-info{display:block;font-size:.85em;font-weight:400;color:#555}.label-page__footer{margin-top:.8em;padding-top:.6em;border-top:1px solid #000;font-size:.92em}.label-page__footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1em;margin-bottom:.4em}.label-page__footer-col strong{font-weight:700}.label-page__hint{margin:.4em 0;font-style:italic}.label-page__manufacturer{margin-top:.6em;font-size:.92em}.label-page__manufacturer strong{font-weight:700}.label-page__address{font-size:.92em;color:#333;margin-top:.2em}.label-page__manufacturer-compact{margin:.4em 0 0;font-size:.85em}.label-page__footer-note{margin:.6em 0 0;font-style:italic;font-size:.85em;color:#444}@media print{@page{margin:0}html,body{background:#fff!important;margin:0!important;padding:0!important}body *{visibility:hidden}.label-page,.label-page *{visibility:visible}.label-page{position:absolute;top:0;left:0;margin:0;box-shadow:none!important;border-radius:0!important;page-break-inside:avoid}.label-page--a4{width:210mm;min-height:297mm}.label-page--62mm{width:62mm}.label-page--50x30{width:50mm;height:30mm}}.datasheet-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1f1b1673;display:flex;align-items:flex-start;justify-content:center;padding:24px;z-index:100;overflow-y:auto}.datasheet-modal{background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);max-width:900px;width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.datasheet-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-line-dark)}.datasheet-modal__title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:22px;color:var(--color-ink);margin:0}.datasheet-modal__actions{display:flex;gap:8px;align-items:center}.datasheet-modal__body{padding:24px;overflow-y:auto;flex:1;background-color:var(--color-bg)}.datasheet-page{background-color:#fff;color:#222;width:210mm;min-height:297mm;padding:18mm 18mm 22mm;margin:0 auto;font-family:Helvetica Neue,Arial,sans-serif;font-size:10.5pt;line-height:1.4;box-shadow:0 2px 16px #00000014;box-sizing:border-box}.datasheet-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:2px solid #222;padding-bottom:8mm;margin-bottom:8mm}.datasheet-page__title{font-size:22pt;font-weight:700;margin:0 0 4px;color:#1a1a1a}.datasheet-page__subtitle{font-size:9.5pt;color:#666;margin:0;font-style:italic}.datasheet-page__meta{text-align:right;font-size:9.5pt;color:#444}.datasheet-page__meta p{margin:0 0 2px}.datasheet-page__section{margin-bottom:6mm;page-break-inside:avoid}.datasheet-page__heading{font-size:11.5pt;font-weight:700;margin:0 0 3mm;padding-bottom:1mm;border-bottom:1px solid #999;color:#1a1a1a}.datasheet-page__sub{font-weight:400;font-size:9pt;color:#777;font-style:italic}.datasheet-page__eck-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4mm;background-color:#f6f4ef;padding:3mm;border-radius:1.5mm}.datasheet-page__eck-grid>div{display:flex;flex-direction:column;text-align:center}.datasheet-page__eck-grid strong{font-size:8.5pt;text-transform:uppercase;letter-spacing:.04em;color:#888;font-weight:500;margin-bottom:1mm}.datasheet-page__eck-grid span{font-size:14pt;font-weight:700;color:#1a1a1a}.datasheet-page__ingredients{margin:0 0 2mm;font-size:10pt;line-height:1.5}.datasheet-allergen{font-weight:700}.datasheet-quid{font-weight:400}.datasheet-allergen-key{font-weight:700}.datasheet-page__hint{font-size:8.5pt;color:#888;font-style:italic;margin:0}.datasheet-page__allergens,.datasheet-page__additives{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:2mm 4mm;font-size:10pt}.datasheet-page__allergens li{background-color:#9c2a1a14;padding:1mm 3mm;border-radius:1mm;border-left:2px solid #9c2a1a;font-weight:500}.datasheet-page__additives li{background-color:#b88a2e14;padding:1mm 3mm;border-radius:1mm;border-left:2px solid #b88a2e;font-size:9.5pt}.datasheet-page__nutrients,.datasheet-page__rezepture{width:100%;border-collapse:collapse;font-size:10pt}.datasheet-page__nutrients thead th,.datasheet-page__rezepture thead th{text-align:left;font-size:9pt;text-transform:uppercase;letter-spacing:.04em;color:#777;font-weight:500;padding:2mm;border-bottom:1px solid #999}.datasheet-page__nutrients tbody td,.datasheet-page__rezepture tbody td,.datasheet-page__rezepture tfoot td{padding:1.5mm 2mm;border-bottom:1px solid #eee}.datasheet-page__rezepture tfoot td{border-bottom:none;border-top:1px solid #999;padding-top:2mm}.datasheet-num{text-align:right;font-family:Consolas,Courier New,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.datasheet-row--indent td:first-child{padding-left:6mm;font-style:italic;color:#555}.datasheet-page__manufacturer p{margin:0 0 1mm}.datasheet-page__footer{position:relative;margin-top:8mm;padding-top:3mm;border-top:1px solid #ccc;text-align:center;font-size:8.5pt;color:#777}.datasheet-page__footer p{margin:0}@media(max-width:600px){.datasheet-modal-backdrop{padding:0;align-items:stretch}.datasheet-modal{max-width:100%;max-height:100vh;height:100vh;border-radius:0;border:none}.datasheet-modal__body{padding:8px}.datasheet-page{width:100%;min-height:auto;padding:12mm 8mm 16mm;font-size:10pt;box-shadow:none}.datasheet-page__header{flex-direction:column;gap:6px}.datasheet-page__meta{text-align:left}.datasheet-page__eck-grid{grid-template-columns:repeat(2,1fr)}}@media print{@page{size:A4;margin:0}html,body{background:#fff!important;margin:0!important;padding:0!important}body *{visibility:hidden}.datasheet-page,.datasheet-page *{visibility:visible}.datasheet-page{position:absolute;top:0;left:0;margin:0;box-shadow:none!important;width:210mm;min-height:297mm}}.recipe-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}@media(max-width:900px){.recipe-layout{grid-template-columns:1fr}}.recipe-list-pane{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);overflow:hidden}.recipe-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-line-light);gap:12px}.recipe-list-title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:18px;margin:0;color:var(--color-ink)}.recipe-list-empty{padding:32px 20px;text-align:center;color:var(--color-ink-faded);font-style:italic}.recipe-upload{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;margin:0 0 12px;background-color:#9b1c100a;border:1px dashed rgba(155,28,16,.25);border-radius:var(--radius-md)}.recipe-upload__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recipe-upload__hint{flex:1 1 100%;font-size:11px;color:var(--color-ink-medium);font-family:var(--font-mono);margin-top:4px}.recipe-list{list-style:none;margin:0;padding:0;max-height:calc(100vh - 280px);min-height:240px;overflow-y:auto}.recipe-list__item{border-bottom:1px solid var(--color-line-light)}.recipe-list__item:last-child{border-bottom:none}.recipe-list__btn{display:block;width:100%;padding:12px 20px;background:transparent;border:none;text-align:left;cursor:pointer;border-left:3px solid transparent;transition:all .1s ease}.recipe-list__btn:hover{background-color:var(--color-paper-shade)}.recipe-list__item--active .recipe-list__btn{background-color:var(--color-paper-shade);border-left-color:var(--color-accent-red)}.recipe-list__name{display:block;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--color-ink);margin-bottom:2px}.recipe-list__meta{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-medium)}.recipe-editor-pane{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px 28px}.recipe-editor-placeholder{text-align:center;padding:64px 24px;color:var(--color-ink-faded);font-style:italic}.recipe-editor__header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.recipe-editor__name-input{flex:1;font-family:var(--font-display);font-style:italic;font-weight:600;font-size:24px;color:var(--color-ink);background:transparent;border:none;border-bottom:1px dashed transparent;padding:4px 0;outline:none;transition:border-color .15s ease}.recipe-editor__name-input:hover,.recipe-editor__name-input:focus{border-bottom-color:var(--color-line-dark)}.recipe-editor__name-input::placeholder{color:var(--color-ink-faded);font-style:italic}.recipe-editor__actions{display:flex;gap:6px;flex-shrink:0}.recipe-editor__description{width:100%;font-family:var(--font-body);font-size:13px;font-style:italic;color:var(--color-ink-medium);background:transparent;border:1px dashed var(--color-line-light);border-radius:var(--radius-md);padding:6px 10px;margin-bottom:16px;resize:vertical;outline:none}.recipe-editor__description:focus{border-color:var(--color-accent-gold);border-style:solid}.recipe-editor__params{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px;background-color:var(--color-bg);border-radius:var(--radius-md);margin-bottom:24px}@media(max-width:600px){.recipe-editor__params{grid-template-columns:1fr}}.recipe-param{display:flex;flex-direction:column}.recipe-param__label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:4px}.recipe-param__input{padding:6px 10px;font-family:var(--font-mono);font-size:14px;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);outline:none;text-align:right;font-variant-numeric:tabular-nums}.recipe-param__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.recipe-section-title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-line-dark);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.recipe-section-title--small{font-size:11px;margin-top:16px;margin-bottom:8px}.recipe-section-meta{font-family:var(--font-mono);font-weight:400;font-size:11px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded)}.ingredients-section{margin-bottom:24px}.ingredients-empty{font-style:italic;color:var(--color-ink-faded);padding:12px 0;margin:0}.ingredients-table{width:100%;border-collapse:collapse;margin-bottom:12px}.ingredients-table th{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);text-align:left;padding:6px 0;border-bottom:1px solid var(--color-line-light)}.ingredients-table__amount{text-align:right;width:130px}.ingredients-table__quid{width:110px;text-align:center}.ingredients-table__action{width:32px}.quid-toggle{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:4px 8px;border-radius:12px;border:1px solid var(--color-line-light);background-color:transparent;color:var(--color-ink-faded);cursor:pointer;white-space:nowrap;transition:all .1s ease;letter-spacing:.02em}.quid-toggle:hover{border-color:var(--color-line-dark)}.quid-toggle--forced{background-color:var(--color-accent-red);border-color:var(--color-accent-red);color:var(--color-paper);font-weight:600}.quid-toggle--forced:hover{background-color:#7d1e10;border-color:#7d1e10}.quid-toggle--excluded{background-color:#2f4a3314;border-color:var(--color-accent-green);color:var(--color-accent-green);text-decoration:line-through}.ingredients-row td{padding:8px 0;border-bottom:1px solid var(--color-line-light);vertical-align:middle}.ingredients-row__main{font-size:14px;color:var(--color-ink);display:flex;align-items:baseline;gap:4px}.ingredients-row__name{font-weight:500}.ingredients-row__source-marker{display:inline-block;width:6px;height:6px;margin-right:4px;font-size:0;color:transparent;background-color:var(--color-accent-red);border-radius:50%}.ingredients-row__sub{display:flex;gap:8px;font-size:11px;margin-top:2px}.ingredients-row__category{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-green)}.ingredients-row__code{font-family:var(--font-mono);font-size:10px;color:var(--color-accent-gold)}.ingredients-row__amount-input{width:80px;padding:4px 8px;font-family:var(--font-mono);font-size:13px;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);outline:none;text-align:right;font-variant-numeric:tabular-nums}.ingredients-row__amount-input:focus{border-color:var(--color-accent-gold)}.ingredients-row__unit{margin-left:4px;font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded)}.ingredients-row__remove{background:transparent;border:none;width:28px;height:28px;border-radius:var(--radius-sm);font-size:18px;color:var(--color-ink-faded);cursor:pointer;transition:all .1s ease}.ingredients-row__remove:hover{background-color:#9c2a1a14;color:var(--color-accent-red)}.ingredients-row--missing td{background-color:#9c2a1a0a;color:var(--color-accent-red);font-style:italic}.ingredients-row__id{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-faded)}.ingredients-row__missing-amount{color:var(--color-ink-faded)}.ingredients-add{margin-top:12px}.calc-warnings{background-color:#b88a2e14;border-left:3px solid var(--color-accent-gold);padding:10px 14px;margin:16px 0;border-radius:var(--radius-sm);font-size:13px;color:var(--color-ink)}.calc-warnings p{margin:4px 0}.recipe-results{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-line-dark)}.nutri-score{background-color:var(--color-bg);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px;text-align:center}.nutri-score__label{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:8px}.nutri-score__scale{display:inline-flex;gap:4px;margin-bottom:8px}.nutri-score__letter{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:18px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-paper);opacity:.32;transition:opacity .15s ease,transform .15s ease}.nutri-score__letter--a{background-color:#008040}.nutri-score__letter--b{background-color:#75b22b}.nutri-score__letter--c{background-color:#fc0;color:var(--color-ink)}.nutri-score__letter--d{background-color:#ff8000}.nutri-score__letter--e{background-color:#c00d0d}.nutri-score__letter--active{opacity:1;transform:scale(1.18);box-shadow:0 2px 8px #1f1b162e}.nutri-score__breakdown{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-medium)}.nutri-score__num{color:var(--color-ink);font-weight:500}.nutri-score__category-row{margin:4px 0 10px}.nutri-score__category-label{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded);display:inline-flex;align-items:center;gap:8px}.nutri-score__category-select{padding:4px 8px;font-family:var(--font-body);font-size:12px;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);outline:none;cursor:pointer}.nutri-score__category-select:focus{border-color:var(--color-accent-gold)}.nutri-score__warnings{margin-top:8px;padding:6px 10px;font-size:11px;font-style:italic;color:var(--color-ink-medium);background-color:#b88a2e0f;border-left:2px solid var(--color-accent-gold);border-radius:var(--radius-sm);text-align:left}.nutri-score__warnings p{margin:2px 0}.lmiv-section{margin-bottom:24px;padding:16px 20px;background-color:var(--color-bg);border-left:3px solid var(--color-accent-gold);border-radius:var(--radius-sm)}.lmiv-ingredients{list-style:none;margin:8px 0 0;padding:0;counter-reset:lmiv-counter}.lmiv-ingredients__item{counter-increment:lmiv-counter;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed var(--color-line-light);font-size:13px}.lmiv-ingredients__item:last-child{border-bottom:none}.lmiv-ingredients__item:before{content:counter(lmiv-counter) ".";font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded);width:20px;flex-shrink:0}.lmiv-ingredients__name{flex:1;color:var(--color-ink)}.lmiv-ingredients__name--bold{font-weight:700}.lmiv-ingredients__percent{font-family:var(--font-mono);font-size:12px;color:var(--color-ink-medium);font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;align-items:center;gap:8px}.lmiv-ingredients__quid{font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--color-accent-gold);background-color:#b88a2e1f;padding:1px 6px;border-radius:3px;cursor:help}.lmiv-allergens{margin-top:12px;padding-top:10px;border-top:1px solid var(--color-line-dark);font-size:13px;color:var(--color-ink)}.lmiv-allergens__label{font-weight:600;margin-right:6px}.lmiv-allergens__list strong{font-weight:700}.lmiv-disclaimer{font-size:10px;font-style:italic;color:var(--color-ink-faded);margin:8px 0 0;line-height:1.4}.nutrition-table-wrapper{margin-top:16px}.nutrition-table{width:100%;border-collapse:collapse;font-size:14px}.nutrition-table thead th{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);text-align:right;padding:6px 0 8px;border-bottom:1px solid var(--color-line-dark)}.nutrition-table thead th:first-child{text-align:left}.nutrition-table__col{width:130px}.nutrition-table__sub{display:block;font-size:9px;color:var(--color-ink-faded);text-transform:none;letter-spacing:0;font-weight:400}.nutrition-row td{padding:6px 0;border-bottom:1px solid var(--color-line-light)}.nutrition-row:last-child td{border-bottom:none}.nutrition-row__label{color:var(--color-ink)}.nutrition-row__value{font-family:var(--font-mono);font-weight:500;text-align:right;color:var(--color-ink);white-space:nowrap;font-variant-numeric:tabular-nums}.nutrition-row__unit{margin-left:4px;font-size:11px;color:var(--color-ink-faded)}.nutrition-row__nrv{font-family:var(--font-mono);font-size:12px;font-weight:500;text-align:right;color:var(--color-ink-medium);white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:8px;width:70px}.nutrition-table--with-nrv .nutrition-row__label{width:38%}.recipe-section-sub{font-weight:400;font-size:13px;color:var(--color-ink-faded);font-family:var(--font-mono);margin-left:8px}.nutrition-row--sub .nutrition-row__label{padding-left:16px;font-style:italic;color:var(--color-ink-medium);font-size:13px}.nutrition-row--sub .nutrition-row__value{font-size:13px;color:var(--color-ink-medium)}.nutrition-row--highlight .nutrition-row__label,.nutrition-row--highlight .nutrition-row__value{color:var(--color-accent-red);font-weight:600}.costing-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-line-dark)}.costing-prices{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:13px}.costing-prices th{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);text-align:left;padding:6px 8px 8px;border-bottom:1px solid var(--color-line-dark)}.costing-prices__menge,.costing-prices__price,.costing-prices__total{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.costing-prices__menge{width:100px}.costing-prices__price{width:200px}.costing-prices__total{width:100px;text-align:right}.costing-prices__row td{padding:6px 8px;border-bottom:1px solid var(--color-line-light);vertical-align:middle}.costing-prices__row--missing td{background-color:#b88a2e0a}.costing-prices__name{font-family:var(--font-body)}.costing-prices__price-input{width:90px;padding:4px 8px;font-family:var(--font-mono);font-size:13px;text-align:right;border:1px solid var(--color-line-light);border-radius:var(--radius-sm);background-color:var(--color-paper);outline:none;font-variant-numeric:tabular-nums}.costing-prices__price-input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.price-source-badge{margin-left:6px;padding:2px 6px;border-radius:10px;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.05em;border:1px solid transparent;cursor:pointer;white-space:nowrap;vertical-align:middle;text-transform:uppercase}.price-source-badge--default{background-color:var(--color-bg);color:var(--color-ink-medium);border-color:var(--color-line-light)}.price-source-badge--default:hover{border-color:var(--color-accent-gold);color:var(--color-accent-gold)}.price-source-badge--override{background-color:#9c2a1a1a;color:var(--color-accent-red);border-color:var(--color-accent-red)}.price-source-badge--override:hover{background-color:#9c2a1a2e}.price-source-badge--none{background-color:transparent;color:var(--color-ink-faded);border-color:var(--color-line-light);cursor:default}.costing-prices tfoot td{padding:8px;border-top:1px solid var(--color-line-dark);font-size:13px}.costing-params{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px;background-color:var(--color-bg);border-radius:var(--radius-md);margin-bottom:16px}@media(max-width:800px){.costing-params{grid-template-columns:repeat(2,1fr)}}.costing-param{display:flex;flex-direction:column}.costing-param__label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:4px}.costing-param__input{padding:6px 10px;font-family:var(--font-mono);font-size:13px;text-align:right;background-color:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-sm);outline:none;font-variant-numeric:tabular-nums}.costing-param__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 2px #b88a2e1f}.costing-summary{width:100%;border-collapse:collapse;font-size:13px}.costing-summary td{padding:5px 8px;border-bottom:1px solid var(--color-line-light)}.costing-summary__num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;width:110px}.costing-summary__small{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-faded);width:80px}.costing-summary__total-row td{border-bottom:1px solid var(--color-line-dark);border-top:1px solid var(--color-line-light);padding-top:8px;padding-bottom:8px}.costing-summary__per td{font-style:italic;color:var(--color-ink-medium)}.costing-summary__separator td{height:8px;border-bottom:none}.costing-summary__highlight td{font-size:15px;background-color:#9c2a1a0f;border-bottom:none;border-top:1px solid var(--color-accent-red);color:var(--color-accent-red);padding-top:10px;padding-bottom:10px}.costing-summary__highlight strong{color:var(--color-accent-red)}.costing-warnings{margin-top:12px;padding:8px 12px;background-color:#b88a2e14;border-left:3px solid var(--color-accent-gold);border-radius:var(--radius-sm);font-size:12px}.costing-warnings p{margin:2px 0;color:var(--color-ink)}@media(max-width:600px){.costing-params{grid-template-columns:1fr;padding:12px;gap:10px}.costing-param__input,.recipe-param__input{font-size:16px;padding:8px 10px;min-height:40px}.recipe-editor__params{padding:12px;gap:10px}.ingredients-table,.costing-prices,.costing-summary{font-size:13px}.recipe-section-title{font-size:12px}.recipe-list-pane,.recipe-editor-pane{border-radius:var(--radius-md)}.add-ingredient-row{padding:12px}}.nutrition-table-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.nutrition-table-header .recipe-section-title{margin-bottom:0;border-bottom:none;padding-bottom:0}.nutrition-view-toggle{display:inline-flex;background-color:var(--color-bg);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);padding:2px}.nutrition-view-toggle__btn{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-medium);background:transparent;border:none;padding:4px 10px;border-radius:3px;cursor:pointer;transition:all .1s ease}.nutrition-view-toggle__btn:hover{color:var(--color-ink)}.nutrition-view-toggle__btn--active{background-color:var(--color-accent-red);color:var(--color-paper);font-weight:600}.recipe-param__alias{font-family:var(--font-body);font-weight:400;font-size:9px;font-style:italic;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:2px}.recipe-param__info-btn{background:none;border:1px solid var(--color-line-light);border-radius:50%;width:16px;height:16px;font-size:10px;line-height:14px;color:var(--color-ink-medium);cursor:pointer;margin-left:4px;padding:0;vertical-align:middle;transition:all .1s ease}.recipe-param__info-btn:hover{border-color:var(--color-accent-gold);color:var(--color-accent-gold)}.loss-reference{margin:12px 16px 16px;padding:14px;background-color:var(--color-paper-shade);border:1px solid var(--color-line-light);border-left:3px solid var(--color-accent-gold);border-radius:var(--radius-md);font-size:13px}.loss-reference__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.loss-reference__close{background:transparent;border:none;font-size:18px;line-height:1;color:var(--color-ink-medium);cursor:pointer;padding:2px 8px;border-radius:3px}.loss-reference__close:hover{background-color:var(--color-bg);color:var(--color-ink)}.loss-reference__intro,.loss-reference__note{font-size:12px;font-style:italic;color:var(--color-ink-medium);line-height:1.45;margin:4px 0}.loss-reference__note{margin-top:10px}.loss-reference__table{width:100%;border-collapse:collapse;margin:6px 0;font-size:12px}.loss-reference__table th{text-align:left;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-faded);padding:4px 6px;border-bottom:1px solid var(--color-line-light)}.loss-reference__table td{padding:4px 6px;border-bottom:1px solid var(--color-line-light)}.loss-reference__table tr:last-child td{border-bottom:none}.loss-reference__range{font-family:var(--font-mono);font-weight:500;color:var(--color-accent-red);white-space:nowrap}.loss-reference__examples{font-style:italic;color:var(--color-ink-medium)}@media(max-width:600px){.loss-reference{margin:10px 0;font-size:12px}.loss-reference__table{font-size:11px}.nutrition-view-toggle__btn{padding:6px 12px;min-height:32px}}.meal-plan-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}@media(max-width:1100px){.meal-plan-layout{grid-template-columns:1fr}}.meal-plan-list-pane{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);overflow:hidden}.meal-plan-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--color-line-light);gap:12px}.meal-plan-list-title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:18px;margin:0;color:var(--color-ink)}.meal-plan-list-empty{padding:32px 18px;text-align:center;color:var(--color-ink-faded);font-style:italic}.meal-plan-list{list-style:none;margin:0;padding:0;max-height:calc(100vh - 280px);min-height:240px;overflow-y:auto}.meal-plan-list__item{border-bottom:1px solid var(--color-line-light)}.meal-plan-list__item:last-child{border-bottom:none}.meal-plan-list__btn{display:block;width:100%;padding:12px 18px;background:transparent;border:none;text-align:left;cursor:pointer;border-left:3px solid transparent;transition:all .1s ease}.meal-plan-list__btn:hover{background-color:var(--color-paper-shade)}.meal-plan-list__item--active .meal-plan-list__btn{background-color:var(--color-paper-shade);border-left-color:var(--color-accent-red)}.meal-plan-list__name{display:block;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--color-ink);margin-bottom:2px}.meal-plan-list__meta{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-medium)}.meal-plan-main{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px 28px}.meal-plan-placeholder{text-align:center;padding:64px 24px;color:var(--color-ink-faded);font-style:italic}.plan-editor__header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.plan-editor__name-input{flex:1;font-family:var(--font-display);font-style:italic;font-weight:600;font-size:22px;color:var(--color-ink);background:transparent;border:none;border-bottom:1px dashed transparent;padding:4px 0;outline:none;transition:border-color .15s ease}.plan-editor__name-input:hover,.plan-editor__name-input:focus{border-bottom-color:var(--color-line-dark)}.plan-editor__actions{display:flex;gap:6px;flex-shrink:0}.plan-editor__no-recipes{background-color:#b88a2e1a;border-left:3px solid var(--color-accent-gold);padding:12px 16px;margin-bottom:16px;font-size:13px;color:var(--color-ink);border-radius:var(--radius-sm)}.plan-editor__grid-and-list{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}@media(max-width:1400px){.plan-editor__grid-and-list{grid-template-columns:1fr}}.week-grid{display:grid;grid-template-columns:80px repeat(7,1fr);gap:4px;background-color:var(--color-line-light);padding:4px;border-radius:var(--radius-md)}.week-grid__corner{background-color:var(--color-bg);border-radius:var(--radius-sm)}.week-grid__day-header{background-color:var(--color-bg);padding:8px 4px;text-align:center;border-radius:var(--radius-sm)}.week-grid__day-short{font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-gold)}.week-grid__day-long{font-family:var(--font-body);font-size:11px;color:var(--color-ink-medium);margin-top:2px}.week-grid__meal-label{background-color:var(--color-bg);padding:8px 6px;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-green);display:flex;align-items:center;border-radius:var(--radius-sm)}.slot-cell{background-color:var(--color-paper);padding:6px;display:flex;flex-direction:column;gap:4px;min-height:60px;border-radius:var(--radius-sm)}.slot-cell--filled{background-color:var(--color-bg);border-left:2px solid var(--color-accent-red);padding-left:4px}.slot-cell__select{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:100%;padding:5px 22px 5px 8px;font-family:var(--font-body);font-size:12px;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);outline:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' stroke='%23b88a2e' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 6px center;background-size:10px 10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot-cell__select:hover,.slot-cell__select:focus{border-color:var(--color-accent-gold)}.slot-cell__bottom{display:flex;align-items:center;gap:4px}.slot-cell__portions{width:40px;padding:2px 4px;font-family:var(--font-mono);font-size:11px;text-align:right;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);outline:none;font-variant-numeric:tabular-nums}.slot-cell__portion-label{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-faded)}.slot-cell__remove{margin-left:auto;background:transparent;border:none;width:20px;height:20px;font-size:14px;color:var(--color-ink-faded);cursor:pointer;border-radius:50%;transition:all .1s ease}.slot-cell__remove:hover{background-color:#9c2a1a1a;color:var(--color-accent-red)}.shopping-list{background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);padding:16px 18px;position:sticky;top:16px;max-height:calc(100vh - 80px);overflow-y:auto}.shopping-list__title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-line-dark)}.shopping-list__sub{font-family:var(--font-mono);font-weight:400;font-size:11px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:6px}.shopping-list__empty{font-style:italic;color:var(--color-ink-faded);font-size:13px;margin:0}.shopping-list__group{margin-bottom:12px}.shopping-list__group-title{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-green);margin:0 0 4px;padding-bottom:2px;border-bottom:1px solid var(--color-line-light)}.shopping-list__group-cost{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded);font-weight:500;letter-spacing:0;text-transform:none}.shopping-list__items{list-style:none;margin:0;padding:0}.shopping-list__item{display:grid;grid-template-columns:1fr auto 70px;gap:8px;padding:4px 0;border-bottom:1px dashed var(--color-line-light);font-size:12px;align-items:baseline}.shopping-list__item:last-child{border-bottom:none}.shopping-list__item-name{color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-list__item-amount{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.shopping-list__item-cost{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-medium);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.shopping-list__total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:10px;border-top:2px solid var(--color-ink);font-family:var(--font-body);font-size:14px;color:var(--color-ink)}.shopping-list__total-cost{font-family:var(--font-mono);font-weight:600;font-size:15px;color:var(--color-accent-red);font-variant-numeric:tabular-nums}.shopping-list__warnings{margin-top:10px;padding:6px 10px;font-size:11px;font-style:italic;background-color:#b88a2e14;border-left:2px solid var(--color-accent-gold);border-radius:var(--radius-sm);color:var(--color-ink-medium)}.shopping-list__warnings p{margin:2px 0}@media(max-width:600px){.week-grid{grid-template-columns:60px repeat(7,minmax(80px,1fr));overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:100%}.week-grid__day-header{padding:6px 2px}.week-grid__day-short{font-size:10px}.week-grid__day-num{font-size:13px}.plan-editor__grid-and-list{gap:14px}.slot-cell__portions{min-height:36px;font-size:14px}}.auth-view{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background-color:var(--color-bg)}.auth-view__card{width:100%;max-width:420px;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:32px 28px}.auth-view__title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:36px;line-height:1;margin:0 0 6px;color:var(--color-ink);letter-spacing:-.01em;text-align:center}.auth-view__tagline{font-family:var(--font-body);font-size:13px;color:var(--color-ink-medium);text-align:center;margin:0 0 24px}.auth-view__warning{background-color:#b88a2e1a;border-left:3px solid var(--color-accent-gold);padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;color:var(--color-ink);margin-bottom:20px;line-height:1.45}.auth-view__warning strong{color:var(--color-accent-gold)}.auth-view__warning code{font-family:var(--font-mono);font-size:12px;background-color:#1f1b160f;padding:1px 4px;border-radius:2px}.auth-view__notice{background-color:#2264c814;border-left:3px solid #1f4f96;padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;color:var(--color-ink);margin-bottom:20px;line-height:1.45}.auth-view__notice strong{color:#1f4f96}.auth-view__tabs{display:flex;background-color:var(--color-bg);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:3px;margin-bottom:18px}.auth-view__tab{flex:1;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--color-ink-medium);background:transparent;border:none;padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.auth-view__tab:hover{color:var(--color-ink)}.auth-view__tab--active{background-color:var(--color-accent-red);color:var(--color-paper);font-weight:600}.auth-view__form{display:flex;flex-direction:column;gap:14px}.auth-view__field{display:flex;flex-direction:column}.auth-view__label{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);margin-bottom:4px}.auth-view__hint{font-family:var(--font-body);font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);font-style:italic}.auth-view__input{padding:10px 12px;font-family:var(--font-body);font-size:14px;color:var(--color-ink);background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.auth-view__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #b88a2e1f}.auth-view__error{background-color:#9c2a1a14;border-left:3px solid var(--color-accent-red);padding:8px 12px;margin:0;color:var(--color-accent-red);font-size:13px;border-radius:var(--radius-sm)}.auth-view__success{background-color:#2f4a3314;border-left:3px solid var(--color-accent-green);padding:8px 12px;margin:0;color:var(--color-accent-green);font-size:13px;border-radius:var(--radius-sm)}.auth-view__submit{margin-top:6px;width:100%;padding:12px 20px;font-size:15px;font-weight:600}.auth-view__submit:disabled{opacity:.6;cursor:not-allowed}.auth-view__local-link{display:block;width:100%;margin:18px 0 0;padding:8px;background:transparent;border:none;color:var(--color-ink-faded);font-family:var(--font-body);font-size:12px;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.auth-view__local-link:hover{color:var(--color-ink)}@media(max-width:600px){.auth-view{padding:32px 12px 16px;align-items:flex-start}.auth-view__card{padding:24px 20px;border-radius:var(--radius-md)}.auth-view__title{font-size:30px}.auth-view__input{font-size:16px;min-height:44px}.auth-view__submit{min-height:48px;font-size:16px}.auth-view__tab{min-height:40px}}.ws-switcher{position:relative}.ws-switcher__trigger{display:flex;align-items:center;gap:6px;padding:6px 10px;background:transparent;border:1px solid var(--color-line-light);border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease}.ws-switcher__trigger:hover{border-color:var(--color-line-dark)}.ws-switcher__icon{font-size:11px;color:var(--color-ink-medium)}.ws-switcher__name{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-switcher__role{font-size:11px;font-family:var(--font-mono);color:var(--color-ink-faded);text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;background:var(--color-paper-shade);border-radius:3px}.ws-switcher__menu{position:absolute;top:calc(100% + 4px);right:0;min-width:240px;max-width:320px;background:var(--color-paper);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:6px 0;z-index:50}.ws-switcher__section-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-faded);padding:6px 12px 4px;font-family:var(--font-mono)}.ws-switcher__list{list-style:none;margin:0;padding:0}.ws-switcher__item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:transparent;border:none;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:13px;color:var(--color-ink)}.ws-switcher__item:hover{background:var(--color-paper-shade)}.ws-switcher__item--active{background:#9b1c100f;font-weight:600}.ws-switcher__item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-switcher__item-role{font-size:11px;color:var(--color-ink-faded);font-family:var(--font-mono);text-transform:uppercase}.ws-switcher__divider{height:1px;background:var(--color-line-light);margin:4px 0}.ws-switcher__action{width:100%;display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:none;text-align:left;cursor:pointer;font-family:var(--font-body);font-size:13px;color:var(--color-ink-medium)}.ws-switcher__action:hover{background:var(--color-paper-shade);color:var(--color-ink)}.members-modal{max-width:720px}.members-modal__ws-name{display:flex;align-items:center;gap:14px;font-size:16px}.members-modal__list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.members-modal__row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-sm);flex-wrap:wrap}.members-modal__row-info{display:flex;align-items:center;gap:8px;flex:1 1 200px}.members-modal__row-email{font-size:14px;color:var(--color-ink)}.members-modal__row-you{font-size:12px;color:var(--color-ink-faded);font-style:italic}.members-modal__row-role{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:3px;background:var(--color-paper-shade);color:var(--color-ink-medium)}.members-modal__row-role--owner{background:#9b1c101f;color:#9b1c10}.members-modal__row-role--admin{background:#2264c81a;color:#1f4f96}.members-modal__row-role--viewer{background:#0000000d;color:var(--color-ink-medium)}.members-modal__row-actions{display:flex;gap:6px;align-items:center}.members-modal__role-select{font-size:12px;padding:3px 6px;border:1px solid var(--color-line-dark);border-radius:4px;background:var(--color-paper)}.members-modal__invite-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:8px}.members-modal__invite-form .form-field{flex:1 1 220px}.members-modal__hint{margin:8px 0 0;font-size:12px;color:var(--color-ink-medium);font-style:italic}.members-modal__copy-hint{margin:6px 0 0;font-size:12px;color:var(--color-accent-green, #228b22);font-weight:500}.app{max-width:1280px;margin:0 auto;padding:32px 24px 64px}.app__header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--color-line-dark)}.top-nav{display:inline-flex;background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:3px;box-shadow:var(--shadow-paper)}.top-nav__btn{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--color-ink-medium);background:transparent;border:none;padding:8px 18px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.top-nav__btn:hover{color:var(--color-ink)}.top-nav__btn--active{background-color:var(--color-accent-red);color:var(--color-paper);font-weight:600}.app__header-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.app__notice{margin:12px 24px;padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}.app__notice--success{background:#228b221a;border-left:3px solid #228b22;color:#1a5e1a}.app__notice--error{background:#9b1c101a;border-left:3px solid #9b1c10;color:#7d1a0d}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);color:var(--color-ink-faded);font-style:italic}.auth-indicator{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px}.auth-indicator--local{padding:6px 10px;background-color:var(--color-bg);border:1px solid var(--color-line-light);border-radius:var(--radius-md);color:var(--color-ink-faded);font-weight:500;cursor:help;text-transform:uppercase;letter-spacing:.06em}.auth-indicator__email{color:var(--color-ink);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.auth-indicator__hint{color:var(--color-ink-faded);font-style:italic;text-transform:uppercase;letter-spacing:.06em}.auth-indicator--logged-in,.auth-indicator--local-forced{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:4px 6px 4px 12px}.brand__title{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:56px;line-height:1;margin:0 0 8px;color:var(--color-ink);letter-spacing:-.01em}.brand__tagline{font-family:var(--font-body);font-size:15px;color:var(--color-ink-medium);margin:0;max-width:520px}.brand__meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--color-ink-medium);text-align:right}.brand__meta-item em{font-family:var(--font-mono);font-style:normal;font-size:12px;color:var(--color-accent-gold)}.brand__meta-num{font-family:var(--font-mono);font-weight:600;font-size:14px;color:var(--color-ink)}.layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media(max-width:900px){.layout{grid-template-columns:1fr}}.search-pane{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);overflow:hidden}.search-field{padding:24px 24px 16px;border-bottom:1px solid var(--color-line-light)}.search-field__label{display:block;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-faded);margin-bottom:8px}.search-field__input{width:100%;padding:12px 14px;font-family:var(--font-body);font-size:16px;color:var(--color-ink);background-color:var(--color-bg);border:1px solid var(--color-line-dark);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.search-field__input::placeholder{color:var(--color-ink-faded)}.search-field__input:focus{border-color:var(--color-accent-gold);box-shadow:0 0 0 3px #b88a2e1f}.search-field__count{margin:10px 0 0;font-size:12px;color:var(--color-ink-medium);font-family:var(--font-mono)}.cloud-status{margin:8px 0 0;padding:6px 10px;border-radius:4px;font-size:12px;font-family:var(--font-mono)}.cloud-status--loading{background:#0000000a;color:var(--color-ink-medium);font-style:italic}.cloud-status--error{background:#9b1c3114;color:#9b1c31;border:1px solid rgba(155,28,49,.2)}.search-field__controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}.source-filter{display:inline-flex;background-color:var(--color-bg);border:1px solid var(--color-line-light);border-radius:var(--radius-md);padding:2px}.source-filter__btn{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-medium);background:transparent;border:none;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease}.source-filter__btn:hover{color:var(--color-ink)}.source-filter__btn--active{background-color:var(--color-paper);color:var(--color-ink);box-shadow:0 1px 2px #1f1b1614}.btn{font-family:var(--font-body);font-size:14px;font-weight:500;padding:10px 20px;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:all .15s ease}.btn--small{padding:6px 14px;font-size:13px}.btn--primary{background-color:var(--color-accent-red);color:var(--color-paper);border-color:var(--color-accent-red)}.btn--primary:hover{background-color:#7d1e10;border-color:#7d1e10}.btn--ghost{background-color:transparent;color:var(--color-ink-medium);border-color:var(--color-line-dark)}.btn--ghost:hover{background-color:var(--color-paper-shade);color:var(--color-ink)}.btn--danger{color:var(--color-accent-red)}.btn--danger:hover{background-color:#9c2a1a14;color:var(--color-accent-red);border-color:var(--color-accent-red)}.results{list-style:none;margin:0;padding:0;max-height:calc(100vh - 320px);min-height:400px;overflow-y:auto}.results__item{border-bottom:1px solid var(--color-line-light)}.results__item:last-child{border-bottom:none}.results__btn{display:block;width:100%;padding:14px 24px;background:transparent;border:none;text-align:left;cursor:pointer;transition:background-color .1s ease;border-left:3px solid transparent}.results__btn:hover{background-color:var(--color-paper-shade)}.results__item--active .results__btn{background-color:var(--color-paper-shade);border-left-color:var(--color-accent-red)}.results__row1{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}.results__name{font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--color-ink);flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.results__name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.results__code{font-family:var(--font-mono);font-size:11px;color:var(--color-accent-gold);font-weight:500;flex-shrink:0}.results__row2{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--color-ink-medium)}.results__category{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-green);white-space:nowrap}.results__category:after{content:"·";margin-left:12px;color:var(--color-line-dark)}.results__name-en{font-style:italic;color:var(--color-ink-faded);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results__empty{padding:32px 24px;text-align:center;color:var(--color-ink-medium);font-style:italic}.detail-pane{background-color:var(--color-paper);border:1px solid var(--color-line-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:32px;position:sticky;top:24px}.detail__placeholder{text-align:center;padding:48px 24px;color:var(--color-ink-faded);font-style:italic}.detail__header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.detail__category{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent-green);margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail__custom-badge{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-red);background-color:#9c2a1a14;padding:2px 8px;border-radius:var(--radius-sm)}.detail__actions{display:flex;gap:6px;flex-shrink:0}.custom-meta{background-color:var(--color-bg);border-left:3px solid var(--color-accent-gold);padding:12px 16px;margin:0 0 24px;border-radius:var(--radius-sm)}.custom-meta__row{display:flex;align-items:baseline;gap:12px;padding:4px 0;font-size:13px}.custom-meta__row:not(:last-child){border-bottom:1px dashed var(--color-line-light)}.custom-meta__label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded);flex-shrink:0;width:90px}.custom-meta__value{color:var(--color-ink);flex:1}.custom-meta__value--mono{font-family:var(--font-mono);font-size:12px}.custom-meta__value--note{font-style:italic;color:var(--color-ink-medium)}.detail__name{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:28px;line-height:1.15;margin:0 0 6px;color:var(--color-ink)}.detail__name-en{font-family:var(--font-body);font-size:14px;font-style:italic;color:var(--color-ink-medium);margin:0 0 12px}.detail__code{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-faded);margin:0 0 24px;padding-bottom:16px;border-bottom:1px solid var(--color-line-light)}.detail__code code{font-family:var(--font-mono);font-weight:500;color:var(--color-accent-gold);background:transparent;padding:0}.detail__code em{font-style:normal;color:var(--color-ink-medium)}.nutrients-block{margin-bottom:24px}.nutrients-block:last-child{margin-bottom:0}.nutrients-block__title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--color-line-dark)}.nutrients-block__sub{font-family:var(--font-mono);font-weight:400;font-size:11px;text-transform:none;letter-spacing:0;color:var(--color-ink-faded);margin-left:8px}.nutrients{width:100%;border-collapse:collapse;font-size:14px}.nutrient td{padding:6px 0;border-bottom:1px solid var(--color-line-light)}.nutrient:last-child td{border-bottom:none}.nutrient__label{color:var(--color-ink);width:60%}.nutrient__value{font-family:var(--font-mono);font-weight:500;text-align:right;color:var(--color-ink);padding-right:6px;white-space:nowrap;font-variant-numeric:tabular-nums}.nutrient__unit{font-family:var(--font-mono);font-size:12px;color:var(--color-ink-faded);width:40px}.nutrient__nrv{font-family:var(--font-mono);font-size:12px;font-weight:500;text-align:right;color:var(--color-ink-medium);width:70px;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:12px}.nutrients--with-nrv .nutrient__label{width:45%}.nutrient--sub .nutrient__label{padding-left:16px;font-style:italic;color:var(--color-ink-medium);font-size:13px}.nutrient--sub .nutrient__value{font-size:13px;color:var(--color-ink-medium)}.nutrient--highlight .nutrient__label,.nutrient--highlight .nutrient__value{color:var(--color-accent-red);font-weight:600}@media(max-width:600px){.app{padding:16px 12px 48px}.app__header{gap:14px;padding-bottom:14px;margin-bottom:18px}.brand__title{font-size:36px}.brand__tagline{font-size:13px;line-height:1.4}.app__header-right{width:100%;gap:10px;justify-content:space-between}.top-nav{width:100%;flex:1 1 100%}.top-nav__btn{flex:1;min-height:44px;font-size:13px;padding:8px 10px}.auth-indicator__email{max-width:110px;font-size:11px}.btn{min-height:44px;padding:10px 16px}.btn--small{min-height:36px;padding:6px 12px}.search-field{padding:16px 14px 12px}.search-field__input{font-size:16px;min-height:44px}.search-field__controls{flex-wrap:wrap;gap:10px}.source-filter{width:100%}.source-filter__btn{flex:1;min-height:36px}.results{max-height:calc(100vh - 380px);min-height:280px}.results__btn{padding:12px 14px}.results__row1{gap:8px}.results__name{font-size:14px}.results__code{font-size:10px}.detail__name{font-size:22px;line-height:1.2}.detail__category{flex-wrap:wrap}.nutrients-block{overflow-x:auto;-webkit-overflow-scrolling:touch}.nutrient__label,.nutrient__value,.nutrient__nrv{font-size:13px}.app__notice{margin:10px 0;font-size:13px}}:root{--color-bg: #f4efe6;--color-paper: #fbf7ee;--color-paper-shade: #f0e9d8;--color-ink: #1f1b16;--color-ink-medium: #4a453e;--color-ink-faded: #8c8678;--color-line-light: #d9cfb9;--color-line-dark: #c2b79c;--color-accent-red: #9c2a1a;--color-accent-green: #2f4a33;--color-accent-gold: #b88a2e;--font-display: "Fraunces", "Times New Roman", serif;--font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--shadow-paper: 0 1px 2px rgba(31, 27, 22, .04), 0 4px 12px rgba(31, 27, 22, .04);--shadow-card: 0 2px 4px rgba(31, 27, 22, .06), 0 8px 24px rgba(31, 27, 22, .06)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--color-ink);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}button,input{font-family:inherit}
