:root{--colour-primary: #2e7d32;--colour-primary-hover: #66bb6a;--colour-mint: #ddf5e5;--colour-background: #f8fbf8;--colour-card-background: #ffffff;--colour-text-primary: #1c1c1c;--colour-text-secondary: #616161;--colour-border: #e4ece5;--colour-warning: #f4b400;--colour-indicator-healthier: #4caf50;--colour-indicator-moderation: #f4b400;--colour-indicator-concern: #d93025;--colour-high-concern: #d93025;--font-family-base: "Poppins", system-ui, sans-serif;--font-family-heading: "Fraunces", Georgia, serif;--font-size-page-title: 2.25rem;--font-size-section-heading: 1.5rem;--font-size-subheading: 1.125rem;--font-size-body: 1rem;--font-size-caption: .875rem;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 4rem;--spacing-page: 5rem;--radius-card: 18px;--radius-button: 12px;--radius-input: 12px;--radius-search: 16px;--radius-badge: 999px;--radius-md: 12px;--shadow-soft: 0 4px 12px rgba(0, 0, 0, .05);--transition-base: .18s ease;--max-content-width: 1040px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-body);color:var(--colour-text-primary);background-color:var(--colour-background);line-height:1.6}h1,h2,h3{margin:0 0 var(--spacing-sm);line-height:1.25;font-family:var(--font-family-heading);font-weight:600;color:var(--colour-text-primary)}h1{font-size:var(--font-size-page-title)}h2{font-size:var(--font-size-section-heading)}h3{font-size:var(--font-size-subheading)}.site-header{position:sticky;top:0;z-index:10;background-color:var(--colour-card-background);border-bottom:1px solid var(--colour-border);box-shadow:var(--shadow-soft);padding:var(--spacing-md)}.site-header__inner,.site-main,.site-footer__inner{max-width:var(--max-content-width);margin:0 auto;padding:0 var(--spacing-md)}.site-header__brand{font-family:var(--font-family-heading);color:var(--colour-primary);font-weight:700;font-size:1.5rem;letter-spacing:.01em;text-decoration:none}.site-nav{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-top:var(--spacing-xs)}.site-nav a{color:var(--colour-text-secondary);text-decoration:none;font-size:var(--font-size-caption);font-weight:500;transition:color var(--transition-base)}.site-nav a:hover,.site-nav a:focus{color:var(--colour-primary)}.site-main{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-page)}.site-footer{border-top:1px solid var(--colour-border);padding:var(--spacing-md) 0}.site-footer__inner{color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.card{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}.page-intro{color:var(--colour-text-secondary);max-width:60ch;margin-bottom:var(--spacing-lg)}.status-message{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-button);font-size:var(--font-size-caption)}.status-message--error{background-color:#fdecea;color:var(--colour-high-concern)}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--colour-border);border-top-color:var(--colour-primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:var(--spacing-xs)}@keyframes spin{to{transform:rotate(360deg)}}.search-bar__label{display:block;font-weight:600;margin-bottom:var(--spacing-xs)}.search-bar__controls{display:flex;flex-direction:column;gap:var(--spacing-xs)}.search-bar__input{flex:1;font-family:inherit;font-size:var(--font-size-body);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--colour-border);border-radius:var(--radius-search);background-color:var(--colour-card-background);color:var(--colour-text-primary);transition:border-color var(--transition-base)}.search-bar__input:focus{outline:2px solid var(--colour-primary);outline-offset:1px}.button{display:inline-block;font-family:inherit;font-size:var(--font-size-body);font-weight:600;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-button);border:1px solid transparent;text-decoration:none;text-align:center;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base),transform var(--transition-base)}.button--primary{background-color:var(--colour-primary);color:#fff;box-shadow:var(--shadow-soft)}.button--primary:hover,.button--primary:focus{background-color:var(--colour-primary-hover)}.button--primary:active{transform:translateY(1px)}.button--primary:disabled{background-color:var(--colour-border);color:var(--colour-text-secondary);box-shadow:none;cursor:not-allowed}.button--secondary{background-color:var(--colour-card-background);border-color:var(--colour-primary);color:var(--colour-primary);font-size:var(--font-size-caption);padding:var(--spacing-xs) var(--spacing-md)}.button--secondary:hover,.button--secondary:focus{background-color:var(--colour-mint)}.button--danger{background-color:var(--colour-high-concern);color:#fff}.button--small{font-size:var(--font-size-caption);padding:var(--spacing-xs) var(--spacing-md)}.results-count{color:var(--colour-text-secondary);font-size:var(--font-size-caption);margin-bottom:var(--spacing-md)}.product-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.product-card{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-xs);transition:transform var(--transition-base),box-shadow var(--transition-base)}.product-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0000000f}.product-card__name{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-subheading);font-weight:600}.product-card__brand,.product-card__category{margin:0;color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.product-card .button{margin-top:var(--spacing-sm)}.empty-state{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--spacing-lg);color:var(--colour-text-secondary)}.empty-state__title{margin:0 0 var(--spacing-xs);font-weight:600;font-size:var(--font-size-subheading);color:var(--colour-text-primary)}.empty-state .button{margin-top:var(--spacing-sm)}.health-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-badge);font-size:var(--font-size-caption);font-weight:600;color:var(--colour-text-primary);border:1px solid transparent}.health-badge__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.health-badge--healthier{background-color:#e8f7ea;border-color:#c9ebcd}.health-badge--healthier .health-badge__dot{background-color:var(--colour-indicator-healthier)}.health-badge--moderation{background-color:#fdf3d7;border-color:#f6e2a6}.health-badge--moderation .health-badge__dot{background-color:var(--colour-indicator-moderation)}.health-badge--concern{background-color:#fbe4e2;border-color:#f3c4bf}.health-badge--concern .health-badge__dot{background-color:var(--colour-indicator-concern)}.health-badge--unassessed{background-color:#eef1ef;border-color:var(--colour-border);color:var(--colour-text-secondary)}.health-badge--unassessed .health-badge__dot{background-color:var(--colour-text-secondary)}.concern-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.concern{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--colour-border)}.concern:last-child{padding-bottom:0;border-bottom:none}.concern__header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm)}.concern__title{font-weight:600}.concern__description{margin:var(--spacing-xs) 0 0;color:var(--colour-text-secondary)}.severity-tag{font-size:.75rem;font-weight:600;padding:2px var(--spacing-xs);border-radius:var(--radius-badge);text-transform:uppercase;letter-spacing:.03em}.severity-tag--low{background-color:#e8f7ea;color:#1b5e20}.severity-tag--moderate{background-color:#fdf3d7;color:#8a5a00}.severity-tag--high{background-color:#fbe4e2;color:#b71c1c}.alternatives{display:flex;flex-direction:column;gap:var(--spacing-lg)}.alternatives__heading{font-family:var(--font-family-base);font-size:var(--font-size-subheading);font-weight:600;margin-bottom:var(--spacing-sm)}.alternatives__none{margin:0;color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.alternative-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.alternative{padding:var(--spacing-md);border:1px solid var(--colour-border);border-radius:var(--radius-button);background-color:var(--colour-background)}.alternative__name{font-weight:600}.alternative__detail{margin:var(--spacing-xs) 0 0;color:var(--colour-text-secondary)}.alternative__benefit{margin:var(--spacing-xs) 0 0;color:var(--colour-primary);font-size:var(--font-size-caption)}.form-section{border:1px solid var(--colour-border);border-radius:var(--radius-card);padding:var(--spacing-lg);margin:0 0 var(--spacing-md)}.form-section legend{font-weight:600;font-size:var(--font-size-subheading);padding:0 var(--spacing-xs)}.form-field{display:block;margin-bottom:var(--spacing-md)}.form-field__label{display:block;font-weight:600;font-size:var(--font-size-caption);margin-bottom:var(--spacing-xs)}.form-field__hint{display:block;color:var(--colour-text-secondary);font-size:var(--font-size-caption);margin-top:var(--spacing-xs)}.form-field input,.form-field select,.form-field textarea{width:100%;font-family:inherit;font-size:var(--font-size-body);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--colour-border);border-radius:var(--radius-input);background-color:var(--colour-card-background);color:var(--colour-text-primary);transition:border-color var(--transition-base)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--colour-primary);outline-offset:1px}.form-row,.nutrition-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.repeatable-row{border:1px solid var(--colour-border);border-radius:var(--radius-button);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background-color:var(--colour-background)}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.form-errors__title{margin:0 0 var(--spacing-xs);font-weight:600}.form-errors__list{margin:0;padding-left:var(--spacing-lg)}.admin-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.admin-header__user{margin:var(--spacing-xs) 0 0;color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.admin-header__actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.admin-list__item{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);transition:background-color var(--transition-base)}.admin-list__item:hover{background-color:#fcfefc}.admin-list__info{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm) var(--spacing-md)}.admin-list__name{font-weight:600}.admin-list__category{color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.admin-list__actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm)}.admin-list__confirm{font-size:var(--font-size-caption);color:var(--colour-high-concern);font-weight:600}.site-nav__button{background:none;border:none;padding:0;font:inherit;cursor:pointer;color:var(--colour-text-secondary);font-size:var(--font-size-caption);font-weight:500;transition:color var(--transition-base)}.site-nav__button:hover,.site-nav__button:focus{color:var(--colour-primary)}.login-page{max-width:420px;margin:0 auto}.login-form{margin-top:var(--spacing-md)}.login-form .button{width:100%;margin-top:var(--spacing-sm)}.hero{text-align:center;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl);background:linear-gradient(180deg,var(--colour-mint),var(--colour-background));border:1px solid var(--colour-border);border-radius:var(--radius-card)}.hero__title{font-size:2.5rem;max-width:20ch;margin:0 auto var(--spacing-md)}.hero__description{max-width:60ch;margin:0 auto var(--spacing-lg);color:var(--colour-text-secondary)}.hero__search{max-width:520px;margin:0 auto;text-align:left}.popular-searches{margin-top:var(--spacing-md)}.popular-searches__label{display:block;font-size:var(--font-size-caption);color:var(--colour-text-secondary);margin-bottom:var(--spacing-xs)}.popular-searches__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-xs)}.chip{font-family:inherit;font-size:var(--font-size-caption);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-badge);border:1px solid var(--colour-border);background-color:var(--colour-card-background);color:var(--colour-text-primary);cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background-color var(--transition-base)}.chip:hover,.chip:focus{border-color:var(--colour-primary);color:var(--colour-primary);background-color:var(--colour-mint)}.home-section{margin-bottom:var(--spacing-xl)}.info-cards{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.info-card{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--spacing-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}.info-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0000000f}.info-card__title{margin:0 0 var(--spacing-xs);font-family:var(--font-family-base);font-size:var(--font-size-subheading);color:var(--colour-primary)}.info-card__description{margin:0;color:var(--colour-text-secondary)}.benefit-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--spacing-sm)}.benefit-list__item{background-color:var(--colour-card-background);border:1px solid var(--colour-border);border-radius:var(--radius-button);box-shadow:var(--shadow-soft);padding:var(--spacing-sm) var(--spacing-md)}.disclaimer{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--colour-border);color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.content-page{max-width:760px}.content-page h2{margin-top:0}.content-page h3{font-family:var(--font-family-base);font-weight:600;margin-top:var(--spacing-md)}.detail-points{margin:0;padding-left:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.back-link{display:inline-block;color:var(--colour-text-secondary);font-size:var(--font-size-caption);text-decoration:none;margin-bottom:var(--spacing-sm);transition:color var(--transition-base)}.back-link:hover,.back-link:focus{color:var(--colour-primary)}.product-details h1{margin-bottom:var(--spacing-lg)}.detail-list{display:grid;grid-template-columns:1fr;gap:0;margin:0}.detail-list dt{font-weight:600;font-size:var(--font-size-caption);color:var(--colour-text-secondary);margin-top:var(--spacing-sm)}.detail-list dd{margin:0}.product-details__description{margin-top:var(--spacing-md);margin-bottom:0;padding-top:var(--spacing-md);border-top:1px solid var(--colour-border)}.product-details__description--empty{color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.product-details__note{margin-top:var(--spacing-sm);margin-bottom:0;color:var(--colour-text-secondary);font-size:var(--font-size-caption)}.nutrition-table{width:100%;border-collapse:collapse;text-align:left}.nutrition-table__caption{text-align:left;color:var(--colour-text-secondary);font-size:var(--font-size-caption);padding-bottom:var(--spacing-sm)}.nutrition-table th,.nutrition-table td{padding:var(--spacing-sm) var(--spacing-xs);border-bottom:1px solid var(--colour-border)}.nutrition-table thead th{font-size:var(--font-size-caption);color:var(--colour-text-secondary);text-transform:uppercase;letter-spacing:.03em}.nutrition-table tbody th{font-weight:400}.nutrition-table tbody td{text-align:right;font-variant-numeric:tabular-nums}.nutrition-table tbody tr:nth-child(2n){background-color:#fbfdfb}.nutrition-table tr:last-child th,.nutrition-table tr:last-child td{border-bottom:none}@media (min-width: 640px){.site-header__inner{display:flex;align-items:center;justify-content:space-between}.site-nav{margin-top:0}.search-bar__controls{flex-direction:row}.product-grid,.form-row,.nutrition-grid{grid-template-columns:repeat(2,1fr)}.admin-list__item{flex-direction:row;align-items:center;justify-content:space-between}.info-cards{grid-template-columns:repeat(3,1fr)}.benefit-list{grid-template-columns:repeat(2,1fr)}.hero__title{font-size:3rem}.detail-list{grid-template-columns:12rem 1fr;column-gap:var(--spacing-md)}.detail-list dt,.detail-list dd{margin-top:0;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--colour-border)}.detail-list dt:last-of-type,.detail-list dd:last-of-type{border-bottom:none}}
