:root{color:#1b1b24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#4b5a1f;--primary-soft:#eaf2cf;--surface:#ffffffe0;--surface-strong:#fff;--surface-muted:#f2f6e6;--line:#d5dcc0;--text-soft:#5d5c6d;--success:#0f8c61;--success-soft:#dcfbef;--danger:#f15d00;--danger-soft:#ffe6d8;--shadow:0 16px 40px #4b5a1f1f;--accent:#9db51c;--accent-soft:#f1f7d7;background:radial-gradient(circle at 100% 0,#9db51c2e,#0000 30%),radial-gradient(circle at 0 100%,#f15d0014,#0000 28%),#f8fbf2;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body,#root{min-height:100vh;margin:0}body{background:radial-gradient(circle at 100% 0,#9db51c2e,#0000 30%),radial-gradient(circle at 0 100%,#f15d0014,#0000 28%),#f8fbf2}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.button-reset{appearance:none;background:0 0;border:0}input,select,textarea{border:1px solid var(--line);width:100%;color:inherit;background:#fffffff2;border-radius:16px;padding:.9rem 1rem}textarea{resize:vertical;min-height:110px}label{color:var(--text-soft);gap:.45rem;font-size:.94rem;display:grid}h1,h2,h3,p{margin:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #c7c4d88c;padding:.56rem 1rem}th{color:#767388;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.mono{font-family:Consolas,SFMono-Regular,monospace}.eyebrow{color:var(--primary);letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;font-weight:800}.eyebrow.inverse{color:#ffffffb3}.screen-center{place-items:center;min-height:100vh;display:grid}.login-page{background:linear-gradient(180deg, #f8fbf2c7, #f6f9edeb), var(--login-produce-background) center/cover no-repeat;place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#9db51c2e,#0000 22%),radial-gradient(circle at 0 100%,#f15d001f,#0000 24%);position:absolute;inset:0}.login-card,.panel,.stat-card,.scanner-hero,.result-card{background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);border:1px solid #ffffffa6}.login-card{z-index:1;border-radius:28px;gap:1.5rem;width:min(100%,480px);padding:2rem;display:grid;position:relative}.login-brand{text-align:center;justify-items:center;gap:.75rem;display:grid}.brand-mark{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);border-radius:16px;place-items:center;width:2.8rem;height:2.8rem;font-weight:800;display:grid}.brand-mark.large{width:3.5rem;height:3.5rem;font-size:1.35rem}.brand-logo,.login-logo,.scanner-logo{object-fit:contain;background:#fff;display:block}.brand-logo{width:8rem;height:auto;max-height:3.2rem;box-shadow:none;mix-blend-mode:multiply;background:0 0;border-radius:0;padding:0}.login-logo{border-radius:24px;width:min(100%,320px);padding:.55rem .75rem;box-shadow:0 18px 40px #4b5a1f24}.scanner-logo{border-radius:22px;width:72px;height:72px;padding:.3rem;box-shadow:0 16px 30px #0a0c1833}.stack,.page-stack,.stack-column{gap:.8rem;display:grid}.primary-button,.ghost-button{border:0;border-radius:14px;min-height:42px;padding:.72rem 1rem;font-weight:700}.primary-button{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);box-shadow:0 18px 30px #4b5a1f2e}.ghost-button{color:#312f45;background:#f2f6e6f0}.ghost-button.light{color:#fff;background:#ffffff1f;border:1px solid #ffffff2e}.ghost-button.danger{color:var(--danger)}.ghost-button.full,.primary-button{width:100%}.sidebar .ghost-button.full{min-height:40px;padding:.72rem .9rem;font-size:.88rem}.error-box,.success-box{border-radius:16px;padding:.85rem 1rem;font-weight:600}.error-box{background:var(--danger-soft);color:#8f2041}.success-box{background:var(--success-soft);color:var(--success)}.login-hint{color:var(--text-soft);gap:.5rem;font-size:.92rem;display:grid}.app-shell{background:radial-gradient(circle at 100% 0,#9db51c29,#0000 26%),linear-gradient(#fbfdf7,#f4f8ea 100%);grid-template-columns:214px 1fr;min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd6;border-right:1px solid #c7c4d880;grid-template-rows:auto 1fr auto;align-content:start;gap:.55rem;padding:.7rem .75rem .9rem;display:grid}.brand{justify-content:flex-start;align-items:center;padding:.1rem .15rem .35rem;display:flex}.side-nav{flex-direction:column;align-self:start;align-items:stretch;gap:.08rem;display:flex}.side-link{color:#4f4d60;border-radius:9px;align-items:center;min-height:30px;padding:.24rem .68rem;font-size:.8rem;font-weight:700;line-height:1.15;text-decoration:none;transition:background-color .16s,transform .16s,box-shadow .16s;display:flex}.side-link.active{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);box-shadow:0 5px 10px #4b5a1f26}.side-link:hover{background:#9db51c1a;transform:translateY(-1px)}.sidebar-footer{color:var(--text-soft);border-top:1px solid #c7c4d880;gap:.45rem;margin-top:auto;padding-top:.55rem;display:grid}.user-badge,.meta-user{align-items:center;gap:.8rem;display:flex}.user-badge p,.meta-user p{color:#1b1b24;font-weight:700}.user-badge span,.meta-user span{color:var(--text-soft);font-size:.84rem}.user-badge{border-radius:12px;padding:.35rem .2rem}.user-badge-link{text-decoration:none;transition:background-color .16s}.user-badge-link:hover{background:#9db51c14}.user-avatar{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);border-radius:12px;place-items:center;width:2.1rem;height:2.1rem;font-size:.84rem;font-weight:800;display:grid}.workspace-shell{grid-template-rows:auto 1fr;min-width:0;display:grid}.topbar{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8fbf2e0;border-bottom:1px solid #c7c4d86b;padding:1.1rem 2rem;display:block;position:sticky;top:0}.topbar-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar-branding{align-items:center;gap:.9rem;min-width:0;display:flex}.topbar-copy{min-width:0}.topbar-logo-mobile{object-fit:contain;mix-blend-mode:multiply;width:138px;max-width:100%;height:auto;display:none}.topbar h2{font-size:1.32rem}.content-shell{min-width:0;padding:1.35rem}.mobile-menu-button,.mobile-menu-overlay{display:none}.page-header{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.page-header h2{font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.08}.page-description{max-width:58ch;color:var(--text-soft);margin-top:.35rem;font-size:.94rem}.header-actions{align-items:center;gap:.55rem;display:flex}.segmented-control{background:#f2f6e6f5;border-radius:16px;align-items:center;gap:.28rem;padding:.24rem;display:inline-flex;box-shadow:inset 0 0 0 1px #d5dcc0b3}.segment-button{color:#5d5c6d;background:0 0;border:0;border-radius:12px;min-height:34px;padding:.48rem .8rem;font-size:.84rem;font-weight:800}.segment-button.active{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);box-shadow:0 10px 18px #4b5a1f29}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.dashboard-analytics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.stat-card{border-left:6px solid var(--primary);border-radius:22px;gap:.42rem;min-height:106px;padding:1rem 1.1rem;display:grid}.stat-card span{color:var(--text-soft);font-size:.86rem}.stat-card strong{font-size:1.45rem;line-height:1.1}.stat-card.success{border-left-color:var(--success)}.stat-card.danger{border-left-color:var(--danger)}.stat-card.slate{border-left-color:#7d864f}.panel{border-radius:24px;padding:1.1rem}.chart-panel{min-height:100%}.article-panel{overflow:hidden}.panel-header{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.45rem;display:flex}.panel-header p{color:var(--text-soft);margin-top:.25rem}.hourly-chart{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:.4rem .3rem;min-height:224px;display:grid}.hourly-bar-group{justify-items:center;gap:.35rem;display:grid}.hourly-bar-stack{justify-content:center;align-items:end;gap:.12rem;width:100%;min-height:190px;display:flex}.hourly-bar{border-radius:999px 999px 8px 8px;width:calc(50% - .08rem);min-height:0;display:block}.hourly-bar.total{background:#4b5a1f2e}.hourly-bar.found{background:linear-gradient(#26b27f,#0f8c61)}.hourly-label{color:#767388;font-size:.68rem;font-weight:700}.quality-grid{grid-template-columns:152px minmax(0,1fr);align-items:center;gap:1rem;min-height:224px;display:grid}.quality-ring{--quality:0%;background:radial-gradient(closest-side, #fffffff5 73%, transparent 74% 100%), conic-gradient(#0f8c61 0 var(--quality), #d7d2e6b8 var(--quality) 100%);text-align:center;border-radius:50%;place-items:center;width:152px;height:152px;margin:0 auto;display:grid}.quality-ring strong{font-size:1.5rem;line-height:1;display:block}.quality-ring span{color:var(--text-soft);margin-top:.2rem;font-size:.82rem;font-weight:700;display:block}.quality-legend{gap:.7rem;display:grid}.quality-legend-item{background:#f5f2ffeb;border-radius:16px;align-items:center;gap:.75rem;padding:.8rem .9rem;display:flex}.quality-legend-item strong{font-size:1.15rem;display:block}.quality-legend-item p{color:var(--text-soft);font-size:.82rem}.legend-dot{border-radius:999px;flex:none;width:.7rem;height:.7rem}.legend-dot.ok{background:var(--success)}.legend-dot.bad{background:var(--danger)}.scanner-chart{align-content:start;gap:.75rem;min-height:224px;display:grid}.scanner-chart-row{gap:.35rem;display:grid}.scanner-chart-head{justify-content:space-between;align-items:center;gap:.8rem;font-size:.88rem;font-weight:700;display:flex}.scanner-chart-track{background:#e2dfffe6;border-radius:999px;height:10px;overflow:hidden}.scanner-chart-fill{border-radius:inherit;background:linear-gradient(135deg,#9db51c,#4b5a1f);height:100%;display:block}.muted-text{color:var(--text-soft);font-size:.9rem}.search-input{max-width:320px;min-height:38px;padding:.62rem .85rem}.search-field{width:min(320px,100%);position:relative}.search-input-with-icon{max-width:none;padding-right:3rem}.search-icon-button{color:#6b6f59;border-radius:999px;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;display:inline-flex;position:absolute;top:50%;right:.45rem;transform:translateY(-50%)}.search-icon{width:1rem;height:1rem;display:block}.search-row{align-items:center;gap:.55rem;display:flex}.table-wrap{overflow:auto}.data-table tbody tr:hover{background:#9db51c0f}.table-primary{color:#1b1b24;font-size:.96rem;font-weight:700;line-height:1.15}.table-link{text-decoration:none}.table-link:hover{color:var(--primary)}.table-secondary{color:var(--text-soft);margin-top:.12rem;font-size:.76rem;line-height:1.2}.table-meta-list{gap:.1rem;display:grid}.table-meta-line{overflow-wrap:anywhere}.pill{letter-spacing:.06em;border-radius:999px;justify-content:center;align-items:center;min-width:66px;padding:.2rem .5rem;font-size:.68rem;font-weight:800;display:inline-flex}.pill.ok{background:var(--success-soft);color:var(--success)}.pill.bad{background:var(--danger-soft);color:var(--danger)}.pill.neutral{color:#615d74;background:#ece9f5}.actions-cell{text-align:right;white-space:nowrap}.actions-group{justify-content:flex-end;align-items:center;gap:.35rem;display:inline-flex}.split-grid{grid-template-columns:minmax(0,1.8fr) minmax(360px,.92fr);gap:1.25rem;display:grid}.article-detail-grid{grid-template-columns:minmax(320px,.95fr) minmax(0,1.2fr)}.barcode-detail-card{gap:1rem;display:grid}.barcode-visual{background:linear-gradient(#ffffffeb,#fafcf4fa);border-radius:22px;place-items:center;height:138px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #d5dcc0b8}.barcode-svg{width:calc(100% - 2.5rem);max-width:100%;height:102px;display:block}.barcode-value{letter-spacing:.12em;color:#1f230f;font-size:clamp(1.2rem,2vw,1.7rem)}.detail-list,.detail-data-grid{gap:.75rem;display:grid}.detail-list{grid-template-columns:1fr 1fr}.detail-data-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.detail-item{background:#f8fbf2f0;border-radius:18px;gap:.25rem;padding:.85rem .95rem;display:grid;box-shadow:inset 0 0 0 1px #d5dcc0ad}.detail-item span{color:#6b6f59;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:800}.detail-item strong{font-size:1rem;line-height:1.35}.detail-item-wide{grid-column:1/-1}.detail-nav-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.detail-nav-card{color:inherit;background:#f8fbf2f0;border-radius:20px;gap:.3rem;padding:1rem;text-decoration:none;display:grid;box-shadow:inset 0 0 0 1px #d5dcc0ad}.detail-nav-card span{color:#6b6f59;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:800}.detail-nav-card strong{font-size:1rem;line-height:1.35}.detail-nav-card small{color:var(--text-soft)}.detail-nav-card:hover{box-shadow:inset 0 0 0 1px #9db51cb8,0 12px 28px #4b5a1f14}.detail-nav-card.disabled{opacity:.65}.article-detail-actions{align-items:center}.detail-action-button{background:#f2f6e6fa;box-shadow:inset 0 0 0 1px #d5dcc0e0,0 10px 20px #4b5a1f14}.detail-action-button.primary-button{box-shadow:0 16px 26px #4b5a1f2e}.checkbox-row{align-items:center;gap:.7rem;display:flex}.checkbox-row input{width:18px;height:18px}.import-preview,.mapping-grid{gap:.85rem;display:grid}.import-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.narrow-page{max-width:920px}.compact{width:auto;min-width:0;min-height:38px;padding:.56rem .86rem}.article-stats .stat-card strong{line-height:1.15}.link-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-action{color:#4b5a1f;background:#f2f6e6f5;border:0;border-radius:7px;justify-content:center;align-items:center;width:26px;min-width:26px;height:26px;min-height:26px;padding:0;display:inline-flex;box-shadow:inset 0 0 0 1px #c7c4d899}.icon-action.danger{color:var(--danger)}.action-icon{width:10px;height:10px;display:block}.scanner-page{color:#fff;background:radial-gradient(circle at top,#9db51c3d,#0000 34%),linear-gradient(#2f3816,#252d12 48%,#1c220d 100%);min-height:100vh}.scanner-page.success{background:radial-gradient(circle at top,#13c2764d,#0000 36%),linear-gradient(#0c2d28,#091f1b 50%,#071613 100%)}.scanner-page.error{background:radial-gradient(circle at top,#f1537952,#0000 36%),linear-gradient(#361421,#210d14 52%,#19090f 100%)}.scanner-header{justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.2rem 0;display:flex}.scanner-brand{align-items:center;gap:.9rem;display:flex}.scanner-main{gap:1rem;padding:1rem;display:grid}.scanner-input{opacity:.01;pointer-events:none;width:1px;height:1px;position:fixed;top:-100px;left:0}.scanner-hero,.result-card{border-radius:28px;padding:1.4rem}.scanner-hero{text-align:center;background:#ffffff14}.scan-ring{background:linear-gradient(135deg,#9db51cf2,#4b5a1ff2);border-radius:28px;width:92px;height:92px;margin:0 auto 1rem;animation:2.2s infinite pulse;box-shadow:0 0 #6366f173}.barcode-preview{background:#ffffff14;border-radius:20px;margin-top:1rem;padding:.95rem 1rem;font-weight:700}.scanner-hero-actions{justify-content:center;margin-top:1rem;display:flex}.scanner-helper{margin-top:.85rem;font-size:.92rem}.scanner-helper.error{color:#ffb9c7}.camera-panel{color:#fff;background:#ffffff14}.camera-viewfinder{aspect-ratio:16/9;background:radial-gradient(circle at top,#9db51c33,#0000 32%),#0b0e1be6;border-radius:24px;position:relative;overflow:hidden}.camera-preview{object-fit:cover;width:100%;height:100%;display:block}.camera-frame{border:3px solid #ffffffe0;border-radius:20px;width:min(72%,420px);height:min(36%,150px);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #080a1842,0 0 32px #9db51c4d}.result-card{background:#ffffff14}.result-card.ok{background:#10b9812e}.result-card.bad{background:#f43f5e2e}.result-label{text-transform:uppercase;letter-spacing:.16em;opacity:.76;font-size:.72rem}.result-card h3{margin:.5rem 0 1rem;font-size:clamp(1.8rem,5vw,2.5rem)}.result-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.result-grid.single{grid-template-columns:1fr}.result-grid span,.muted{color:#ffffffb8}.result-grid strong{margin-top:.3rem;font-size:1.06rem;display:block}.scanner-history{color:#1b1b24;background:#ffffffeb}.history-list{gap:.75rem;display:grid}.history-item{background:#f6f2ff;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1rem;display:flex}.scanner-empty-state{color:#5d5c6d;font-size:.92rem}@keyframes pulse{0%,to{box-shadow:0 0 #818cf859}50%{box-shadow:0 0 0 18px #818cf800}}@media (width<=1100px){.stats-grid,.result-grid{grid-template-columns:1fr 1fr}.dashboard-analytics,.split-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:stretch}}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-menu-button{background:#fffffff0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:.24rem;width:42px;height:42px;display:inline-flex;box-shadow:inset 0 0 0 1px #c7c4d894}.mobile-menu-button span{background:#4b5a1f;border-radius:999px;width:16px;height:2px;transition:transform .16s,opacity .16s}.mobile-menu-button.active span:first-child{transform:translateY(6px)rotate(45deg)}.mobile-menu-button.active span:nth-child(2){opacity:0}.mobile-menu-button.active span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.mobile-menu-overlay{z-index:30;background:radial-gradient(circle at 100% 0,#9db51c2e,#0000 24%),linear-gradient(#f8fbf2fc,#f4f8eafc);padding:0;display:block;position:fixed;inset:0}.mobile-menu-panel{background:0 0;border-radius:0;align-content:start;gap:.9rem;width:100%;min-height:100vh;padding:1.15rem 1rem 1.4rem;display:grid;overflow-y:auto}.mobile-menu-header{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.mobile-menu-header h3{font-size:1.15rem}.mobile-menu-close{color:#4b5a1f;background:#f2f6e6f5;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.4rem;line-height:1;display:inline-flex}.mobile-menu-nav,.mobile-menu-actions{gap:.6rem;display:grid}.mobile-menu-link{color:#2c2942;background:#fffffff5;border-radius:18px;justify-content:flex-start;align-items:center;min-height:54px;padding:.95rem 1rem;font-size:1rem;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:inset 0 0 0 1px #d5dcc0ad}.mobile-menu-link.active{color:#fff;background:linear-gradient(135deg,#9db51c,#4b5a1f);box-shadow:0 10px 22px #4b5a1f2e}.mobile-menu-link.secondary{justify-content:center}.mobile-menu-divider{background:#c7c4d880;height:1px}.content-shell{padding:1rem}.stats-grid,.dashboard-analytics,.split-grid,.result-grid{grid-template-columns:1fr}.panel-header,.page-header{flex-direction:column;align-items:stretch}.topbar{padding:1rem}.topbar-logo-mobile{display:block}.topbar-copy{display:none}.header-actions,.search-row,.form-grid,.import-toolbar{flex-direction:column;align-items:stretch}.form-grid,.import-toolbar{grid-template-columns:1fr;display:grid}.search-input{max-width:none}.search-field{width:100%}.actions-cell{text-align:left}.quality-grid{grid-template-columns:1fr;min-height:0}.detail-list,.detail-nav-grid{grid-template-columns:1fr}.hourly-chart{grid-template-columns:repeat(6,minmax(0,1fr));min-height:180px}.hourly-bar-stack{min-height:150px}.responsive-table{min-width:0}.responsive-table thead{display:none}.responsive-table tbody{gap:.9rem;display:grid}.responsive-table tr{background:#ffffffe6;border:1px solid #c7c4d873;border-radius:22px;gap:.55rem;padding:1rem;display:grid}.responsive-table td{border:0;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:.85rem;padding:0;display:grid}.responsive-table td:before{content:attr(data-label);color:#767388;letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:800}.responsive-table td.actions-cell{grid-template-columns:120px minmax(0,1fr)}.responsive-table td.actions-cell:before{margin-bottom:0}.responsive-table .actions-group{justify-content:flex-start}}@media print{body{background:#fff}#root,.app-shell,.workspace-shell,.content-shell,.article-detail-page{background:#fff;display:block}.sidebar,.topbar,.mobile-menu-overlay,.no-print,.page-header .eyebrow,.page-header .page-description{display:none!important}.page-header{margin-bottom:1rem;display:block}.page-header h2{font-size:22pt}.article-detail-grid{display:block}.print-card{box-shadow:none;background:#fff;border:0;padding:0}.print-card .panel-header p{color:#222}.barcode-detail-card{gap:.6rem}.barcode-visual{break-inside:avoid;height:190px;box-shadow:inset 0 0 0 1px #bbb}.barcode-svg{width:calc(100% - 1.8rem);height:150px}.barcode-value{color:#000;font-size:18pt}}
