:root{--bg:#f5f7f4;--surface:#fff;--surface-soft:#eef5ef;--ink:#17231f;--muted:#60706b;--line:#dfe7e1;--green:#2f7d70;--green-dark:#1f5e55;--blue:#4267d6;--gold:#d99322;--red:#c84438;--red-soft:#fff0ee;--gold-soft:#fff7e3;--shadow:0 18px 45px #192f261f}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{color:var(--ink);background:linear-gradient(180deg, #2f7d7014, transparent 280px), var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.app-shell{width:min(1440px,100%);margin:0 auto;padding:28px}.topbar,.panel-header,.modal-header,.usage-row,.list-row,.history-row,.treatment-meta,.modal-actions,.action-group,.filters{align-items:center;display:flex}.topbar{justify-content:space-between;gap:20px;margin-bottom:22px}.topbar h1,.panel h2,.modal h2{letter-spacing:0;margin:0}.topbar h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1}.eyebrow{color:var(--green-dark);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.76rem;font-weight:800}.topbar-actions,.filters{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.button{min-height:42px;color:var(--ink);background:var(--surface);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px #17231f1c}.button.primary{color:#fff;background:var(--green)}.button.secondary{border-color:var(--line);color:var(--green-dark)}.button.danger{color:#fff;background:var(--red)}.button.small{min-height:36px;padding:0 12px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.summary-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-content:space-between;min-height:138px;padding:18px;display:grid;box-shadow:0 12px 30px #192f2614}.summary-card svg{color:var(--green)}.summary-card span{color:var(--muted);font-size:.92rem;font-weight:750}.summary-card strong{font-size:2.2rem;line-height:1}.summary-card.warning svg,.summary-card.warning strong{color:var(--gold)}.summary-card.reorder svg,.summary-card.reorder strong{color:var(--blue)}.summary-card.treatment svg,.summary-card.treatment strong{color:var(--green-dark)}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff0;border-radius:8px}.inventory-panel,.history-panel{margin-bottom:18px}.panel-header{justify-content:space-between;gap:16px;padding:18px}.panel-header.compact{padding-bottom:10px}.panel h2{font-size:1.25rem}.search-field,.select-field{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 11px;display:inline-flex}.search-field input,.select-field select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0}.search-field{min-width:min(280px,100%)}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:940px}th,td{border-top:1px solid var(--line);text-align:left;vertical-align:middle;padding:13px 18px}th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.76rem;font-weight:850}tbody tr{background:var(--surface)}tbody tr.low-row{background:linear-gradient(90deg, var(--gold-soft), #fff)}.item-cell{gap:4px;max-width:360px;display:grid}.item-cell span,.list-row span,.history-row span,.empty-note{color:var(--muted);font-size:.88rem}.quantity-cell{font-weight:850}.status-badge,.pill{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.8rem;font-weight:850;display:inline-flex}.status-badge.ok{color:var(--green-dark);background:var(--surface-soft)}.status-badge.low,.pill.warning{color:#8d5a00;background:var(--gold-soft)}.status-badge.negative{color:var(--red);background:var(--red-soft)}.pill{color:var(--blue);background:#4267d61a}.row-actions{justify-content:flex-end;gap:6px;display:flex}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--green-dark);background:var(--surface);border-radius:8px;place-items:center;display:inline-grid}.icon-button.danger{color:var(--red)}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px;display:grid}.list-stack,.history-list{gap:10px;padding:0 18px 18px;display:grid}.list-row,.history-row{border-top:1px solid var(--line);justify-content:space-between;gap:14px;padding-top:12px}.list-row div,.history-row div:first-child{gap:3px;display:grid}.history-items{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.history-items span{background:var(--surface-soft);color:var(--green-dark);border-radius:999px;padding:5px 9px;font-weight:750}.empty-cell{color:var(--muted);text-align:center;padding:28px}.empty-note{margin:0;padding:12px 0}.loading-row{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.spin{animation:.9s linear infinite spin}.toast{z-index:5;border:1px solid var(--line);background:var(--surface);width:fit-content;max-width:min(760px,100%);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:10px;margin:0 0 16px auto;padding:11px 12px;display:flex;position:sticky;top:12px}.toast button{background:0 0;border:0;border-radius:8px;place-items:center;width:26px;height:26px;display:inline-grid}.toast-error{color:var(--red)}.toast-ok{color:var(--green-dark)}.modal-backdrop{z-index:20;background:#121e196b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(720px,100%);max-height:min(880px,92vh);overflow:auto;box-shadow:0 28px 80px #0000003d}.modal.wide{width:min(980px,100%)}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:18px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;display:grid}label{color:var(--muted);gap:6px;font-size:.82rem;font-weight:800;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:var(--surface);border-radius:8px;padding:10px 11px}textarea{resize:vertical}.full-span{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:10px;padding-top:8px}.modal-actions.split{border-top:1px solid var(--line);justify-content:space-between;padding:16px 18px 18px}.action-group{flex-wrap:wrap;justify-content:flex-end;gap:10px}.treatment-meta{align-items:end;gap:14px;padding:18px}.treatment-meta label:first-child{max-width:220px}.usage-list{gap:10px;padding:0 18px 18px;display:grid}.usage-row{border:1px solid var(--line);background:#fbfcfb;border-radius:8px;grid-template-columns:minmax(220px,1fr) 150px minmax(130px,auto) 40px;align-items:end;gap:10px;padding:12px;display:grid}.usage-after{min-height:42px;color:var(--muted);background:var(--surface-soft);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-weight:800;display:inline-flex}.warning-panel{color:var(--red);background:var(--red-soft);border:1px solid #c8443840;border-radius:8px;gap:10px;margin:0 18px 18px;padding:12px;display:flex}.warning-panel div{gap:5px;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1040px){.topbar{flex-direction:column;align-items:flex-start}.topbar-actions,.filters{justify-content:flex-start;width:100%}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}}@media (max-width:720px){.app-shell{padding:18px 14px}.topbar h1{font-size:2.1rem}.summary-grid,.form-grid{grid-template-columns:1fr}.button{width:100%}.panel-header,.history-row,.list-row,.treatment-meta,.modal-actions.split{flex-direction:column;align-items:stretch}.filters,.search-field,.select-field,.treatment-meta label:first-child{width:100%;max-width:none}.history-items{justify-content:flex-start}.usage-row{grid-template-columns:1fr}.usage-after{justify-content:flex-start}}
