:root{
  --bg:#f5f7f3; --surface:#ffffff; --ink:#14211d; --muted:#647067; --line:#e0e7df;
  --green:#0f766e; --green-dark:#0b5f59; --soft:#e7f4ec; --amber:#f59e0b; --danger:#dc2626;
  --shadow:0 22px 70px rgba(16,24,20,.10); --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg,#f6f8f2 0%,#eef6f1 45%,#f7f7f3 100%);color:var(--ink)}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
a{text-decoration:none}
[hidden]{display:none!important}

.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:min(430px,94vw);display:grid;gap:14px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:30px}
.login-card h1{margin:0}.login-card p{margin:0 0 8px;color:var(--muted);line-height:1.5}
.login-card label{display:grid;gap:7px;font-weight:800;color:#405047}
.show-password-toggle{display:flex!important;align-items:center;gap:9px;justify-self:start;font-size:14px;color:var(--muted)!important;font-weight:800!important;cursor:pointer;user-select:none}
.show-password-toggle input{width:17px;height:17px;margin:0;accent-color:var(--green);cursor:pointer}

.app-shell{display:grid;grid-template-columns:300px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;padding:24px;background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:16px}
.brand-card{display:flex;gap:14px;align-items:center}
.brand-mark{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#0f766e,#17211e);color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-.04em;box-shadow:var(--shadow)}
.brand-mark.large{width:74px;height:74px;border-radius:24px;font-size:22px}
.brand-logo{width:82px;height:42px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line);padding:5px;box-shadow:0 10px 26px rgba(16,24,20,.08)}
.login-logo{width:150px;height:70px;justify-self:center;border:0;box-shadow:none;background:transparent;padding:0}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--green);font-weight:850;font-size:12px}
.brand-card h1,.topbar h2{margin:3px 0 0}
.side-nav{display:grid;gap:7px;margin-top:4px}
.nav-btn{border:1px solid transparent;background:transparent;color:#405047;border-radius:14px;padding:11px 12px;text-align:left;font-weight:850;cursor:pointer}
.nav-btn:hover,.nav-btn.active{background:var(--soft);border-color:#cbe8da;color:var(--green-dark)}
.mini-stats{display:grid;gap:10px;margin-top:auto}
.mini-stat{padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--muted)}
.mini-stat strong{display:block;font-size:22px;color:var(--ink)}

.main{padding:28px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}
.topbar p{margin:6px 0 0;color:var(--muted)}
.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.user-pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 13px;font-weight:850;color:var(--green-dark)}

.primary,.secondary,.danger{border:0;border-radius:14px;padding:11px 15px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}
.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
.danger{background:#fee2e2;color:#991b1b}
button:disabled{opacity:.48;cursor:not-allowed}
.full{width:100%}
select,input,textarea{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 13px;outline:none;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(15,118,110,.12)}
.toggle{display:flex;gap:8px;align-items:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px}
.field-toggle{justify-content:flex-start}

.searchbox{min-width:min(430px,70vw);flex:1;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 14px}
.searchbox input{border:0;width:100%;box-shadow:none}
.toolbar{display:flex;gap:10px;margin-bottom:14px;align-items:center;flex-wrap:wrap}
.bulk-toolbar{margin:0 0 14px}
.bulk-panel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 12px 35px rgba(16,24,20,.06)}
.bulk-panel strong{color:var(--green-dark);margin-right:4px}.bulk-message{color:var(--green-dark);font-weight:850}
.pager{display:flex;gap:8px;align-items:center;color:var(--muted);flex-wrap:wrap}
.pager button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;cursor:pointer}
.pager button:disabled{opacity:.45;cursor:not-allowed}

.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:18px}
.card{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 35px rgba(16,24,20,.06);padding:18px}
.card span{color:var(--muted);font-size:13px;font-weight:750}.card strong{display:block;font-size:28px;margin-top:5px}
.quick-actions,.export-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}
.export-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}
.export-grid .card{display:grid;gap:12px}.prose-card{line-height:1.6}.prose-card code{background:#f3f6f3;padding:2px 5px;border-radius:6px}
.import-card{margin-top:16px}.import-form{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:13px;margin-top:12px}.import-form label{display:grid;gap:7px;color:#475248;font-weight:750}.import-report{display:grid;gap:12px;margin-top:14px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px}.report-grid div{border:1px solid var(--line);border-radius:16px;background:#fbfdfb;padding:13px}.report-grid strong{display:block;font-size:24px}.report-grid span{color:var(--muted);font-size:12px;font-weight:850}.small-report{max-height:320px;border:1px solid var(--line);border-radius:16px}.small-report table{min-width:760px}
.list-cards{grid-template-columns:repeat(3,minmax(220px,1fr))}.list-card{display:grid;gap:10px}.list-card p{margin:0;color:var(--muted)}#listDetailHeader{margin-bottom:14px}.list-item-check{width:18px;height:18px;accent-color:var(--green)}
#auditBody td:last-child{max-width:360px;overflow-wrap:anywhere}

.table-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table-scroll{overflow:auto;max-height:calc(100vh - 260px)}
table{width:100%;border-collapse:separate;border-spacing:0;min-width:1380px}
th{position:sticky;top:0;background:#f8fbf8;color:#3c4941;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);z-index:1}
th,td{padding:12px 14px;vertical-align:middle;border-bottom:1px solid #edf1ed}
tbody tr:hover{background:#fbfdfb}
.thumb{width:64px;height:64px;object-fit:contain;border-radius:14px;background:#f8fafc;border:1px solid var(--line);cursor:zoom-in}
.name-cell{font-weight:850;max-width:320px}.subtle{color:var(--muted);font-size:12px}.price{font-weight:850}
.badge{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:850;background:#eef2ff;color:#3730a3;white-space:nowrap}
.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.badge.danger-badge{background:#fee2e2;color:#991b1b}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}.small-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}.danger-action{color:#991b1b;border-color:#fecaca;background:#fff5f5}
.bulk-check{width:18px;height:18px;accent-color:var(--green)}
.live-switch{border:1px solid var(--line);background:#f3f5f2;border-radius:999px;padding:4px 9px 4px 4px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:var(--muted);font-size:12px;font-weight:900;white-space:nowrap}
.live-switch span{width:24px;height:24px;border-radius:999px;background:#cbd5ce;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.live-switch em{font-style:normal}.live-switch.is-live{background:#dcfce7;border-color:#a7e7bd;color:#166534}.live-switch.is-live span{background:var(--green)}
.mobile-live{margin:8px 0}.mobile-select{grid-column:1/-1;display:inline-flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--green-dark);font-weight:850}.mobile-select input{width:18px;height:18px;accent-color:var(--green)}
.table-footer{padding:12px 14px;display:flex;justify-content:flex-end}
.empty{text-align:center;color:var(--muted);padding:28px}
.card-list{display:none}

.modal{display:none;position:fixed;inset:0;z-index:50}.modal[aria-hidden="false"]{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(7,13,10,.60);backdrop-filter:blur(5px)}
.modal-panel{position:relative;margin:5vh auto;background:#fff;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.3)}
.image-panel{width:min(900px,92vw);padding:20px;text-align:center}.image-panel img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:18px;background:#f8fafc}.modal-caption{margin-top:12px;color:var(--muted);font-weight:750}
.icon-btn{border:0;background:#fff;border-radius:999px;width:38px;height:38px;display:grid;place-items:center;font-size:24px;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.12)}.close{position:absolute;right:16px;top:14px;z-index:2}
.form-panel{width:min(980px,94vw);padding:24px;max-height:90vh;overflow:auto}.form-panel h3{margin:0 0 16px;font-size:26px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.form-grid.inner{margin-top:10px}
.form-grid label{display:grid;gap:7px;color:#475248;font-weight:750}.form-grid input,.form-grid textarea{width:100%}
.barcode-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.barcode-field button{white-space:nowrap}.field-help{color:var(--muted);font-size:12px;font-weight:650}
.image-editor{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:start}.image-preview{display:grid;gap:8px}.image-preview img{width:180px;height:180px;object-fit:contain;border:1px solid var(--line);border-radius:18px;background:#f8fafc}.image-controls{display:grid;gap:10px}.image-controls input[type=file]{padding:10px;background:#fff}
.form-section{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fbfdfb;margin-bottom:12px}.form-section legend{font-weight:900;color:var(--green);padding:0 6px}
.form-errors{display:grid;gap:6px;margin:0 0 12px}.form-errors div{padding:10px 12px;border-radius:12px;background:#fee2e2;color:#991b1b;font-weight:850}
.wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}

.product-card{display:grid;grid-template-columns:86px 1fr;gap:12px;padding:14px;border-bottom:1px solid var(--line)}
.product-card img{width:86px;height:86px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.product-card h3{margin:0 0 6px;font-size:16px}.product-card p{margin:6px 0;font-weight:850}
.scanner-panel{width:min(560px,94vw);padding:22px}.scanner-panel h3{margin:0 0 8px;font-size:24px}.scanner-box{min-height:290px;margin:14px 0;border:1px dashed var(--line);border-radius:18px;background:#0f172a;overflow:hidden;display:grid;place-items:center}.scanner-box video{width:100%!important;border-radius:18px}.scanner-status{padding:10px 12px;border-radius:12px;background:#eef8f1;color:var(--green-dark);font-weight:850}.scanner-status.error{background:#fee2e2;color:#991b1b}.scanner-result{margin-top:10px;color:var(--muted);font-weight:850}.scanner-toast{position:fixed;right:20px;bottom:20px;z-index:90;background:var(--green);color:#fff;border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);font-weight:900;opacity:0;transform:translateY(10px);transition:.18s ease}.scanner-toast.show{opacity:1;transform:translateY(0)}

@media(max-width:1100px){
  .app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.mini-stats{margin-top:0}.side-nav{grid-template-columns:repeat(3,1fr)}
  .topbar{flex-direction:column;align-items:stretch}.searchbox{min-width:100%}.cards,.list-cards{grid-template-columns:repeat(2,1fr)}.quick-actions{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .main{padding:16px}.sidebar{padding:18px}.side-nav{grid-template-columns:1fr}.cards,.quick-actions,.export-grid,.list-cards{grid-template-columns:1fr}
  .top-actions>*{width:100%}.toolbar>*{width:100%}.table-scroll{display:none}.card-list{display:block}.form-grid,.import-form,.report-grid,.barcode-field,.image-editor{grid-template-columns:1fr}.image-preview img{width:100%;height:220px}.form-panel{margin:2vh auto;padding:18px}.modal-panel{border-radius:18px}.table-footer{justify-content:flex-start}.scanner-box{min-height:240px}
  .small-report{display:block;overflow:auto}
}
