@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/poppins-800.woff2)format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/fredoka-500.woff2)format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fredoka-600.woff2)format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/fredoka-700.woff2)format("woff2")}:root{--bg:#131a28;--bg-elevated:#1e2739;--bg-elevated-2:#26314a;--text:#f1f5fb;--text-secondary:#c4cfe0;--text-muted:#a3b0c4;--brand-blue:#2e3ac7;--accent:#7fb0f5;--accent-text:#0b1220;--accent-hover:#a2c7ff;--accent-active:#69d;--accent-wash:#21324f;--gold:#f2c94c;--gold-ink:#2a1d00;--border:#313d54;--border-strong:#8b99af;--focus-ring:#ffe08a;--danger-bg:#c21624;--danger-text:#fff;--warning-bg:var(--gold);--warning-text:var(--gold-ink);--success-bg:#5cdb92;--success-text:#06280f;--radius-sm:12px;--radius-md:18px;--radius-lg:26px;--shadow-card:0 12px 28px -16px #0009;--font-display:"Fredoka", "Poppins", sans-serif;--font-body:"Poppins", -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-body)}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;padding:0}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:1.125rem;line-height:1.5}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#app{flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;display:flex}.view{flex-direction:column;flex:1;padding:1.5rem 1.25rem 2rem;display:flex}.view[hidden]{display:none}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:1em;height:1em}.btn{width:100%;font-family:var(--font-display);cursor:pointer;text-align:center;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;font-weight:700;transition:transform .18s,background-color .18s,border-color .18s,color .18s;display:flex}.btn:focus-visible{outline:4px solid var(--focus-ring);outline-offset:3px}.btn-icon{font-size:1.3em;line-height:1}.btn-huge{min-height:92px;margin-top:1.25rem;font-size:1.6rem}.btn-large{min-height:68px;margin-top:1rem;font-size:1.2rem}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:active{background:var(--accent-active)}.btn-secondary{background:var(--bg-elevated-2);color:var(--text);border-color:var(--accent)}.btn-secondary:active{background:var(--bg-elevated)}.btn-tertiary{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn-toggle{background:var(--bg-elevated-2);color:var(--text);border-color:var(--border)}.btn-toggle[aria-pressed=true]{border-color:var(--success-bg);color:#6fe3a0}.btn-toggle[aria-pressed=false]{border-color:var(--border);color:var(--text-secondary)}.home-content{flex-direction:column;flex:1;justify-content:center;display:flex}.mascot-wrap{justify-content:center;margin:0 0 .75rem;display:flex}.mascot{border-radius:var(--radius-lg);width:148px;height:auto;box-shadow:var(--shadow-card)}.app-title{font-family:var(--font-display);color:var(--text);align-items:center;gap:.55rem;margin:0 0 .5rem;font-size:2.5rem;font-weight:600;display:flex}.app-title-icon{width:1.05em;height:1.05em;color:var(--accent)}.subtitle{color:var(--text-secondary);margin:0 0 .5rem;font-size:1.15rem}.brand-seal{color:var(--text-muted);align-items:center;gap:.55rem;margin-top:2rem;font-size:.92rem;display:flex}.brand-seal-mark{border-radius:7px;flex-shrink:0;width:26px;height:26px}.brand-seal strong{color:var(--text-secondary);font-weight:600}#view-scan{padding:0}.camera-wrap{aspect-ratio:3/4;background:#000;width:100%;position:relative;overflow:hidden}#camera-video{object-fit:cover;width:100%;height:100%}.viewfinder{pointer-events:none;position:absolute;inset:12% 10%}.corner{border:5px solid var(--gold);width:46px;height:46px;position:absolute}.corner-tl{border-bottom:none;border-right:none;border-top-left-radius:12px;top:0;left:0}.corner-tr{border-bottom:none;border-left:none;border-top-right-radius:12px;top:0;right:0}.corner-bl{border-top:none;border-right:none;border-bottom-left-radius:12px;bottom:0;left:0}.corner-br{border-top:none;border-left:none;border-bottom-right-radius:12px;bottom:0;right:0}.scan-panel{padding:1.25rem 1.25rem 2rem}.scan-status{text-align:center;min-height:2.5em;color:var(--text);margin:0 0 .5rem;font-size:1.25rem}.scan-controls{flex-direction:column;display:flex}.result-banner{font-family:var(--font-display);text-align:center;letter-spacing:.02em;justify-content:center;align-items:center;gap:.6rem;padding:1.25rem;font-size:1.4rem;font-weight:700;display:flex}.result-banner .icon{width:1.1em;height:1.1em}.result-banner.status-expired{background:var(--danger-bg);color:var(--danger-text)}.result-banner.status-soon{background:var(--warning-bg);color:var(--warning-text)}.result-banner.status-ok{background:var(--success-bg);color:var(--success-text)}.result-banner.status-unknown{background:var(--bg-elevated-2);color:var(--text-secondary)}.result-content{flex:1;padding:1.5rem 1.25rem 0}.result-name{font-family:var(--font-display);color:var(--text);margin:0 0 .25rem;font-size:1.9rem;font-weight:600;line-height:1.25}.result-form{color:var(--text-secondary);margin:0 0 1.25rem;font-size:1.15rem}.result-expiry-block{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.25rem;padding:1rem 1.25rem}.result-expiry-caption{color:var(--text-secondary);margin:0 0 .25rem;font-size:1rem}.result-expiry{color:var(--text);margin:0;font-size:1.7rem;font-weight:700}.result-details{grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0;font-size:1.05rem;display:grid}.result-details dt{color:var(--text-secondary)}.result-details dd{color:var(--text);margin:0;font-weight:600}.result-actions{padding:1.25rem 1.25rem 2rem}.section-title{font-family:var(--font-display);color:var(--text);margin:0 0 1rem;font-size:1.9rem;font-weight:600}.history-list{flex-direction:column;flex:1;gap:.75rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.history-row{align-items:stretch;gap:.6rem;display:flex}.history-item{text-align:left;background:var(--bg-elevated);border:2px solid var(--border);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--text);cursor:pointer;flex:1;padding:1rem 1.1rem;font-family:inherit;transition:border-color .18s,transform .18s}.history-delete{background:var(--bg-elevated);border:2px solid var(--border);border-radius:var(--radius-md);width:56px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .18s,color .18s,background-color .18s;display:flex}.history-delete .icon{width:1.4em;height:1.4em}.history-delete:hover,.history-delete:active{color:#ff8a8a;background:#ff8a8a1a;border-color:#ff8a8a}.history-delete:focus-visible{outline:4px solid var(--focus-ring);outline-offset:3px}.history-item:active{transform:scale(.99)}.history-item:focus-visible{outline:4px solid var(--focus-ring);outline-offset:3px}.history-item-name{margin-bottom:.25rem;font-size:1.2rem;font-weight:700}.history-item-meta{color:var(--text-secondary);justify-content:space-between;gap:.5rem;font-size:1rem;display:flex}.history-item-status{font-weight:700}.history-item[data-status=expired] .history-item-status{color:#ff8a8a}.history-item[data-status=soon] .history-item-status{color:var(--gold)}.history-item[data-status=ok] .history-item-status{color:#6fe3a0}
