:root{--scanin-ink: #11132A;--scanin-blue: #4490D9;--scanin-sky: #C4DAE7;--scanin-paper: #F2EDED;--scanin-lavender: #DBBCF5;--scanin-critical: #8B1C1C;--scanin-rule: rgba(17, 19, 42, .14);--scanin-rule-soft: rgba(17, 19, 42, .08);--scanin-muted: rgba(17, 19, 42, .62);--scanin-muted-2: rgba(17, 19, 42, .45);--scanin-font: "DM Sans", system-ui, sans-serif;--scanin-font-mono: "DM Mono", ui-monospace, monospace;--scanin-track-tight: -.02em;--scanin-track-loose: .14em;--ink-navy: var(--scanin-ink);--brand-blue: var(--scanin-blue);--sky-blue: var(--scanin-sky);--paper: var(--scanin-paper);--ink-60: var(--scanin-muted);--ink-36: var(--scanin-muted-2);--ink-12: var(--scanin-rule);--ink-06: var(--scanin-rule-soft);--bg: var(--scanin-paper);--surface: #ffffff;--ink: var(--scanin-ink);--muted: var(--scanin-muted);--accent: var(--scanin-blue);font-family:var(--scanin-font);line-height:1.55;font-weight:400;color:var(--scanin-ink);background-color:var(--scanin-paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--scanin-paper);text-wrap:pretty}button,input,select{font:inherit}h1,h2,h3{margin:0;font-weight:700;letter-spacing:var(--scanin-track-tight);text-wrap:balance}h4,p{margin:0}code,pre,.mono{font-family:var(--scanin-font-mono)}a{color:var(--scanin-blue);text-decoration:none}a:hover{text-decoration:underline}#root{min-height:100vh}.layout-root{min-height:100vh;display:flex;flex-direction:column;background:var(--scanin-paper)}.layout-main{flex:1}.topbar{position:sticky;top:0;z-index:50;background:var(--scanin-paper);border-bottom:1px solid var(--scanin-rule)}.topbar-inner{width:min(1160px,calc(100% - 48px));margin:0 auto;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;outline:none;border-radius:4px}.brand-link:hover{text-decoration:none;opacity:.85}.topbar-nav{display:flex;align-items:center;gap:4px}.topbar-link{display:inline-flex;align-items:center;padding:8px 14px;border-radius:9px;font-size:.86rem;font-weight:500;color:var(--scanin-muted);text-decoration:none;background:transparent;border:0;cursor:pointer;transition:background .14s ease,color .14s ease}.topbar-link:hover{background:var(--scanin-rule-soft);color:var(--scanin-ink);text-decoration:none}.topbar-link.active{background:var(--scanin-ink);color:var(--scanin-paper)}.topbar-link.logout{margin-left:6px}.appfooter{border-top:1px solid var(--scanin-rule);padding:22px 0 28px}.appfooter-inner{width:min(1160px,calc(100% - 48px));margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;font-family:var(--scanin-font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--scanin-muted)}.appfooter-brand{font-family:var(--scanin-font);font-weight:700;letter-spacing:var(--scanin-track-tight);color:var(--scanin-ink)}.appfooter-sep{color:var(--scanin-muted-2)}.appfooter-link{color:var(--scanin-muted);text-decoration:none;border-bottom:1px solid var(--scanin-rule);transition:color .14s ease,border-color .14s ease}.appfooter-link:hover{color:var(--scanin-blue);border-color:var(--scanin-blue);text-decoration:none}.app-shell{width:min(1160px,calc(100% - 48px));margin:0 auto;padding:40px 0 64px}.hero-panel,.panel{background:#fff;border:1px solid var(--scanin-rule);border-radius:16px}.hero-panel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:32px;padding:32px;margin-bottom:24px}.auth-hero{align-items:stretch}.auth-panel{padding:40px;text-align:center}.auth-card{padding:28px;border-radius:14px;background:var(--scanin-paper);border:1px solid var(--scanin-rule);display:flex;flex-direction:column;gap:16px}.panel{padding:28px}.panel-accent{background:#fff}.eyebrow,.panel-kicker{margin:0;font-family:var(--scanin-font);text-transform:uppercase;letter-spacing:var(--scanin-track-loose);font-size:11px;font-weight:500;color:var(--scanin-blue)}.hero-copy h1{margin:12px 0 14px;font-size:clamp(1.85rem,3vw,2.6rem);font-weight:700;letter-spacing:var(--scanin-track-tight);line-height:1.1;color:var(--scanin-ink)}.hero-text{max-width:50ch;color:var(--scanin-muted);font-size:.95rem}.panel-header h2,.history-header h2{margin:6px 0 0;font-size:1.2rem;font-weight:700;letter-spacing:var(--scanin-track-tight);color:var(--scanin-ink)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-card{padding:20px;border-radius:12px;background:var(--scanin-paper);border:1px solid var(--scanin-rule);display:flex;flex-direction:column;gap:8px}.stat-label,.stat-note{color:var(--scanin-muted);font-size:.85rem}.stat-value{font-size:clamp(1.9rem,3vw,2.5rem);font-weight:700;letter-spacing:-.03em;color:var(--scanin-ink);line-height:1}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:24px;margin-bottom:24px}.panel-header,.history-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.segmented-control{display:inline-flex;padding:3px;border-radius:12px;background:var(--scanin-paper);border:1px solid var(--scanin-rule);gap:2px}.segmented-control button{appearance:none;border:0;background:transparent;cursor:pointer;font:500 13px var(--scanin-font);color:var(--scanin-muted);padding:8px 14px;border-radius:9px;transition:background .14s ease,color .14s ease}.segmented-control button:hover:not(.active){color:var(--scanin-ink)}.segmented-control button.active{background:var(--scanin-ink);color:var(--scanin-paper)}.primary-button,.secondary-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:500 14px/1 var(--scanin-font);letter-spacing:-.005em;padding:12px 18px;border-radius:10px;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .14s ease,color .14s ease,border-color .14s ease,transform .1s ease}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.auth-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.primary-button{background:var(--scanin-ink);color:var(--scanin-paper)}.primary-button:hover{background:#1d2046}.secondary-button{background:transparent;color:var(--scanin-ink);border-color:var(--scanin-rule)}.secondary-button:hover{border-color:var(--scanin-ink);text-decoration:none}.secondary-button.danger{background:transparent;color:var(--scanin-critical);border-color:#8b1c1c52}.secondary-button.danger:hover{background:#8b1c1c0f;border-color:var(--scanin-critical)}.primary-button:disabled,.secondary-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-sm{padding:6px 12px;font-size:.78rem;border-radius:8px}.scanner-frame{position:relative;margin:22px 0 16px;min-height:360px;border-radius:16px;overflow:hidden;background:var(--scanin-ink);border:1px solid var(--scanin-rule)}.scanner-frame:after{content:"";position:absolute;inset:16px;border:1.5px solid rgba(255,255,255,.14);border-radius:12px;pointer-events:none}.scanner-video,.scanner-placeholder,.manual-form{position:absolute;inset:0;width:100%;height:100%}.scanner-video{object-fit:cover;display:none}.scanner-video.visible{display:block}.scanner-placeholder,.manual-form{display:grid;place-items:center;text-align:center;padding:32px;box-sizing:border-box}.scanner-placeholder p,.manual-form label{color:#ffffffb8;font-size:.92rem}.manual-form{align-content:center;gap:14px}.form-grid input,.form-grid select{width:100%;border:0;border-bottom:1px solid var(--scanin-rule);border-radius:0;padding:8px 0;background:transparent;font:inherit;font-size:.95rem;color:var(--scanin-ink);transition:border-color .14s ease}.form-grid input:focus,.form-grid select:focus{outline:none;border-bottom-color:var(--scanin-blue)}.form-grid select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--scanin-muted) 50%),linear-gradient(135deg,var(--scanin-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px}.manual-form input{width:100%;max-width:400px;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:12px 16px;color:#fff;font:inherit;font-size:.95rem}.manual-form input::placeholder{color:#fff6}.scanner-actions,.history-actions{display:flex;flex-wrap:wrap;gap:10px}.upload-button{position:relative;display:inline-flex;align-items:center;justify-content:center}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.status-stack{display:grid;gap:10px;margin-top:18px}.status-message,.result-card{border-radius:12px;padding:12px 16px;font-size:.9rem}.status-message{margin:0}.status-message.success{background:var(--scanin-sky);color:var(--scanin-ink)}.status-message.warning{background:#c4dae78c;color:var(--scanin-ink);border:1px solid var(--scanin-rule)}.status-message.error{background:transparent;color:var(--scanin-critical);border:1px solid rgba(139,28,28,.32)}.status-message.muted{background:var(--scanin-rule-soft);color:var(--scanin-muted)}.result-card{background:#fff;border:1px solid var(--scanin-rule)}.result-card.success strong{color:var(--scanin-ink)}.result-card.error strong{color:var(--scanin-critical)}.result-card.neutral strong{color:var(--scanin-ink)}.result-card p{margin:4px 0 0;color:var(--scanin-muted);font-size:.88rem}.form-grid{display:grid;gap:18px;margin-top:22px}.form-grid label{display:grid;gap:6px;color:var(--scanin-ink);font:500 11px var(--scanin-font);letter-spacing:var(--scanin-track-loose);text-transform:uppercase}.form-grid input:disabled,.form-grid input[readonly]{color:var(--scanin-muted);cursor:default}.setup-note{margin-top:18px;padding:16px 18px;border-radius:12px;background:#c4dae752;border:1px solid var(--scanin-rule)}.top-gap{margin-top:18px}.setup-note strong{display:block;margin-bottom:4px;color:var(--scanin-ink);font-size:.92rem;font-weight:700}.setup-note p,.setup-note code{color:var(--scanin-muted);font-size:.85rem}.setup-note code{font-family:var(--scanin-font-mono)}.history-panel{overflow:hidden}.history-table-wrapper{overflow-x:auto;margin-top:22px}.history-table{width:100%;border-collapse:collapse;min-width:760px;font-size:14px}.history-table th{text-align:left;padding:12px 16px;font:500 11px var(--scanin-font);letter-spacing:var(--scanin-track-loose);text-transform:uppercase;color:var(--scanin-muted);border-bottom:1px solid var(--scanin-rule)}.history-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--scanin-rule-soft)}.history-table tbody tr{transition:background .1s ease}.history-table tbody tr:hover{background:#c4dae752}.badge{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--scanin-font);padding:4px 10px;border-radius:999px;background:var(--scanin-sky);color:var(--scanin-ink)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.badge.success{background:var(--scanin-sky);color:var(--scanin-ink)}.badge.error,.badge.crit{background:transparent;color:var(--scanin-critical);border:1px solid rgba(139,28,28,.4)}.badge.neutral,.badge.ghost{background:transparent;color:var(--scanin-muted);border:1px solid var(--scanin-rule)}.badge.ink{background:var(--scanin-ink);color:var(--scanin-paper)}.empty-state{margin-top:22px;padding:32px;border-radius:12px;background:var(--scanin-rule-soft);border:1px solid var(--scanin-rule);color:var(--scanin-muted);text-align:center;font-size:.92rem}.sample-payloads{display:grid;gap:12px;margin-top:18px}.sample-payloads p{color:var(--scanin-muted);font-size:.86rem;font-weight:600}.sample-payload-list{display:flex;flex-wrap:wrap;gap:8px}.sample-pill{border:1px solid var(--scanin-rule);border-radius:999px;padding:6px 12px;background:transparent;color:var(--scanin-ink);cursor:pointer;font:inherit;font-size:.84rem;transition:background .12s ease,border-color .12s ease}.sample-pill:hover{background:#c4dae752;border-color:var(--scanin-ink)}@media(max-width:980px){.hero-panel,.workspace-grid{grid-template-columns:1fr}.panel-header,.history-header{flex-direction:column;align-items:flex-start}}@media(max-width:720px){.topbar-inner{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 0}.topbar-nav{flex-wrap:wrap;width:100%}.topbar-link{padding:6px 12px;font-size:.82rem}}@media(max-width:640px){.app-shell{width:calc(100% - 24px);padding:24px 0 48px}.hero-panel,.panel{padding:22px;border-radius:14px}.stats-grid{grid-template-columns:1fr}.scanner-frame{min-height:300px}.scanner-frame:after{inset:10px}.scanner-actions,.history-actions{flex-direction:column}.primary-button,.secondary-button,.upload-button{width:100%}}@media(max-width:480px){.appfooter-inner{font-size:.74rem;gap:6px}}.print-header{display:none}@media print{.topbar,.appfooter,button,.segmented-control,.dashboard-search,.no-print{display:none!important}body{background:#fff!important}body,.layout-root,.app-shell,.panel{background:#fff!important;color:var(--scanin-ink)!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact}.print-header{display:block;font-family:var(--scanin-font);font-size:11pt;color:var(--scanin-muted);border-bottom:1px solid var(--scanin-rule);padding-bottom:8px;margin-bottom:14px;letter-spacing:.05em;text-transform:uppercase}.print-section,.panel{page-break-inside:avoid;break-inside:avoid;box-shadow:none!important;border:1px solid var(--scanin-rule)!important;margin-bottom:14px!important}}
