:root{--teal:#002f3a;--blue:#00729e;--sky:#47bfec;--ink:#111;--muted:#5b6670;--line:#dde3e7;--bg:#f6f8f9;--white:#fff;
--ok:#12784a;--okbg:#e5f4ec;--warn:#9a5b00;--warnbg:#fff3dc;--bad:#b3261e;--badbg:#fde8e6;--info:#00729e;--infobg:#e3f2f8;
--r:10px;font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;-webkit-tap-highlight-color:rgba(0,0,0,.08);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5}
a{color:var(--blue)}
img{max-width:100%}
button,input,select,textarea{font:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 16px}
.demo-bar{background:#111;color:#fff;font-size:12px;text-align:center;padding:5px 10px}
.demo-bar a{color:#fff}
header.top{background:var(--teal);color:#fff}
header.top .wrap{display:flex;align-items:center;gap:12px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;letter-spacing:.2px}
.brand img{width:34px;height:34px;display:block}
.brand small{display:block;font-weight:400;font-size:11px;opacity:.8}
nav.main{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
nav.main a{color:#fff;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:14px}
nav.main a:hover,nav.main a.on{background:rgba(255,255,255,.12)}
@media(max-width:720px){nav.main{width:100%;margin:0 0 8px;overflow-x:auto;flex-wrap:nowrap}nav.main a{white-space:nowrap}}
footer.foot{margin-top:48px;background:var(--teal);color:#cfe0e5;font-size:13px;padding:28px 0}
footer.foot a{color:#fff}
footer.foot .cols{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
h1,h2,h3{line-height:1.2;margin:0 0 .4em}
h1{font-size:28px}h2{font-size:21px}h3{font-size:17px}
@media(min-width:900px){h1{font-size:38px}}
.muted{color:var(--muted)}.small{font-size:13px}
.hero{background:var(--teal);color:#fff;padding:28px 0 36px}
.hero p{color:#cfe0e5;max-width:620px}
.hero .search{display:flex;gap:8px;margin-top:16px;max-width:640px}
.hero .search input{flex:1;padding:14px 16px;border-radius:10px;border:0;font-size:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:10px;border:1px solid var(--teal);background:var(--teal);color:#fff;text-decoration:none;font-weight:500;cursor:pointer;font-size:14px;line-height:1.2}
.btn:hover{filter:brightness(1.12)}
.btn.ghost{background:#fff;color:var(--teal)}
.btn.light{background:#fff;color:var(--teal);border-color:#fff}
.btn.ok{background:var(--ok);border-color:var(--ok)}
.btn.bad{background:var(--bad);border-color:var(--bad)}
.btn.warn{background:#fff;color:var(--warn);border-color:var(--warn)}
.btn.sm{padding:6px 10px;font-size:13px;border-radius:8px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}
@media(min-width:760px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card.link{text-decoration:none;color:inherit;display:block}
.card.link:hover{border-color:var(--teal)}
.section{padding-top:28px;padding-bottom:28px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--ink)}
.chip.on{background:var(--teal);border-color:var(--teal);color:#fff}
.filters{display:grid;gap:10px;margin:14px 0;grid-template-columns:1fr 1fr}
@media(max-width:759px){.filters .field:last-child{display:none}}
@media(min-width:760px){.filters{grid-template-columns:2fr 1fr 1fr}}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:13px;font-weight:500}
.field .hint{font-size:12px;color:var(--muted)}
input[type=text],input[type=search],input[type=email],input[type=date],select,textarea{width:100%;padding:10px 12px;border:1px solid #c7d0d6;border-radius:8px;background:#fff}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--sky);border-color:var(--sky)}
.biz-list{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:760px){.biz-list{grid-template-columns:1fr 1fr}}
@media(min-width:1050px){.biz-list{grid-template-columns:1fr 1fr 1fr}}
.biz{display:flex;gap:12px;align-items:flex-start}
.letter{flex:none;width:46px;height:46px;border:2px solid #111;display:flex;align-items:center;justify-content:center;font:900 22px Montserrat,sans-serif;background:#fff;color:#111}
.letter.multi{font-size:13px;letter-spacing:.5px}
.biz h3{font-size:15px;margin:0 0 2px}
.tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:#333;white-space:nowrap}
.tag.cy{background:var(--infobg);border-color:#bfe0ee;color:#004f6e}
.tag.ncy{background:var(--warnbg);border-color:#f2d9a6;color:var(--warn)}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.st-draft{background:#eceff1;color:#455a64}
.st-pending_owner{background:var(--warnbg);color:var(--warn)}
.st-pending_ka{background:var(--infobg);color:var(--info)}
.st-approved{background:var(--okbg);color:var(--ok)}
.st-rejected{background:var(--badbg);color:var(--bad)}
.st-needs_info{background:#fff0e0;color:#a14a00}
.st-revoked{background:#111;color:#fff}
.k-badge{font:700 11px Montserrat,sans-serif;border:1.5px solid #111;padding:1px 6px;border-radius:4px;white-space:nowrap}
.k-X{background:var(--bad);border-color:var(--bad);color:#fff}
.how{display:grid;gap:10px;grid-template-columns:1fr;counter-reset:s}
@media(min-width:760px){.how{grid-template-columns:repeat(4,1fr)}}
.how .card{position:relative;padding-top:38px}
.how .card:before{counter-increment:s;content:counter(s);position:absolute;top:12px;left:16px;font:800 13px Montserrat;background:#111;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}
/* ---------- certificate label ---------- */
.label-wrap{display:flex;justify-content:center;padding:18px 0}
.klabel{background:#fff;width:100%;max-width:880px;border:1px solid #e3e3e3;box-shadow:0 1px 0 #ddd;font-family:Montserrat,Poppins,sans-serif;color:#000;position:relative;padding:0 0 18px}
.klabel .bar{background:#000;color:#fff;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-weight:800;letter-spacing:3px;font-size:13px;margin-top:22px}
.klabel .bar span:last-child{letter-spacing:1px;font-weight:600;font-size:11px}
.klabel .body{display:grid;grid-template-columns:1fr;gap:18px;padding:18px}
@media(min-width:760px){.klabel .body{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);padding:24px 28px}}
.ktable{border:2.5px solid #000;display:flex;flex-direction:column}
.ktable>div{border-bottom:2px solid #000}
.ktable>div:last-child{border-bottom:0}
.ktop{display:grid;grid-template-columns:110px 1fr}
.ktop .big{border-right:2px solid #000;display:flex;align-items:center;justify-content:center;font-size:92px;font-weight:900;line-height:1;padding:6px}
.ktop .big.multi{flex-direction:column;font-size:44px;gap:4px}
.kstack>div{padding:9px 12px}
.kstack>div:first-child{border-bottom:2px solid #000}
.krow{display:grid;grid-template-columns:1fr 1fr 1fr}
.krow>div{padding:9px 12px;border-right:2px solid #000;min-width:0}
.krow>div:last-child{border-right:0}
.kissued{padding:9px 12px}
.kl{font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:3px}
.kv{font-size:14px;font-weight:600;line-height:1.3;overflow-wrap:break-word}
.kname{font-size:26px;font-weight:900;text-transform:uppercase;line-height:1.05;letter-spacing:.5px}
.kspaced{font-size:18px;font-weight:800;letter-spacing:.55em;text-align:center;padding:10px 4px;text-transform:uppercase}
.show-sm{display:none}
@media(max-width:480px){.ktop{grid-template-columns:76px 1fr}.ktop .big{font-size:60px}.ktop .big.multi{font-size:32px}.kname{font-size:19px}.kspaced{font-size:13px;letter-spacing:.35em}.krow>div{padding:7px 8px}.kv{font-size:12.5px}.kl{font-size:9px;letter-spacing:.8px}.hide-sm{display:none}.show-sm{display:inline}}
.kside{display:flex;flex-direction:column;align-items:center;gap:12px;justify-content:space-between;min-height:100%}
.kqr{border:2.5px solid #000;padding:10px;background:#fff;text-align:center;width:100%;max-width:240px}
.kqr svg,.kqr img{width:100%;height:auto;display:block}
.kqr .kl{margin-top:6px;margin-bottom:0}
.kstamp{border:3px solid #000;padding:6px 14px;font-weight:900;letter-spacing:3px;font-size:20px;text-transform:uppercase}
.kstamp.expired,.kstamp.revoked{border-color:var(--bad);color:var(--bad)}
.kstamp.soon{border-color:var(--warn);color:var(--warn)}
.kwa{position:absolute;right:22px;bottom:18px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:#000}
.kwa svg{width:46px;height:46px}
.kfoot{padding:0 28px;font-size:11px;font-weight:600;letter-spacing:.5px;padding-right:90px}
.ksample{position:absolute;top:0;left:0;right:0;font-size:10px;letter-spacing:1px;text-transform:uppercase;text-align:center;padding:4px;color:#555}
@media print{body *{visibility:hidden}.klabel,.klabel *{visibility:visible}.klabel{position:absolute;left:0;top:0;border:0;box-shadow:none}.noprint{display:none!important}}
/* ---------- verify ---------- */
.result{border-radius:var(--r);padding:18px;border:2px solid}
.result.valid{background:var(--okbg);border-color:var(--ok)}
.result.expired,.result.revoked,.result.notfound{background:var(--badbg);border-color:var(--bad)}
.result.soon{background:var(--warnbg);border-color:var(--warn)}
.result .big{font:900 26px Montserrat;letter-spacing:1px}
video#cam{width:100%;max-width:420px;border-radius:10px;background:#000;display:none}
/* ---------- app shell ---------- */
.appbar{background:#fff;border-bottom:1px solid var(--line)}
.appbar .wrap{display:flex;gap:10px;align-items:center;min-height:56px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.who{display:flex;align-items:center;gap:8px;margin-left:auto}
.who select{width:auto;max-width:260px;padding:7px 10px;font-size:13px}
.bell{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.bell .n{position:absolute;top:-6px;right:-6px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:19px;height:19px;padding:0 5px;display:flex;align-items:center;justify-content:center}
.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);background:#fff}
.tabs a{padding:12px 14px;text-decoration:none;color:var(--muted);font-weight:500;font-size:14px;white-space:nowrap;border-bottom:2.5px solid transparent}
.tabs a.on{color:var(--teal);border-bottom-color:var(--teal)}
.tabs a .c{background:var(--bg);border-radius:999px;padding:0 7px;font-size:12px;margin-left:4px}
.tabs a .c.hot{background:var(--bad);color:#fff}
.page{padding-top:18px;padding-bottom:18px}
.ptitle{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.ptitle h1{font-size:24px;margin:0}
.stats{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:14px}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.stat b{font-size:24px;display:block}
.stat span{font-size:12px;color:var(--muted)}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
table.t th,table.t td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}
table.t th{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:#fafbfc}
table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:#f7fbfc}
@media(max-width:720px){table.t.resp thead{display:none}table.t.resp tr{display:block;border-bottom:1px solid var(--line);padding:8px 4px}table.t.resp td{display:block;border:0;padding:3px 10px}table.t.resp td[data-l]:before{content:attr(data-l)": ";color:var(--muted);font-size:12px}}
.plist{display:grid;gap:8px}
.prow{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:6px 10px;cursor:pointer;text-decoration:none;color:inherit}
.prow:hover{border-color:var(--teal)}
.prow .nm{font-weight:600}
.prow .meta{font-size:12px;color:var(--muted);grid-column:1/-1}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input[type=search]{flex:1;min-width:180px}
.toolbar select{width:auto}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}
.timeline li{padding:0 0 14px 16px;position:relative;font-size:14px}
.timeline li:before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--teal)}
.timeline .when{font-size:12px;color:var(--muted)}
.timeline .cm{background:var(--bg);border-radius:8px;padding:6px 10px;margin-top:4px}
.att{display:flex;gap:8px;flex-wrap:wrap}
.att .a{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px;background:#fff;display:flex;gap:8px;align-items:center}
.att .a img{width:44px;height:44px;object-fit:cover;border-radius:4px}
.notif{display:grid;grid-template-columns:auto 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.notif.unread{border-left:4px solid var(--bad)}
.notif .ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--bg)}
.notif .ic.bad{background:var(--badbg)}.notif .ic.ok{background:var(--okbg)}.notif .ic.warn{background:var(--warnbg)}
.notif .todo{background:var(--warnbg);border-radius:8px;padding:6px 10px;font-size:13px;margin-top:6px}
.chans{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chans span{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--muted)}
.chans span.sent{color:var(--ok);border-color:#b9dfc9;background:var(--okbg)}
.drawer{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:50;display:none}
.drawer.open{display:block}
.drawer .panel{position:absolute;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--bg);overflow:auto;padding:16px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:60;display:none;align-items:flex-start;justify-content:center;padding:30px 12px;overflow:auto}
.modal.open{display:flex}
.modal .box{background:#fff;border-radius:12px;padding:18px;width:min(560px,100%)}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:10px;z-index:80;font-size:14px;display:none;max-width:90%}
.drop{border:2px dashed #b8c4cb;border-radius:var(--r);padding:20px;text-align:center;background:#fff}
.drop.over{border-color:var(--sky);background:var(--infobg)}
.suggest{border:1px solid #bfe0ee;background:var(--infobg);border-radius:8px;padding:8px 10px;font-size:13px}
.suggest button{margin:4px 4px 0 0}
.steps{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0 12px}
.steps span{font-size:12px;padding:4px 10px;border-radius:999px;background:#eceff1;color:#607d8b}
.steps span.done{background:var(--okbg);color:var(--ok)}
.steps span.cur{background:var(--teal);color:#fff}
.steps span.badstep{background:var(--badbg);color:var(--bad)}
.kv2{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:14px}
.kv2 dt{color:var(--muted)}.kv2 dd{margin:0}
.sep{height:1px;background:var(--line);margin:14px 0}
.empty{padding:30px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--r)}
.callout{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:var(--r);padding:14px 16px}
/* ===================== v2 label UI (portal + admin) ===================== */
body.label-ui{background:#fff}
.label-ui .demo-bar{background:#fff;color:#000;border-bottom:1px solid #000}
.label-ui .demo-bar a{color:#000}
.label-ui header.top{background:#000}
.label-ui header.top .wrap{min-height:64px}
.label-ui .brand{font-family:Montserrat,sans-serif;font-weight:800;letter-spacing:1px;text-transform:uppercase;font-size:14px}
.label-ui .brand small{letter-spacing:.5px;text-transform:none;font-weight:500}
.label-ui nav.main a{border-radius:0;font-weight:600;font-size:13px;letter-spacing:.5px;text-transform:uppercase}
.label-ui nav.main a.on{background:none;box-shadow:inset 0 -3px 0 #fff}
.label-ui footer.foot{background:#fff;color:#000;border-top:2px solid #000}
.label-ui footer.foot a,.label-ui footer.foot b{color:#000!important}
.label-ui .appbar{border-bottom:2px solid #000}
.label-ui .appbar b{font-family:Montserrat,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.label-ui .tabs{border-bottom:2px solid #000}
.label-ui .tabs a{color:#000;font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.8px}
.label-ui .tabs a.on{border-bottom:3px solid #000;color:#000}
.label-ui .tabs a .c{background:#000;color:#fff;border-radius:0}
.label-ui .tabs a .c.hot{background:#000}
.label-ui .card,.label-ui .stat,.label-ui .prow,.label-ui table.t,.label-ui .callout,.label-ui .notif,.label-ui .empty,.label-ui .drop{border-radius:0;border:2px solid #000;box-shadow:none}
.label-ui .callout{border-left-width:6px}
.label-ui .btn{border-radius:0;background:#000;border-color:#000;font-weight:700;text-transform:uppercase;letter-spacing:.6px;font-size:12px}
.label-ui .btn.ghost,.label-ui .btn.light,.label-ui .btn.warn{background:#fff;color:#000;border:2px solid #000}
.label-ui .btn.ok{background:#000;border-color:#000}
.label-ui .btn.bad{background:#fff;color:var(--bad);border:2px solid var(--bad)}
.label-ui input[type=text],.label-ui input[type=search],.label-ui select,.label-ui textarea{border-radius:0;border:2px solid #000}
.label-ui .bell,.label-ui .who select{border-radius:0;border:2px solid #000}
.label-ui .bell .n{border-radius:0;background:#000}
.label-ui h1{font-family:Montserrat,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.label-ui .pill{border-radius:0;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;padding:2px 6px}
.label-ui .k-badge{border-radius:0}
.label-ui table.t th{background:#000;color:#fff}
.label-ui table.t td{border-bottom:2px solid #000}
/* the sketch table */
.lt-layout{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
@media(min-width:1000px){.lt-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}
.lt{border:2px solid #000;background:#fff;font-size:14px}
.lt-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.15fr) minmax(0,1fr);border-bottom:2px solid #000}
.lt-row:last-child{border-bottom:0}
.lt-row>div{padding:10px 12px;border-right:2px solid #000;min-width:0}
.lt-row>div:last-child{border-right:0}
.lt-head>div{font:900 12px Montserrat,sans-serif;letter-spacing:1.5px;text-transform:uppercase;padding:16px 12px}
.lt-tools>div{padding:8px 10px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lt-tools input,.lt-tools select{border:0!important;padding:6px 2px!important;outline:none;font-size:13px;background:transparent}
.lt-tools .btn{padding:7px 9px;font-size:11px}
.lt-sec{border-bottom:2px solid #000;padding:7px 12px;font:800 11px Montserrat,sans-serif;letter-spacing:1.5px;text-transform:uppercase;background:#fff}
.lt-attn{min-height:0}
.lt-body{min-height:240px}
.lt-item{cursor:pointer}
.lt-item:hover>div{background:#fafafa}
.lt-item.sel>div{background:#f2f2f2}
.lt-item .nm{font-weight:700;line-height:1.25}
.lt-item .sub{font-size:12px;color:#333;margin-top:3px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.lt-item .stx{font-size:11.5px;color:#333;margin-top:4px}
.lt-act{display:flex;flex-direction:column;gap:5px;align-items:stretch}
.lt-act .btn{padding:6px 8px;font-size:10.5px;width:100%}
.lt-empty{padding:28px 12px;text-align:center;color:#555;font-size:13px}
.lt-side{border-left:2px solid #000;padding:2px 0 2px 22px;min-height:300px}
@media(min-width:1000px){.lt-side{position:sticky;top:12px}}
@media(max-width:999px){.lt-side{border-left:0;border-top:2px solid #000;padding:16px 0 0}}
.lt-side h2{font:900 20px Montserrat,sans-serif;text-transform:uppercase;margin:0 0 4px}
.lt-side .kl{font:800 10px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin:14px 0 4px}
.lt-side .hint{color:#777;font-size:13px;padding-top:6px}
.lt-side .kv2{grid-template-columns:110px 1fr;font-size:13px}
.lt-side .timeline{border-left:2px solid #000}
.lt-side .timeline li:before{border-radius:0;border:2px solid #000;width:10px;height:10px;left:-6px}
.lt-side .timeline .cm{border-radius:0;background:#f4f4f4}
@media(max-width:600px){.lt{font-size:13px}.lt-row{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.95fr)}.lt-row>div{padding:8px 7px}.lt-head>div{font-size:10px;letter-spacing:1px;padding:12px 7px}.lt-tools>div{padding:6px}.lt-item .sub{font-size:11px}.lt-act .btn{font-size:9.5px;padding:6px 4px;letter-spacing:.3px}}
.wa-fab{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;z-index:40;border:0}
.wa-fab svg{width:54px;height:54px}
@media print{.wa-fab{display:none}}

/* ===================== v3 minimal owner portal ===================== */
.lbar{background:#000;color:#fff}
.lbar .wrap{display:flex;align-items:center;gap:16px;min-height:62px;flex-wrap:wrap}
.lbrand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:800 14px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase}
.lbrand img{width:30px;height:30px}
.lmenu{margin-left:auto;display:flex;align-items:center;gap:2px}
.lmenu a{color:#fff;text-decoration:none;font:600 12px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;padding:8px 10px;opacity:.75}
.lmenu a:hover,.lmenu a.on{opacity:1}
.lmenu a.on{box-shadow:inset 0 -2px 0 #fff}
.lmenu select{width:auto;max-width:210px;background:#000;color:#fff;border:1px solid #555!important;font-size:12px;padding:6px 8px;margin-left:10px}
.cnt{display:inline-block;background:#fff;color:#000;font-size:10px;font-weight:800;padding:0 5px;margin-left:3px;line-height:16px;min-width:16px;text-align:center}
.lmenu-btn{display:none;margin-left:auto;background:none;border:1.5px solid #fff;color:#fff;font:700 12px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;padding:7px 10px;cursor:pointer}
@media(max-width:860px){.lmenu-btn{display:block}.lmenu{display:none;width:100%;flex-direction:column;align-items:stretch;padding:0 0 12px}.lmenu.open{display:flex}.lmenu a{padding:10px 0;border-top:1px solid #333}.lmenu a.on{box-shadow:none}.lmenu select{margin:10px 0 0;max-width:none}}
.lfoot{border-top:1px solid #000;margin-top:60px;padding:16px 0 90px;font-size:12px;color:#555}
.lfoot a{color:#000}
.label-ui .page{padding-top:34px;padding-bottom:34px}
.label-ui .ptitle{align-items:baseline;margin-bottom:18px}
.label-ui .ptitle h1{font-size:22px;letter-spacing:1px}
.label-ui .pill{background:none!important;color:#000!important;padding:0;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;gap:5px}
.label-ui .pill i{width:7px;height:7px;border-radius:50%;background:#999;display:inline-block}
.label-ui .st-approved i{background:var(--ok)}.label-ui .st-pending_owner i,.label-ui .st-needs_info i{background:#e0a100}
.label-ui .st-pending_ka i{background:var(--info)}.label-ui .st-rejected i,.label-ui .st-revoked i{background:var(--bad)}
.label-ui .st-revoked{color:var(--bad)!important}
.label-ui .k-badge{border:0;padding:0;font-weight:600;font-size:12px;font-family:inherit}
.lt-more{font-size:11px;margin-top:2px;text-align:center}
.lt-more a{color:#000}
.lt-sec{font-size:10px;color:#000;padding:6px 12px}
.label-ui .card{border-width:1.5px}
.label-ui .card h3{font:800 12px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase}
@media(max-width:999px){.lt-side:has(.hint){display:none}}
.label-ui .toast{border-radius:0}
.label-ui .suggest{background:#fff;border:1.5px solid #000;border-radius:0}

/* ===================== v3 tabs + proof column ===================== */
.ttabs{display:flex;align-items:flex-end;gap:0;margin-bottom:-2px;flex-wrap:wrap}
.ttab{background:#fff;border:2px solid transparent;border-bottom:0;padding:12px 16px 11px;font:800 12px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;color:#777}
.ttab.on{border-color:#000;color:#000;position:relative;z-index:1;background:#fff}
.ttab .tc{display:inline-block;margin-left:6px;background:#000;color:#fff;font-size:10px;padding:1px 6px}
.ttab:not(.on) .tc{background:#ddd;color:#000}
.tright{margin-left:auto;display:flex;gap:12px;align-items:center;padding:0 0 8px}
.tright input{width:170px;border:0!important;border-bottom:2px solid #000!important;padding:4px 2px!important;outline:none}
.tright a{color:#000;font-weight:600}
.lt .lt-head{border-top:0}
.sl{font-size:11.5px;margin-top:4px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:#333}
.sl i{width:7px;height:7px;border-radius:50%;background:#999;flex:none}
.sl b{font-weight:800;color:#000;text-transform:uppercase;font-size:10.5px;letter-spacing:.6px}
.sl-ok i{background:var(--ok)}.sl-wait i{background:#e0a100}.sl-ka i{background:var(--info)}.sl-rep i{background:#7b3fe4}.sl-bad i{background:var(--bad)}.sl-bad b{color:var(--bad)}
.sl-c{font-size:11.5px;color:#444;margin-top:3px}
.chips2{display:flex;flex-wrap:wrap;gap:4px}
.chip2{font-size:10.5px;font-weight:600;border:1.5px solid #000;padding:1px 6px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.up{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}
.up select{font-size:11px!important;padding:4px 4px!important;border:1.5px solid #000!important;width:auto;max-width:100%;flex:1;min-width:0}
.up .btn{padding:5px 8px;font-size:10.5px}
.lt-add{background:#fafafa}
.lt-add input[type=text]{border:0!important;border-bottom:1.5px solid #000!important;padding:6px 2px!important;font-size:13px;background:transparent;margin-bottom:4px;outline:none}
.kl2{font:800 10px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:4px}
.kl2 a{color:#000;text-decoration:none;margin-left:4px}
@media(max-width:600px){.ttab{padding:10px 8px 9px;font-size:10px;letter-spacing:.6px}.ttab .tc{margin-left:3px}.tright{width:100%;padding:8px 0;margin-left:0}.tright input{flex:1;width:auto}.ttabs{margin-bottom:0}.ttab.on{border-bottom:2px solid #000}.up select{flex-basis:100%}}
.upd summary{font-size:11px;cursor:pointer;margin-top:5px;text-decoration:underline;list-style:none}
.upd summary::-webkit-details-marker{display:none}
.tright a{white-space:nowrap}
@media(max-width:600px){.ttabs{flex-wrap:wrap}.ttab{flex:1}}
@media(max-width:600px){.tright{width:100%;box-sizing:border-box}.tright input{min-width:0}}

/* ===================== v4 mobile QA ===================== */
.lbar{padding-top:env(safe-area-inset-top)}
.lbar .wrap,.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.lfoot{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.wa-fab{right:calc(20px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom))}
.lwa{display:none;color:#fff;width:44px;height:44px;align-items:center;justify-content:center;margin-left:auto}
.lwa svg{width:30px;height:30px}
@media (max-width:1024px), (pointer:coarse){
  input,select,textarea{font-size:16px!important}
  .btn,.chip,.ttab,.lmenu-btn,select,input[type=text],input[type=search],input[type=email],input[type=date],.bell{min-height:44px}
  nav.main a,.lmenu a{min-height:44px;display:inline-flex;align-items:center}
  .brand,.lbrand{min-height:44px}
  .lt-act .btn,.up .btn{min-height:44px;font-size:11px}
  .lt-more a,.upd summary,.lt-more span{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
  .upd summary{padding:0}
  .up select{min-height:44px;width:100%;flex-basis:100%}
  .lt-tools input,.lt-tools select{min-height:40px}
  input[type=checkbox]{width:22px;height:22px}
  label.chip{display:inline-flex;align-items:center;gap:6px}
  .ptitle a:not(.btn),.kv2 a,.lt-side a:not(.btn){display:inline-block;padding:10px 0}
  .tright input{min-height:44px}
  .tright a{display:inline-flex;align-items:center;min-height:44px}
}
/* phone: WhatsApp moves into the black bar + sits bottom-right at the end of the page, never over actions */
@media (max-width:860px){
  .label-ui .wa-fab{position:static;margin:24px 0 0 auto;width:56px;height:56px}
  .label-ui .wa-wrap{display:flex;justify-content:flex-end;padding:0 max(16px,env(safe-area-inset-right)) 0 16px}
  .lwa{display:inline-flex}
  .lwa + .lmenu-btn{margin-left:4px}
}
/* phone: table stays a table; product cell spans the row, proof + action sit underneath */
@media (max-width:520px){
  .lt-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .lt-row>div:first-child{grid-column:1/-1;border-right:0;border-bottom:1px solid #000}
  .lt-head>div:first-child{border-bottom:2px solid #000}
  .lt-item .nm{font-size:15px}
  .lt-add>div:first-child input{width:100%}
  .lt-act{flex-direction:column}
  .lt-more{text-align:left}
}
@media (max-width:1024px), (pointer:coarse){
  .up select,.lt-tools input,.lt-tools select{font-size:16px!important;min-height:44px}
  .lt-more a{min-width:44px;justify-content:center;padding:0 10px}
  .kv2 a{padding:12px 0}
  .label-ui .card .row > a,.label-ui .card a.small{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:999px){.lt-side{display:none!important}}
input[type=file]{font-size:14px;max-width:100%}
input[type=file]::file-selector-button{font:700 12px Montserrat,sans-serif;letter-spacing:.6px;text-transform:uppercase;background:#fff;border:2px solid #000;padding:0 14px;min-height:44px;margin-right:10px;cursor:pointer;border-radius:0}

/* ---------- v5: store sign-in / sign-up ---------- */
.auth{max-width:560px;margin:0 auto}
.auth .ttabs{margin-top:8px}
.lt-row.af1{grid-template-columns:minmax(0,1fr)}
.lt-row.af2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lt-row.af1>div,.lt-row.af2>div{grid-column:auto!important;border-bottom:0!important}
.auth-box label{display:block;font:800 11px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:6px}
.auth-box label .stx{text-transform:none;letter-spacing:0;font:400 12px Poppins,sans-serif}
.auth-box input,.auth-box select{width:100%;box-sizing:border-box;border:0!important;border-bottom:2px solid #000!important;border-radius:0!important;padding:8px 2px!important;background:transparent;font-size:16px;outline:none}
.auth-box input:focus,.auth-box select:focus{border-bottom-color:#00729e!important}
.pwrap{display:flex;align-items:flex-end;gap:8px}.pwrap input{flex:1}
.pshow{background:none;border:0;font:700 11px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;padding:8px 4px;cursor:pointer;min-height:44px}
.btn.wide{width:100%;justify-content:center;min-height:48px}
.aerr{color:#b42318;font-size:14px;min-height:0;margin-bottom:8px}.aerr:empty{display:none}
.auth-foot{margin-top:16px;text-align:center}
.auth-foot a{display:inline-flex;align-items:center;min-height:44px;color:#000;font-weight:600}
@media(max-width:520px){.lt-row.af2{grid-template-columns:minmax(0,1fr)}.lt-row.af2>div{border-right:0!important}.lt-row.af2>div+div{border-top:2px solid #000!important}}
.lwho{color:#fff;opacity:.6;font-size:12px;padding:8px 10px;white-space:nowrap}
.saved{color:#fff;opacity:.7;font-size:11px;letter-spacing:.5px;margin-left:6px;white-space:nowrap}.saved.bad{color:#ffb4ab;opacity:1}
.saved:empty{display:none}
.lt-add input[type=email],.lt-add input[type=password]{border:0!important;border-bottom:1.5px solid #000!important;padding:6px 2px!important;background:transparent;margin-bottom:4px;outline:none;width:100%;box-sizing:border-box;display:block}
#wf input{display:block;width:100%;max-width:360px;margin-bottom:8px}
a.chip2{color:inherit;text-decoration:none}a.chip2:hover{text-decoration:underline}

/* ---------- v5: typeahead dropdown ---------- */
.ta{position:relative;flex:1;min-width:0;display:flex}
.ta input{width:240px}
.ta-dd{position:absolute;top:calc(100% + 2px);right:0;width:min(440px,92vw);background:#fff;border:2px solid #000;z-index:60;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:70vh;text-align:left}
.ta-dd[hidden]{display:none}
.ta-sec{font:900 10px Montserrat,sans-serif;letter-spacing:1.5px;text-transform:uppercase;padding:10px 12px 6px;border-top:2px solid #000;background:#fff;position:sticky;top:0;z-index:1}
.ta-sec:first-child{border-top:0}
.ta-opt{padding:9px 12px;border-top:1px solid #e5e5e5;cursor:pointer;min-height:44px;box-sizing:border-box}
.ta-opt:hover,.ta-opt.on{background:#f2f2f2}
.ta-opt.on{outline:2px solid #000;outline-offset:-2px}
.ta-nm{font-weight:600;font-size:14px;line-height:1.3}
.ta-nm mark{background:none;color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}
.ta-sub{font-size:12px;color:#555;margin-top:2px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ta-sub .sl{margin:0}
.ta-tab{font:700 10px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#000;opacity:.6;margin-left:auto}
.ta-row{display:flex;gap:10px;align-items:center;justify-content:space-between}
.ta-add{flex:none;min-width:64px;justify-content:center}
.ta-bad{flex:none;font-size:11px;color:#b42318;font-weight:600}
.ta-none{padding:8px 12px 10px;font-size:13px;color:#666}
.ta-newi{border-top:2px solid #000;background:#fafafa}
@media(max-width:600px){.ta{width:100%}.ta input{width:100%}.ta-dd{left:0;right:auto;width:100%}.ta-opt{padding:11px 12px}}
html:has(body.label-ui),body.label-ui{background:#fff}

/* Kosher Check wordmark */
.kmark{width:26px;height:26px;flex:none;color:#fff}
.kword{font:900 16px Montserrat,sans-serif;letter-spacing:2px;text-transform:uppercase;white-space:nowrap}
.ksub{font:600 12px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;opacity:.65;padding-left:10px;border-left:2px solid rgba(255,255,255,.5);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}
@media(max-width:420px){.kword{font-size:14px;letter-spacing:1.5px}.ksub{font-size:11px;max-width:32vw}}

details.opt{display:block}
details.opt summary{padding:14px 12px;font:800 11px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;min-height:44px;box-sizing:border-box;list-style:none}
details.opt summary::-webkit-details-marker{display:none}
details.opt summary::before{content:'+ '}details.opt[open] summary::before{content:'– '}
details.opt summary .stx{text-transform:none;letter-spacing:0;font:400 12px Poppins,sans-serif;margin-left:4px}
.lt-row .optg{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;padding:0 12px 14px;border-right:0}
@media(max-width:520px){.lt-row .optg{grid-template-columns:1fr}}
/* v6: 3 columns everywhere: Product | Documents / KA | Status + actions */
.kam{font:800 11px Montserrat,sans-serif;letter-spacing:.8px;text-transform:uppercase;margin-bottom:6px;color:#067647}
.kam-log{color:#555}
.lt-item>div:last-child .sl{margin-bottom:8px}
@media (max-width:520px){
  .lt-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}
  .lt-row>div:first-child{grid-column:auto;border-right:2px solid #000;border-bottom:0}
  .lt-head>div:first-child{border-bottom:0}
  .lt-row>div{padding:8px 6px}
  .lt-item .nm{font-size:14px;word-break:break-word}
  .lt .stx,.lt .sl{font-size:11px}
  .up{flex-direction:column;align-items:stretch}.up select,.up .btn{width:100%;box-sizing:border-box}
  .lt-act .btn{width:100%;font-size:10px!important;padding:6px 3px!important}
  .chips2{gap:3px}.chip2{font-size:10px;padding:2px 4px}
  .lt-add input[type=text]{width:100%}
}
/* v6: snap product (fast phone flow) */
.snap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:4px 0 18px}
.snap-go{font-size:15px!important;min-height:56px;padding:0 22px!important;gap:10px}
.snap-ic{font-size:20px;line-height:1}
.snap-alt{font-size:13px;text-decoration:underline;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.snap-open{border:2px solid #000;padding:12px;align-items:flex-start;flex-wrap:nowrap}
.snap-ph{flex:none;width:96px;text-align:center}.snap-ph img{width:96px;height:96px;object-fit:cover;border:2px solid #000;display:block}.snap-ph span{font-size:40px}
.snap-f{flex:1;min-width:0}
.snap-f label{display:block;font:800 11px Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:4px}
.snap-f input{width:100%;box-sizing:border-box;border:0!important;border-bottom:2px solid #000!important;border-radius:0!important;padding:8px 2px!important;font-size:16px;margin-bottom:8px;outline:none;background:transparent}
.snap-b{display:flex;gap:8px;flex-wrap:wrap}.snap-b .btn{min-height:48px}
.snap-send{flex:1}
@media(max-width:520px){.snap-go{width:100%;justify-content:center}.snap{gap:6px}.snap-alt{width:100%;justify-content:center}.snap-ph,.snap-ph img{width:72px;height:72px}.snap-b .btn{flex:1}}
.pths{display:flex;gap:4px;margin-bottom:5px}.pth{width:44px;height:44px;object-fit:cover;border:1.5px solid #000;display:block}
/* v7: invite + scan shelf */
.jt{font:900 22px Montserrat,sans-serif;margin:8px 0 6px}
.invu{width:100%;box-sizing:border-box;border:2px solid #000!important;border-radius:0!important;padding:10px!important;font-size:14px;background:#fafafa}
.invb{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.invb .btn{min-height:44px}
@media(max-width:520px){.invb .btn{flex:1 1 45%;justify-content:center}}
.snap-scan{min-height:56px;display:inline-flex;align-items:center}
@media(max-width:520px){.snap-scan{width:100%;justify-content:center}}
.scanimg{position:relative;border:2px solid #000;line-height:0;max-width:720px}
.scanimg img{width:100%;height:auto;display:block}
.scanimg.busy img{opacity:.45}
.scanwait{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.4;font:800 16px Montserrat,sans-serif;text-align:center}
.smk{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:#000;color:#fff;font:700 12px/24px Poppins,sans-serif;text-align:center;border:2px solid #fff;box-shadow:0 0 0 1px #000}
.smk.g-ok,.smk.g-done{background:#067647}.smk.g-ka{background:#b54708}.smk.g-none,.smk.g-bad{background:#b42318}.smk.g-unread{background:#666}
.ssum{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;font-weight:700;font-size:13px}
.ssum .g-ok,.ssum .g-done{color:#067647}.ssum .g-ka{color:#b54708}.ssum .g-none,.ssum .g-bad{color:#b42318}.ssum .g-unread{color:#666}
.sgrp{margin-bottom:14px;max-width:720px}
.srow{display:flex;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid #ddd}
.srow>div:nth-child(2){flex:1;min-width:0}
.sn{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid #000;font:700 12px/22px Poppins,sans-serif;text-align:center;box-sizing:border-box}
.sact{flex:none}.sact .btn{min-height:44px;white-space:nowrap}
a.scrow{color:inherit;text-decoration:none}a.scrow:hover{background:#f6f6f6}
.snap-ai{font-size:13px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.snap-ai.done{color:#067647;font-weight:600}
.spin{width:14px;height:14px;border:2px solid #000;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spn .8s linear infinite}
@keyframes spn{to{transform:rotate(360deg)}}
.snap-2{display:flex;gap:6px}.snap-2>*{flex:1;min-width:0}
.snap-f select{border:0;border-bottom:2px solid #000;background:#fff;font-size:14px;padding:8px 0;min-height:40px}
.snap-m{font-size:13px;font-weight:700;margin:6px 0;padding:6px 8px;border:2px solid #000}
.snap-m.ok{border-color:#067647;color:#067647}.snap-m.bad{border-color:#b42318;color:#b42318}.snap-m.none{border-color:#999;color:#555;font-weight:600}
