:root{
  --ky-green:#6BBF59;
  --ky-green-deep:#397D2B;
  --ky-green-dark:#215A2F;
  --ky-mint:#BFE8C6;
  --ky-blue:#123E6B;
  --ky-orange:#F07A39;
  --ky-yellow:#F6D85A;
  --ky-cream:#FFF8EC;
  --ky-card:#FFFFFF;
  --ky-soft:#F5FAF6;
  --ky-text:#2F3A31;
  --ky-muted:#7D877F;
  --ky-border:#E8E7DB;
  --ky-shadow:0 8px 24px rgba(63,84,57,.10);
  --ky-shadow-sm:0 4px 14px rgba(63,84,57,.08);
  --radius-xl:24px;
  --radius-lg:18px;
  --radius-md:14px;
  --page:16px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;background:#ecefe9;color:var(--ky-text)}
button,input{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
#prototype-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.prototype-nav{position:sticky;top:0;height:100vh;background:#143324;color:#fff;padding:22px 16px;overflow:auto}
.prototype-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}.prototype-brand img{width:54px;height:54px;object-fit:contain}.prototype-brand b,.prototype-brand span{display:block}.prototype-brand span{font-size:12px;opacity:.7;margin-top:3px}
.prototype-tip{font-size:12px;line-height:1.6;color:#cfe0d4;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px;margin:14px 0}
.prototype-nav nav{display:grid;gap:8px}.prototype-nav button{border:0;background:rgba(255,255,255,.07);color:#f3fff5;padding:11px 12px;border-radius:11px;text-align:left}.prototype-nav button:hover,.prototype-nav button.active{background:#6BBF59;color:#102c19;font-weight:700}
.prototype-meta{font-size:11px;line-height:1.7;color:#9fb7a7;margin-top:18px}
.stage{display:flex;justify-content:center;align-items:flex-start;padding:30px 20px 70px;background:radial-gradient(circle at 15% 0,#f8fbf7 0,#ecefe9 38%,#e5e8e2 100%)}
.phone-frame{width:390px;min-height:844px;background:var(--ky-cream);box-shadow:0 24px 70px rgba(21,49,31,.18);border-radius:34px;overflow:hidden;position:relative;border:1px solid rgba(30,60,35,.08)}
.page{min-height:844px;padding-bottom:86px;background:
 radial-gradient(circle at 12% 3%,rgba(202,235,188,.38),transparent 18%),
 radial-gradient(circle at 85% 20%,rgba(244,222,147,.18),transparent 20%),
 linear-gradient(180deg,#fffaf1 0,#fffdf7 58%,#f7f8ed 100%)}
.page::before,.page::after{content:"";position:absolute;pointer-events:none;border-radius:50%;filter:blur(.2px);opacity:.32}.page::before{width:120px;height:120px;left:-60px;top:116px;background:radial-gradient(circle,#b8d99d 0 7%,transparent 8%),conic-gradient(from 20deg,#d7ebc6 0 18%,transparent 18% 35%,#d7ebc6 35% 50%,transparent 50%)}.page::after{width:160px;height:80px;right:-76px;top:290px;background:#dfeccb;transform:rotate(-18deg)}
.statusbar{height:32px;padding:8px 18px 0;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;position:relative;z-index:4}.status-icons{letter-spacing:2px;font-size:10px}
.app-header{position:relative;z-index:3;padding:5px var(--page) 14px}.header-row{display:flex;align-items:center;justify-content:space-between;min-height:40px}.brand-logo{width:58px;height:46px;object-fit:contain}.page-title{font-size:19px;font-weight:800;letter-spacing:.04em;color:#202820}.back{border:0;background:transparent;font-size:28px;line-height:1;color:#2a5d2a;padding:0 6px 0 0}
.hero{margin:0 var(--page);border-radius:var(--radius-xl);padding:15px 16px;position:relative;overflow:hidden;background:linear-gradient(135deg,#fffef6 0,#f4f8de 54%,#e7f0cc 100%);border:1px solid #edf0da;box-shadow:var(--ky-shadow-sm)}
.hero::after{content:"";position:absolute;width:160px;height:90px;right:-28px;bottom:-28px;background:linear-gradient(135deg,rgba(131,177,98,.28),rgba(92,143,67,.06));border-radius:50% 50% 0 0;transform:rotate(-7deg)}
.hero-logo{display:block;width:72px;height:55px;object-fit:contain;margin:0 auto 2px;position:relative;z-index:2}.hero h1{margin:2px 0 3px;text-align:center;color:var(--ky-green-dark);font-size:23px;letter-spacing:.08em;position:relative;z-index:2}.hero p{text-align:center;margin:0;color:#6d7b68;font-size:11px;position:relative;z-index:2}
.info-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px var(--page);padding:13px 14px;background:rgba(255,255,255,.92);border-radius:16px;border:1px solid #ece8dc;box-shadow:var(--ky-shadow-sm);font-size:12px;position:relative;z-index:2}.info-strip b{font-size:13px}.info-chip{display:flex;align-items:center;gap:7px}.mini-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:9px;background:#edf6e8;color:var(--ky-green-deep);font-weight:800}
.success-banner{margin:0 var(--page) 14px;border-radius:19px;padding:15px 14px;color:white;background:linear-gradient(135deg,#3f8e36,#77c755);display:flex;gap:12px;align-items:center;box-shadow:0 9px 22px rgba(64,130,51,.22);position:relative;z-index:2;overflow:hidden}.success-badge{width:44px;height:44px;border-radius:50%;background:#f6fff0;color:#4c9842;display:grid;place-items:center;font-size:25px;font-weight:900;flex:0 0 auto}.success-banner h2{font-size:17px;margin:0 0 3px}.success-banner p{font-size:10.5px;line-height:1.5;margin:0;color:#eefbea}.success-banner::after{content:"✓";position:absolute;right:10px;bottom:-22px;font-size:88px;color:rgba(255,255,255,.16);font-weight:900}
.section{margin:14px var(--page);position:relative;z-index:2}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 3px 9px}.section-heading h3{font-size:16px;margin:0;color:var(--ky-green-dark)}.section-heading h3::before{content:"❧";margin-right:7px;color:var(--ky-green)}.section-heading a,.section-heading button{font-size:11px;color:var(--ky-green-deep);border:0;background:transparent;font-weight:700}
.food-list{display:grid;gap:9px}.food-card{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:11px;background:rgba(255,255,255,.94);border:1px solid #ebe8df;border-radius:17px;padding:10px 10px;box-shadow:var(--ky-shadow-sm)}.food-thumb{width:62px;height:62px;border-radius:15px;background:linear-gradient(145deg,#f4f9ed,#fff);display:grid;place-items:center;font-size:39px;border:1px solid #e7eadf;box-shadow:inset 0 2px 8px rgba(70,100,60,.05)}.food-main b{font-size:15px;display:block;margin-bottom:2px}.food-main small{display:block;color:#768076;font-size:11px;line-height:1.55}.food-result{text-align:right;min-width:75px}.food-result small{display:block;color:#6e776f;font-size:10px}.food-result strong{display:block;font-size:14px;color:#315f2e;margin:2px 0}.tag{display:inline-flex;align-items:center;gap:3px;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.tag.ok{background:#e4f5d3;color:#397d2b}.tag.trace{background:#e8f1f7;color:#285576}.tag.warn{background:#fff0cb;color:#9b6819}
.more-row{margin-top:9px;background:rgba(255,255,255,.9);border-radius:15px;padding:12px;text-align:center;color:var(--ky-green-deep);font-weight:700;font-size:13px;box-shadow:var(--ky-shadow-sm);border:1px solid #ece8de}
.summary-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff,#f8fbea);border-radius:20px;border:1px solid #dcebcf;padding:14px 14px 12px;box-shadow:var(--ky-shadow-sm)}.summary-card::after{content:"";position:absolute;width:110px;height:110px;right:-24px;top:-28px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(119,190,93,.28),rgba(119,190,93,0))}.summary-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:var(--ky-green-dark)}.summary-metrics{display:grid;grid-template-columns:1fr 1fr;margin:11px 0 12px}.metric{text-align:center;padding:2px 8px}.metric+ .metric{border-left:1px solid #dfe4d7}.metric strong{display:block;font-size:23px;color:var(--ky-green-deep)}.metric span{font-size:11px;color:#717b71}.primary-btn{width:100%;border:0;border-radius:13px;padding:11px 14px;background:linear-gradient(180deg,#6fbe4f,#4a9a39);color:white;font-weight:800;box-shadow:0 5px 12px rgba(65,128,54,.20)}.outline-btn{width:100%;border:1px solid #7aac64;border-radius:13px;padding:10px 14px;background:white;color:#397D2B;font-weight:800}.soft-btn{border:0;border-radius:12px;background:#edf6e8;color:#397d2b;padding:9px 12px;font-weight:700}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.promise{background:rgba(255,255,255,.87);border:1px solid #e9e7de;border-radius:14px;padding:10px 5px;text-align:center;box-shadow:var(--ky-shadow-sm)}.promise .pi{font-size:22px;margin-bottom:4px}.promise b{font-size:11px;display:block;color:#365f33}.promise span{font-size:9px;color:#7c847a;line-height:1.4;display:block;margin-top:3px}
.bottom-nav{position:absolute;left:0;right:0;bottom:0;height:73px;background:rgba(255,255,255,.97);border-top:1px solid #ebe8df;display:grid;grid-template-columns:repeat(3,1fr);z-index:8;padding-bottom:max(4px,env(safe-area-inset-bottom));box-shadow:0 -7px 20px rgba(48,72,44,.06)}.bottom-nav button{border:0;background:transparent;color:#868c86;font-size:10px;display:grid;place-items:center;align-content:center;gap:4px}.bottom-nav .nav-icon{font-size:22px;line-height:1}.bottom-nav button.active{color:var(--ky-green-deep);font-weight:800}

/* detail */
.detail-hero{margin:0 var(--page);padding:14px;border-radius:22px;background:linear-gradient(135deg,#f8fce9,#fffdf5);box-shadow:var(--ky-shadow-sm);border:1px solid #e8ebd8;display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center}.detail-thumb{height:88px;border-radius:20px;background:#fff;display:grid;place-items:center;font-size:60px;border:1px solid #e6e8df}.detail-hero h1{font-size:21px;margin:0 0 5px}.detail-hero p{margin:3px 0;color:#707b70;font-size:11px}.detail-card{background:rgba(255,255,255,.94);border:1px solid #e8e5dc;border-radius:18px;padding:14px;margin-top:10px;box-shadow:var(--ky-shadow-sm)}.detail-card h3{font-size:15px;color:var(--ky-green-dark);margin:0 0 11px}.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kv-item{padding:9px;border-radius:12px;background:#f7faf4}.kv-item span{font-size:10px;color:#80887d;display:block}.kv-item b{font-size:13px;margin-top:2px;display:block}.test-lines{display:grid;gap:8px}.test-line{display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed #e4e5db;padding:6px 0;font-size:12px}.test-line:last-child{border-bottom:0}.test-line strong{color:var(--ky-green-deep)}.doc-list{display:grid;gap:8px}.doc-row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:13px;background:#f7f9f4}.doc-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e6f2dd;color:#36742c}.doc-row b{font-size:12px}.doc-row span{font-size:10px;color:#7e877d;display:block;margin-top:2px}.doc-row em{margin-left:auto;font-style:normal;color:#5b7657}

/* report */
.report-cover{margin:0 var(--page);padding:13px 14px;border-radius:20px;background:linear-gradient(135deg,#f5f9df,#fff7e8);border:1px solid #ece8d9;position:relative;overflow:hidden}.report-cover::after{content:"🥕";position:absolute;right:5px;bottom:-18px;font-size:83px;opacity:.18;transform:rotate(-9deg)}.report-cover b{font-size:18px;color:var(--ky-green-dark)}.report-cover p{font-size:11px;color:#768073;margin:5px 0 0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px;background:rgba(255,255,255,.72);border-radius:13px;padding:8px}.stat{text-align:center}.stat+ .stat{border-left:1px solid #e4e5dc}.stat strong{font-size:18px;color:#3e7c32;display:block}.stat span{font-size:9px;color:#7b8178}.report-item{background:rgba(255,255,255,.94);border:1px solid #e8e5dc;border-radius:16px;padding:10px;display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;box-shadow:var(--ky-shadow-sm)}.report-item .ri{font-size:34px}.report-item b{font-size:13px}.report-item small{font-size:10px;color:#777f77;display:block;margin-top:2px}.report-values{font-size:11px;text-align:right;line-height:1.6}.report-values strong{color:#397d2b}.note-box{background:#fffdf2;border:1px solid #ebe2c7;border-radius:16px;padding:12px;font-size:10.5px;line-height:1.65;color:#576158}.note-box b{color:#315e2f;font-size:13px;display:block;margin-bottom:5px}

/* about */
.about-banner{margin:0 var(--page);height:190px;border-radius:24px;overflow:hidden;position:relative;background:#e8f1d4;border:1px solid #e5e8d7;box-shadow:var(--ky-shadow-sm)}.about-scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.about-scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,250,236,.96) 0%,rgba(255,250,236,.84) 37%,rgba(255,250,236,.20) 64%,rgba(255,250,236,0) 100%)}.about-scene-copy{position:absolute;z-index:2;left:17px;top:30px;width:220px}.about-scene-copy h1{margin:0;font-size:20px;line-height:1.4;color:var(--ky-green-dark);white-space:nowrap}.about-scene-copy p{margin:9px 0 0;color:#4d6250;font-size:12px;font-weight:700}.capability{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;background:rgba(255,255,255,.94);padding:13px;border-radius:18px;border:1px solid #e8e5dc;box-shadow:var(--ky-shadow-sm)}.cap-icon{height:58px;border-radius:17px;display:grid;place-items:center;font-size:31px;background:#e7f4da}.capability:nth-child(2) .cap-icon{background:#fff0da}.capability:nth-child(3) .cap-icon{background:#e3eff9}.capability b{font-size:15px;color:var(--ky-green-dark)}.capability p{font-size:10.5px;line-height:1.6;color:#6e766e;margin:4px 0 0}.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cert{height:103px;border-radius:13px;background:#fffdf6;border:1px solid #ebe2cf;display:grid;place-items:center;text-align:center;padding:8px;box-shadow:var(--ky-shadow-sm)}.cert .paper{width:55px;height:60px;background:linear-gradient(180deg,#fff,#fff4d5);border:2px solid #e6b85e;box-shadow:inset 0 0 0 3px #f9e8bd;font-size:8px;display:grid;place-items:center;color:#a27432}.cert span{font-size:9px;color:#626b62}
.brand-scene-card{border-radius:18px;overflow:hidden;background:#fff;border:1px solid #e4e8da;box-shadow:var(--ky-shadow-sm)}.brand-scene-card>img{display:block;width:100%;height:148px;object-fit:cover;object-position:center}.brand-scene-copy{padding:13px 14px 14px}.brand-scene-copy b{display:block;font-size:15px;color:var(--ky-green-dark)}.brand-scene-copy p{font-size:10.5px;line-height:1.7;color:#667267;margin:6px 0 0}.brand-scene-ending>img{height:136px;object-position:center 62%}.brand-scene-ending .brand-scene-copy{background:linear-gradient(135deg,#f4f9e9,#fff8e8)}

/* inspector */
.inspector-page{background:#f7faf4}.inspector-head{padding:10px var(--page) 12px;display:flex;align-items:center;justify-content:space-between}.inspector-head img{width:54px}.inspector-head h1{font-size:20px;margin:0}.day-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 var(--page) 12px}.day-stat{background:white;border-radius:15px;padding:10px;text-align:center;border:1px solid #e3e9df}.day-stat strong{font-size:20px;color:#397d2b;display:block}.day-stat span{font-size:10px;color:#7b847c}.supplier-block{margin:12px var(--page)}.supplier-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.supplier-title b{font-size:14px}.supplier-title span{font-size:10px;color:#768176}.task{background:white;border:1px solid #e3e8df;border-radius:16px;margin:7px 0;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;box-shadow:0 3px 11px rgba(61,83,57,.05)}.task b{font-size:14px}.task small{font-size:10px;color:#818982;display:block;margin-top:3px}.task-action{border:0;border-radius:10px;padding:8px 10px;background:#e5f4db;color:#397d2b;font-weight:800;font-size:11px}.task-action.done{background:#eef0ed;color:#747a75}.manual-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px var(--page)}
.entry-card{background:white;margin:8px var(--page);padding:15px;border-radius:20px;border:1px solid #e3e8df;box-shadow:var(--ky-shadow-sm)}.entry-card h2{font-size:19px;margin:0 0 4px}.entry-card .sub{font-size:10px;color:#7b847c}.input-block{margin-top:14px}.input-block label{font-size:12px;font-weight:700;display:block;margin-bottom:7px}.number-input{width:100%;border:1px solid #dbe4d7;border-radius:13px;padding:14px;font-size:24px;font-weight:800;color:#397d2b;background:#fbfdf9;outline:none}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.choice{border:1px solid #d9e4d5;background:#fff;border-radius:12px;padding:11px;font-weight:800;color:#58605a}.choice.selected{border-color:#6BBF59;background:#e8f6de;color:#397d2b}.choice.positive{color:#ad593f}.entry-actions{display:grid;gap:8px;margin-top:17px}

/* regulator */
.reg-page{background:#f6f8f4}.reg-header{background:#173e29;color:white;padding:12px var(--page) 15px}.reg-header .header-row{min-height:auto}.reg-header h1{font-size:18px;margin:0}.reg-header p{font-size:10px;color:#cde0d2;margin:4px 0 0}.reg-badge{display:inline-flex;margin-top:10px;font-size:10px;background:#d7f1d9;color:#265c2d;padding:4px 8px;border-radius:999px;font-weight:800}.reg-section{background:white;margin:10px var(--page);border-radius:17px;border:1px solid #e1e7de;overflow:hidden}.reg-section h3{font-size:13px;margin:0;padding:11px 12px;background:#f4f8f1;color:#335b35}.reg-table{display:grid;grid-template-columns:115px 1fr;font-size:11px}.reg-table div{padding:8px 11px;border-top:1px solid #edf0eb}.reg-table div:nth-child(odd){color:#798179}.reg-table div:nth-child(even){font-weight:600}.flow-list{display:grid;gap:7px;padding:10px}.flow-row{display:grid;grid-template-columns:90px 1fr auto;gap:8px;padding:8px;border-radius:10px;background:#f8faf7;font-size:10px}.flow-row b{font-size:11px}.flow-row span{color:#6e776f}.reg-docs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px}.reg-doc{border:1px solid #e2e8de;border-radius:10px;padding:9px;font-size:10px;background:#fbfdfb}.reg-doc b{font-size:11px;display:block;margin-bottom:3px}

@media(max-width:760px){
  html,body{scrollbar-width:none}
  html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}
  #prototype-shell{display:block}.prototype-nav{display:none}.stage{padding:0;background:var(--ky-cream)}.phone-frame{width:100%;min-height:100vh;border-radius:0;border:0;box-shadow:none}.page{min-height:100vh}
}
@media(min-width:761px){.phone-frame{height:auto}}

/* V1 customer mobile acceptance remediation (business review 2026-08-10) */
.customer-page{background:#fffaf1;padding-bottom:94px}
.customer-page::before,.customer-page::after{display:none}
.customer-header{background:rgba(255,253,247,.96);border-bottom:1px solid #eee8dc;padding-bottom:8px}
.customer-header .header-row{gap:8px}.customer-header .page-title{font-size:18px}.header-brand{font-size:9px;color:#6f7d70;margin-top:2px}
.customer-identity{display:flex;align-items:center;gap:12px;padding:10px 18px 8px;text-align:left;background:#fffdf8}.customer-brand-logo{flex:0 0 72px;width:72px;height:58px;object-fit:contain;background:transparent}.customer-identity-copy{min-width:0}.customer-identity-copy>span{display:inline-block;font-size:9px;color:#397d2b;background:#eaf5e1;padding:2px 8px;border-radius:999px}.customer-identity h1{font-size:20px;color:#1f522c;margin:4px 0 2px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-identity p{font-size:10.5px;color:#516352;font-weight:700;margin:0}.customer-service-line{padding:0 18px 9px;background:#fffdf8;color:#7a6a45;font-size:10px;font-weight:800;letter-spacing:.08em;text-align:right}
.home-hero{height:184px;margin:0 16px;border-radius:22px;overflow:hidden;position:relative;box-shadow:var(--ky-shadow);background:#dcebcf}.home-hero>img{width:100%;height:100%;object-fit:cover}.home-hero::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(20,63,35,.78))}.home-hero-copy{position:absolute;left:15px;right:15px;bottom:13px;z-index:2;color:#fff;display:flex;justify-content:space-between;align-items:end}.home-hero-copy b{font-size:19px}.home-hero-copy span{font-size:11px}
.overview-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:11px 16px}.overview-stats>div,.overview-stats>button{border:1px solid #e5e8dc;background:#fff;border-radius:15px;padding:10px 13px;text-align:left}.overview-stats strong{display:block;font-size:17px;color:#397d2b}.overview-stats span{font-size:10px;color:#747e75}.home-overview{margin-top:18px}
.food-card{grid-template-columns:72px 1fr 78px;text-align:left;padding:9px}.food-thumb{width:70px;height:66px;object-fit:cover;border-radius:14px;font-size:0;background:#f5f5ef}.food-main .category-pill{font-size:9px;color:#397d2b;background:#eaf5e1;border-radius:999px;padding:2px 7px;display:inline-block;margin-bottom:3px}.food-main b{font-size:14px}.food-result strong{font-size:10px;line-height:1.25}.card-arrow{display:block;font-size:25px;color:#6cad58;line-height:1;margin-top:3px}.category-meat .category-pill{background:#fff0e7;color:#a44838}.category-egg .category-pill{background:#fff7d6;color:#8a6422}
.customer-footer{margin:18px 16px 8px;height:112px;border-radius:17px;overflow:hidden;position:relative;background:#e6f2dd}.customer-footer img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.customer-footer p{position:absolute;left:10px;right:10px;bottom:6px;margin:0;text-align:center;background:rgba(255,255,255,.88);border-radius:8px;padding:4px;color:#245a31;font-size:8.5px;font-weight:700}.customer-footer.footer-vegetable img{object-position:center 48%}.customer-footer.footer-meat img,.customer-footer.footer-egg img{object-position:center 50%}.customer-footer.footer-report img{object-position:center 48%}.customer-footer.footer-history img{object-position:center 56%}
.product-detail{display:grid;gap:10px}.product-visual{height:180px;border-radius:22px;overflow:hidden;position:relative;background:#f1f5ea}.product-visual img{width:100%;height:100%;object-fit:cover}.product-visual span{position:absolute;left:12px;top:12px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.92);color:#397d2b;font-size:11px;font-weight:800}.product-heading{padding:3px 3px 0}.product-heading p{margin:0;color:#6c786e;font-size:11px}.product-heading h1{font-size:25px;margin:3px 0 7px;color:#244d31}.category-meat .product-heading h1{color:#8f3340}.category-egg .product-heading h1{color:#7d5c22}.trace-step{display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:center;padding:8px 0;border-top:1px dashed #e4e5dc}.trace-step:first-of-type{border-top:0}.trace-step>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e9f5e2;color:#397d2b;font-size:11px;font-weight:800}.trace-step b{font-size:12px}.trace-step p{margin:2px 0 0;color:#6e786f;font-size:11px}.detection-status{display:flex;align-items:center;justify-content:space-between;background:#f3f8ef;border-radius:12px;padding:10px;margin-bottom:8px}.detection-status span{font-size:11px;color:#657268}.detection-status strong{font-size:14px;color:#397d2b}
.today-report-head{display:flex;align-items:center;gap:12px;padding:15px;border-radius:20px;background:linear-gradient(135deg,#2f7734,#73b854);color:#fff;box-shadow:var(--ky-shadow)}.today-report-head>span{width:58px;height:58px;border-radius:17px;background:#fff;color:#397d2b;display:grid;place-items:center;font-size:18px;font-weight:900}.today-report-head h1{margin:0;font-size:22px}.today-report-head p{margin:3px 0 0;font-size:10px;color:#e7f5e5}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:10px 0;background:#fff;border:1px solid #ebe6dc;border-radius:17px;padding:10px}.report-summary>div{text-align:center}.report-summary>div+div{border-left:1px solid #e5e7df}.report-summary strong{display:block;color:#397d2b;font-size:20px}.report-summary span{font-size:9px;color:#737d74}.report-groups{display:grid;gap:11px}.report-group{background:#fff;border:1px solid #e9e5db;border-radius:18px;padding:10px;box-shadow:var(--ky-shadow-sm)}.report-group-title{display:flex;gap:9px;align-items:center;margin-bottom:8px}.report-group-title img{width:54px;height:43px;object-fit:cover;border-radius:11px}.report-group-title b,.report-group-title span{display:block}.report-group-title b{font-size:14px}.report-group-title span{font-size:9px;color:#747e75;margin-top:2px}.report-item{width:100%;box-shadow:none;border-radius:12px;margin-top:6px}.report-item .ri{width:46px;height:42px;object-fit:cover;border-radius:9px}.report-values span{display:block;color:#6caf59;font-size:18px}.report-notice{font-size:10px;color:#6b756c;line-height:1.6;background:#fffdf2;border:1px solid #eee5c9;border-radius:14px;padding:10px;margin-top:10px}
.history-intro-card{padding:17px;border-radius:20px;background:linear-gradient(135deg,#eef7e4,#fff5d9);border:1px solid #e3ead8}.history-intro-card>span{font-size:10px;color:#397d2b;font-weight:800}.history-intro-card h1{font-size:22px;margin:4px 0;color:#244d31}.history-intro-card p{font-size:11px;margin:0;color:#707a71}.history-timeline{margin-top:13px;border-left:2px solid #cfe3c3;margin-left:13px;padding-left:16px;display:grid;gap:10px}.history-entry{position:relative;width:100%;border:1px solid #e8e4da;border-radius:15px;background:#fff;padding:11px;display:grid;grid-template-columns:1fr auto;text-align:left;align-items:center}.history-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:#67ad52;border:3px solid #fff;box-shadow:0 0 0 2px #a9ce99;left:-24px;top:20px}.history-entry small,.history-entry b,.history-entry p{display:block}.history-entry small{color:#397d2b;font-size:9px}.history-entry b{font-size:15px;margin-top:2px}.history-entry p{font-size:9px;color:#788179;margin:3px 0 0}.history-entry>strong{font-size:24px;color:#67ad52}.history-empty-note{text-align:center;font-size:9.5px;color:#7b837b;margin-top:14px}
.about-intro{background:#fff;border:1px solid #e9e5db;border-radius:18px;padding:14px}.about-intro h2{font-size:18px;color:#24532e;margin:0}.about-intro p{font-size:10.5px;line-height:1.7;color:#68736a;margin:6px 0 0}.scroll-tip{font-size:9px;color:#758077}.qualification-scroll{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 11px;-webkit-overflow-scrolling:touch}.qualification-scroll::-webkit-scrollbar{height:4px}.qualification-scroll::-webkit-scrollbar-thumb{background:#bed6b2;border-radius:999px}.qualification-card{flex:0 0 145px;background:#fff;border:1px solid #e7e2d6;border-radius:15px;padding:8px;scroll-snap-align:start;text-align:left}.qualification-card img{display:block;width:100%;height:154px;object-fit:cover;object-position:top;border-radius:9px;background:#f4f1e8}.qualification-card span{display:block;font-size:10px;font-weight:700;color:#3a533d;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qualification-lightbox{display:none;position:fixed;inset:0;z-index:40;background:rgba(12,25,15,.88);padding:46px 18px 24px;align-items:center;justify-content:center;flex-direction:column}.qualification-lightbox.open{display:flex}.qualification-lightbox img{max-width:100%;max-height:74vh;object-fit:contain;border-radius:8px;background:#fff}.qualification-lightbox p{color:#fff;font-size:13px}.lightbox-close{position:absolute;top:16px;right:17px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.25);color:#fff;font-size:27px}.about-page .about-banner{height:170px}.about-page .about-scene-art{object-fit:cover}.about-page .about-scene-shade{background:linear-gradient(90deg,rgba(255,250,236,.98),rgba(255,250,236,.75) 52%,rgba(255,250,236,.08))}.about-page .about-scene-copy h1{white-space:normal}

/* V1.1 permission / history / simplified colloidal-gold refinements */
.date-link{border:0;background:transparent;color:var(--ky-text);font-size:12px;padding:0;font-weight:600}
.history-link{width:100%;border:0;background:transparent;color:var(--ky-green-deep);font-size:11px;font-weight:700;padding:9px 0 0}
.small-note{font-size:10.5px;line-height:1.7;color:#6e766e;margin:0}
.history-intro{margin-top:0}.history-range{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#edf7df,#fff8e8);border:1px solid #e2ead6;border-radius:17px;padding:13px 14px;box-shadow:var(--ky-shadow-sm)}.history-range b{font-size:15px;color:var(--ky-green-dark)}.history-range span{font-size:10px;color:#778078}
.history-day{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e8e5dc;border-radius:16px 16px 0 0;padding:11px 13px}.history-date b{font-size:14px;display:block}.history-date span{font-size:10px;color:#7b847c;display:block;margin-top:2px}.history-list{background:rgba(255,255,255,.94);border:1px solid #e8e5dc;border-top:0;border-radius:0 0 16px 16px;padding:4px 12px 7px;box-shadow:var(--ky-shadow-sm)}.history-list div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px dashed #e7e8df;font-size:11px}.history-list div:first-child{border-top:0}.history-list span{color:#397d2b;font-weight:700}.history-footer{margin:8px var(--page) 100px;text-align:center;font-size:10px;color:#7f877f}
.inspector-date{font-size:10px;color:#778078}.input-help{font-size:10px;color:#7a837b;margin-top:5px}.default-result-banner{margin-top:14px;border-radius:15px;padding:12px;background:linear-gradient(135deg,#e7f6dd,#f7fbed);display:flex;align-items:center;gap:10px;border:1px solid #d9ebcf}.default-result-banner>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#5dac49;color:#fff;font-weight:900}.default-result-banner b{font-size:13px;color:#326c2d}.default-result-banner p{margin:3px 0 0;font-size:10px;color:#708070}.readonly-tests{display:grid;gap:8px;margin-top:13px}.readonly-tests div{display:flex;justify-content:space-between;align-items:center;border-radius:12px;background:#f8faf6;padding:11px 12px;border:1px solid #e3e9df;font-size:12px}.readonly-tests b{color:#397d2b}
.reg-logo{width:58px;height:44px;object-fit:contain}.reg-ok{color:#317331!important}.reg-docs-2{grid-template-columns:1fr 1fr}

/* V1 PC administration console. Customer and inspector visuals remain unchanged. */
body.admin-console-active{background:#edf1eb;overflow:auto}body.admin-console-active #prototype-shell{display:block}body.admin-console-active .prototype-nav{display:none}body.admin-console-active .stage{padding:0;background:#edf1eb;display:block}body.admin-console-active .phone-frame{width:100%;max-width:none;min-height:100vh;height:auto;border:0;border-radius:0;box-shadow:none}
.admin-console{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr);background:#f3f5f1;color:#21372a}.admin-sidebar{position:sticky;top:0;height:100vh;background:#173e29;color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:2}.admin-brand{display:flex;gap:11px;align-items:center;padding:0 8px 20px;border-bottom:1px solid rgba(255,255,255,.13)}.admin-brand img{width:48px;height:40px;object-fit:contain}.admin-brand b,.admin-brand span{display:block}.admin-brand b{font-size:14px}.admin-brand span{font-size:8px;color:#acc4b3;margin-top:3px}.admin-sidebar nav{display:grid;gap:3px;padding:16px 0;overflow:auto}.admin-sidebar nav button{border:0;background:transparent;color:#cde0d2;text-align:left;border-radius:9px;padding:9px 12px;font-size:12px}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{background:#2f6242;color:#fff;font-weight:800}.admin-sidebar-foot{margin-top:auto;display:grid;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.13)}.admin-sidebar-foot span{font-size:9px;color:#acc4b3}.admin-sidebar-foot .outline-btn{border-color:#6f937b;color:#fff;background:transparent}
.admin-main{min-width:0}.admin-top{height:88px;background:#fff;border-bottom:1px solid #dfe5dc;padding:18px 30px;display:flex;justify-content:space-between;align-items:center}.admin-top p{margin:0;color:#7d897f;font-size:10px}.admin-top h1{margin:4px 0 0;font-size:23px}.admin-mode{font-size:10px;border-radius:999px;background:#e8f2e4;color:#2f6b39;padding:6px 10px;font-weight:800}.admin-content{padding:22px 28px 60px;max-width:1500px}.admin-loading,.admin-empty{padding:50px;text-align:center;background:#fff;border:1px solid #dfe5dc;border-radius:16px}.admin-empty b{font-size:17px}.admin-empty p{font-size:11px;color:#6d786f}
.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin-bottom:18px}.admin-kpi{background:#fff;border:1px solid #dfe5dc;border-radius:14px;padding:15px;box-shadow:0 3px 12px rgba(30,65,41,.04)}.admin-kpi span,.admin-kpi small,.admin-kpi strong{display:block}.admin-kpi span{font-size:10px;color:#718078}.admin-kpi strong{font-size:25px;margin:7px 0;color:#285f36}.admin-kpi small{font-size:9px;color:#8b948e}.admin-panel,.admin-card{background:#fff;border:1px solid #dfe5dc;border-radius:14px;padding:16px;margin:14px 0;box-shadow:0 3px 12px rgba(30,65,41,.04)}.admin-panel h2{font-size:15px;margin:0 0 9px}.admin-panel p{font-size:11px;color:#657168;line-height:1.7}.admin-boundaries{display:flex;flex-wrap:wrap;gap:8px}.admin-boundaries span{background:#eaf3e7;color:#306a39;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:15px}.admin-toolbar b,.admin-toolbar span{display:block}.admin-toolbar b{font-size:17px}.admin-toolbar span{font-size:10px;color:#748078;margin-top:3px}.admin-primary,.admin-actions button,.admin-toolbar button,.admin-filters button,.admin-table button{border:0;background:#2f773f;color:#fff;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:800}.admin-table button:not(.admin-primary){background:#e8f1e6;color:#326c3a}.admin-table button.danger,.danger{background:#fff0ed;color:#a24938;border:1px solid #f0d6cf}.admin-primary:disabled{opacity:.46;cursor:not-allowed}
.admin-card-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:12px}.admin-card{margin:0}.admin-card header{display:flex;justify-content:space-between;gap:12px;align-items:start;border-bottom:1px solid #edf0eb;padding-bottom:10px;margin-bottom:10px}.admin-card header b,.admin-card header small{display:block}.admin-card header b{font-size:13px}.admin-card header small{font-size:9px;color:#79827c;margin-top:3px}.admin-card label{display:grid;gap:5px;font-size:9.5px;color:#667269;margin:8px 0}.admin-card input,.admin-card select,.admin-inline-form input,.admin-inline-form select,.admin-filters input,.admin-filters select,.admin-search input{width:100%;font:inherit;border:1px solid #d9e1d7;border-radius:8px;padding:8px;background:#fbfcfa;color:#26372b}.admin-card fieldset{border:1px solid #e2e7df;border-radius:9px;margin:10px 0;padding:8px}.admin-card legend{font-size:9px;color:#6e796f}.admin-card label.admin-check{display:flex;align-items:center;gap:7px}.admin-check input{width:auto}.admin-message{min-height:16px;color:#2f773f;font-size:9px!important}.admin-policy-list{display:grid;gap:12px}.admin-form-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:9px}.admin-code{font:9px/1.7 Consolas,monospace;background:#f5f7f3;border-radius:8px;padding:9px;overflow-wrap:anywhere;color:#506156}
.admin-status{display:inline-block;border-radius:999px;background:#edf0ed;color:#59655d;padding:3px 7px;font-size:8.5px;font-weight:800;white-space:nowrap}.admin-status.enabled,.admin-status.active,.admin-status.pass,.admin-status.published,.admin-status.success,.admin-status.valid{background:#e4f3df;color:#2f7138}.admin-status.failed,.admin-status.fail,.admin-status.blocking,.admin-status.revoked,.admin-status.expired{background:#ffebe7;color:#a14034}.admin-status.pending,.admin-status.warning,.admin-status.running{background:#fff4d8;color:#8a6220}.admin-table-wrap{width:100%;overflow:auto;background:#fff;border:1px solid #dfe5dc;border-radius:12px}.admin-table{width:100%;border-collapse:collapse;font-size:10px}.admin-table th{text-align:left;color:#728078;background:#f5f7f3;padding:10px;border-bottom:1px solid #dfe5dc;white-space:nowrap}.admin-table td{padding:10px;border-bottom:1px solid #edf0eb;vertical-align:top}.admin-table tr:last-child td{border-bottom:0}.admin-table td b,.admin-table td small{display:block}.admin-table td small{font-size:8.5px;color:#808a82;margin-top:3px}.admin-table code{font-size:8.5px;overflow-wrap:anywhere}
.admin-filters,.admin-inline-form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin:10px 0;background:#fff;border:1px solid #dfe5dc;border-radius:11px;padding:10px}.admin-inline-form.hidden,.admin-panel.hidden{display:none}.admin-actions{display:flex;gap:7px;margin-top:10px}.admin-search{display:flex;gap:6px}.one-time-url{display:block;overflow-wrap:anywhere;background:#f4f7f2;padding:12px;border-radius:8px;font-size:10px}.public-test{border-top:1px dashed #dfe5dc;padding:9px 0}.public-test header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.public-test header b{font-size:12px}.public-test header span{font-size:10px;color:#397d2b;font-weight:800}
.qr-sheet{width:230px;max-width:100%;padding:12px;background:#fff;border:1px solid #dfe5dc;border-radius:10px;margin:10px 0}.qr-sheet svg{display:block;width:100%;height:auto}
.admin-panel label{display:grid;gap:5px;font-size:9.5px;color:#667269;margin:7px 0}.admin-panel input,.admin-panel select{width:100%;font:inherit;border:1px solid #d9e1d7;border-radius:8px;padding:8px;background:#fbfcfa;color:#26372b}.admin-panel label.admin-check{display:flex;align-items:center;gap:7px}.admin-panel .admin-check input{width:auto}.admin-panel fieldset{border:1px solid #e2e7df;border-radius:9px;margin:10px 0;padding:10px}.admin-panel legend{font-size:10px;color:#56675b;font-weight:800}.plan-project{display:grid;grid-template-columns:2fr 1fr;gap:10px;border-bottom:1px dashed #e3e8e0}.plan-project:last-child{border-bottom:0}.food-project-entry{margin:10px 0}.food-project-entry header{display:flex;justify-content:space-between;gap:10px}.food-project-entry header b,.food-project-entry header small{display:block}.food-project-entry .choice-row{margin:10px 0}.admin-status small{font-size:7px;opacity:.75}.reg-section>.detail-card{margin:10px}.reg-doc{display:flex;width:calc(100% - 20px);margin:8px 10px;justify-content:space-between;text-align:left;align-items:center}.reg-doc span{color:#5d7661}.reg-section article.detail-card{margin:10px}.reg-section article.detail-card h4{font-size:12px;color:#335b35;margin:12px 0 5px}
@media(max-width:1000px){.admin-console{grid-template-columns:190px minmax(0,1fr)}.admin-card-grid{grid-template-columns:1fr}.admin-form-row{grid-template-columns:1fr 1fr}.admin-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){body.admin-console-active .admin-console{min-width:900px}body.admin-console-active{overflow-x:auto}}@media print{.admin-sidebar,.admin-top,.admin-toolbar,.admin-table-wrap{display:none!important}.admin-console{display:block}.admin-content{padding:20px}.admin-panel{box-shadow:none}}
.qualification-fixed-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px;margin-bottom:16px}.expiry-alert{padding:10px 12px;border-radius:10px;background:#fff3da;color:#925b00;font-weight:700}.status-chip{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eef5ef;color:#335c3a;font-size:12px;font-weight:700}.status-chip.status-EXPIRING_SOON{background:#fff3da;color:#925b00}.status-chip.status-EXPIRED{background:#fdebea;color:#9b2f29}.product-picker{position:relative}.search-options{position:absolute;z-index:8;top:70px;left:0;right:0;max-height:260px;overflow:auto;background:#fff;border:1px solid #dbe4dc;border-radius:12px;box-shadow:0 12px 30px #1f3d2522;padding:6px}.search-options.chosen{display:none}.search-options button{display:flex;width:100%;justify-content:space-between;align-items:center;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1ed;padding:10px 12px}.search-options button:hover{background:#f3f8f3}.search-options small{color:#728075}.qr-preview{position:fixed;z-index:50;inset:0;background:#10201699;display:grid;place-items:center;padding:20px}.qr-preview.hidden{display:none}.qr-preview-dialog{width:min(440px,94vw);background:#fff;border-radius:18px;padding:22px;box-shadow:0 20px 60px #0004}.qr-preview-dialog>button:first-child{float:right}.qr-preview-dialog img{display:block;width:min(300px,80vw);margin:18px auto;background:#fff;border:1px solid #e1e7e2;padding:12px}.button-link{display:inline-flex;align-items:center;padding:9px 14px;border-radius:9px;background:#eff5ef;color:#24472b;text-decoration:none;font-weight:700}@media(max-width:760px){.qualification-fixed-grid{grid-template-columns:1fr}.search-options{position:static;margin-top:6px}}

/* Customer-owned brand assets: preserve the complete About banner artwork. */
.about-page .about-banner.about-image-only{height:auto;aspect-ratio:1916/821;background:#eef3e9}
.about-page .about-image-only .about-scene-art{object-fit:contain;object-position:center}
body.public-customer-host .prototype-nav,
body.public-admin-host .prototype-nav {
  display: none;
}

body.public-customer-host #prototype-shell,
body.public-admin-host #prototype-shell {
  grid-template-columns: 1fr;
}

body.public-customer-host .stage,
body.public-admin-host .stage {
  width: 100%;
}
