:root{--bg:#f6f8fa;--panel:#fff;--ink:#14213d;--muted:#5b6b82;--line:#dbe2ea;--accent:#1d4ed8;--onaccent:#fff;--ok:#0f7b4f;--okbg:#e2f5ec;--low:#9a5b00;--lowbg:#fff1d6;--out:#b42318;--outbg:#fde8e6}
@media (prefers-color-scheme:dark){:root{--bg:#0e1622;--panel:#152033;--ink:#e6edf7;--muted:#95a5bd;--line:#26354d;--accent:#7aa2ff;--onaccent:#0e1622;--ok:#5fd6a0;--okbg:#0f3326;--low:#f5b94d;--lowbg:#3a2a0a;--out:#ff8f85;--outbg:#3d1512}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
main{max-width:980px;margin:0 auto;padding:20px 16px 48px}
main.narrow{max-width:420px;padding-top:56px}
h1{font-size:1.7rem;line-height:1.2;margin:18px 0 4px;letter-spacing:-.01em}
.sub{color:var(--muted);margin:0 0 20px}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.bar-actions{display:flex;gap:8px;align-items:center}
.bar-actions form,form.inline{margin:0;display:flex;gap:6px;align-items:center}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
input,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-width:0}
input[type=search]{flex:1 1 240px;padding:11px 14px}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;cursor:pointer}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:.9rem;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.chip[aria-pressed=true],.primary{background:var(--accent);border-color:var(--accent);color:var(--onaccent)}
.primary{display:inline-block;padding:9px 16px;border-radius:8px;border:1px solid var(--accent);font-weight:600;text-decoration:none}
.ghost{display:inline-block;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);text-decoration:none;font-size:.9rem}
.wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:600px}
th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
th{font-weight:600;font-size:.9rem;color:var(--muted);white-space:nowrap}
th button{all:unset;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
th button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{text-align:right;font-variant-numeric:tabular-nums}
th.num button{justify-content:flex-end}
td.name{font-weight:600}
td input{width:100%}
td input.n{text-align:right;max-width:120px}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.8rem;font-weight:600;margin-left:8px}
.ok{color:var(--ok);background:var(--okbg)}.low{color:var(--low);background:var(--lowbg)}.out{color:var(--out);background:var(--outbg)}
.empty{padding:28px;text-align:center;color:var(--muted)}
.meta{margin-top:12px;color:var(--muted);font-size:.9rem}
.add{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;margin:0 0 14px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.add.add-user{grid-template-columns:1fr 1.4fr 1fr auto}
@media (max-width:640px){.add,.add.add-user{grid-template-columns:1fr 1fr}}
#msg{min-height:1.5em;margin:10px 0 0;font-weight:600}
#msg.err,.err{color:var(--out);font-weight:600}
#msg.good,.good{color:var(--ok);font-weight:600}
.card{display:flex;flex-direction:column;gap:14px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}
.field input{font-size:1rem;color:var(--ink)}
.card .primary{border:1px solid var(--accent);cursor:pointer}
[hidden]{display:none!important}

/* ---- Orders ---- */
h2{font-size:1.15rem;margin:22px 0 10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
.stack{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
.results{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.pick{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;padding:13px 14px;border-bottom:1px solid var(--line);cursor:pointer;color:var(--ink)}
.pick:hover{background:var(--bg)}
.pick:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pick small,.line small{color:var(--muted)}
.line{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.line:last-child{border-bottom:0}
.line .info{flex:1 1 200px}
.qty{display:flex;align-items:center;gap:4px}
.qty input{width:72px;text-align:center}
.qty button{width:40px;height:40px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:1.2rem;line-height:1}
.lt{min-width:90px;text-align:right}
.total{font-size:1.3rem;font-weight:700;text-align:right;margin:12px 0}
.warn{color:var(--low);font-size:.85rem;font-weight:600}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
.check{display:flex;gap:8px;align-items:center;font-size:.95rem}
.primary.big{width:100%;padding:14px;font-size:1.05rem;cursor:pointer}
.primary:disabled{opacity:.5;cursor:not-allowed}
.wa{background:#15803d;border-color:#15803d;color:#fff}
@media print{.bar,.actions,.noprint{display:none!important}body{background:#fff;color:#000}.card,.wrap{border-color:#999}}

/* ---- Agrowis stock display ----------------------------------------------- */
.chip[data-f="all"][aria-pressed="true"]{background:#eaf5ed;color:#176b35;border-color:#b9d8c1}
.chip[data-f="in"]{color:#176b35;background:#e5f5e9;border-color:#b8dcbc}
.chip[data-f="low"]{color:#8a6500;background:#fff5cc;border-color:#ead27a}
.chip[data-f="out"]{color:#a32118;background:#ffe8e6;border-color:#e4b1ad}
.chip[data-f="in"][aria-pressed="true"]{background:#d9f0df;color:#176b35;border-color:#9fcea9}
.chip[data-f="low"][aria-pressed="true"]{background:#ffedb0;color:#795800;border-color:#dfc45e}
.chip[data-f="out"][aria-pressed="true"]{background:#ffd9d5;color:#922018;border-color:#dca09a}
.stock-cell{white-space:nowrap}
.stock-number{font-weight:750;font-size:16px}
.stock-number.ok{color:#238443;background:none}
.stock-number.low{color:#b77900;background:none}
.stock-number.out{color:#c62828;background:none}
.case-info{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.case-position{line-height:1.2}
.case-edit{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;min-width:240px}
.case-edit input{min-width:70px}
.unit-select select{min-width:150px}


/* ---- Agrowis AgSmart banner ------------------------------------------------ */
.brand-banner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:8px 0 18px;
  border-bottom:1px solid var(--line);
  margin-bottom:28px;
}
.brand-left{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.brand-logo-link{display:block;line-height:0;text-decoration:none}
.brand-logo{
  display:block;
  width:220px;
  height:90px;
  object-fit:contain;
  object-position:left center;
}
.signed-in{color:var(--muted);font-size:.9rem}
.signed-in strong{color:var(--ink)}
.role{color:var(--muted)}
.brand-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.brand-actions form{margin:0;display:flex}
.page-heading h1{margin-top:0}
@media (max-width:760px){
  .brand-banner{align-items:flex-start;flex-direction:column;gap:12px}
  .brand-actions{justify-content:flex-start}
  .brand-logo{width:190px;height:78px}
}

/* ---- Stock display --------------------------------------------------------- */
.stock-cell{white-space:nowrap}
.stock-number{font-weight:750;font-size:16px}
.stock-number.ok{color:#238443;background:transparent}
.stock-number.low{color:#b77900;background:transparent}
.stock-number.out{color:#c62828;background:transparent}
.case-position{display:flex;flex-direction:column;gap:2px}
.case-info{display:block;color:var(--muted);font-size:.76rem;line-height:1.2}
.case-edit{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;min-width:260px}
.case-edit input{min-width:0}
@media (max-width:760px){.case-edit{grid-template-columns:1fr}.case-info{font-size:.72rem}}

/* ---- Stock import --------------------------------------------------------- */
.import-card{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:16px}
.import-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.import-help{color:var(--muted);font-size:.9rem}
.import-file{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.import-file input[type=file]{padding:8px}
.import-table{min-width:900px}
.import-table .ok{background:transparent}
.import-table .bad{color:var(--out);font-weight:650}
.import-table .warn{color:var(--low);font-weight:650}
.import-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}
.import-summary{font-weight:650;margin:12px 0 0}

.new-action{color:var(--ok)}
.update-action{color:var(--accent)}

.order-success{
  margin:18px 0 0;
  padding:16px;
  border:1px solid #b9d8c1;
  background:#eef8f0;
  color:#174d2a;
  border-radius:12px;
  line-height:1.55;
}
.order-success > div{margin-top:5px}
.success-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px!important}
.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
@media (max-width:600px){
  .success-actions{flex-direction:column}
  .success-actions .button-link{width:100%;min-height:48px}
}
