:root{
  --green:#4d8125;--green2:#6fa83a;--green3:#eaf5df;--ink:#132015;--muted:#68756b;--count-red:#e64545;
  --line:#dfe8dc;--surface:#fff;--soft:#f5f8f3;--danger:#d94343;--amber:#d98616;
  --shadow:0 20px 60px rgba(26,55,22,.10);--radius:18px;
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#f4f7f1}
button,input,select{font:inherit}button{cursor:pointer}
.hidden{display:none!important}
.screen{min-height:100vh}
.login-screen{display:grid;grid-template-columns:1.15fr .85fr;background:#f8fbf5}
.login-art{position:relative;overflow:hidden;background:radial-gradient(circle at 30% 35%,#32591c 0,#1c3414 42%,#0e1c0c 100%);color:#fff;padding:7vw 6vw;isolation:isolate}
.grid-lines{position:absolute;inset:0;opacity:.15;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:55px 55px;transform:perspective(500px) rotateX(58deg) scale(1.5);transform-origin:bottom center}
.scan-beam{position:absolute;left:0;right:0;top:-20%;height:120px;background:linear-gradient(180deg,transparent,rgba(151,227,88,.17),transparent);filter:blur(3px);animation:scan 5s ease-in-out infinite}
@keyframes scan{0%,100%{transform:translateY(-20vh)}50%{transform:translateY(95vh)}}
.hero-copy{position:relative;z-index:2;max-width:720px;margin-top:5vh}
.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:#bde99a;display:flex;align-items:center;gap:8px}.eyebrow.green{color:var(--green)}
.pulse-dot,.live-dot{width:8px;height:8px;border-radius:50%;background:#9ce36c;display:inline-block;box-shadow:0 0 0 5px rgba(156,227,108,.14);animation:pulse 1.8s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(156,227,108,0)}}
.hero-copy h1{font-size:clamp(46px,6vw,82px);line-height:.98;margin:24px 0 22px;letter-spacing:-.05em}
.hero-copy h1 span{color:#9fe06d}.hero-copy p{font-size:18px;line-height:1.7;color:#d9e7d2;max-width:650px}
.hero-pills{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}.hero-pills span{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);padding:8px 12px;border-radius:99px;font-size:12px}
.hero-metric-row{display:flex;gap:45px;margin-top:50px}.hero-metric-row div{display:flex;flex-direction:column;gap:4px}.hero-metric-row strong{font-size:27px}.hero-metric-row span{font-size:11px;color:#a9b9a2}
.vision-ring{position:absolute;border:1px solid rgba(157,225,104,.24);border-radius:50%;right:-90px;top:16%;width:480px;height:480px;animation:spin 18s linear infinite}.vision-ring:after{content:"";position:absolute;inset:55px;border:1px dashed rgba(157,225,104,.18);border-radius:50%}.ring-b{width:700px;height:700px;right:-200px;top:5%;animation-direction:reverse;animation-duration:28s}
@keyframes spin{to{transform:rotate(360deg)}}
.floating-node{position:absolute;width:7px;height:7px;background:#b8ef8b;border-radius:50%;box-shadow:0 0 22px #b8ef8b;z-index:2}.n1{right:27%;top:26%}.n2{right:15%;top:66%}.n3{right:40%;top:77%}
.animated-sack{position:absolute;border:1px solid rgba(194,242,157,.3);background:rgba(194,242,157,.07);color:#bce994;width:60px;height:75px;border-radius:10px 10px 18px 18px;display:grid;place-items:center;transform:rotate(12deg);opacity:.45;z-index:1}
.sack-one{right:24%;top:28%;animation:float1 6s ease-in-out infinite}.sack-two{right:9%;top:54%;animation:float2 7s ease-in-out infinite}.sack-three{right:43%;top:68%;animation:float1 8s ease-in-out infinite}
@keyframes float1{50%{transform:translateY(-25px) rotate(-8deg)}}@keyframes float2{50%{transform:translateY(30px) rotate(18deg)}}
.login-panel{display:flex;align-items:center;justify-content:center;padding:50px;background:linear-gradient(180deg,#fff,#f5f8f2);position:relative}
.login-card{width:min(510px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:40px;box-shadow:var(--shadow);animation:cardIn .7s ease}
@keyframes cardIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.brand-row{display:flex;align-items:center;gap:12px;color:var(--green);font-weight:800;font-size:14px;margin-bottom:25px}.brand-row img{width:145px;height:auto}.brand-divider{height:26px;width:1px;background:#dbe5d6}
.login-badge{display:inline-flex;align-items:center;gap:9px;padding:8px 11px;border-radius:99px;background:var(--green3);color:var(--green);font-size:11px;font-weight:800;margin-bottom:20px}
.login-card h2{font-size:34px;letter-spacing:-.03em;margin:5px 0 8px}.login-subtitle{color:var(--muted);line-height:1.6;font-size:14px;margin-bottom:28px}
.field-label{font-size:12px;font-weight:800;margin:14px 0 7px;display:block}.field{width:100%;border:1px solid #d7e0d3;background:#fff;border-radius:12px;padding:13px 14px;outline:none;color:var(--ink);transition:.2s}.field:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(77,129,37,.10)}
.password-wrap{position:relative}.password-wrap .field{padding-right:60px}.eye-btn{position:absolute;right:7px;top:7px;border:0;background:#f2f6ef;color:var(--green);border-radius:8px;padding:6px 9px;font-size:11px;font-weight:700}
.primary-btn,.secondary-btn,.nav-btn,.icon-btn{border:0;border-radius:11px;padding:12px 16px;font-weight:800;transition:.2s}.primary-btn{background:var(--green);color:#fff;box-shadow:0 8px 22px rgba(77,129,37,.22)}.primary-btn:hover{background:#3f6e1e;transform:translateY(-1px)}.secondary-btn{background:#fff;border:1px solid var(--line);color:var(--green)}.secondary-btn:hover{background:var(--green3)}.wide{width:100%;margin-top:22px;display:flex;justify-content:center;gap:8px;font-size:14px}
.demo-password{font-size:12px;color:#7a857c;text-align:center;margin:14px 0 25px}.demo-password strong{color:var(--green)}
.secure-strip{border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.secure-strip>div{display:flex;gap:9px;align-items:center}.check{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--green3);color:var(--green);font-weight:900}.secure-strip strong,.secure-strip small{display:block}.secure-strip strong{font-size:11px}.secure-strip small{font-size:10px;color:#849087;margin-top:2px}.login-foot{position:absolute;bottom:22px;color:#8b948c;font-size:10px;text-align:center;width:calc(100% - 100px)}
/* app */
.app-screen{background:#f5f8f3}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;gap:12px}.top-logo{width:118px}.top-divider{width:1px;height:28px;background:var(--line)}.topbar-left strong{font-size:13px}.topbar-left small{display:block;font-size:9px;color:#7a857c;margin-top:2px}.topbar nav{display:flex;gap:4px}.nav-btn{background:transparent;color:#78837a;padding:9px 14px}.nav-btn.active{background:var(--green3);color:var(--green)}.topbar-right{display:flex;align-items:center;gap:9px}.system-pill,.role-pill{font-size:10px;padding:8px 11px;border-radius:99px}.system-pill{background:#edf8e6;color:var(--green);font-weight:800;display:flex;align-items:center;gap:7px}.role-pill{background:#f3f5f2;color:#59655c}.icon-btn{background:#fff;border:1px solid var(--line);color:#667169;padding:8px 10px}.view{padding:34px 38px;max-width:1600px;margin:auto}.page-hero{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;gap:20px}.page-hero h2{font-size:32px;margin:8px 0 6px;letter-spacing:-.04em}.page-hero p{margin:0;color:var(--muted);font-size:13px}.hero-actions{display:flex;gap:9px}
.workspace-grid{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 35px rgba(28,50,25,.05)}.mode-panel{padding:20px;position:sticky;top:92px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.mini-label{font-size:9px;letter-spacing:.16em;font-weight:900;color:#879188}.panel-heading h3{font-size:17px;margin:5px 0}.mode-count{font-size:9px;background:var(--green3);color:var(--green);font-weight:900;padding:6px 8px;border-radius:99px}.mode-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 180px);overflow:auto;padding-right:2px}.mode-option{border:1px solid #e2e9df;background:#fbfcfa;border-radius:13px;padding:12px;display:flex;gap:11px;align-items:center;text-align:left;transition:.2s;cursor:pointer}.mode-option:hover{border-color:#bdd3ae;transform:translateX(2px)}.mode-option.active{border-color:#a9c892;background:#eef7e8;box-shadow:inset 3px 0 0 var(--green)}.mode-icon{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--green);font-size:17px;border:1px solid #e0e8dc}.mode-option strong{font-size:12px;display:block}.mode-option small{display:block;color:#7b867e;font-size:9px;margin-top:3px}.mode-check{margin-left:auto;color:var(--green);font-weight:900}
.main-panel{min-width:0}.mode-header{background:linear-gradient(135deg,#193214,#4d8125);color:#fff;border-radius:20px;padding:26px;position:relative;overflow:hidden}.mode-header:after{content:"";position:absolute;right:-70px;top:-100px;width:300px;height:300px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 50px rgba(255,255,255,.03),0 0 0 100px rgba(255,255,255,.02)}.mode-header h3{font-size:24px;margin:6px 0}.mode-header p{color:#d6e7ce;font-size:12px;margin:0;max-width:700px;line-height:1.5}.mode-header-actions{display:flex;gap:8px;margin-top:18px;position:relative;z-index:2}.light-btn{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff;padding:9px 12px;border-radius:10px;font-size:11px;font-weight:800}.light-btn:hover{background:rgba(255,255,255,.16)}
.mode-body{margin-top:16px}.sample-strip{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 16px;margin-bottom:16px}.sample-strip strong{font-size:12px}.sample-strip small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.sample-actions{display:flex;gap:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.metric .label{font-size:9px;color:#7a867d;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.metric .value{font-size:27px;font-weight:900;margin-top:8px}.metric .delta{font-size:9px;color:var(--green);margin-top:3px}.feed-card{background:#101510;border-radius:18px;overflow:hidden;position:relative;min-height:360px;border:1px solid #293328}.feed-toolbar{height:45px;background:#171e16;color:#cbd6c8;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:10px}.feed-toolbar span{display:flex;align-items:center;gap:7px}.feed-live{color:#ff7373}.video-wrap{position:relative;height:360px;background:#101510;display:flex;align-items:center;justify-content:center}.video-wrap video,.video-wrap img{width:100%;height:100%;object-fit:contain;display:block}.feed-overlay{position:absolute;inset:0;pointer-events:none}
.scanner-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.scanner-line-vertical{position:absolute;top:4%;bottom:4%;left:18%;width:3px;background:linear-gradient(180deg,transparent 0%,#a8ef70 18%,#d5ffb4 50%,#a8ef70 82%,transparent 100%);box-shadow:0 0 12px #a8ef70,0 0 28px rgba(168,239,112,.45);animation:scannerSweep 3.4s ease-in-out infinite}
.scanner-line-vertical:after{content:"";position:absolute;left:-6px;top:50%;width:15px;height:15px;border:2px solid #d9ffc2;border-radius:50%;box-shadow:0 0 14px #a8ef70;transform:translateY(-50%)}
@keyframes scannerSweep{0%,100%{left:15%}50%{left:85%}}
.processing-chip{position:absolute;left:18px;top:16px;background:rgba(10,19,9,.86);border:1px solid rgba(174,242,117,.48);color:#d4ffbc;padding:7px 10px;border-radius:99px;font-size:9px;font-weight:900;letter-spacing:.06em;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.feed-empty{color:#98a498;text-align:center}.feed-empty strong{display:block;color:#dbe6d7;font-size:14px;margin-bottom:5px}.feed-empty small{font-size:10px}
.count-panel{background:#0f170f;border:1px solid #2d402a;border-radius:16px;padding:15px;margin-top:12px;color:#e8f2e5;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;align-items:center;gap:14px;box-shadow:0 12px 30px rgba(18,35,16,.10)}
.count-live-dot{font-size:9px;letter-spacing:.12em;font-weight:900;color:#bfe99e;display:flex;align-items:center;gap:7px}.count-live-dot span{width:7px;height:7px;border-radius:50%;background:#9be36f;box-shadow:0 0 0 5px rgba(155,227,111,.12);animation:pulse 1.4s infinite}
.count-main strong{font-size:34px;line-height:1;display:block;color:#c9f6a9}.count-main small,.count-secondary span{font-size:8px;color:#8f9c8d;text-transform:uppercase;letter-spacing:.08em}.count-divider{height:42px;width:1px;background:#2b3829}.count-secondary{display:flex;flex-direction:column;gap:5px}.count-secondary strong{font-size:21px;color:#fff}.count-status{justify-self:end;color:#bfe99e;font-size:10px;font-weight:800;padding:8px 10px;border-radius:8px;background:rgba(155,227,111,.08);border:1px solid rgba(155,227,111,.16)}
.camera-scan-line{position:absolute;top:4%;bottom:4%;width:2px;background:#a8ef70;box-shadow:0 0 12px #a8ef70;animation:scannerSweep 3.4s ease-in-out infinite;pointer-events:none}
.camera-status-chip{position:absolute;left:8px;top:8px;background:rgba(8,15,8,.84);color:#c8f3ad;border:1px solid rgba(155,227,111,.35);padding:5px 7px;border-radius:99px;font-size:8px;font-weight:900}
.cam-count-stack{position:absolute;right:8px;top:8px;min-width:92px;background:rgba(8,15,8,.9);border:1px solid rgba(155,227,111,.4);border-radius:9px;padding:7px 9px;text-align:right;color:#c8f3ad}.cam-count-stack span{display:block;font-size:7px;letter-spacing:.08em;color:#91a18e}.cam-count-stack strong{font-size:22px;line-height:1;display:block;margin:3px 0}.cam-count-stack small{font-size:7px;color:#91a18e}.cam-count-stack b{color:#fff}

.activity{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:16px}.activity h4{font-size:12px;margin:0 0 12px}.event-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eef2ec;padding:10px 0;font-size:10px}.event-row:first-of-type{border-top:0}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;margin-right:7px}
.multi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.multi-cell{background:#0e140e;border-radius:13px;overflow:hidden;position:relative;border:1px solid #293328}.multi-cell .mini-feed{height:210px;position:relative}.multi-cell video{width:100%;height:100%;object-fit:contain}.cam-label{position:absolute;left:9px;top:9px;background:rgba(0,0,0,.65);color:#fff;padding:6px 8px;border-radius:7px;font-size:9px;font-weight:800}.cam-count{position:absolute;right:9px;top:9px;background:rgba(17,29,14,.88);color:#bdf28f;padding:6px 8px;border-radius:7px;font-size:10px;font-weight:900}.multi-foot{background:#171e16;color:#c7d2c4;padding:8px 10px;font-size:9px;display:flex;justify-content:space-between}.grand-total{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;display:flex;justify-content:space-between;align-items:center;margin-top:12px}.grand-total strong{font-size:25px;color:var(--green)}
.split-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:15px}.side-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.stat-box small{font-size:9px;color:var(--muted)}.stat-box strong{display:block;font-size:23px;margin-top:7px}.slider-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;margin-top:10px}.slider-wrap input{width:100%;accent-color:var(--green)}
.sample-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:65vh;overflow:auto}.sample-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fbfcfa}.sample-thumb{height:160px;background:#101510;display:flex;align-items:center;justify-content:center;overflow:hidden}.sample-thumb video,.sample-thumb img{width:100%;height:100%;object-fit:cover}.sample-info{padding:12px}.sample-info strong{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sample-info small{font-size:9px;color:var(--muted);display:block;margin:4px 0 9px}.sample-info button{width:100%}
.modal{position:fixed;inset:0;background:rgba(7,13,7,.62);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:25px;z-index:100}.modal-card{width:min(580px,100%);background:#fff;border-radius:20px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.25);position:relative}.modal-card.large{width:min(1050px,100%)}.modal-close{position:absolute;right:15px;top:15px;border:0;background:#f1f4ef;width:32px;height:32px;border-radius:9px;font-size:20px;color:#657166}.modal-head{padding-right:40px;margin-bottom:18px}.modal-head h3{font-size:22px;margin:6px 0}.modal-head p{font-size:11px;color:var(--muted);margin:0}.sample-lock{position:absolute;right:24px;top:28px;color:var(--green);font-size:9px;font-weight:900;background:var(--green3);padding:7px 9px;border-radius:99px}.drop-zone{border:2px dashed #cbdac4;border-radius:16px;padding:38px 20px;text-align:center;background:#f8fbf6;transition:.2s}.drop-zone.drag{border-color:var(--green);background:#eef7e8}.upload-orbit{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#e9f5e0;color:var(--green);font-size:26px;font-weight:900;margin:0 auto 12px;animation:bob 2s infinite}.drop-zone h4{margin:0 0 5px}.drop-zone p{font-size:11px;color:var(--muted)}.link-btn{border:0;background:none;color:var(--green);font-weight:900}.drop-zone small{color:#8a958c}.demo-note{margin-top:14px;background:#f3f7f1;border-radius:11px;padding:11px;font-size:10px;color:#6c776e}.upload-error{margin-bottom:14px;background:#fdecec;border:1px solid #f3b7b7;border-radius:11px;padding:12px 14px;font-size:12px;font-weight:700;color:#a12525;line-height:1.5}.upload-error.hidden{display:none}.process-card{text-align:center;padding:42px}.processing-orb{width:75px;height:75px;border-radius:50%;margin:0 auto 20px;border:2px solid #d8e8cf;display:grid;place-items:center;position:relative}.processing-orb:before,.processing-orb:after{content:"";position:absolute;inset:8px;border:2px solid transparent;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}.processing-orb:after{inset:17px;border-top-color:#a9d68a;animation-direction:reverse}.processing-orb span{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 15px rgba(77,129,37,.5)}.process-card h3{font-size:22px;margin:8px}.process-card p{font-size:11px;color:var(--muted)}.progress-track{height:8px;background:#e8eee4;border-radius:99px;overflow:hidden;margin:22px 0}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--green),#8ac65c);border-radius:99px;transition:width .5s}.process-steps{display:flex;justify-content:space-between;font-size:9px;color:#9aa49c}.process-steps .done{color:var(--green);font-weight:900}
/* analytics */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.kpi small{color:#7e897f;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.kpi strong{display:block;font-size:29px;margin:7px 0}.kpi span{font-size:9px;color:var(--green)}.analytics-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:15px;margin-top:15px}.chart-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.chart-card h4{margin:0 0 15px;font-size:12px}.bar-chart{height:230px;display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid #e7ece4;padding:0 5px}.bar-col{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.bar{width:min(34px,70%);background:linear-gradient(180deg,#8bc85d,var(--green));border-radius:7px 7px 0 0;min-height:7px;animation:grow .7s ease}.bar-col small{position:absolute;bottom:-19px;font-size:8px;color:#7d887f}.bar-col span{position:absolute;bottom:calc(var(--h) + 7px);font-size:8px;font-weight:800;color:var(--green)}@keyframes grow{from{height:0}}
.mode-bars{display:flex;flex-direction:column;gap:13px}.mode-bar-row{font-size:9px}.mode-bar-row header{display:flex;justify-content:space-between;margin-bottom:5px}.track{height:7px;background:#edf1eb;border-radius:99px;overflow:hidden}.track i{display:block;height:100%;background:var(--green);border-radius:99px}.table-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-top:15px;overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:9px}.data-table th,.data-table td{text-align:left;padding:11px 9px;border-bottom:1px solid #eef2ec}.data-table th{font-size:8px;text-transform:uppercase;color:#8a948c;letter-spacing:.08em}.badge{display:inline-flex;padding:5px 7px;border-radius:99px;background:#edf8e6;color:var(--green);font-weight:900}.empty-table{text-align:center;color:#89938b;padding:25px!important}
@media(max-width:1000px){.login-screen{grid-template-columns:1fr}.login-art{min-height:430px;padding:45px}.login-panel{padding:35px}.login-foot{position:static;margin-top:20px}.workspace-grid{grid-template-columns:1fr}.mode-panel{position:static}.mode-list{display:grid;grid-template-columns:repeat(2,1fr);max-height:none}.metric-grid,.kpi-row{grid-template-columns:repeat(2,1fr)}.analytics-grid,.split-grid{grid-template-columns:1fr}.topbar{padding:0 15px}.topbar-right .role-pill{display:none}.view{padding:22px 16px}}
@media(max-width:650px){.login-art{min-height:400px;padding:35px 25px}.hero-copy h1{font-size:44px}.hero-copy p{font-size:14px}.hero-metric-row{gap:20px;margin-top:25px}.login-panel{padding:18px}.login-card{padding:25px}.page-hero{display:block}.hero-actions{margin-top:15px}.mode-list,.metric-grid,.kpi-row{grid-template-columns:1fr}.sample-grid{grid-template-columns:1fr}.multi-grid{grid-template-columns:1fr}.topbar nav{display:none}.topbar-left small{display:none}}

.ai-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.feed-overlay{z-index:5}.camera-overlay{position:absolute;inset:0;pointer-events:none;z-index:3}.camera-overlay .roi-box{left:12%;right:12%;top:16%;height:68%}.uploaded-camera{outline:2px solid rgba(155,227,111,.35);outline-offset:-2px}.uploaded-camera .cam-label{background:#4d8125}.sample-thumb{position:relative}.sample-thumb:after{content:"SAMPLE";position:absolute;left:8px;bottom:8px;background:rgba(10,18,9,.78);color:#d8ffc1;font-size:8px;font-weight:800;padding:5px 7px;border-radius:6px;letter-spacing:.06em}

/* Customer-facing demo intentionally uses scan-line + count UI, never detection boxes. */
.roi-box{display:none!important}.ai-canvas{display:none!important}

@media(max-width:900px){.count-panel{grid-template-columns:1fr 1fr}.count-divider{display:none}.count-status{justify-self:start}.multi-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}}

.count-rail{position:absolute;right:14px;top:14px;width:112px;background:rgba(8,15,8,.9);border:1px solid rgba(164,238,111,.45);border-radius:12px;padding:10px;color:#d9f6ca;backdrop-filter:blur(7px);box-shadow:0 12px 30px rgba(0,0,0,.22);text-align:right}
.count-rail .rail-title{display:flex;justify-content:flex-end;align-items:center;gap:6px;color:#bff49c;font-size:8px;font-weight:900;letter-spacing:.12em}.count-rail .rail-title span{width:6px;height:6px;border-radius:50%;background:#9be36f;box-shadow:0 0 0 4px rgba(155,227,111,.12);animation:pulse 1.4s infinite}
.count-rail strong{display:block;font-size:31px;line-height:1.05;color:#d8ffc3;margin:6px 0 1px}.count-rail small,.count-rail>span{display:block;font-size:7px;color:#8f9d8c;letter-spacing:.1em}.count-rail b{display:block;font-size:14px;color:#fff;margin:2px 0 7px}.rail-sep{height:1px;background:rgba(188,237,163,.16);margin:8px 0}

/* Final sales-demo controls */
.media-actions{display:flex;justify-content:flex-end;gap:8px;padding:9px 2px 0}
.media-actions .secondary-btn{font-size:10px;padding:8px 12px}
.sample-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.sample-card-actions button{width:100%!important}
.scanner-overlay.scanner-stopped .scanner-line-vertical{animation:none!important;display:none!important}
.scanner-overlay.scanner-stopped .count-rail{opacity:.82}
.camera-scan-line.scanner-stopped{animation:none!important;display:none!important}
.mode-header-actions{flex-wrap:wrap}
.sample-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.sample-actions .secondary-btn,.sample-actions .primary-btn{white-space:nowrap}
/* Godown customer-facing layout: keep the mode consistent and media/count full-width. */
.godown-main-feed{width:100%;}
.godown-main-feed .feed-card{width:100%;}

.feed-empty-actions{display:flex;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.feed-empty-actions button{min-width:130px}

/* Real browser-camera preview: no synthetic AI overlay/counting. */
#live-wrap { position: relative; overflow: hidden; }
#live-wrap #webcam-video { display:block; background:#050805; }
.webcam-live-badge {
  position:absolute;
  top:18px;
  z-index:5;
  padding:8px 12px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  background:rgba(10,25,10,.88);
  border:1px solid rgba(140,220,90,.45);
  color:#d9ffbf;
}
.webcam-live-badge { left:18px; }

/* Keep the real browser camera visually dominant and unobstructed. */
#live-wrap #webcam-video{background:#000;object-fit:cover;}

/* Robust browser webcam rendering */
#live-wrap #webcam-video {
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
  min-width:100%;
  min-height:100%;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  object-fit:cover !important;
  object-position:center center !important;
  background:#050805;
  z-index:1;
}
#live-wrap .webcam-live-badge { z-index:6; }

/* Process media action: explicit customer-facing processing CTA */
.process-media-btn{min-width:140px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.process-media-btn .process-icon{font-size:14px;line-height:1}


/* Conveyor precomputed detection overlay */
.video-wrap { position: relative; overflow: hidden; }
.detection-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 8;
}
.video-wrap video, .video-wrap img { position: relative; z-index: 1; }
.scanner-overlay { z-index: 9; }
.process-video-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10;background:rgba(20,32,15,.88);color:#eaffd7;border:2px solid #9be36f;border-radius:12px;padding:12px 22px;font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer;display:flex;align-items:center;gap:9px;box-shadow:0 10px 26px rgba(0,0,0,.4)}
.process-video-btn:before{content:"▶";font-size:11px}
.process-video-btn:hover{background:rgba(32,50,22,.94)}
.process-video-btn.hidden{display:none}
.mini-feed .process-video-btn{font-size:10px;padding:8px 13px;border-radius:9px;gap:6px}
.mini-feed .process-video-btn:before{font-size:9px}
.count-processing{color:var(--count-red)!important}

.report-filters{display:flex;gap:10px;margin-bottom:18px}
.filter-pill{background:#fff;border:1px solid var(--line);border-radius:99px;padding:10px 22px;font-size:12px;font-weight:800;color:#5c675e;cursor:pointer;transition:all .15s}
.filter-pill:hover{border-color:var(--green2);color:var(--green)}
.filter-pill.active{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 16px rgba(77,129,37,.28)}

.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.report-stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}
.report-stat strong{display:block;font-size:26px;font-weight:900;margin:6px 0 3px;color:var(--ink)}
.report-stat small{font-size:10px;color:var(--muted)}
.report-stat.highlight{background:var(--green3);border-color:#cfe4b8}
.report-stat.highlight strong{color:var(--green)}

.report-table-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.report-row{display:grid;grid-template-columns:1.1fr 1.3fr 1.8fr .7fr .8fr;align-items:center;padding:14px 20px;border-bottom:1px solid #f0f3ee;gap:10px}
.report-row:last-child{border-bottom:none}
.report-row-head{background:#f7faf5;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#7a867d;font-weight:900;padding:12px 20px}
.report-row:not(.report-row-head):hover{background:#fbfdf9}
.report-time{font-size:12px;color:#3a453c;font-weight:700;line-height:1.5}
.report-time small{color:#98a294;font-weight:600}
.report-mode{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#2c362d}
.report-mode-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--green3);color:var(--green);border-radius:8px;font-size:13px;flex-shrink:0}
.report-file{font-size:13px;font-weight:800;color:var(--green);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s}
.report-file:hover{text-decoration-color:var(--green)}
.report-count{font-size:17px;font-weight:900;color:var(--ink)}
.report-download-btn{background:var(--green3);border:1px solid #cfe4b8;color:var(--green);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:800;cursor:pointer}
.report-download-btn:hover{background:#deefc9}
.report-empty{padding:50px 20px;text-align:center;color:#8a958a;font-size:13px}
@media (max-width:900px){.report-stats{grid-template-columns:repeat(2,1fr)}.report-row{grid-template-columns:1fr;gap:4px}.report-row-head{display:none}}

.confirm-card{max-width:380px;text-align:center;padding-top:36px}
.confirm-icon{width:52px;height:52px;border-radius:50%;background:#fdecec;color:#c23b3b;font-size:24px;font-weight:900;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.confirm-card h3{margin-bottom:8px}
.confirm-card p{color:var(--muted);font-size:13px;margin-bottom:22px}
.confirm-actions{display:flex;gap:10px}
.confirm-actions .wide{flex:1}
.primary-btn.danger{background:#c23b3b;border-color:#c23b3b}
.primary-btn.danger:hover{background:#a72f2f}
