:root{--ink:#23301a;--muted:#5d6a55;--card:#fffffff0;--line:#dfe5d8;--green:#3f8f3a;--gold:#c98a00;--gray:#8a9087;--blue:#3b78b8;--red:#b83a2e}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#c9d6e0;margin:0;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}canvas{display:block}[hidden]{display:none!important}.spacer{flex:1}.card{background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;box-shadow:0 2px 12px #0002}.loading{z-index:30;background:#c9d6e0;place-items:center;font-size:15px;display:grid;position:fixed;inset:0}.btn{font:inherit;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:999px;padding:7px 13px}.btn:hover{background:#f3f7ee}.btn.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.btn.primary:hover{background:#357d31}.btn[aria-pressed=false]{opacity:.6}.btn.round{width:34px;height:34px;padding:0;font-size:13px}.btn.small{padding:3px 9px;font-size:12px}select,input[type=date],input[type=number]{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:6px 8px}.top{z-index:10;pointer-events:none;align-items:flex-start;gap:10px;display:flex;position:fixed;top:12px;left:12px;right:12px}.top>*{pointer-events:auto}.brand{padding:9px 14px}.brand h1{margin:0;font-size:16px}.brand span{color:var(--muted);font-size:12px}.weather{min-width:300px;padding:9px 14px}.weather .big{font-size:15px;font-weight:600}.weather .sub{color:var(--muted)}.badge{color:#fff;vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.actual{background:var(--green)}.badge.forecast{background:var(--blue)}.badge.typical{background:var(--gray)}.alert{color:#1f4f7d;background:#e3f0fb;border-radius:6px;margin-top:5px;padding:4px 8px;font-weight:600}.alert.warn{color:var(--red);background:#fdeceb}.timebar{z-index:10;padding:10px 14px;position:fixed;bottom:12px;left:12px;right:12px}.timebar .row{align-items:center;gap:8px;display:flex}.timebar .row+.row{margin-top:8px}#date-slider{accent-color:var(--green);flex:1}.edge{color:var(--muted);white-space:nowrap;font-size:12px}.hour{color:var(--muted);align-items:center;gap:8px;display:flex}.hour b{color:var(--ink);min-width:62px}#hour{width:150px;accent-color:var(--gold)}.labels-off .tag{display:none}.tag{pointer-events:auto;cursor:pointer;border-left:4px solid var(--gray);transform-origin:bottom;white-space:nowrap;background:#fffffff2;border-radius:8px;min-width:104px;padding:4px 8px 5px;box-shadow:0 1px 6px #0003}.tag:hover{background:#fff;box-shadow:0 2px 10px #0005}.tag b{font-size:12.5px;display:block}.tag span{color:var(--muted);font-size:11px;display:block}.tag .bar,.bar{background:#e3e8dd;border-radius:2px;height:4px;margin-top:4px;display:block;overflow:hidden}.bar i{background:var(--green);height:100%;display:block}.tag.s-ready{border-color:var(--gold);background:#fff8e1f5}.tag.s-ready .bar i{background:var(--gold)}.tag.s-growing,.tag.s-sprout,.tag.s-budding{border-color:var(--green)}.tag.s-rest{border-color:var(--blue)}.tag.s-empty,.tag.s-done{opacity:.92}.panel{z-index:11;width:350px;padding:14px 16px;position:fixed;top:86px;bottom:112px;right:12px;overflow-y:auto}.panel h2{margin:0 0 2px;font-size:16px}.panel h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px;font-size:12px}.panel .close,.sheet .close{position:absolute;top:10px;right:10px}.chip{background:#e7ecdf;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.chip.ready{color:#6b4a00;background:#ffe9a8}.chip.growing,.chip.sprout,.chip.budding{color:#24591f;background:#dcefd6}.chip.rest{color:#1f4f7d;background:#dbe9f7}.chip.late{color:var(--red);background:#fdeceb}.facts{grid-template-columns:108px 1fr;gap:4px 10px;margin:10px 0 0;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.note{color:#3d4a35;background:#f3f6ee;border-radius:8px;margin-top:8px;padding:7px 9px}.warn-note{color:var(--red);background:#fdeceb}.panel ul{margin:0;padding-left:18px}.planting{border-top:1px solid var(--line);padding:8px 0}.planting .line{align-items:center;gap:6px;display:flex}.planting .line b{flex:1}.planting small{color:var(--muted);margin-top:2px;display:block}.modal{z-index:20;background:#0006;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.sheet{background:#fff;border-radius:14px;width:min(1180px,100%);max-height:100%;padding:20px 24px 24px;position:relative;overflow:auto}.sheet h2{margin:0;font-size:19px}.sheet h3{margin:22px 0 8px;font-size:14px}.sheet .lead{color:var(--muted);margin:2px 0 14px}.tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 4px;display:grid}.stat{background:#f3f6ee;border-radius:10px;padding:10px 12px}.stat b{font-size:19px;display:block}.stat span{color:var(--muted);font-size:12px}.stat.hl{background:#e2f1dd}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;font-size:11.5px}td.num,th.num{text-align:right;white-space:nowrap}td small{color:var(--muted);display:block}tfoot td{border-bottom:0;font-weight:700}input.money{text-align:right;width:74px;padding:4px 6px}input.qty{text-align:right;width:58px;padding:4px 6px}.src{white-space:nowrap;font-size:11.5px;font-weight:600}.src.bigbox{color:var(--green)}.src.seasonal{color:var(--gold)}.src.specialty{color:var(--red)}.fine{color:var(--muted);margin-top:14px;font-size:12px}
