@font-face{font-family:Inter;src:url(/fonts/inter_regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter_medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter_semibold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter_bold.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Manrope;src:url(/fonts/manrope_semibold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Manrope;src:url(/fonts/manrope_bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--ink:#111d2d;--surface-1:#172638;--surface-2:#1e3044;--surface-3:#263a51;--hairline:#ffffff14;--text:#ecf3f8;--muted:#95aabf;--accent:#4fd1c5;--good:#68d391;--warn:#f6ad55;--danger:#ff9090;--rose:#d883ae;--radius-xs:6px;--radius-md:12px;--radius-lg:16px;--radius-xl:28px;--space:4px;--gutter:16px;--text-small:.8125rem;--text-base:clamp(.95rem, .9rem + .25vw, 1.05rem);--figure:clamp(2.6rem, 1.6rem + 5vw, 4.4rem);--duration-fast:90ms;--duration-normal:.21s;--duration-slow:.32s;--ease-out:cubic-bezier(.16, 1, .3, 1);--shadow:0 6px 18px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--ink);color:var(--text);margin:0}body{font:400 var(--text-base) / 1.45 "Inter", system-ui, sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;min-height:100dvh}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Manrope,Inter,sans-serif;font-weight:700}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.muted{color:var(--muted)}.small{font-size:var(--text-small)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.overline{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:600}.row{gap:calc(var(--space) * 2);flex-wrap:wrap;align-items:center;display:flex}.row.between{justify-content:space-between}.tone-good{color:var(--good)}.tone-warn{color:var(--warn)}.tone-danger{color:var(--danger)}.tone-muted{color:var(--muted)}.shell{grid-template-rows:auto auto auto auto auto 1fr auto;min-height:100dvh;display:grid}.topbar{z-index:5;padding:calc(env(safe-area-inset-top) + 12px) var(--gutter) 12px;background:color-mix(in srgb, var(--ink) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{color:var(--rose);letter-spacing:.02em;font-family:Manrope;font-weight:700}.screen-title{flex:1;font-size:1.15rem}.badges{gap:8px;display:flex}.badge{letter-spacing:.04em;background:color-mix(in srgb, currentcolor 12%, transparent);border:1px solid;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600}.strip{padding:9px var(--gutter);background:color-mix(in srgb, currentcolor 14%, var(--ink));border-bottom:1px solid color-mix(in srgb, currentcolor 30%, transparent);font-size:var(--text-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.strip strong{letter-spacing:.06em}.strip span{color:var(--text)}.content{padding:var(--gutter) var(--gutter) 120px;width:100%;max-width:1180px;margin:0 auto}.nav{z-index:5;padding:8px 8px calc(env(safe-area-inset-bottom) + 8px);background:var(--surface-1);border-top:1px solid var(--hairline);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.nav-item{color:var(--muted);border-radius:var(--radius-md);transition:color var(--duration-fast), background var(--duration-normal);justify-items:center;gap:4px;padding:6px 4px;font-size:.78rem;font-weight:500;text-decoration:none;display:grid}.nav-item[aria-current=page]{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-icon{border:2px solid;border-radius:50%;width:22px;height:22px;position:relative}.icon-analyse:after{content:"";background:currentColor;border-radius:50%;position:absolute;inset:4px}.icon-etiquettes{border-radius:5px}.icon-etiquettes:after{content:"";background:currentColor;height:2px;position:absolute;inset:5px 4px auto;box-shadow:0 5px}.icon-journal{border-radius:3px 6px 6px 3px}.icon-reglages{border-style:dashed}@media (width>=900px){.shell{grid-template-rows:auto auto auto auto auto 1fr;grid-template-columns:112px 1fr}.shell>:not(.nav){grid-column:2}.nav{border-top:0;border-right:1px solid var(--hairline);grid-area:1/1/-1;grid-template-columns:1fr;align-content:start;gap:6px;height:100dvh;padding:20px 10px;position:sticky;top:0}.content{padding-bottom:48px}}.card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-lg);gap:10px;padding:14px;display:grid}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.button{color:var(--text);border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-2);cursor:pointer;text-align:center;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-normal), opacity var(--duration-normal);touch-action:manipulation;padding:12px 16px;font:600 .95rem/1 Inter,sans-serif;text-decoration:none}.button:hover:not(:disabled){background:var(--surface-3)}.button:active:not(:disabled){transform:scale(.97)}.button:focus-visible,.segment:focus-visible,.chip:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button:disabled{opacity:.38;cursor:not-allowed}.button.primary{background:var(--accent);color:#062a27;border-color:#0000}.button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 86%, white)}.button.warn{background:var(--warn);color:#2a1702;border-color:#0000}.button.tonal{background:color-mix(in srgb, var(--accent) 16%, var(--surface-2));color:var(--accent)}.button.quiet{color:var(--accent);background:0 0}.button.quiet:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent)}.button.small{padding:8px 12px;font-size:.85rem}.button.large{width:100%;padding:16px 20px;font-size:1.05rem}.segmented{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--hairline);gap:4px;padding:4px;display:flex}.segment{border-radius:var(--radius-xs);color:var(--muted);cursor:pointer;transition:background var(--duration-normal) var(--ease-out), color var(--duration-normal);background:0 0;border:0;flex:1;padding:9px 6px;font:600 .9rem Inter}.segment[aria-checked=true]{background:var(--surface-3);color:var(--accent);box-shadow:var(--shadow)}.segment:disabled{cursor:not-allowed;opacity:.5}.field{gap:6px;display:grid}.field-label{font-size:var(--text-small);color:var(--muted)}input[type=text],input[type=password],input[type=search]{color:var(--text);border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--hairline);width:100%;padding:12px 14px;font:500 1rem Inter}input::placeholder{color:color-mix(in srgb, var(--muted) 70%, transparent)}.warning{border-radius:var(--radius-xs);background:color-mix(in srgb, currentcolor 14%, transparent);padding:8px 10px;font-size:.9rem}.warning.tone-warn,.warning.tone-danger{color:var(--text)}.warning.tone-warn{background:color-mix(in srgb, var(--warn) 18%, transparent);border-left:3px solid var(--warn)}.warning.tone-danger{background:color-mix(in srgb, var(--danger) 18%, transparent);border-left:3px solid var(--danger)}.alerts{gap:6px;display:grid}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions>.button{flex:auto}.pill{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;padding:3px 10px;font-family:Manrope;font-weight:700}.empty{justify-items:start;gap:10px;padding:28px 4px;display:grid}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 92px);z-index:10;opacity:0;pointer-events:none;background:var(--surface-3);border:1px solid var(--hairline);border-radius:var(--radius-md);max-width:min(560px,100vw - 32px);box-shadow:var(--shadow);transition:opacity var(--duration-normal), translate var(--duration-slow) var(--ease-out);padding:12px 16px;position:fixed;translate:-50% 12px}.toast.visible{opacity:1;translate:-50%}.dialog{max-width:min(480px,100vw - 32px);color:var(--text);background:var(--surface-3);border:1px solid var(--hairline);border-radius:var(--radius-xl);padding:22px}.dialog::backdrop{background:#050a12b3}.dialog p{margin:12px 0 18px}.login-page{min-height:100dvh;padding:var(--gutter);place-items:center;display:grid}.login{gap:14px;width:min(380px,100%);padding:24px}.login h1{color:var(--rose);font-size:1.8rem}.analyzer{gap:14px;display:grid}.connection{align-items:center;gap:8px;font-size:.9rem;font-weight:500;display:flex}.connection:before{content:"";background:currentColor;border-radius:50%;width:9px;height:9px}.stage{justify-items:stretch;gap:12px;display:grid}.target{aspect-ratio:1;width:min(100%,360px);color:var(--warn);margin:0 auto;position:relative;container-type:inline-size}.target[data-tone=good]{color:var(--good)}.target[data-tone=danger]{color:var(--danger)}.target[data-tone=muted]{color:var(--muted)}.target svg{width:100%;height:100%;overflow:visible}.ring{fill:none;stroke:currentColor;stroke-width:1.4px;transition:r var(--duration-slow) var(--ease-out), opacity var(--duration-slow)}.core{fill:color-mix(in srgb, currentcolor 10%, var(--surface-1));stroke:currentColor;stroke-width:2px;transition:stroke var(--duration-slow)}.figures{justify-content:center;align-items:center;gap:6cqi;display:flex;position:absolute;inset:0}.figure-block{justify-items:center;display:grid}.figure-label{color:var(--muted);font-size:min(.9rem,4cqi);font-weight:600}.figure{font:700 min(var(--figure), 12.5cqi) / 1.1 "Manrope", sans-serif;color:var(--text);font-variant-numeric:tabular-nums}.stability{text-align:center;gap:4px;display:grid}.stability-title{font-size:1.35rem}.stability-detail{color:var(--muted);font-size:.95rem}.frozen{border-color:color-mix(in srgb, var(--good) 40%, transparent);background:color-mix(in srgb, var(--good) 9%, var(--surface-1))}.frozen h3{color:var(--good)}.trim{gap:8px;display:grid}.chips{gap:6px;display:flex}.chip{cursor:pointer;border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-2);color:var(--text);flex:1;justify-items:center;gap:2px;padding:7px 2px;font:500 .75rem Inter;display:grid}.chip strong{font:700 1.15rem Manrope}.chip span{color:var(--muted)}.chip[aria-pressed=true]{border:2px solid var(--accent)}.chip.trimmed[aria-pressed=true]{border-color:var(--warn)}.air-line{font-size:.9rem}.profile .mix{color:var(--accent);font-size:1.5rem}.metrics{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.metric{border-radius:var(--radius-md);background:var(--surface-2);justify-items:center;gap:2px;padding:10px 4px;display:grid}.metric-value{font:700 clamp(1.1rem,.9rem + 1vw,1.45rem) Manrope}.metric-unit{color:var(--muted);font-size:.72rem}.air{justify-items:start;gap:6px;display:grid}.measure,.consequences{gap:12px;display:grid}.readings{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.reading{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--hairline);justify-items:start;gap:2px;padding:10px 12px;display:grid}.reading-value,.reading .metric-value{color:var(--accent);font:700 clamp(1.6rem,1.1rem + 2vw,2.2rem) Manrope}.frozen~.consequences .reading{background:var(--surface-2)}@media (width>=900px){.analyzer{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;column-gap:24px}.analyzer>.row,.analyzer>.field{grid-column:1/-1}.stage{grid-row:span 2}}.labels{gap:14px;display:grid}.banner.reprint{border-radius:var(--radius-md);background:color-mix(in srgb, var(--warn) 16%, var(--surface-1));border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.printer-line{font-weight:500}.label-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;display:grid}.label-card.status-printed{border-color:color-mix(in srgb, var(--good) 40%, transparent)}.label-card.status-failed{border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.label-card.status-sending{border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.preview-frame{background:var(--surface-2);border-radius:var(--radius-md);place-items:center;padding:12px;display:grid}.preview{object-fit:contain;width:100%;height:auto;max-height:420px;box-shadow:var(--shadow);background:#fff;border-radius:3px}.status{font-size:var(--text-small);font-weight:600}.result{font-size:.9rem}.export{justify-items:start;gap:6px;display:grid}.action-bar{bottom:calc(env(safe-area-inset-bottom) + 78px);z-index:4;border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface-1) 94%, transparent);border:1px solid var(--hairline);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:8px;padding:12px;display:grid;position:sticky}@media (width>=900px){.action-bar{bottom:16px}}.journal{gap:14px;display:grid}.folder{font-weight:600}.journal-list{gap:18px;display:grid}.day{gap:8px;display:grid}.day-title{font-size:1rem}.journal-row{text-align:left;color:var(--text);font:inherit;cursor:pointer;gap:4px}.journal-row:hover:not(:disabled){background:var(--surface-2)}.journal-row:disabled{cursor:default;opacity:.75}.printers,.settings{gap:14px;max-width:720px;display:grid}.stock-cards{gap:12px;display:grid}.chooser{border-top:1px solid var(--hairline);gap:6px;padding-top:6px;display:grid}.device{text-align:left;border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.device:hover{background:var(--surface-3)}.ignored summary{cursor:pointer;color:var(--muted);font-size:var(--text-small);padding:6px 0}.chooser .row input{flex:200px}.list{gap:6px;display:grid}.list-row{border-top:1px solid var(--hairline);gap:2px;padding:8px 0;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.reading-label{color:var(--muted);font-size:.8rem;font-weight:600}.stepper-value{text-align:center;min-width:2ch;font:700 1.6rem Manrope}
