:root{
  --bg:#f4eadb;--panel:#fffaf2;--ink:#292317;--muted:#776b57;--line:#dfcfb8;--soft:#eadcca;
  --green:#3e7046;--orange:#b65b31;--gold:#9b7633;--red:#9d3d30;--blue:#3a6b85;
  --shadow:0 18px 42px rgba(54,41,21,.13);--radius:22px
}
*{box-sizing:border-box}
html,body{margin:0;background:linear-gradient(180deg,#efe0c8,#f8efe2 42%,#efe1c8);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.app{max-width:900px;margin:0 auto;min-height:100svh;padding-bottom:92px}
.top{position:sticky;top:0;z-index:20;background:rgba(244,234,219,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(41,35,23,.12);padding:16px}
.brand{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.kicker{font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:var(--muted);font-weight:800}
.title{font-family:Georgia,serif;font-size:28px;line-height:1;margin:4px 0 0}
.pill{border:1px solid var(--line);background:rgba(255,250,242,.7);border-radius:999px;padding:8px 10px;font-size:11px;color:var(--muted);white-space:nowrap;cursor:pointer}
.pill:hover{background:var(--panel)}
.main{padding:16px}
.hero{background:linear-gradient(135deg,#fff9ef,#efe0c8);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.hero h2{font-family:Georgia,serif;font-size:26px;margin:0 0 8px}
.hero p{margin:0;color:var(--muted);line-height:1.45}
.searchBox{display:grid;gap:10px}
.inputWrap{position:relative}
.inputWrap input{width:100%;border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:14px 14px 14px 42px;outline:none;font-size:16px}
.inputWrap input:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(62,112,70,.12)}
.icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);opacity:.55}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chipBtn,.ghost,.primary{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:10px 12px;font-size:13px;font-weight:750;color:var(--ink)}
.chipBtn.active,.primary{background:var(--green);border-color:var(--green);color:#fff}
.ghost{background:rgba(255,250,242,.75)}
.ghost.danger{color:var(--red);border-color:rgba(157,61,48,.3)}
.small{padding:8px 10px;font-size:12px}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;background:rgba(255,250,242,.97);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);max-width:900px;margin:auto}
.tabs button{border:0;background:transparent;padding:12px 8px 14px;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.tabs button.active{color:var(--green)}
.resultsHead{display:flex;justify-content:space-between;align-items:flex-end;margin:16px 2px 10px}
.h2{font-family:Georgia,serif;font-size:22px;margin:0}
.count{font-size:12px;color:var(--muted);margin-top:4px}
.card{background:rgba(255,250,242,.92);border:1px solid var(--line);border-radius:20px;box-shadow:0 10px 24px rgba(54,41,21,.08);padding:14px;margin-bottom:10px}
.prodTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.prodName{font-family:Georgia,serif;font-weight:700;font-size:21px;line-height:1.05}
.meta{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}
.badgeRow,.tagRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.badge{font-size:11px;padding:4px 8px;border-radius:999px;background:var(--soft);color:var(--muted);font-weight:750}
.badge.green{background:rgba(62,112,70,.12);color:var(--green)}
.badge.orange{background:#ffe2d2;border:1px solid #e8a37e;color:#9d3d30}
.badge.gold{background:rgba(155,118,51,.14);color:var(--gold)}
.badge.warn{background:rgba(157,61,48,.13);color:var(--red);font-weight:850}
.badge.aquatic{background:rgba(58,107,133,.13);color:var(--blue);font-weight:850}
.badge.mpb{background:rgba(62,112,70,.18);color:var(--green);font-weight:850;border:1px solid rgba(62,112,70,.3)}
.badge.expired{background:rgba(157,61,48,.18);color:var(--red);font-weight:850}
.badge.expsoon{background:rgba(155,118,51,.18);color:var(--gold);font-weight:850}
.desc{color:var(--muted);font-size:13px;line-height:1.42;margin:10px 0 0}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.empty{border:1px dashed var(--line);border-radius:22px;background:rgba(255,250,242,.55);padding:22px;text-align:center;color:var(--muted);line-height:1.45}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0}
.stockRow,.histRow{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px dashed var(--line);padding:12px 0}
.stockRow:last-child,.histRow:last-child{border-bottom:0}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:var(--panel)}
.qty input{width:64px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:6px 8px;font-size:14px;text-align:center}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.weekday,.day{background:var(--panel);min-height:54px;padding:7px;font-size:12px}
.weekday{text-align:center;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:800;min-height:auto}
.today{outline:2px solid var(--orange);outline-offset:-2px}
.dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin:2px}
.modal{position:fixed;inset:0;background:rgba(35,28,17,.55);z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--bg);width:100%;max-width:720px;max-height:88svh;overflow:auto;border-radius:24px 24px 0 0;border:1px solid var(--line);box-shadow:var(--shadow)}
.sheetHead{position:sticky;top:0;background:rgba(244,234,219,.96);backdrop-filter:blur(14px);display:flex;justify-content:space-between;gap:10px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}
.sheetBody{padding:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:850;margin-bottom:6px}
label input,label textarea,label select{width:100%;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:12px;outline:none}
.kv{border:1px solid var(--line);border-radius:16px;padding:10px;background:rgba(255,250,242,.72)}
.kv b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);background:#2d281f;color:#fff;border-radius:999px;padding:11px 15px;z-index:100;font-size:13px;box-shadow:0 10px 20px rgba(0,0,0,.2)}
.source{font-size:11px;color:var(--muted);margin-top:10px}
.source.link{display:inline-block;margin-top:6px;cursor:pointer;text-decoration:underline}
.danger{color:var(--red)}
.warnBox{background:rgba(157,61,48,.08);border:1px solid rgba(157,61,48,.25);border-radius:14px;padding:10px 12px;margin-top:10px;color:var(--red);font-size:13px;line-height:1.4;font-weight:600}
.infoBox{background:rgba(58,107,133,.08);border:1px solid rgba(58,107,133,.25);border-radius:14px;padding:10px 12px;margin-top:10px;color:var(--blue);font-size:13px;line-height:1.4}
.subGroup{margin-bottom:14px}
.subGroup h3{font-family:Georgia,serif;font-size:16px;margin:0 0 6px;color:var(--green)}
.subGroup .meta{margin-top:0}
.fileBtn{display:inline-block;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:10px 12px;font-size:13px;font-weight:750;cursor:pointer}
.fileBtn input{display:none}
@media(max-width:620px){.prodTop{display:block}.grid2,.grid3,.detailGrid{grid-template-columns:1fr}.title{font-size:25px}.main{padding:12px}.top{padding:14px 12px}.card{border-radius:18px}.hero{border-radius:20px}}
.main{animation:fadeIn .22s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.sheet{animation:slideUp .25s cubic-bezier(.2,.8,.2,1)}
@keyframes slideUp{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.monthHead{font-family:Georgia,serif;font-size:15px;color:var(--green);margin:18px 2px 8px;text-transform:capitalize;font-weight:700;display:flex;align-items:center;gap:8px}
.monthHead .count{font-size:11px;color:var(--muted);font-weight:600;font-family:Inter,sans-serif;text-transform:none}
.filterPill{display:inline-flex;align-items:center;gap:4px;background:rgba(62,112,70,.1);color:var(--green);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;margin-right:4px}
.tipoBadge{font-size:10px;padding:2px 7px;border-radius:6px;background:rgba(119,107,87,.12);color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.tipoBadge.hortas{background:rgba(62,112,70,.15);color:var(--green)}
.qty button{min-width:44px;min-height:44px}
.activeFilters{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;align-items:center}
.why{margin:10px 0 0;padding:8px 10px;border-radius:14px;background:rgba(62,112,70,.08);border:1px solid rgba(62,112,70,.18);font-size:12px;color:#40543a;line-height:1.35}
.why b{color:var(--green)}
.groupHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 2px 8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.groupHead .line{height:1px;background:var(--line);flex:1}
.quickTitle{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:12px 0 6px}
.typeFilters{margin-top:8px}
.scorePill{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:rgba(255,255,255,.35);font-weight:700}
