@import url('./semantic-utilities.css');
/* Legacy variable names are aliases, not independent palettes. */
html body {
 --bg-1:var(--color-canvas);--bg-2:var(--color-surface);--bg-3:var(--color-subtle);--ink:var(--color-text);--muted:var(--color-muted);--line:var(--color-border);--line-soft:var(--color-border);
 --accent:var(--color-link);--accent-hover:var(--color-action-hover);--accent-light:var(--color-subtle);--accent-soft:var(--color-subtle);--accent-gradient:linear-gradient(var(--color-action),var(--color-action));--focus:var(--color-focus);
 --success:var(--color-success);--warning:var(--color-warning);--danger:var(--color-danger);--surface-raised:var(--color-surface);--surface-status:var(--color-subtle);--surface-inset:var(--color-subtle);
 --tfy-text-strong:var(--color-text);--tfy-text:var(--color-text);--tfy-text-muted:var(--color-muted);--tfy-text-faint:var(--color-muted);--tfy-border:var(--color-border);--tfy-border-strong:var(--color-border-strong);--tfy-surface:var(--color-surface);--tfy-surface-subtle:var(--color-subtle);
 --tfy-brand:var(--color-link);--tfy-brand-hover:var(--color-action-hover);--tfy-brand-soft:var(--color-subtle);--tfy-success:var(--color-success);--tfy-success-soft:var(--color-success-soft);--tfy-warning:var(--color-warning);--tfy-warning-soft:var(--color-warning-soft);--tfy-danger:var(--color-danger);--tfy-danger-soft:var(--color-danger-soft);--tfy-info:var(--color-info);--tfy-info-soft:var(--color-info-soft);
 --v2-ink:var(--color-text);--v2-muted:var(--color-muted);--v2-line:var(--color-border);--v2-surface:var(--color-surface);--v2-canvas:var(--color-canvas);--v2-brand:var(--color-link);--v2-brand-soft:var(--color-subtle);
 background:var(--color-canvas);color:var(--color-text);color-scheme:inherit;
}
html body .appearance-control{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:8px max(16px,calc((100% - 1280px)/2));margin:0;background:var(--color-surface);color:var(--color-muted);font:600 14px/1.4 system-ui,sans-serif;border-bottom:1px solid var(--color-border)}
html body .appearance-control select{width:auto;min-height:44px;max-width:160px;border:1px solid var(--color-border-strong);border-radius:10px;padding:8px 30px 8px 12px;background:var(--color-surface);color:var(--color-text);font:inherit}
html body :is(.btn-primary,.cc-button){background:var(--color-action);color:var(--color-on-action);border-color:var(--color-action)}
html body :is(.btn-primary,.cc-button):hover{background:var(--color-action-hover);color:var(--color-on-action)}
html body :is(.btn-ghost,.cc-button-secondary){background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
html body :is(.btn-ghost,.cc-button-secondary):hover{background:var(--color-subtle);color:var(--color-text)}
html body :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea){background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong);font-size:16px}
html body :is(input,textarea)::placeholder{color:var(--color-muted);opacity:1}
html body :is(input,select,textarea,button):disabled{background:var(--color-disabled);color:var(--color-disabled-text);cursor:not-allowed;opacity:1}
html body :is(input,select,textarea)[aria-invalid=true]{border-color:var(--color-danger);outline-color:var(--color-danger)}
html body :focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
html body :is(input[type=checkbox],input[type=radio]){accent-color:var(--color-action)}
html body :is(.gradient-text){background:none;color:var(--color-text);-webkit-text-fill-color:currentColor}
html body :is(.tfy-app-footer,.cc-footer,.cc-final){background:var(--color-inverse);color:var(--color-on-inverse)}
html body :is(.tfy-app-footer,.cc-footer,.cc-final) :is(a,button,p,h2){color:var(--color-on-inverse)}
html body :is(.tfy-app-footer,.cc-footer,.cc-final) :focus-visible{outline-color:#b8d83d}
html body .cc-final .cc-button{background:#b8d83d;color:#10252d;border-color:#b8d83d}
html body .cc-final .cc-button-secondary{background:transparent;color:var(--color-on-inverse)}
html body.tfy-app-v2 main h1{font-size:var(--type-page);font-weight:800;line-height:1.1}
html body.tfy-app-v2 main h2{font-size:var(--type-section);font-weight:700;line-height:1.2}
html body.tfy-app-v2 main h3{font-size:var(--type-card);font-weight:700;line-height:1.3}
html body .ingredient-empty{background:var(--color-subtle);color:var(--color-muted);border-color:var(--color-border)}
html body :is(.modal-content,.cc-dialog,.tfy-navbar-more__menu,.dashboard-all-tools__menu){background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}
html body table :is(th,td){border-color:var(--color-border)}
html body table th{background:var(--color-subtle);color:var(--color-text)}
html body table td{color:var(--color-text)}
html body .locations-page :is(.grid,.flex)>*{min-width:0}
html body .locations-page :is(article,fieldset,form){min-width:0;max-width:100%}
html body .locations-page :is(p,h2,h3,label,span,a){overflow-wrap:anywhere}
html body .locations-page .location-access-heading{flex-wrap:wrap}
html body .location-access-checkbox{appearance:auto;width:20px;height:20px;flex:0 0 20px;accent-color:var(--color-action)}
html body .location-access-checkbox::after{content:none}
html body .maintenance-page{--bg:var(--color-canvas);--panel:var(--color-surface);--text:var(--color-text);--muted:var(--color-muted);--accent:var(--color-warning);--border:var(--color-border)}
/* Product artwork uses the light logo against a dark UI, without recolouring the artwork. */
:root[data-theme=dark] :is(.tfy-navbar-brand,.cc-header .cc-logo) img{content:url('../brand/logo-light.svg')}
/* The label itself is physical output. Theme only the surrounding editor. */
html body #label{color-scheme:light;background:#fff;color:#111;--color-text:#111;--color-muted:#374151;--color-surface:#fff;--color-canvas:#fff;--color-on-action:#fff;--cc-ink:#111;--cc-cream:#fff;--cc-paper:#fff}
html body #label :is(p,span,h1,h2,h3,h4,div){color:inherit}
html body #label .allergen-emphasis{color:#991b1b}
@media(prefers-reduced-motion:reduce){html body *,html body *::before,html body *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){html body{background:Canvas;color:CanvasText}html body :is(button,a,input,select,textarea){forced-color-adjust:auto}html body :focus-visible{outline-color:Highlight}html body .location-access-checkbox{appearance:auto}}
@media print{
 :root,html body{color-scheme:light;background:#fff!important;color:#000!important;--color-text:#000;--color-muted:#333;--color-canvas:#fff;--color-surface:#fff;--color-subtle:#fff;--color-border:#777;--color-link:#000;--color-action:#000;--color-on-action:#fff;--color-success:#21623b;--color-success-soft:#fff;--color-warning:#805000;--color-warning-soft:#fff;--color-danger:#a52720;--color-danger-soft:#fff;--color-info:#155778;--color-info-soft:#fff}
 html body .appearance-control{display:none!important}
 html body :is(main,article,section,table,th,td){background:#fff;color:#000;box-shadow:none}
}

/* Switch palettes atomically; hover feedback resumes on the next paint. */
html.theme-changing *,html.theme-changing *::before,html.theme-changing *::after{transition:none!important}

html body .cc-skip{background:var(--color-action);color:var(--color-on-action)}
html body .cc-footer-legal{color:var(--color-on-inverse)}

html body header.tfy-navbar--app{z-index:80}
:root:not([data-theme]) .appearance-control{display:none}
@media(prefers-color-scheme:dark){:root:not([data-theme]) :is(.tfy-navbar-brand,.cc-header .cc-logo) img{content:url('../brand/logo-light.svg')}}
html body #label.bw-mode .allergen-emphasis{color:#000}

html body .recovery-page{max-width:680px;margin:48px auto;padding:24px;font:400 18px/1.6 system-ui,sans-serif}html body .recovery-page a{color:var(--color-link)}
/* Do not interpolate foreground/background independently across responsive states. */
html body :is(button,a,input,select,textarea){transition-property:transform,box-shadow,opacity}
/* Operational views keep entry tasks ahead of secondary evidence. */
html body .operational-view-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 24px}
html body .operational-view-nav a,html body .settings-section-nav a{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:12px;color:var(--color-text);border:1px solid var(--color-border)}
html body .operational-view-nav a[aria-current=page],html body .settings-section-nav a[aria-current=page]{background:var(--color-action);color:var(--color-on-action)}
html body .evidence-disclosure{margin:16px 0;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);padding:0 16px}
html body :is(.evidence-disclosure,.unit-detail)>summary{cursor:pointer;padding:14px 0;min-height:48px;font-weight:700;color:var(--color-text)}
html body .evidence-disclosure>section{margin:0 0 16px;box-shadow:none;border:0;padding:16px 0}
html body .unit-detail .temperature-unit-metrics{width:100%}
html body .temperature-unit-summary{display:block}
html body .temperature-unit-card{padding:16px}
html body .record-history-row{padding:12px;gap:12px}
html body .record-history-row details summary{min-height:44px;cursor:pointer;padding-top:10px;color:var(--color-link)}
html body .follow-up-form{display:grid;gap:12px;margin-top:16px;max-width:640px}
html body .follow-up-form label{display:grid;gap:6px}
html body .follow-up-form :is(textarea,input:not([type=checkbox]),select){width:100%;padding:10px;border:1px solid var(--color-border-strong);border-radius:8px}
html body .history-result-count{margin:12px 0;color:var(--color-muted)}
@media print{html body .evidence-disclosure::details-content{display:block}html body .evidence-disclosure>summary{font-size:20px}}
