:root{--bg:#f5f7f4;--surface:#ffffff;--surface-soft:#eef5ef;--ink:#17231f;--muted:#60706b;--line:#dfe7e1;--green:#2f7d70;--green-dark:#1f5e55;--blue:#4267d6;--gold:#a86400;--red:#c84438;--red-soft:#fff0ee;--gold-soft:#fff7e3;--shadow:0 18px 45px rgba(25,47,38,0.12)}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;color:var(--ink);background:linear-gradient(180deg,rgba(47,125,112,.08),transparent 280px),var(--bg);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}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{width:min(440px,100%);border:1px solid var(--line);border-radius:8px;padding:28px;background:var(--surface);box-shadow:var(--shadow)}.login-panel h1{margin:0 0 22px;font-size:2rem;line-height:1.05}.login-panel form{display:grid;gap:14px}.login-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:8px;margin-bottom:16px;color:#fff;background:var(--green)}.form-error{margin:0;color:var(--red);font-weight:800}.action-group,.filters,.history-row,.list-row,.modal-actions,.modal-header,.panel-header,.topbar,.treatment-meta,.usage-row{display:flex;align-items:center}.topbar{justify-content:space-between;gap:20px;margin-bottom:22px}.modal h2,.panel h2,.topbar h1{margin:0;letter-spacing:0}.topbar h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1}.eyebrow{margin:0 0 6px;color:var(--green-dark);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.filters,.topbar-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid transparent;border-radius:8px;padding:0 15px;font-weight:800;color:var(--ink);background:var(--surface);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px rgba(23,35,31,.11)}.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{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.summary-card{display:grid;min-height:138px;align-content:space-between;border:1px solid var(--line);border-radius:8px;padding:18px;background:var(--surface);box-shadow:0 12px 30px rgba(25,47,38,.08)}.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 strong,.summary-card.warning svg{color:var(--gold)}.summary-card.reorder strong,.summary-card.reorder svg{color:var(--blue)}.summary-card.treatment strong,.summary-card.treatment svg{color:var(--green-dark)}.panel{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.history-panel,.inventory-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{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:var(--surface);color:var(--muted)}.search-field input,.select-field select{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent}.search-field{min-width:min(280px,100%)}.table-wrap{width:100%;overflow-x:auto}table{width:100%;min-width:1180px;border-collapse:collapse}.bulk-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--line);padding:12px 18px;background:#fbfcfb}.bulk-toolbar strong{color:var(--green-dark);font-size:.9rem}.manifest-panel{margin-bottom:18px}.manifest-body{padding:0 18px 18px}.manifest-table-wrap{border-top:1px solid var(--line)}.manifest-table{min-width:860px}.manifest-table input[type=checkbox]{width:20px;min-height:20px;padding:0}.manifest-actions{padding-top:14px}td,th{padding:13px 18px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.76rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.select-column{width:48px;padding-right:10px;padding-left:18px;text-align:center}.table-checkbox{width:18px;min-height:18px;border:0;margin:0;padding:0;accent-color:var(--green);background:transparent}tbody tr{background:var(--surface)}tbody tr.low-row{background:linear-gradient(90deg,var(--gold-soft),#fff)}.item-cell{display:grid;gap:4px;max-width:360px}.empty-note,.history-row span,.item-cell span,.list-row span{color:var(--muted);font-size:.88rem}.quantity-cell{font-weight:850}.pill,.status-badge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;font-size:.8rem;font-weight:850;white-space:nowrap}.status-badge.ok{color:var(--green-dark);background:var(--surface-soft)}.pill.warning,.status-badge.low{color:#8d5a00;background:var(--gold-soft)}.status-badge.negative{color:var(--red);background:var(--red-soft)}.status-badge.muted,.status-badge.not-tracked{color:var(--muted);background:#f1f3f2}.pill{color:var(--blue);background:rgba(66,103,214,.1)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.icon-button{display:inline-grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--green-dark);background:var(--surface)}.icon-button.danger{color:var(--red)}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.history-list,.list-stack{display:grid;gap:10px;padding:0 18px 18px}.history-row,.list-row{justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:12px}.history-row div:first-child,.list-row div{display:grid;gap:3px}.history-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.history-items span{border-radius:999px;padding:5px 9px;background:var(--surface-soft);color:var(--green-dark);font-weight:750}.empty-cell{padding:28px;color:var(--muted);text-align:center}.empty-note{margin:0;padding:12px 0}.loading-row{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.spin{animation:spin .9s linear infinite}.toast{position:sticky;top:12px;z-index:5;display:flex;align-items:center;gap:10px;width:fit-content;max-width:min(760px,100%);margin:0 0 16px auto;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:var(--surface);box-shadow:var(--shadow)}.toast button{display:inline-grid;place-items:center;width:26px;height:26px;border:0;border-radius:8px;background:transparent}.toast-error{color:var(--red)}.toast-ok{color:var(--green-dark)}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(18,30,25,.42)}.modal{width:min(720px,100%);max-height:min(880px,92vh);overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 28px 80px rgba(0,0,0,.24)}.modal.wide{width:min(980px,100%)}.modal-header{justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}label{display:grid;gap:6px;color:var(--muted);font-size:.82rem;font-weight:800}.tracking-options{display:grid;gap:9px;margin:0;border:1px solid var(--line);border-radius:8px;padding:10px 12px 12px}.tracking-options legend{padding:0 4px;color:var(--muted);font-size:.82rem;font-weight:800}.radio-option{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:.86rem}.radio-option input{width:18px;min-height:18px;border:0;margin-top:2px;padding:0;accent-color:var(--green);background:transparent}.radio-option span{display:grid;gap:2px}.radio-option small{color:var(--muted);font-weight:650}input,select,textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:10px 11px;color:var(--ink);background:var(--surface)}textarea{resize:vertical}.full-span{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:10px;padding-top:8px}.modal-actions.split{justify-content:space-between;border-top:1px solid var(--line);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}.template-bar{grid-template-columns:minmax(180px,260px) minmax(220px,1fr) auto;gap:14px;align-items:end}.template-bar,.usage-list{display:grid;padding:0 18px 18px}.usage-list{gap:10px}.usage-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px minmax(130px,auto) 40px;gap:10px;align-items:end;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfb}.usage-after{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0 10px;color:var(--muted);background:var(--surface-soft);font-weight:800;white-space:nowrap}.warning-panel{display:flex;gap:10px;margin:0 18px 18px;border:1px solid rgba(200,68,56,.25);border-radius:8px;padding:12px;color:var(--red);background:var(--red-soft)}.warning-panel div{display:grid;gap:5px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1040px){.topbar{align-items:flex-start;flex-direction:column}.filters,.topbar-actions{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}.form-grid,.summary-grid{grid-template-columns:1fr}.button{width:100%}.history-row,.list-row,.modal-actions.split,.panel-header,.treatment-meta{align-items:stretch;flex-direction:column}.filters,.search-field,.select-field,.treatment-meta label:first-child{width:100%;max-width:none}.history-items{justify-content:flex-start}.template-bar,.usage-row{grid-template-columns:1fr}.usage-after{justify-content:flex-start}}