:root{--bg:#f7f7f4;--surface:#fff;--surface-2:#f0f0eb;--text:#1b1d1a;--text-muted:#5c6159;--border:#d8d9d2;--border-strong:#b9bbb2;--accent:#2f6b3a;--accent-text:#fff;--accent-soft:#e6f1e7;--due:#1f6f43;--due-bg:#e4f3e9;--overdue:#a8331f;--overdue-bg:#fbe6e1;--upcoming:#2c5578;--upcoming-bg:#e5eef6;--info:#5c6159;--info-bg:#eeeeea;--suppressed:#7b7f77;--suppressed-bg:#f0f0ec;--warn:#8a5a00;--warn-bg:#fdf0d8;--block:#a8331f;--block-bg:#fbe1dc;--ok:#1f6f43;--ok-bg:#e4f3e9;--danger:#a8331f;--radius:12px;--radius-sm:8px;--tap:44px;--gap:12px;--pad:16px;--shadow:0 1px 2px #0000000f, 0 1px 3px #0000000a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji"}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--surface:#1d2025;--surface-2:#262a30;--text:#eceef0;--text-muted:#a2a8b0;--border:#333840;--border-strong:#4a5058;--accent:#62b878;--accent-text:#10210f;--accent-soft:#1e3123;--due:#74cf94;--due-bg:#16301f;--overdue:#ff9d88;--overdue-bg:#3a1c16;--upcoming:#8dbde8;--upcoming-bg:#172733;--info:#a2a8b0;--info-bg:#232830;--suppressed:#868c94;--suppressed-bg:#212630;--warn:#f0bc63;--warn-bg:#382a10;--block:#ff9d88;--block-bg:#3a1c16;--ok:#74cf94;--ok-bg:#16301f;--danger:#ff8a72;--shadow:0 1px 2px #00000080}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}h1,h2,h3{margin:0;line-height:1.25}p{margin:0 0 8px}ul,ol{margin:0 0 8px;padding-left:20px}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.app{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.main{padding:var(--pad);padding-bottom:calc(72px + var(--pad) + env(safe-area-inset-bottom,0px));flex:1;width:100%;max-width:640px;margin:0 auto}.boot{min-height:100vh;place-items:center;min-height:100dvh;display:grid}.view-head{margin-bottom:var(--gap);flex-direction:column;gap:10px;display:flex}.view-title{letter-spacing:-.01em;font-size:1.6rem}.section{margin-top:24px}.group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px;font-size:.85rem}.stack,.cards{gap:var(--gap);flex-direction:column;display:flex}.grid-2{gap:var(--gap);grid-template-columns:1fr 1fr;display:grid}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-height:60px;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 2px;text-decoration:none;display:flex}.tab-active{color:var(--accent);font-weight:600}.tab-label{letter-spacing:.01em;font-size:.72rem}.tab-icon{display:block}.global-banners{z-index:10;position:sticky;top:0}.banner{padding:10px var(--pad);justify-content:space-between;align-items:center;gap:8px;font-size:.9rem;font-weight:500;display:flex}.banner-offline{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--border)}.banner-queued{background:var(--upcoming-bg);color:var(--upcoming);border-bottom:1px solid var(--border)}.view-today .banner{border-radius:var(--radius-sm);margin-bottom:var(--gap)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow)}.card-title{margin-bottom:10px;font-size:1.05rem}.form-card{gap:var(--gap);flex-direction:column;display:flex}.date-nav{align-items:stretch;gap:8px;display:flex}.date-nav .btn{min-width:var(--tap);font-size:1.3rem;line-height:1}.date-current{flex-direction:column;flex:1;gap:2px;font-size:1rem}.date-label{font-weight:600}.date-iso{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.task{border-left:5px solid var(--info)}.task-due{border-left-color:var(--due)}.task-overdue{border-left-color:var(--overdue);background:var(--overdue-bg)}.task-upcoming{border-left-color:var(--upcoming)}.task-info{border-left-color:var(--border-strong);color:var(--text-muted)}.task-suppressed{border-left-color:var(--suppressed);background:var(--suppressed-bg)}.task-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.task-label{font-size:1.1rem}.task-suppressed .task-label{color:var(--suppressed);text-decoration:line-through}.task-type{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:4px 0 8px;font-size:.78rem}.task-detail{margin-bottom:6px}.task-reason{color:var(--text-muted);font-size:.9rem;font-style:italic}.pill{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;flex:none;padding:4px 9px;font-size:.72rem;font-weight:700}.pill-due{background:var(--due-bg);color:var(--due)}.pill-overdue{background:var(--overdue-bg);color:var(--overdue)}.pill-upcoming{background:var(--upcoming-bg);color:var(--upcoming)}.pill-info{background:var(--info-bg);color:var(--info)}.pill-suppressed{background:var(--suppressed-bg);color:var(--suppressed)}.annotation{margin-top:var(--gap);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:12px}.annotation-blocked{border-color:var(--block)}.annotation-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.annotation-product{font-size:1rem}.crop-tag{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:600}.dose{margin-bottom:8px}.dose-amount{margin-bottom:2px;font-size:1.1rem;font-weight:650}.dose-detail{font-size:.95rem}.dose-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;margin:0;font-size:.8rem;display:flex}.blocked-note{background:var(--block-bg);color:var(--block);border-radius:var(--radius-sm);margin:8px 0 0;padding:10px 12px;font-size:.92rem}.blocked-note ul{margin:6px 0 10px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--info-bg);min-height:32px;color:var(--text-muted);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.chip-block{background:var(--block-bg);color:var(--block);border-color:var(--block)}.chip-warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.chip-neutral{cursor:default;background:var(--surface-2);border-color:var(--border);color:var(--text-muted)}.chips-filter{margin-top:2px}.chip-filter{min-height:var(--tap);background:var(--surface-2);border-color:var(--border);color:var(--text);padding:8px 14px}.chip-on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.guardrails{margin-bottom:8px}.guardrail-messages{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.guardrail-block{border-left:3px solid var(--block);color:var(--block);padding-left:8px}.guardrail-warn{border-left:3px solid var(--warn);color:var(--warn);padding-left:8px}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--info-bg);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:700;display:inline-block}.badge-active{background:var(--ok-bg);color:var(--ok)}.badge-do_not_use{background:var(--block-bg);color:var(--block)}.badge-to_buy,.badge-to_verify,.badge-conditional{background:var(--warn-bg);color:var(--warn)}.badge-shelved,.badge-deferred,.badge-optional{background:var(--info-bg);color:var(--text-muted)}.btn{min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:1rem;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-secondary{background:var(--surface-2)}.btn-quiet{color:inherit;background:0 0;border-color:#0000;text-decoration:underline}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-block{width:100%}.btn-lg{min-height:52px;font-size:1.05rem}.btn-sm{min-height:36px;padding:6px 12px;font-size:.85rem}.btn-step{min-width:var(--tap);font-size:1.4rem;line-height:1}.link-btn{min-height:36px;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:.9rem;font-weight:600;text-decoration:underline}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-actions .btn{flex:1}.field{flex-direction:column;gap:6px;display:flex}.fieldset{border:none;margin:0;padding:0}.field-label{color:var(--text-muted);font-size:.85rem;font-weight:600}.field-hint{color:var(--text-muted);font-size:.8rem}.input{width:100%;min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:10px 12px;font-family:inherit;font-size:16px}.input-lg{min-height:52px;font-size:1.1rem}.input-sm{min-height:40px;padding:8px 10px}select.input{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.checks{flex-direction:column;gap:2px;display:flex}.check{min-height:var(--tap);align-items:center;gap:10px;padding:4px 0;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent)}.stepper{align-items:stretch;gap:8px;display:flex}.stepper-value{min-height:var(--tap);text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);flex:1;font-size:1.1rem;font-weight:600}.emitters{flex-direction:column;gap:8px;display:flex}.emitter-row{align-items:center;gap:8px;display:flex}.emitter-row .input{flex:1;min-width:0}.times{color:var(--text-muted)}.emitter-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.selected-product{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.note{border-radius:var(--radius-sm);margin:0 0 var(--gap);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.92rem;display:flex}.note-error{background:var(--block-bg);color:var(--block)}.note-warn{background:var(--warn-bg);color:var(--warn)}.note-ok{background:var(--ok-bg);color:var(--ok)}.empty{color:var(--text-muted);padding:8px 0;font-style:italic}.muted{color:var(--text-muted)}.small{font-size:.8rem}.loading{color:var(--text-muted);align-items:center;gap:10px;padding:20px 0;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}.btn:active{transform:none}}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list-plain{margin:8px 0;padding-left:20px;list-style:outside}.list-item{padding:12px var(--pad)}.list-title{font-size:1rem}.list-sub{color:var(--text-muted);margin:2px 0 0;font-size:.85rem}.list-note{margin:6px 0 0;font-size:.9rem}.product-group{margin-bottom:24px}.product-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.product-name{font-size:1.05rem}.product-danger{border-color:var(--block)}.product-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:.85rem;display:flex}.product-ai{color:var(--text-muted);font-size:.9rem}.product-rate{font-size:1rem}.product-notes{border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:.9rem}.phi-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:.88rem}.phi-table th,.phi-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 6px}.phi-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem}.phi-offlabel{background:var(--block-bg)}.offlabel{color:var(--block);font-weight:700}.planting-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.planting-title{font-size:1.05rem}.planting-edit{gap:var(--gap);margin-top:var(--gap);padding-top:var(--gap);border-top:1px solid var(--border);flex-direction:column;display:flex}.delivery{border-radius:var(--radius-sm);background:var(--info-bg);padding:10px 12px;font-size:.92rem}.delivery-ok{background:var(--ok-bg);color:var(--ok)}.delivery-under{background:var(--warn-bg);color:var(--warn)}.delivery-over{background:var(--upcoming-bg);color:var(--upcoming)}.delivery-head{margin-bottom:4px}.delivery-rec{color:inherit;margin:0}.tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--gap);gap:4px;padding:4px;display:flex}.tab-btn{min-height:var(--tap);cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex:1;font-weight:600}.tab-btn-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.wizard-progress{color:var(--text-muted);margin:0;font-size:.85rem}.wizard-list{flex-direction:column;gap:6px;margin:10px 0 16px;display:flex}.view-wizard .btn-block+.btn-block{margin-top:8px}.login{min-height:100vh;min-height:100dvh;padding:var(--pad);place-items:center;display:grid}.login-card{gap:var(--gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;padding:24px var(--pad);box-shadow:var(--shadow);flex-direction:column;display:flex}.login-title{text-align:center;font-size:1.8rem}.login-sub{text-align:center;color:var(--text-muted);margin:0}.result-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.result-blocked{border-color:var(--block)}@media (min-width:560px){.main{padding:24px;padding-bottom:calc(72px + 24px + env(safe-area-inset-bottom,0px))}.view-head{flex-direction:row;justify-content:space-between;align-items:center}.date-nav{max-width:320px}}
