:root{--ink:#172e27;--muted:#60716a;--pine:#13382f;--pine2:#215444;--mint:#e5f1e9;--cream:#f9f8f3;--border:#dae2dc;--gold:#f6ca7d;--red:#aa514b;--radius:19px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f7f8f4;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e8ac4d;outline-offset:3px}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}
.header{height:89px;padding:0 max(22px,calc((100vw - 1170px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e8eee9}.brand{display:flex;align-items:center;gap:12px}.logo,.app-logo{display:grid;place-items:center;background:var(--pine);border-radius:15px;width:49px;height:49px;font-size:26px}.brand-name{font-weight:850;font-size:23px;letter-spacing:-.9px}.brand-name span{color:#9f8a53}.brand-caption{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#76847d}.small{font-size:12px}
main{max-width:1170px;margin:0 auto;padding:30px 22px 70px}.hero{display:flex;justify-content:space-between;align-items:center;background:radial-gradient(circle at 88% 20%,#36725e,transparent 38%),linear-gradient(125deg,#12352d,#1c4e3f);border-radius:28px;padding:47px 55px;color:white;overflow:hidden;min-height:294px}.hero h1{font-size:clamp(31px,4vw,49px);max-width:660px;line-height:1.12;letter-spacing:-1.9px;margin:16px 0}.hero h1 em{font-family:Georgia,serif;color:var(--gold);font-weight:400}.hero p{color:#c9dbd3;max-width:520px;margin:0 0 23px}.hero-tag{font-size:10px;font-weight:900;letter-spacing:2px}.led{display:inline-block;background:#ffcf7c;width:8px;height:8px;border-radius:50%;margin-right:7px}.hero-cat{font-size:165px;filter:grayscale(1) opacity(.24);transform:rotate(-16deg);user-select:none}.primary{border:0;border-radius:11px;background:var(--gold);color:#2b301c;font-weight:800;padding:12px 19px}.primary:hover{background:#ffd994}.outline{background:white;color:var(--pine);border:1px solid #bfcfc4;border-radius:11px;padding:11px 17px;font-weight:740}.outline:hover{background:#f1f6f2}.ghost{border:0;background:transparent;color:var(--muted);padding:11px 12px;font-weight:700}.ghost:hover{color:var(--pine)}.danger{color:var(--red)}.full{width:100%}
.tabs{display:flex;gap:6px;margin:32px 0 34px;padding:5px;background:#eff1eb;width:max-content;border-radius:14px}.tab{border:0;background:transparent;color:#79857d;border-radius:10px;font-weight:700;padding:12px 20px}.tab.active{background:white;box-shadow:0 2px 8px #20372e13;color:var(--pine)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:21px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:900;color:#a38d60}.section-heading h2,.dialog-header h2{font-size:28px;letter-spacing:-1px;margin:5px 0 0}.counter{border-radius:30px;padding:7px 12px;background:#e4eee5;font-size:12px;color:var(--pine2);font-weight:800}.toolbar{display:flex;gap:11px;margin-bottom:20px}.searchbox{display:flex;align-items:center;gap:9px;background:white;border:1px solid var(--border);border-radius:12px;flex:1;padding:0 14px}.searchbox span{font-size:24px;color:#8d9b91}.searchbox input{background:transparent;border:0;outline:0;flex:1;min-width:0;padding:15px 0;font-size:14px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:16px}.product-card,.method-card,.references,.comparison-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px}.product-card{display:flex;flex-direction:column;gap:16px;min-height:229px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.kind{background:#ecf3ed;color:#3a6650;font-size:11px;font-weight:800;padding:7px 10px;border-radius:30px}.source-badge{font-size:10px;font-weight:800;color:#8b7856}.source-badge.checked{color:#39775e}.product-card h3{font-size:19px;line-height:1.22;letter-spacing:-.5px;margin:0}.product-card h3 small{font-size:12px;font-weight:650;color:#95a09a;display:block;margin-bottom:5px}.product-card .figures{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #edf1ed;border-bottom:1px solid #edf1ed;gap:8px;padding:13px 0}.figure label{font-size:10px;letter-spacing:.4px;color:#7c8b83;font-weight:700;display:block}.figure strong{font-size:18px;letter-spacing:-.6px}.card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.card-actions button{background:transparent;color:var(--pine2);border:0;font-weight:800;padding:4px}.compare-check{font-size:12px;display:flex;align-items:center;gap:7px;color:#53675c}.compare-check input{accent-color:#275c48;width:17px;height:17px}.empty{grid-column:1/-1;padding:50px 20px;background:#fff;text-align:center;border:1px dashed #cbd8ce;border-radius:20px}.empty .empty-icon{font-size:40px}.empty h3{margin:10px 0 4px}.empty p{color:var(--muted);font-size:14px}
.hint{color:#667a6e;font-size:14px;line-height:1.6}.comparison-placeholder{background:#fff;border:1px dashed #cbd8ce;border-radius:19px;padding:35px;color:#829188;text-align:center}.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.comparison-card h3{font-size:19px;margin:0 0 20px}.comparison-card h3 span{display:block;color:#839389;font-size:12px;font-weight:650;margin-bottom:4px}.compare-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #edf2ed;font-size:12px;color:#677c70}.compare-line b{font-size:15px;color:var(--pine);text-align:right}.micro{color:#83928a;font-size:11px;line-height:1.65}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.method-card h3{margin:11px 0 7px;font-size:17px}.method-card p{margin:0;color:#62756a;line-height:1.6;font-size:13px}.method-icon{font-size:12px;font-weight:900;color:#ac925c}.references{margin-top:20px}.references h3{margin:0 0 15px}.references p{margin:9px 0}.references a{color:#1d6752;text-underline-offset:3px;font-size:14px}footer{text-align:center;padding:24px;color:#8a9890;font-size:10px;font-weight:800;letter-spacing:1.5px}footer span{color:#c5aa78}
.sheet{width:min(760px,calc(100vw - 30px));max-width:none;max-height:calc(100dvh - 34px);overflow-y:auto;border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 90px #061e1655;padding:25px;background:var(--cream);color:var(--ink)}.sheet::backdrop{background:#071c18b8;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;gap:10px;align-items:start;margin-bottom:26px}.close{width:36px;height:36px;border:0;border-radius:50%;background:#e9eee8;font-size:25px;color:#435b50}.sheet label:not(.check-label):not(.photo-drop){font-size:12px;font-weight:800;color:#54675a;display:block}.sheet input:not([type=checkbox]):not([type=file]),.sheet select,.sheet textarea{margin-top:6px;border-radius:9px;border:1px solid #cfd9ce;background:#fff;width:100%;padding:11px 12px;min-width:0;color:var(--ink);font-size:13px}.sheet input::placeholder{color:#aebbb3}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:17px}.form-grid.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.barcode-row{display:flex;gap:10px;align-items:end;margin-bottom:6px}.barcode-row label{flex:1}.barcode-row button{white-space:nowrap}.warning{margin:6px 0 20px}.form-subtitle{font-size:16px;border-top:1px solid var(--border);padding-top:18px;margin:18px 0}.form-subtitle span{font-size:12px;font-weight:400;color:#718176}.extra{margin:14px 0 19px;background:#fff;border-radius:12px;border:1px solid var(--border);padding:15px}.extra summary{cursor:pointer;color:var(--pine);font-weight:800;font-size:13px}.extra label{margin-top:12px}.extra .form-grid{margin-top:10px}.check-label{display:flex;align-items:start;gap:10px;font-size:12px;line-height:1.5;color:#576b60;cursor:pointer}.check-label input{width:18px;height:18px;accent-color:#2b6652;flex:none}.photo-drop{display:flex;gap:12px;align-items:center;background:#eef4eb;padding:16px;border:1px dashed #b8cdbb;border-radius:12px;margin-top:18px;cursor:pointer}.photo-drop>span:first-child{font-size:25px}.photo-drop strong,.photo-drop small{display:block}.photo-drop strong{font-size:13px}.photo-drop small{font-size:11px;color:#788a80;margin-top:4px}.photo-drop input{display:none}.photo-preview{font-size:12px;color:#617669;margin-top:7px}.photo-preview img{max-height:150px;max-width:100%;border-radius:9px;display:block;margin-top:8px}.actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.pill{display:inline-block;padding:5px 10px;background:#e8f1e7;color:#39735b;border-radius:30px;font-size:10px;font-weight:900;margin:0 8px 10px 0}.pill.unverified{background:#fff0dd;color:#8b672b}.analysis-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:17px}.analysis-kpi{background:white;border:1px solid var(--border);border-radius:12px;padding:14px}.analysis-kpi span{font-size:10px;color:#687e70;display:block}.analysis-kpi strong{font-size:20px;margin:8px 0 0;display:block}.analysis-kpi small{display:block;font-size:10px;color:#829185}.alerts{border-radius:12px;background:#fff2dc;border:1px solid #f0dcba;padding:13px 17px;font-size:12px;line-height:1.5;color:#725a31}.alerts ul{padding-left:18px;margin:7px 0}.details-title{font-size:14px;margin:22px 0 10px}.analysis-table{width:100%;border-collapse:collapse;font-size:12px}.analysis-table td{border-bottom:1px solid #e0e8df;padding:11px 5px}.analysis-table td:last-child{text-align:right;font-weight:850}.analysis-photo{max-width:100%;max-height:320px;object-fit:contain;border-radius:12px;border:1px solid var(--border)}.methods-note{font-size:11px;color:#687c70;line-height:1.5}.methods-note li{margin-bottom:5px}.scan-dialog video{width:100%;height:250px;background:#142f27;border-radius:12px;object-fit:cover}.scan-dialog .barcode-row{margin-top:17px}.scan-dialog .barcode-row input{margin:0}.login-shell{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#346c57,transparent 35%),linear-gradient(140deg,#102f27,#1e4f40);padding:22px}.login-card{max-width:430px;background:#fff;padding:42px;border-radius:22px;box-shadow:0 30px 80px #06150f44}.login-card .app-logo{margin-bottom:28px}.login-card h1{font-size:35px;line-height:1.08;letter-spacing:-1.7px;margin:13px 0}.login-card p{line-height:1.6;color:#63796c;font-size:14px}.login-card label{display:block;font-size:12px;font-weight:700;margin:25px 0 8px}.login-card input{border:1px solid var(--border);border-radius:10px;padding:14px;width:100%;margin-bottom:12px}.login-card .micro{margin-top:27px}.toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);background:#183d31;color:white;padding:12px 22px;border-radius:12px;box-shadow:0 8px 40px #15251e44;font-size:13px;z-index:10;display:none;max-width:calc(100vw - 32px)}.toast.show{display:block}
@media(max-width:760px){.header{padding:0 18px;height:74px}.brand-name{font-size:21px}.brand-caption{letter-spacing:.7px;font-size:8px}.logo{width:42px;height:42px}.header .ghost{font-size:0;padding:8px}.header .ghost span{font-size:23px}main{padding:18px 15px 58px}.hero{min-height:255px;padding:27px 23px;border-radius:20px}.hero h1{font-size:34px;letter-spacing:-1.3px}.hero p{font-size:13px}.hero-cat{display:none}.tabs{width:100%;display:flex;margin:22px 0}.tab{flex:1;padding:11px 6px;font-size:12px}.section-heading h2{font-size:24px}.toolbar{gap:7px}.toolbar .outline{font-size:12px;padding:9px}.product-grid{grid-template-columns:1fr}.method-grid{grid-template-columns:1fr}.form-grid.thirds{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid:not(.thirds){grid-template-columns:1fr}.sheet{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);padding:18px;border-radius:16px}.barcode-row{flex-wrap:wrap}.barcode-row label{flex-basis:100%}.barcode-row button{flex:1}.analysis-summary{grid-template-columns:repeat(2,1fr)}.compare-grid{gap:7px}.comparison-card{padding:14px}.comparison-card h3{font-size:15px}.compare-line{display:block}.compare-line b{display:block;text-align:left;margin-top:5px}.login-card{padding:29px}}

.profile-card{background:var(--surface,#fff);border:1px solid #d9e6df;border-radius:20px;padding:24px;box-shadow:0 8px 28px #102d1b0b;margin:18px 0}
.rating-box{border:1px solid #b4dec7;background:linear-gradient(125deg,#e6f7ee,#fffdf6);border-radius:20px;padding:20px;margin:22px 0}
.rating-box strong.score-large{font-size:2.1rem;line-height:1.8;display:block;color:#124b38}
.rating-box small{display:block;color:#4a665c;font-size:.8rem;line-height:1.5}
.analysis-table small{display:block;font-size:.73rem;color:#779080}
@media(max-width:640px){.profile-card{padding:15px}.rating-box strong.score-large{font-size:1.7rem}}
.profile-card label:not(.check-label){font-size:12px;font-weight:800;color:#54675a;display:block}
.profile-card input:not([type=checkbox]),.profile-card select{display:block;margin-top:6px;border-radius:9px;border:1px solid #cfd9ce;background:#fff;width:100%;padding:12px;color:#172e27;font-size:13px}
.profile-card .check-label{margin:6px 0 20px}
/* v1.2 — extraction and human verification */
.photo-actions,.source-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.photo-actions small,.source-actions .micro{flex:1;min-width:220px;color:#607970;line-height:1.45}
.review-candidate{display:flex!important;align-items:start!important;gap:13px!important;padding:14px;border:1px solid #d9e7da;border-radius:12px;background:white;margin-bottom:10px;cursor:pointer}
.review-candidate input{flex:none;width:20px;height:20px;accent-color:#266d55;margin-top:3px}
.review-candidate span{display:block;min-width:0}.review-candidate b{font-size:14px;color:#164d39;display:block;margin-bottom:5px}
.review-candidate small{display:block;font-size:11px;line-height:1.45;color:#738579;font-weight:400;margin-top:4px;overflow-wrap:anywhere}
.raw-text{background:#f5f7f2;border:1px solid #e0e7dd;padding:13px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.45;max-height:320px;overflow:auto}
.source-meta{font-size:12px;overflow-wrap:anywhere;line-height:1.6}.source-meta a{color:#17684d}
.candidate-list{margin-top:15px}
@media(max-width:580px){.photo-actions .outline,.source-actions .outline{width:100%}.sheet .review-candidate{padding:12px}}
