:root{--ink:#1d2a17;--muted:#62705a;--bg:#f5f3ec;--card:#fff;--line:#e2ddcf;--brand:#2f5d1e;--brand2:#4a8a2c;--sun:#e8a317;--exp:#c0392b;--sale:#1e7a43;--radius:14px}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent}
button,input,select{font:inherit}button{cursor:pointer}
h1{font-size:1.45rem;margin:.2rem 0 .7rem}h2{font-size:1.1rem;margin:1.2rem 0 .6rem}
.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:var(--brand);color:#fff}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.1rem}.logo{font-size:1.3rem}
.sync{background:rgba(255,255,255,.15);border:0;color:#fff;border-radius:999px;padding:6px 12px;font-size:.82rem}
.sync.pending,.sync.error{background:var(--sun);color:#1d2a17}
main{max-width:680px;margin:0 auto;padding:16px 14px}
.primary{background:var(--brand2);color:#fff;border:0;border-radius:999px;padding:12px 20px;font-weight:600}
.primary.small{padding:8px 14px;font-size:.9rem}.primary.big{font-size:1.1rem;padding:15px}
.wide{width:100%;margin-top:10px}
.ghost{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 18px;color:var(--ink)}
.ghost.small{padding:7px 12px;font-size:.85rem}
.danger{background:none;border:0;color:var(--exp);text-decoration:underline;margin-top:14px;width:100%}
.link{background:none;border:0;color:var(--brand2);font-weight:600;padding:10px 0}
.head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.head h1{margin:0}
.welcome{text-align:center;padding:30px 10px}.huge{font-size:4rem;margin:0}
.chips{display:flex;gap:8px;overflow-x:auto;margin:6px 0 12px;padding-bottom:2px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-weight:600;color:var(--muted);flex:none}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 8px;text-align:center}
.kpi span{display:block;font-size:.75rem;color:var(--muted)}.kpi b{font-size:1rem}
.kpi.exp b{color:var(--exp)}.kpi.sale b{color:var(--sale)}.kpi.pos b{color:var(--sale)}.kpi.neg b{color:var(--exp)}
.kpis.small .kpi b{font-size:.9rem}
.big-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn-exp,.btn-sale{border:0;border-radius:var(--radius);padding:18px 10px;font-size:1.15rem;font-weight:700;color:#fff}
.btn-exp{background:var(--exp)}.btn-sale{background:var(--sale)}
.tx{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin:7px 0;text-align:left;color:inherit}
.tx-ic{font-size:1.4rem;flex:none}.tx-body{flex:1;min-width:0;display:flex;flex-direction:column}
.tx-body small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-amt{font-weight:700;white-space:nowrap}.tx.exp .tx-amt{color:var(--exp)}.tx.sale .tx-amt{color:var(--sale)}
.farm{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:12px 0}
.farm-head{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem;cursor:pointer}
.farm-head small{display:block;color:var(--muted);font-size:.8rem}
.plot{border-left:3px solid var(--brand2);padding:6px 0 6px 10px;margin:10px 0}
.plot-head{display:flex;justify-content:space-between;cursor:pointer}.plot-head small{color:var(--muted)}
.edit{opacity:.6}
.crops{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.crop{background:#eef5e8;border:1px solid #cfe2c2;border-radius:999px;padding:6px 12px;color:var(--ink)}
.crop.ended{opacity:.55}.crop.add{background:#fff;border-style:dashed;color:var(--brand2)}
.sheet{position:fixed;inset:0;z-index:20}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.sheet-box{position:absolute;left:0;right:0;bottom:0;max-height:90vh;overflow-y:auto;background:var(--bg);border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));max-width:680px;margin:0 auto}
.sheet-box h2{margin-top:4px}
.form{display:flex;flex-direction:column;gap:12px}
.form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.92rem}
.form input,.form select,.filters select{padding:11px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
.amount{font-size:1.5rem!important;font-weight:700}
.hint{font-size:.82rem;color:var(--muted);margin:0}
.row{display:flex;gap:10px;justify-content:flex-end}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.seg button{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:12px;font-weight:700;color:var(--muted)}
.seg .on.exp{background:var(--exp);border-color:var(--exp);color:#fff}.seg .on.sale{background:var(--sale);border-color:var(--sale);color:#fff}
.catgrid{display:flex;flex-wrap:wrap;gap:6px}
.cat{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:.88rem;color:var(--ink)}
.cat.on{background:var(--brand);border-color:var(--brand);color:#fff}
.dest{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:10px;background:#fbfaf6}
.dest legend{font-weight:700;padding:0 6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.legend{font-size:.8rem;text-align:center;margin:-4px 0 6px}.legend .e{color:var(--exp)}.legend .s{color:var(--sale)}
.rep-line{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;background:none;border:0;border-bottom:1px dashed var(--line);padding:8px 0;text-align:left;color:inherit}
.rl-name{flex:1;min-width:0}.rl-nums{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}
.rl-nums .e{color:var(--exp)}.rl-nums .s{color:var(--sale)}.pos{color:var(--sale)}.neg{color:var(--exp)}
.detail{margin:8px 0}
.d-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.d-row span{display:flex;flex-direction:column}.d-row small{color:var(--muted)}
.d-row.exp b{color:var(--exp)}.d-row.sale b{color:var(--sale)}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:6}
.tab{flex:1;background:none;border:0;padding:7px 0 9px;display:flex;flex-direction:column;align-items:center;font-size:.72rem;color:var(--muted)}
.tab span{font-size:1.25rem}.tab.active{color:var(--brand);font-weight:700}
.tab.add span{background:var(--brand2);color:#fff;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;margin-top:-16px;box-shadow:0 4px 10px rgba(0,0,0,.2);font-size:1.4rem}
.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;opacity:0;transition:.3s;pointer-events:none;z-index:30;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%)}
.d-row b,.rl-nums b,.rl-nums small{white-space:nowrap}
