body.booting #loginView { display: none; }
.handoff-boot { display: none; min-height: 100vh; place-items: center; align-content: center; gap: 12px; background: #07100b; color: #f5f7f4; text-align: center; }
body.booting .handoff-boot { display: grid; }
.handoff-boot img { width: 180px; max-width: 62vw; margin-bottom: 8px; }
.handoff-boot strong { color: #79e89c; letter-spacing: .08em; font-size: .9rem; }

.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.page-heading h1{margin:6px 0 8px;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em}.page-heading p{margin:0;color:#9eafa2;max-width:680px;line-height:1.55}.eyebrow{font-size:.72rem;letter-spacing:.12em;color:#73d791;font-weight:800}.connected-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #2f7650;background:#12351f;color:#b7edca;border-radius:999px;padding:9px 12px;font-size:.72rem;font-weight:800;white-space:nowrap}.connected-pill i,.qa-status i{width:8px;height:8px;background:#4cdb7e;border-radius:50%;display:inline-block}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:32px}.stat-card,.harvest-card,.history-list,.history-row{background:#102017;border:1px solid #23432e;border-radius:16px}.stat-card{padding:20px}.stat-card span,.metric-grid span{display:block;font-size:.7rem;letter-spacing:.1em;color:#86a091;font-weight:800}.stat-card b{display:block;font-size:2.3rem;margin:8px 0 4px;color:#f1fff3}.stat-card small{color:#9eafa2}.section-head{display:flex;justify-content:space-between;align-items:center;margin:20px 0 14px}.section-head h2{margin:0}.section-head p{margin:5px 0;color:#9eafa2}.harvest-list{display:grid;gap:14px}.harvest-card{padding:20px}.card-top{display:flex;justify-content:space-between;gap:18px}.card-top h3{margin:6px 0 4px;font-size:1.4rem}.card-top p{margin:0;color:#9eafa2}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 14px}.metric-grid>div{background:#0a160f;border-radius:12px;padding:12px}.metric-grid b{display:block;margin-top:7px;font-size:1.15rem;color:#effff1}.progress-track{height:9px;background:#21392a;border-radius:99px;overflow:hidden}.progress-track i{display:block;height:100%;background:#55d47d;border-radius:99px}.progress-label{display:flex;justify-content:space-between;color:#9eafa2;font-size:.78rem;padding-top:7px}.rule-note{display:flex;gap:10px;align-items:flex-start;margin:16px 0;padding:12px 14px;background:#172d1e;border-left:3px solid #55d47d;border-radius:8px;color:#ccead3}.rule-note strong{white-space:nowrap;color:#79e89c}.rule-note span{color:#c2d8c7}.card-actions{display:flex;justify-content:flex-end;gap:10px}.button{cursor:pointer}.empty-state{padding:34px;border:1px dashed #35573e;border-radius:16px;color:#a9b9ad;line-height:1.6}.empty-state strong{display:block;color:#f1fff3;margin-bottom:5px}.history-list{overflow:hidden}.history-row{border:0;border-bottom:1px solid #23432e;border-radius:0;display:flex;gap:12px;padding:16px 18px}.history-row:last-child{border-bottom:0}.history-row p{margin:5px 0 0;color:#9eafa2}.history-dot{width:10px;height:10px;border-radius:50%;background:#55d47d;margin-top:5px;flex:none}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;padding:18px;z-index:40}.dialog-card{background:#102017;border:1px solid #3c6949;border-radius:18px;padding:24px;width:min(560px,100%);box-shadow:0 20px 70px #000}.dialog-card label{display:block;color:#b7cbbc;font-weight:700;margin:15px 0}.dialog-card input{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:12px;border-radius:10px;border:1px solid #42634c;background:#08130c;color:#f1fff3;font:inherit}.dialog-head h2{margin:0}.dialog-head p{margin:5px 0 18px;color:#9eafa2}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:760px){.page-heading{display:block}.connected-pill{margin-top:16px}.stat-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr}.card-top{display:block}.card-top .badge{display:inline-flex;margin-top:12px}.section-head{display:block}.section-head .button{margin-top:10px}.card-actions{display:grid;grid-template-columns:1fr}.mobile-bar{display:flex!important}}
.handoff-boot span { color: #aab9ae; font-size: .84rem; }

:root {
  color-scheme: dark;
  --bg: #050806;
  --shell: #0b110d;
  --surface: #121a15;
  --surface-2: #17221b;
  --surface-3: #1d2a22;
  --line: #34483b;
  --line-strong: #4a6252;
  --text: #f5f8f6;
  --muted: #a8b5ad;
  --green: #079447;
  --green-bright: #20c66d;
  --green-soft: #143b25;
  --orange: #de8614;
  --blue: #2389ce;
  --purple: #7358d6;
  --red: #c9363b;
  --shadow: 0 18px 50px rgba(0, 0, 0, .3);
  --radius: 18px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 50% -200px, rgba(18, 112, 55, .2), transparent 620px), var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .48; }
[hidden] { display: none !important; }

.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(440px, 100%); padding: 25px; border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(180deg, #151e18, #0e1511); box-shadow: var(--shadow); }
.login-logo { width: min(290px, 86%); display: block; margin: 0 auto 12px; border-radius: 11px; background: #000; }
.product-mark { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 2px 0 12px; color: #d8e4dc; font-size: .83rem; letter-spacing: .14em; font-weight: 900; }
.product-mark span { padding: 4px 7px; border-radius: 6px; background: var(--green); color: white; letter-spacing: .08em; }
.review-flag { width: max-content; max-width: 100%; margin: 0 auto 22px; padding: 7px 11px; border: 1px solid #70511e; border-radius: 999px; background: #392810; color: #ffd894; font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-align: center; }
.login-card h1 { margin: 0 0 7px; font-size: 1.75rem; text-align: center; }
.login-copy, .demo-hint { margin: 0 0 20px; color: var(--muted); text-align: center; }
.demo-hint { margin: 14px 0 0; font-size: .88rem; }

label { display: block; margin: 13px 0 7px; color: #eef4f0; font-size: .86rem; font-weight: 850; }
input, select, textarea { width: 100%; min-height: 49px; padding: 12px 13px; border: 1px solid var(--line-strong); border-radius: 12px; background: #1a251e; color: white; font-weight: 700; }
textarea { min-height: 88px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--green-bright); box-shadow: 0 0 0 3px rgba(32, 198, 109, .15); }
input::placeholder, textarea::placeholder { color: #7e8e84; }
.form-error { min-height: 20px; margin: 8px 0 0; color: #ffafb2; font-size: .86rem; font-weight: 750; }

.button { min-height: 46px; padding: 11px 15px; border: 1px solid transparent; border-radius: 12px; color: white; font-size: .84rem; font-weight: 900; letter-spacing: .025em; }
.button.primary { background: linear-gradient(180deg, #0aa455, #087a40); border-color: #1abd69; }
.button.secondary { background: linear-gradient(180deg, #2a382f, #202b24); border-color: var(--line-strong); }
.button.quiet { background: transparent; border-color: var(--line); color: #d9e5dd; }
.button.warning { background: #4b3414; border-color: #86601e; color: #ffdda0; }
.button.danger { background: #512326; border-color: #87363b; color: #ffc5c7; }
.button.wide { width: 100%; margin-top: 17px; }
.button.small { min-height: 38px; padding: 8px 11px; font-size: .75rem; }

.app { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 30; height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 22px; border-bottom: 1px solid var(--line); background: rgba(8, 13, 10, .94); backdrop-filter: blur(16px); box-shadow: 0 8px 28px rgba(0, 0, 0, .23); }
.brand-lockup { display: flex; align-items: center; gap: 13px; min-width: 0; }
.brand-lockup img { width: 158px; height: 55px; object-fit: contain; border-radius: 7px; background: #000; }
.brand-copy { display: flex; flex-direction: column; padding-left: 18px; border-left: 1px solid var(--line-strong); }
.build-version { display: inline-block; margin-left: 7px; padding: 2px 6px; border: 1px solid #28784a; border-radius: 999px; background: #123b24; color: #a9efc2; font-size: .62rem; letter-spacing: .04em; vertical-align: middle; }
.brand-copy span { font-size: .9rem; letter-spacing: .12em; font-weight: 950; }
.brand-copy small { margin-top: 2px; color: var(--muted); font-size: .72rem; font-weight: 700; }
.topbar-context { display: flex; align-items: center; gap: 10px; }
.farm-switcher { width: 220px; margin: 0; }
.farm-switcher span { display: block; margin: 0 0 3px; color: #8fa097; font-size: .61rem; letter-spacing: .12em; }
.farm-switcher select { min-height: 41px; padding: 7px 32px 7px 10px; }
.qa-status { display: flex; align-items: center; gap: 7px; height: 40px; padding: 0 11px; border: 1px solid #6d5325; border-radius: 11px; background: #2f2412; color: #f2d395; font-size: .68rem; font-weight: 900; white-space: nowrap; }
.qa-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(222, 134, 20, .12); }
.user-button { position: relative; min-width: 170px; height: 51px; display: grid; grid-template-columns: 35px 1fr; grid-template-rows: 1fr 1fr; gap: 0 9px; align-items: center; padding: 6px 11px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: white; text-align: left; }
.user-button > span { grid-row: 1 / 3; width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; background: var(--green-soft); color: #9ff0bd; font-size: .73rem; font-weight: 950; }
.user-button b { align-self: end; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .76rem; }
.user-button small { align-self: start; color: var(--muted); font-size: .65rem; }
.user-menu { position: fixed; z-index: 45; top: 68px; right: 22px; width: 220px; padding: 7px; border: 1px solid var(--line-strong); border-radius: 13px; background: #172019; box-shadow: var(--shadow); }
.user-menu button { width: 100%; padding: 12px; border: 0; border-radius: 9px; background: transparent; color: #e4ece7; text-align: left; font-size: .75rem; font-weight: 850; }
.user-menu button:hover { background: var(--surface-3); }

.menu-button { display: none; }
.icon-button { width: 42px; height: 42px; padding: 9px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); color: white; }
.menu-button span { display: block; width: 20px; height: 2px; margin: 4px auto; border-radius: 2px; background: currentColor; }
.app-shell { display: grid; grid-template-columns: 245px minmax(0, 1fr); min-height: calc(100vh - 84px); }
.sidebar { position: sticky; top: 84px; height: calc(100vh - 84px); display: flex; flex-direction: column; justify-content: space-between; padding: 18px 13px; border-right: 1px solid var(--line); background: linear-gradient(180deg, #0e1511, #090e0b); overflow-y: auto; }
.sidebar nav { display: grid; gap: 5px; }
.nav-heading { margin: 22px 11px 8px; color: #77877e; font-size: .65rem; font-weight: 900; letter-spacing: .13em; }
.nav-link { width: 100%; min-height: 47px; display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid transparent; border-radius: 12px; background: transparent; color: #c5d0c9; font-size: .82rem; font-weight: 800; text-align: left; }
.nav-link:hover { background: #141e18; }
.nav-link.active { border-color: #2e6845; background: linear-gradient(90deg, #153621, #121d17); color: #aff0c5; box-shadow: inset 3px 0 var(--green); }
.nav-icon { width: 24px; height: 24px; display: grid; place-items: center; color: #7cd89d; font-size: 1.05rem; }
.sidebar-foot { display: grid; gap: 3px; padding: 13px; border: 1px solid #26362c; border-radius: 12px; background: rgba(255, 255, 255, .018); }
.sidebar-foot strong { color: #b9c7be; font-size: .67rem; letter-spacing: .08em; }
.sidebar-foot span { color: #718078; font-size: .66rem; }

main { width: 100%; min-width: 0; padding: 28px clamp(18px, 3vw, 44px) 56px; }
.content-wrap { width: min(1180px, 100%); margin: 0 auto; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.eyebrow { margin-bottom: 5px; color: #73cc94; font-size: .69rem; font-weight: 900; letter-spacing: .12em; }
.page-head h1 { margin: 0; font-size: clamp(1.72rem, 3vw, 2.25rem); line-height: 1.08; letter-spacing: -.035em; }
.page-head p { max-width: 720px; margin: 7px 0 0; color: var(--muted); line-height: 1.45; }
.head-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.isolation-note { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 20px; padding: 12px 14px; border: 1px solid #665026; border-radius: 14px; background: linear-gradient(90deg, #312510, #251d0f); color: #f3d59e; font-size: .82rem; line-height: 1.42; }
.isolation-note b { color: white; }
.isolation-note .note-icon { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; background: #6f4c14; font-weight: 950; }

.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 18px; }
.stat-card { min-height: 112px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg, #17211a, #111813); }
.stat-card span { display: block; color: var(--muted); font-size: .71rem; font-weight: 850; letter-spacing: .04em; }
.stat-card strong { display: block; margin: 7px 0 3px; color: white; font-size: 1.75rem; line-height: 1; }
.stat-card small { color: #7f9086; font-size: .72rem; }

.section-title { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 26px 0 11px; }
.section-title h2 { margin: 0; font-size: 1.12rem; }
.section-title span { color: var(--muted); font-size: .75rem; }
.module-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.module-card { position: relative; min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 17px; border: 1px solid rgba(255,255,255,.12); border-radius: 17px; color: white; box-shadow: inset 0 1px rgba(255,255,255,.11), 0 9px 24px rgba(0,0,0,.17); }
.module-card::after { content: ''; position: absolute; width: 120px; height: 120px; right: -37px; bottom: -46px; border: 24px solid rgba(255,255,255,.08); border-radius: 50%; }
.module-card.green { background: linear-gradient(155deg, #0a9149, #075f32); }
.module-card.blue { background: linear-gradient(155deg, #247fc1, #175985); }
.module-card.purple { background: linear-gradient(155deg, #7256ce, #4d3991); }
.module-card.orange { background: linear-gradient(155deg, #d37c0e, #905308); }
.module-icon { font-size: 1.75rem; }
.module-card h3 { margin: 9px 0 3px; font-size: 1.08rem; }
.module-card p { margin: 0; color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.35; }
.module-status { position: relative; z-index: 1; width: max-content; max-width: 100%; margin-top: 16px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.22); border-radius: 7px; background: rgba(0,0,0,.18); font-size: .64rem; font-weight: 900; letter-spacing: .04em; }

.setup-summary { overflow: hidden; margin-top: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(180deg, #151e18, #101712); }
.setup-summary > summary { list-style: none; display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; min-height: 70px; padding: 14px 17px; cursor: pointer; }
.setup-summary > summary::-webkit-details-marker { display: none; }
.summary-symbol { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: var(--green-soft); color: #92e8b0; font-size: 1.2rem; }
.summary-copy strong { display: block; }
.summary-copy small { display: block; margin-top: 2px; color: var(--muted); }
.progress-ring { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green-bright) var(--progress), #27342c 0); position: relative; font-size: .68rem; font-weight: 900; }
.progress-ring::before { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: #121a15; }
.progress-ring span { position: relative; z-index: 1; }
.setup-body { padding: 0 17px 17px; border-top: 1px solid #293a30; }
.setup-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.setup-link { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); color: white; text-align: left; }
.setup-link b { display: block; font-size: .82rem; }
.setup-link small { display: block; margin-top: 4px; color: var(--muted); font-size: .69rem; }
.setup-link em { color: #84dfa4; font-style: normal; font-weight: 900; }

.card { border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(180deg, #161f19, #111813); box-shadow: 0 10px 28px rgba(0,0,0,.14); }
.card + .card { margin-top: 11px; }
.card-pad { padding: 17px; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 13px; }
.toolbar .search { flex: 1 1 250px; position: relative; }
.toolbar .search input { padding-left: 40px; }
.toolbar .search::before { content: '⌕'; position: absolute; z-index: 1; left: 14px; top: 10px; color: #819086; font-size: 1.2rem; }
.filter-pills { display: flex; gap: 6px; overflow-x: auto; padding: 1px 0 4px; scrollbar-width: thin; }
.filter-pill { min-height: 38px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: #c9d5cd; font-size: .74rem; font-weight: 850; white-space: nowrap; }
.filter-pill.active { border-color: #348154; background: #163722; color: #aeecc4; }

.farm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.farm-card { padding: 17px; }
.farm-card.active-farm { border-color: #318153; box-shadow: inset 4px 0 var(--green); }
.card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.card-top h3 { margin: 0; font-size: 1.05rem; }
.card-top p { margin: 5px 0 0; color: var(--muted); font-size: .75rem; }
.badge { display: inline-flex; align-items: center; gap: 6px; min-height: 25px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 999px; background: #202b24; color: #cfdbd3; font-size: .63rem; font-weight: 900; white-space: nowrap; }
.badge.good { border-color: #2e7448; background: #143a23; color: #a8edc0; }
.badge.warn { border-color: #76561d; background: #3a2a10; color: #ffda98; }
.badge.readonly { border-color: #536173; background: #222c38; color: #cbd8e8; }
.details-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 16px 0; }
.detail { min-height: 60px; padding: 10px; border-radius: 11px; background: #1a251e; }
.detail span { display: block; color: #829087; font-size: .64rem; font-weight: 850; }
.detail b { display: block; margin-top: 5px; overflow-wrap: anywhere; font-size: .8rem; }
.card-actions { display: flex; flex-wrap: wrap; gap: 7px; }

.orchard-list { display: grid; gap: 9px; }
.orchard-card { display: grid; grid-template-columns: 8px minmax(190px, 1.1fr) repeat(4, minmax(90px, .55fr)) auto; gap: 13px; align-items: center; min-height: 88px; padding: 10px 13px 10px 0; overflow: hidden; }
.fruit-stripe { align-self: stretch; border-radius: 0 8px 8px 0; background: var(--fruit-color, var(--green)); }
.orchard-title h3 { margin: 0; font-size: 1rem; }
.orchard-title p { margin: 4px 0 0; color: var(--muted); font-size: .73rem; }
.orchard-metric span { display: block; color: #829087; font-size: .61rem; font-weight: 850; }
.orchard-metric b { display: block; margin-top: 4px; font-size: .8rem; }
.open-arrow { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 11px; background: var(--surface-3); color: #a9ebbf; font-size: 1.25rem; }

.empty-state { padding: 42px 20px; border: 1px dashed var(--line-strong); border-radius: var(--radius); color: var(--muted); text-align: center; }
.empty-state strong { display: block; margin-bottom: 5px; color: white; }
.user-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.user-card { padding: 16px; }
.user-identity { display: flex; align-items: center; gap: 11px; }
.avatar { width: 43px; height: 43px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: var(--green-soft); color: #a0eeba; font-size: .76rem; font-weight: 950; }
.user-identity h3 { margin: 0; font-size: .9rem; }
.user-identity p { margin: 3px 0 0; color: var(--muted); font-size: .7rem; }
.access-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 14px 0; }
.access-chip { padding: 5px 7px; border: 1px solid #394a40; border-radius: 7px; background: #1c2720; color: #bdc9c1; font-size: .62rem; font-weight: 800; }

.dialog { width: min(820px, calc(100% - 26px)); max-height: calc(100vh - 30px); padding: 0; border: 1px solid var(--line-strong); border-radius: 22px; background: #111914; color: white; box-shadow: 0 28px 80px rgba(0,0,0,.65); overflow: hidden; }
.dialog::backdrop { background: rgba(0, 0, 0, .76); backdrop-filter: blur(5px); }
.dialog-panel { max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.dialog-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: rgba(17, 25, 20, .96); backdrop-filter: blur(14px); }
.dialog-head h2 { margin: 0; font-size: 1.25rem; }
.dialog-head p { margin: 4px 0 0; color: var(--muted); font-size: .77rem; }
.dialog-close { width: 40px; height: 40px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-3); color: white; font-size: 1.2rem; }
.dialog-body { padding: 18px 20px; }
.dialog-actions { position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 8px; padding: 13px 20px calc(13px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(17, 25, 20, .97); backdrop-filter: blur(14px); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-note { margin: 13px 0 0; padding: 11px 12px; border: 1px solid #3b4e41; border-radius: 12px; background: #19241d; color: #adbbb2; font-size: .76rem; line-height: 1.42; }
.calc-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.calc-strip > div { padding: 11px; border: 1px solid #35503f; border-radius: 11px; background: #14251a; }
.calc-strip span { display: block; color: #8eaa98; font-size: .64rem; font-weight: 850; }
.calc-strip b { display: block; margin-top: 4px; color: #b9f0cc; font-size: 1rem; }
.subsection-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 8px; }
.subsection-head h3 { margin: 0; font-size: .95rem; }
.tap-row { display: grid; grid-template-columns: minmax(160px, 1fr) 150px auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #151f18; margin-top: 8px; }
.tap-row label { margin: 0; }
.tap-remove { width: 46px; height: 49px; border: 1px solid #76363a; border-radius: 11px; background: #3c2022; color: #ffc3c5; font-weight: 950; }
.total-check { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #17221b; }
.total-check.good { border-color: #32754a; background: #143521; }
.total-check.bad { border-color: #8a5421; background: #432c12; }
.total-check span { color: var(--muted); font-size: .75rem; }
.total-check b { font-size: .9rem; }
.season-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.csv-preview { max-height: 330px; overflow: auto; margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; }
.csv-table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: .72rem; }
.csv-table th { position: sticky; top: 0; padding: 9px; background: #233128; color: #d7e4dc; text-align: left; }
.csv-table td { padding: 9px; border-top: 1px solid #2c3e33; color: #b9c6be; }
.csv-table tr.row-error td { background: #351e20; color: #ffbdc0; }
.toast { position: fixed; z-index: 100; right: 20px; bottom: 20px; max-width: min(400px, calc(100% - 32px)); padding: 13px 16px; border: 1px solid #3a7c50; border-radius: 13px; background: #143521; color: #d8f9e3; box-shadow: var(--shadow); font-size: .83rem; font-weight: 800; }

@media (max-width: 1060px) {
  .stats-grid, .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .user-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .orchard-card { grid-template-columns: 8px minmax(180px, 1.2fr) repeat(2, minmax(90px, .6fr)) auto; }
  .orchard-metric.hide-tablet { display: none; }
}

@media (max-width: 850px) {
  .topbar { height: 70px; padding: 9px 13px; }
  .menu-button { display: block; }
  .brand-lockup img { width: 116px; height: 42px; }
  .brand-copy { display: none; }
  .qa-status { display: none; }
  .user-button { min-width: 51px; width: 51px; grid-template-columns: 1fr; padding: 7px; }
  .user-button > span { grid-row: auto; width: 35px; }
  .user-button b, .user-button small { display: none; }
  .app-shell { display: block; min-height: calc(100vh - 70px); }
  .sidebar { position: fixed; z-index: 50; top: 70px; bottom: 0; left: 0; width: min(300px, 86vw); height: auto; transform: translateX(-102%); transition: transform .2s ease; box-shadow: 18px 0 50px rgba(0,0,0,.55); }
  .sidebar.open { transform: translateX(0); }
  .nav-backdrop { position: fixed; z-index: 40; inset: 70px 0 0; display: block; background: rgba(0,0,0,.62); }
  main { padding: 23px 16px 48px; }
  .farm-switcher { width: min(210px, 34vw); }
  .user-menu { right: 12px; top: 62px; }
}

@media (max-width: 650px) {
  .topbar-context { gap: 6px; }
  .brand-lockup { gap: 7px; }
  .brand-lockup img { width: 97px; }
  .farm-switcher { width: min(175px, 43vw); }
  .farm-switcher span { font-size: .54rem; }
  .farm-switcher select { min-height: 40px; font-size: .78rem; }
  main { padding: 19px 11px 42px; }
  .page-head { display: block; }
  .page-head p { font-size: .85rem; }
  .head-actions { justify-content: flex-start; margin-top: 13px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .stat-card { min-height: 96px; padding: 13px; }
  .stat-card strong { font-size: 1.5rem; }
  .module-grid { grid-template-columns: 1fr; }
  .module-card { min-height: 142px; }
  .setup-list, .farm-grid, .user-grid { grid-template-columns: 1fr; }
  .setup-summary > summary { grid-template-columns: auto 1fr auto; padding: 13px; }
  .summary-copy small { font-size: .69rem; }
  .orchard-card { grid-template-columns: 7px minmax(0, 1fr) auto; gap: 10px; min-height: 98px; padding-right: 10px; }
  .orchard-metric { display: none; }
  .orchard-title p { line-height: 1.35; }
  .details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dialog { width: 100%; max-height: 100dvh; height: 100dvh; border: 0; border-radius: 0; }
  .dialog-panel { max-height: 100dvh; height: 100%; }
  .dialog-head { padding: 14px 13px; }
  .dialog-body { padding: 13px; }
  .dialog-actions { padding: 11px 13px calc(11px + env(safe-area-inset-bottom)); }
  .form-grid, .season-grid, .calc-strip { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .tap-row { grid-template-columns: 1fr 105px 46px; padding: 8px; }
  .tap-row label { font-size: .73rem; }
  .toolbar .button { flex: 1 1 auto; }
  .login-shell { padding: 13px; }
  .login-card { padding: 20px 16px; }
}

@media (max-width: 390px) {
  .brand-lockup img { display: none; }
  .farm-switcher { width: calc(100vw - 126px); }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .tap-row { grid-template-columns: 1fr 80px 42px; gap: 6px; }
  .tap-remove { width: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Orchard Release module additions */
.module-banner { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; padding:15px 17px; border:1px solid #2f7049; border-radius:16px; background:linear-gradient(100deg,#11341f,#151f19 60%,#101813); }
.module-banner strong { display:block; font-size:.93rem; }
.module-banner p { margin:4px 0 0; color:#a9b8ae; font-size:.78rem; line-height:1.45; }
.master-pill { flex:0 0 auto; padding:7px 10px; border:1px solid #397b53; border-radius:999px; background:#173d26; color:#b4f1c9; font-size:.66rem; font-weight:950; letter-spacing:.05em; }
.status-dot { width:9px; height:9px; display:inline-block; border-radius:50%; margin-right:6px; vertical-align:middle; }
.status-dot.red { background:#e14a50; box-shadow:0 0 0 4px rgba(225,74,80,.12); }
.status-dot.orange { background:#e79a2f; box-shadow:0 0 0 4px rgba(231,154,47,.12); }
.status-dot.green { background:#21c86d; box-shadow:0 0 0 4px rgba(33,200,109,.12); }
.status-dot.blue { background:#3d9cdb; box-shadow:0 0 0 4px rgba(61,156,219,.12); }
.status-dot.grey { background:#7e8c83; box-shadow:0 0 0 4px rgba(126,140,131,.12); }
.badge.red { border-color:#85383d; background:#3f2023; color:#ffc1c4; }
.badge.orange { border-color:#8b641e; background:#422e11; color:#ffdc9d; }
.badge.green { border-color:#2f8050; background:#133c24; color:#b4f1c9; }
.badge.blue { border-color:#346d94; background:#142f41; color:#bce1f8; }
.badge.grey { border-color:#536158; background:#202923; color:#c9d2cc; }
.badge.purple { border-color:#6254a2; background:#2a2448; color:#d5cff8; }
.stat-card.red { border-color:#673237; box-shadow:inset 0 3px #c9363b; }
.stat-card.orange { border-color:#70521e; box-shadow:inset 0 3px #de8614; }
.stat-card.green { border-color:#2f6745; box-shadow:inset 0 3px #20c66d; }
.stat-card.blue { border-color:#315f7d; box-shadow:inset 0 3px #2389ce; }
.stat-card.purple { border-color:#554b80; box-shadow:inset 0 3px #7358d6; }
.queue-grid { display:grid; gap:10px; }
.queue-card { position:relative; display:grid; grid-template-columns:7px minmax(185px,1.25fr) repeat(3,minmax(95px,.55fr)) minmax(130px,.7fr) auto; gap:12px; align-items:center; min-height:96px; padding:11px 12px 11px 0; overflow:hidden; }
.queue-card.urgent { border-color:#7b3b40; }
.queue-stripe { align-self:stretch; border-radius:0 8px 8px 0; }
.queue-stripe.red { background:#c9363b; }
.queue-stripe.orange { background:#de8614; }
.queue-stripe.green { background:#20c66d; }
.queue-stripe.blue { background:#2389ce; }
.queue-stripe.grey { background:#66766c; }
.queue-title h3 { margin:0; font-size:1rem; }
.queue-title p { margin:4px 0 0; color:var(--muted); font-size:.73rem; }
.queue-metric span { display:block; color:#819087; font-size:.61rem; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.queue-metric b { display:block; margin-top:4px; font-size:.8rem; }
.queue-actions { display:flex; gap:7px; align-items:center; justify-content:flex-end; }
.summary-meter { height:7px; margin-top:7px; overflow:hidden; border-radius:999px; background:#2a372e; }
.summary-meter i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#e28f23,#1ac269); }
.action-list { display:grid; gap:9px; }
.action-row { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:12px 13px; border:1px solid var(--line); border-radius:13px; background:#151f18; }
.action-symbol { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:#1d3024; color:#9be5b5; font-weight:950; }
.action-row strong { display:block; font-size:.84rem; }
.action-row small { display:block; margin-top:3px; color:var(--muted); font-size:.7rem; }
.action-row time { color:#d7e4dc; font-size:.7rem; font-weight:850; }
.split-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr); gap:12px; align-items:start; }
.side-card { position:sticky; top:96px; }
.pressure-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:12px 0; }
.pressure-summary > div { min-height:72px; padding:10px; border:1px solid #31503e; border-radius:12px; background:#14231a; }
.pressure-summary span { display:block; color:#8fa097; font-size:.62rem; font-weight:850; }
.pressure-summary b { display:block; margin-top:6px; color:#dff8e8; font-size:1.05rem; }
.pressure-summary small { display:block; margin-top:3px; color:#789085; font-size:.58rem; }
.pressure-alert { padding:10px 12px; border-radius:11px; font-size:.74rem; font-weight:800; line-height:1.4; }
.pressure-alert.good { border:1px solid #2e764a; background:#143622; color:#b7edca; }
.pressure-alert.warn { border:1px solid #7d5a1e; background:#3d2b11; color:#ffdb9b; }
.pressure-alert.bad { border:1px solid #7e363b; background:#3e2022; color:#ffc1c4; }
.test-list { display:grid; gap:9px; }
.test-card { padding:15px; }
.test-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.test-card-head h3 { margin:0; font-size:1rem; }
.test-card-head p { margin:4px 0 0; color:var(--muted); font-size:.73rem; }
.test-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:13px; }
.test-metric { padding:9px; border-radius:10px; background:#1a251e; }
.test-metric span { display:block; color:#819087; font-size:.59rem; font-weight:850; }
.test-metric b { display:block; margin-top:4px; font-size:.8rem; }
.sample-wrap { max-height:430px; overflow:auto; margin-top:12px; border:1px solid var(--line); border-radius:13px; }
.sample-table { width:100%; min-width:780px; border-collapse:collapse; font-size:.72rem; }
.sample-table th { position:sticky; top:0; z-index:1; padding:9px 7px; background:#24332a; color:#dce8e0; text-align:left; }
.sample-table td { padding:6px; border-top:1px solid #2d3e34; }
.sample-table input { min-height:39px; padding:7px 8px; border-radius:8px; font-size:.76rem; }
.sample-table .read-cell { min-width:60px; color:#bdebcf; font-weight:850; }
.sample-table tr.sample-good,
.sample-table tr.sample-bad { background:transparent; }
.sample-table input.sample-input-good { border-color:#28c96b; background:#123b25; color:#caffd8; box-shadow:0 0 0 1px rgba(40,201,107,.28); }
.sample-table input.sample-input-bad { border-color:#ef5963; background:#4a2025; color:#ffd1d4; box-shadow:0 0 0 1px rgba(239,89,99,.28); }
.sample-table tr.sample-good .sample-verdict { color:#7ee69b; }
.sample-table tr.sample-bad .sample-verdict { color:#ff9da2; }
.text-good { color:#7ee69b; }
.text-bad { color:#ff9da2; }
.report-select { min-width:260px; max-width:100%; }
.report-size-filter { margin:13px 0 0; max-width:480px; }
.report-sample-note { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:15px 0 10px; padding:12px; border:1px solid #35503f; border-radius:12px; background:#14251a; }
.report-sample-note span { color:var(--muted); font-size:.72rem; }
.report-graphs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; }
.report-graph { padding:14px; border:1px solid var(--line); border-radius:13px; background:#151f18; }
.report-graph strong { display:block; color:#9bb0a1; font-size:.65rem; letter-spacing:.04em; }
.report-graph b { display:block; margin-top:5px; font-size:1.45rem; }
.report-graph small { color:var(--muted); font-size:.68rem; }
.report-bar { height:10px; margin:14px 0 7px; overflow:hidden; border-radius:999px; background:#2a372e; }
.report-bar i { display:block; height:100%; border-radius:inherit; }
.report-table-wrap { overflow:auto; margin-top:14px; border:1px solid var(--line); border-radius:13px; }
.report-table { width:100%; border-collapse:collapse; min-width:650px; font-size:.75rem; }
.report-table th { padding:10px; background:#24332a; color:#dce8e0; text-align:left; }
.report-table td { padding:9px 10px; border-top:1px solid #2d3e34; }
.report-table .report-good { background:rgba(28,128,67,.12); }
.report-table .report-bad { background:rgba(155,42,47,.12); }
.decision-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:12px 0 16px; }
.decision-option { position:relative; min-height:78px; padding:12px; border:1px solid var(--line); border-radius:13px; background:#17221b; color:#dfe8e2; text-align:left; }
.decision-option input { position:absolute; opacity:0; pointer-events:none; }
.decision-option.active { border-color:#2e8a54; background:#153822; box-shadow:inset 0 0 0 1px #2e8a54; }
.decision-option b { display:block; font-size:.82rem; }
.decision-option small { display:block; margin-top:5px; color:#95a39a; font-size:.66rem; line-height:1.3; }
.check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.release-check { display:flex; align-items:center; gap:10px; min-height:54px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#17211a; }
.release-check input { width:21px; min-height:21px; accent-color:#17b85f; }
.release-check span { font-size:.77rem; font-weight:800; }
.release-readiness { margin-top:12px; padding:12px 13px; border-radius:12px; font-size:.78rem; font-weight:850; }
.release-readiness.ready { border:1px solid #2e8050; background:#143b25; color:#b8f0ca; }
.release-readiness.blocked { border:1px solid #76561d; background:#3a2a10; color:#ffda98; }
.timeline { position:relative; display:grid; gap:0; }
.timeline::before { content:''; position:absolute; left:18px; top:18px; bottom:18px; width:2px; background:#304239; }
.timeline-event { position:relative; display:grid; grid-template-columns:38px 1fr; gap:12px; padding:0 0 18px; }
.timeline-dot { z-index:1; width:38px; height:38px; display:grid; place-items:center; border:3px solid #101713; border-radius:50%; background:#205332; color:#c7f5d7; font-size:.72rem; font-weight:950; }
.timeline-copy { padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#151f18; }
.timeline-copy strong { display:block; font-size:.82rem; }
.timeline-copy p { margin:4px 0 0; color:#a7b5ac; font-size:.72rem; line-height:1.4; }
.timeline-copy time { display:block; margin-top:7px; color:#73847a; font-size:.64rem; }
.setup-tabs { display:flex; gap:7px; margin-bottom:13px; overflow:auto; }
.setup-tab { min-height:40px; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:#151f18; color:#c7d2cb; font-size:.73rem; font-weight:850; white-space:nowrap; }
.setup-tab.active { border-color:#388557; background:#173c26; color:#b8f0ca; }
.settings-list { display:grid; gap:9px; }
.setting-row { display:grid; grid-template-columns:minmax(170px,1.2fr) repeat(4,minmax(80px,.45fr)) auto; gap:10px; align-items:center; min-height:72px; padding:11px 13px; }
.setting-row h3 { margin:0; font-size:.86rem; }
.setting-row p { margin:3px 0 0; color:var(--muted); font-size:.67rem; }
.setting-value span { display:block; color:#819087; font-size:.58rem; font-weight:850; }
.setting-value b { display:block; margin-top:3px; font-size:.76rem; }
.permission-note { margin-bottom:15px; padding:12px 14px; border:1px solid #46566b; border-radius:13px; background:#1c2631; color:#cbd9e8; font-size:.77rem; line-height:1.42; }
.readonly-field { min-height:49px; padding:12px 13px; border:1px solid #33453a; border-radius:12px; background:#151e18; color:#bdc9c1; font-weight:750; }
.mobile-bar { display:none; }
.dialog.wide { width:min(1040px,calc(100% - 20px)); }
.dialog.medium { width:min(900px,calc(100% - 24px)); }
.helper-copy { margin:5px 0 0; color:#839289; font-size:.67rem; line-height:1.35; }
.inline-status { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.metric-danger { color:#ffb5b8 !important; }
.metric-warn { color:#ffd794 !important; }
.metric-good { color:#b5f0c9 !important; }

@media (max-width:1100px) {
  .queue-card { grid-template-columns:7px minmax(180px,1.2fr) repeat(2,minmax(90px,.55fr)) minmax(120px,.7fr) auto; }
  .queue-metric.hide-wide { display:none; }
  .test-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .setting-row { grid-template-columns:minmax(170px,1.2fr) repeat(2,minmax(85px,.45fr)) auto; }
  .setting-value.hide-wide { display:none; }
}
@media (max-width:900px) {
  .split-grid { grid-template-columns:1fr; }
  .side-card { position:static; }
  .decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pressure-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .report-graphs { grid-template-columns:1fr; }
  .report-sample-note { align-items:flex-start; flex-direction:column; }
  .report-select { width:100%; }
  main { padding-bottom:96px; }
  .mobile-bar { position:fixed; z-index:35; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(4,1fr); padding:7px 7px calc(7px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(9,14,11,.97); backdrop-filter:blur(14px); }
  .mobile-link { min-height:52px; display:grid; place-items:center; gap:1px; padding:5px; border:0; border-radius:10px; background:transparent; color:#88998f; font-size:.58rem; font-weight:850; }
  .mobile-link b { font-size:1rem; }
  .mobile-link.active { background:#163622; color:#b5f0c9; }
  .queue-card { grid-template-columns:7px minmax(0,1fr) auto; gap:10px; min-height:110px; }
  .queue-metric, .queue-actions .button { display:none; }
  .queue-actions .open-arrow { display:grid; }
  .test-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .check-grid { grid-template-columns:1fr; }
  .decision-grid { grid-template-columns:1fr 1fr; }
  .module-banner { display:block; }
  .master-pill { width:max-content; margin-top:12px; }
  .setting-row { grid-template-columns:minmax(0,1fr) auto; }
  .setting-value { display:none; }
  .dialog-actions { flex-wrap:wrap; }
  .dialog-actions .button { flex:1 1 140px; }
}
@media (max-width:430px) {
  .stats-grid { grid-template-columns:1fr 1fr; }
  .pressure-summary { grid-template-columns:1fr 1fr; }
  .decision-grid { grid-template-columns:1fr; }
  .topbar .farm-switcher { display:none; }
}
