html{--nav-zone:0px}
:root{--ic-forest-bg:#dbe7db;--ic-forest-fg:#2e5a3a;--ic-sage-bg:#e1e9d7;--ic-sage-fg:#587648;--ic-gold-bg:#efe4cc;--ic-gold-fg:#856a34;--ic-blue-bg:#dce6ef;--ic-blue-fg:#48688a;--ic-teal-bg:#d3e7e3;--ic-teal-fg:#357570;--ic-plum-bg:#eadde3;--ic-plum-fg:#7c526a;--ic-clay-bg:#f0ddce;--ic-clay-fg:#985534;}
html[data-theme="dark"]{--ic-forest-bg:#1d2e23;--ic-forest-fg:#8fb98f;--ic-sage-bg:#24301e;--ic-sage-fg:#a4c089;--ic-gold-bg:#2f2a1b;--ic-gold-fg:#cbab6a;--ic-blue-bg:#1e2a35;--ic-blue-fg:#8fb0cc;--ic-teal-bg:#173029;--ic-teal-fg:#5db8ac;--ic-plum-bg:#2c1f28;--ic-plum-fg:#c294ac;--ic-clay-bg:#31241b;--ic-clay-fg:#cf8a63;}
/*  ════════════════════════════════════════════════════════════════════════
    Geneseo Orchard / Field Ledger, STYLES
    ────────────────────────────────────────────────────────────────────────
    All styling for the app, linked from index.html. No logic here; this file
    is independent of the harvest engine. Structure: design tokens (the CSS
    variables in :root below, an "Experiment Station Bulletin" palette) first,
    then layout and per-component rules. The add/edit modal reuses .add-row,
    .add-field, and .prefill-hint (the harvest "frame/peak/derived" controls
    in index.html lean on these). See README.md for the system overview.
    ════════════════════════════════════════════════════════════════════════ */
:root {
  /* Experiment Station Bulletin, aged paper, orchard ink, russet & plum */
  --paper:        #f4efe2;   /* aged bulletin stock */
  --paper-2:      #ece4d2;   /* card / panel stock */
  --paper-3:      #e3d8c0;   /* sunk wells, table stripes */
  --paper-edge:   #d8cbb0;   /* paper shadow edge */
  --ink:          #2a2118;   /* primary ink-brown */
  --ink-soft:     #4f4334;   /* secondary text */
  --ink-faint:    #8a7c66;   /* captions, labels */
  --ink-ghost:    #b3a589;   /* faintest hints */
  --orchard:      #4a6438;   /* orchard leaf green */
  --orchard-deep: #354a28;   /* deep canopy */
  --orchard-lite: #6f8a52;   /* light foliage */
  --russet:       #a8482a;   /* apple russet, primary accent */
  --russet-deep:  #7e3014;
  --gold:         #8a6410;   /* ripe-pome bronze, AA on paper */
  --gold-bright:  #b8862f;   /* decorative fills/outlines only */
  --plum:         #6e3552;   /* stone-fruit plum */
  --plum-lite:    #9a5878;
  --bloom:        #d98ba6;   /* blossom pink */
  --line:         #c8b99a;   /* hairline rule */
  --line-strong:  #a89876;   /* heavier rule */
  /* legacy aliases so existing rules keep working */
  --bg:var(--paper); --bg2:var(--paper-2); --bg3:var(--paper-2);
  --forest-deep:var(--orchard-deep); --forest-mid:var(--orchard); --forest-light:var(--orchard-lite);
  --sage:var(--orchard); --sage-light:var(--orchard-deep);
  --gold-dim:var(--gold); --peach:var(--russet); --peach-dim:var(--russet-deep);
  --text:var(--ink); --text-muted:var(--ink-faint); --text-dim:var(--ink-ghost);
  --border:var(--line); --border-light:var(--line-strong);
  --s1:#e8d8c0; --s2:#ecdcc0; --s3:#dde3c8; --s4:#d6e0cc; --s5:#d2dccc;
  --bloom-color:var(--bloom); --harvest-apple:var(--orchard-lite); --harvest-peach:var(--russet);
  --badge-planted:#dde3c8; --badge-planned:#efe2c4; --badge-consider:#e6ddc8;
  --disp:'Fraunces',Georgia,serif;
  --body:'Spline Sans',-apple-system,system-ui,sans-serif;
  --mono:'Spline Sans Mono',ui-monospace,monospace;
  /* DeepSeek design tokens, systematic radius / shadow / transition */
  --radius-sm:4px; --radius-md:8px; --radius-lg:12px;
  --shadow-card:0 2px 8px rgba(42,33,24,.08),0 0 0 1px var(--paper-edge);
  --shadow-elevated:0 4px 16px rgba(42,33,24,.12),0 0 0 1px var(--paper-edge);
  --transition:.2s ease;
  font-size: 13.5px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:var(--body);min-height:100vh;
     background-image:
       repeating-linear-gradient(0deg, transparent, transparent 27px, rgba(168,152,118,.07) 27px, rgba(168,152,118,.07) 28px),
       radial-gradient(ellipse at 20% 0%, rgba(168,72,42,.03), transparent 60%);
     -webkit-font-smoothing:antialiased}

/* ── Masthead: two-tier brand bar + nav bar (DeepSeek design, ledger-adapted) ── */
.masthead{position:sticky;top:0;z-index:100;box-shadow:0 1px 0 var(--line),0 2px 8px rgba(42,33,24,.06)}
.app-header{background:var(--paper-2);border-bottom:1px solid var(--line-strong);
    padding:11px 22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.logo-area{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.logo-icon{font-size:22px;line-height:1;filter:saturate(.9);align-self:center}
.logo-text{font-family:var(--disp);font-size:22px;font-weight:900;color:var(--ink);letter-spacing:-.01em;
           font-optical-sizing:auto}
.logo-sub{font-family:var(--mono);font-size:11px;color:var(--russet);letter-spacing:.16em;
          text-transform:uppercase;font-weight:500}
.nav-bar{background:var(--paper-2);border-bottom:2px solid var(--ink);
    display:flex;gap:2px;padding:0 18px;overflow-x:auto;white-space:nowrap}
.nav-tab{padding:13px 16px 12px;font-family:var(--body);font-size:13.5px;font-weight:500;letter-spacing:.02em;
    color:var(--ink-faint);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition);
    white-space:nowrap;background:none;border-left:none;border-right:none;border-top:none}
.nav-tab:hover{color:var(--ink);background:var(--paper-3)}
.nav-tab.active{color:var(--ink);border-bottom-color:var(--russet);font-weight:600}

/* ── Shared layout ── */
.section{display:none;padding:28px 30px;max-width:1600px}
.section.active{display:block}
.sect-head{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase;
           border-bottom:1px solid var(--line-strong);padding-bottom:7px;margin:30px 0 16px;font-weight:500;
           display:flex;align-items:center;gap:10px}
.sect-head:first-child{margin-top:0}
.sect-head::before{content:'';display:inline-block;width:7px;height:7px;background:var(--russet);
           transform:rotate(45deg);flex-shrink:0}

/* ── Tree Cards: specimen labels ── */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:8px}
.card{background:var(--paper-2);border:1px solid var(--line-strong);border-radius:3px;
      padding:16px 16px 14px;position:relative;transition:transform .15s,box-shadow .15s;
      box-shadow:1px 1px 0 var(--paper-edge),3px 3px 7px rgba(42,33,24,.07)}
.card:hover{transform:translateY(-2px);box-shadow:1px 1px 0 var(--paper-edge),4px 6px 14px rgba(42,33,24,.13)}
.card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:3px 0 0 3px}
.card-planted::before{background:var(--orchard)}
.card-planned::before{background:var(--gold-bright)}
.card-consideration::before{background:var(--ink-ghost)}
.card-planted{}
.card-planned{}
.card-consideration{opacity:.92}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:11px;
           border-bottom:1px solid var(--line);padding-bottom:9px}
.card-name{font-family:var(--disp);font-size:20px;font-weight:600;color:var(--ink);line-height:1.05;
           font-optical-sizing:auto;letter-spacing:-.01em}
.card-icon{font-size:16px;line-height:1;opacity:.8;filter:saturate(.85)}
.card-meta{font-family:var(--body);font-size:13.5px;color:var(--ink-soft);line-height:1.85}
.card-meta b{color:var(--ink-faint);font-weight:500;font-family:var(--mono);font-size:11.5px;
             letter-spacing:.08em;text-transform:uppercase;margin-right:3px}
.card-row{display:flex;justify-content:space-between;align-items:center;margin-top:11px;
          padding-top:11px;border-top:1px solid var(--line);flex-wrap:wrap;gap:6px}
.card-badge{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.1em;padding:3px 8px;
            border-radius:2px;text-transform:uppercase}
.badge-planted{background:var(--badge-planted);color:var(--orchard-deep)}
.badge-planned{background:var(--badge-planned);color:var(--gold)}
.badge-consideration{background:var(--badge-consider);color:var(--ink-faint)}
.badge-prevot{background:#e6ddc8;color:var(--ink-faint)}
.badge-removal{background:#f0dcd2;color:var(--russet-deep);border:1px solid #d8a890}
.badge-replaces{background:#dde3c8;color:var(--orchard-deep);border:1px solid #b8c89a}
.badge-useradd{background:#e3dae8;color:var(--plum);border:1px solid #c8b0c8}
.fbar{display:inline-flex;gap:1px;vertical-align:middle;margin-left:2px}
.fbar-s{height:7px;background:var(--gold-bright);border-radius:2px 0 0 2px;display:inline-block}
.fbar-t{height:7px;background:var(--russet);border-radius:0 2px 2px 0;display:inline-block}
.score-pill{font-family:var(--mono);font-size:13px;font-weight:600;padding:2px 10px;border-radius:2px;
            background:var(--orchard-deep);color:var(--paper)}
.log-btn{font-family:var(--mono);font-size:11.5px;padding:5px 11px;background:var(--paper-3);color:var(--orchard-deep);
         border:1px solid var(--line-strong);border-radius:2px;cursor:pointer;letter-spacing:.06em;
         text-transform:uppercase;font-weight:500;transition:all .15s}
.log-btn:hover{background:var(--orchard);color:var(--paper);border-color:var(--orchard)}
.actuals-badge{font-family:var(--mono);font-size:10.5px;color:var(--orchard-deep);margin-left:4px}
.remove-btn{font-size:13px;line-height:1;padding:5px 8px;background:transparent;color:var(--ink-ghost);
            border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:all .15s}
.remove-btn:hover{color:var(--russet);border-color:#d8a890;background:#f0dcd2}
.btn-add{background:var(--russet)!important;color:var(--paper)!important;font-weight:600;border-color:var(--russet-deep)!important}
.btn-add:hover{background:var(--russet-deep)!important;color:var(--paper)!important}
.add-field{margin-bottom:12px}
.add-field label{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
                 color:var(--ink-faint);margin-bottom:5px}
.add-field input,.add-field select,.add-field textarea{width:100%;background:var(--paper-2);color:var(--ink);
                 border:1px solid var(--line-strong);border-radius:3px;padding:8px 10px;font-family:var(--body);font-size:14.5px}
.add-field input:focus,.add-field select:focus,.add-field textarea:focus{outline:none;border-color:var(--russet);box-shadow:0 0 0 2px rgba(168,72,42,.15)}
.add-field textarea{resize:vertical;min-height:48px}
.add-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.add-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.prefill-hint{font-size:13px;color:var(--orchard-deep);margin-top:4px;min-height:14px}
.autopop-box{background:var(--paper-3);border:1px dashed var(--line-strong);border-radius:3px;
             padding:12px 14px;margin-bottom:16px}
.autopop-box .ap-title{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--russet);margin-bottom:8px;font-weight:500}
.bench-btn{font-size:12px;padding:4px 8px;background:transparent;color:var(--text-dim);
           border:1px solid var(--border);border-radius:4px;cursor:pointer;letter-spacing:.03em}
.bench-btn:hover{color:var(--text);border-color:var(--border-light)}
.bench-btn.active{color:var(--gold);border-color:var(--gold)}
.bench-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.bench-table{width:100%;border-collapse:collapse;font-size:11px}
.bench-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;
                padding:2px 3px;border-bottom:1px solid var(--border);text-align:center;font-weight:600}
.bench-table td{padding:2px 3px;color:var(--text-dim);text-align:center;line-height:1.6}
.bench-table td:first-child{color:var(--gold);font-weight:700;text-align:left;white-space:nowrap}
.bench-table tr.bench-mature td{color:var(--sage-light);font-style:italic}
.bench-table tr.bench-mature td:first-child{color:var(--sage-light)}
.bench-src{font-size:10px;color:var(--text-dim);margin-top:6px;line-height:1.5}
.bench-src a{color:var(--sage-light);text-decoration:none}
.bench-src a:hover{text-decoration:underline}
.yield-src a{font-size:11px;color:var(--sage-light);text-decoration:none;
             text-transform:none;letter-spacing:0;font-weight:normal;margin-left:6px}
.yield-src a:hover{text-decoration:underline}
.yield-src-link{font-size:11px;color:var(--sage-light);text-decoration:none;
                text-transform:none;letter-spacing:0;font-weight:normal;margin-left:4px}
.yield-src-link:hover{text-decoration:underline}

/* ── Summary bar ── */
.summary-bar{display:flex;gap:26px;background:var(--paper-2);border:1px solid var(--line-strong);
             border-radius:3px;padding:16px 22px;margin-bottom:22px;flex-wrap:wrap;align-items:center;
             box-shadow:1px 1px 0 var(--paper-edge),2px 3px 8px rgba(42,33,24,.06)}
.sum-stat{text-align:center}
.sum-val{font-family:var(--disp);font-size:25px;font-weight:600;color:var(--russet);line-height:1;font-optical-sizing:auto}
.sum-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;color:var(--ink-faint);text-transform:uppercase;margin-top:4px}
.sum-divider{width:1px;background:var(--line-strong);align-self:stretch}

/* ── Calendar ── */
.cal-wrap{overflow-x:auto;margin-bottom:20px}
.cal-table{border-collapse:collapse;min-width:900px;width:100%}
.cal-table th{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-faint);text-transform:uppercase;
              font-weight:500;padding:7px 8px;border-bottom:1px solid var(--line-strong);text-align:center}
.cal-table td.tree-label{font-size:13.5px;color:var(--ink);padding:3px 10px 3px 0;white-space:nowrap;
                         width:120px;vertical-align:middle;font-weight:500}
.cal-table td.bar-cell{padding:2px 0;position:relative;height:28px}
.cal-bar{position:absolute;height:11px;border-radius:2px;top:5px;min-width:2px}
.cal-bloom{background:var(--bloom);opacity:.85}
.cal-harvest-apple{background:var(--harvest-apple)}
.cal-harvest-peach{background:var(--harvest-peach)}
.cal-actual-dot{position:absolute;width:7px;height:7px;border-radius:50%;
                background:var(--gold-bright);top:10px;transform:translateX(-50%);border:1px solid var(--ink)}
.cal-month-sep{border-left:1px solid var(--line)}
.cal-legend{display:flex;gap:16px;margin-top:10px;flex-wrap:wrap}
.cal-legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}
.cal-legend-swatch{width:20px;height:9px;border-radius:2px}
.cal-year-select{background:var(--paper-2);color:var(--ink);border:1px solid var(--line-strong);
                 padding:5px 11px;border-radius:3px;font-size:13.5px;margin-bottom:16px;font-family:var(--body)}

/* ── Yield table ── */
.yield-wrap{overflow-x:auto;margin-bottom:28px}
.yield-table{border-collapse:collapse;min-width:700px}
.yield-table th{font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;color:var(--ink-faint);text-transform:uppercase;
                padding:9px 12px;border-bottom:1px solid var(--line-strong);text-align:center;font-weight:500}
.yield-table th.tree-h{text-align:left;width:140px}
.yield-table td{padding:5px 12px;border-bottom:1px solid var(--line);text-align:center;vertical-align:top;font-variant-numeric:tabular-nums}
.yield-table td.tree-td{text-align:left;font-size:13.5px;color:var(--ink);white-space:nowrap;font-weight:500}
.yield-cell{cursor:pointer;min-width:64px}
.yield-cell:hover{background:rgba(168,72,42,.05)}
.yield-cell:hover .yield-forecast{opacity:.6}
.yield-forecast{font-size:12px;color:var(--ink-faint);line-height:1.45}
.yield-actual{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--orchard-deep);line-height:1.4}
.yield-no-fruit{font-size:11px;color:var(--ink-ghost);font-style:italic}
.yield-total-row{background:var(--paper-3)}
.yield-total-row td{font-size:13px;font-weight:700;color:var(--russet);padding:7px 12px;font-family:var(--mono)}
.yield-total-row td.tree-td{color:var(--ink-faint)}

/* ── Scoring (from v10) ── */
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line-strong);margin-bottom:20px;padding-top:4px}
.tab{padding:11px 18px;font-family:var(--body);font-size:13.5px;font-weight:600;letter-spacing:.02em;color:var(--ink-faint);cursor:pointer;
     border-bottom:3px solid transparent;transition:all .18s;background:none;border-top:none;
     border-left:none;border-right:none}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--russet);border-bottom-color:var(--russet)}
.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;font-size:13px}
th,td{padding:6px 9px;border:1px solid var(--line)}
th{background:var(--orchard-deep);color:var(--paper);font-family:var(--mono);font-size:11px;letter-spacing:.07em;
   text-transform:uppercase;text-align:left;white-space:nowrap;font-weight:500}
td{background:var(--paper-2);color:var(--ink);text-align:center;font-variant-numeric:tabular-nums}
td:first-child{text-align:left;white-space:nowrap;font-size:13px;cursor:pointer;font-weight:500}
td:first-child:hover{color:var(--russet)}
.grp-row td{background:var(--paper-3);color:var(--ink-faint);font-family:var(--mono);font-size:10.5px;
            letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:5px 9px}
.ov-row td{background:var(--paper-3)!important;font-weight:700}
.ov-cell{font-size:14.5px!important;font-weight:700;font-family:var(--disp);color:var(--russet)}
.top-cell{outline:2px solid var(--gold-bright)}
.sort-active-row td:first-child{color:var(--russet)}
.sort-arrow{margin-left:4px;font-size:11px}
.cat-meta{color:var(--ink-ghost);font-size:11px}
.cat-ceil{color:var(--ink-ghost);font-size:10px}
.th-rs{background:var(--orchard);color:var(--paper);font-size:10px;
       padding:1px 5px;border-radius:2px;font-weight:normal;letter-spacing:.04em}
.th-badge{font-size:10px;padding:1px 5px;border-radius:2px;letter-spacing:.06em}
.b-planted{background:#dde3c8;color:var(--orchard-deep)}
.b-2027{background:#efe2c4;color:var(--gold)}
.b-locked{background:#e3dae8;color:var(--plum)}
.b-tentative{background:#efe2c4;color:var(--russet-deep);border:1px solid #d8c08a}
.new-cat{font-size:9px;padding:1px 4px;background:#dde3c8;color:var(--orchard-deep);
         border-radius:2px;margin-left:4px;letter-spacing:.05em}

/* ── Modal ── */
.modal-bg{position:fixed;inset:0;background:rgba(42,33,24,.55);z-index:200;
          display:none;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.modal-bg.open{display:flex}
.modal{background:var(--paper);border:1px solid var(--ink);border-radius:4px;
       padding:26px;width:360px;max-width:95vw;box-shadow:0 12px 40px rgba(42,33,24,.3)}
.modal h3{font-family:var(--disp);font-size:22px;font-weight:600;color:var(--ink);margin-bottom:18px;font-optical-sizing:auto}
.modal-field{margin-bottom:12px}
.modal-field label{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;color:var(--ink-faint);
                   text-transform:uppercase;margin-bottom:5px}
.modal-field input,.modal-field textarea,.modal-field select{
  width:100%;background:var(--paper-2);color:var(--ink);border:1px solid var(--line-strong);
  border-radius:3px;padding:8px 10px;font-size:14.5px;font-family:var(--body)}
.modal-field input:focus,.modal-field textarea:focus{outline:none;border-color:var(--russet);box-shadow:0 0 0 2px rgba(168,72,42,.15)}
.modal-btns{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}
.btn{padding:8px 18px;border-radius:3px;font-family:var(--mono);font-size:12.5px;cursor:pointer;border:none;
     letter-spacing:.06em;text-transform:uppercase;font-weight:500;transition:all .15s}
.btn-primary{background:var(--orchard);color:var(--paper)}
.btn-primary:hover{background:var(--orchard-deep)}
.btn-ghost{background:transparent;color:var(--ink-faint);border:1px solid var(--line-strong)}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink)}
.modal-year-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.myt{padding:4px 11px;border-radius:2px;font-family:var(--mono);font-size:12px;cursor:pointer;
     background:var(--paper-2);color:var(--ink-faint);border:1px solid var(--line)}
.myt.active{background:var(--orchard);color:var(--paper);border-color:var(--orchard-deep)}

/* ── Corrections note ── */
.correction-note{font-size:13px;background:var(--paper-2);border:1px solid var(--line-strong);
                 border-left:4px solid var(--gold-bright);
                 border-radius:3px;padding:12px 16px;color:var(--ink-soft);margin-top:10px;line-height:1.7}
.correction-note b{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
/* ── Flavor profile tab ── */
.fp-note{font-size:13.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:18px;max-width:760px}
.fp-note b{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--russet)}
.fp-table{border-collapse:collapse;width:100%;min-width:620px}
.fp-table th{font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;
             color:var(--ink-faint);font-weight:500;padding:9px 12px;text-align:left;
             border-bottom:1px solid var(--line-strong);cursor:pointer;user-select:none;white-space:nowrap}
.fp-table th:hover{color:var(--russet)}
.fp-table th.fp-name-h{width:170px}
.fp-table td{padding:7px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.fp-table tr:hover td{background:rgba(168,72,42,.04)}
.fp-name{font-family:var(--disp);font-size:16px;color:var(--ink);white-space:nowrap}
.fp-star{color:var(--gold-bright);font-size:12px;margin-left:5px;vertical-align:super}
.fp-bar-wrap{display:flex;align-items:center;gap:8px;min-width:110px}
.fp-bar{height:9px;border-radius:2px;min-width:3px;transition:width .3s}
.fp-num{font-family:var(--mono);font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}

/* Reimagined stone-fruit view */
#sp-map{margin-bottom:24px}
.pmap-head{font-size:17px;font-weight:600;color:var(--ink);margin:2px 0 3px}
.pmap-tag{font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--russet);border:1px solid var(--line);border-radius:2px;padding:1px 6px;margin-left:6px;vertical-align:2px}
.pmap-sub{font-size:14.5px;color:var(--ink-soft);max-width:68ch;margin:0 0 12px;line-height:1.5}
.pmap-card{border:1px solid var(--line);background:var(--paper-2);padding:8px;margin-bottom:12px}
.pmap-tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.pmap-tbl th{text-align:left;font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:6px 8px;border-bottom:1.5px solid var(--line-strong)}
.pmap-tbl th.n,.pmap-tbl td.n{text-align:right;font-variant-numeric:tabular-nums}
.pmap-tbl td{padding:6px 8px;border-bottom:1px solid var(--line)}
.pmap-tbl td.n{font-family:ui-monospace,monospace}
.pmap-tbl tr.pl{color:var(--ink-faint)}
.pmap-pill{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.05em;border:1px solid var(--line);border-radius:2px;padding:1px 5px;color:var(--ink-faint)}
.pmap-note{font-size:14px;color:var(--ink-soft);background:var(--paper-3);border-left:3px solid var(--gold);padding:9px 12px;margin-top:14px;line-height:1.5}

/* ── Header actions (Export) ── */
.header-actions{display:flex;align-items:center;gap:10px}
.btn-sm{padding:5px 11px;font-size:12px}


/* Modern shared refinements */
.brand-copy{display:flex;flex-direction:column;gap:3px}.nav-icon{display:inline-grid;place-items:center;width:22px;height:22px;font-size:14.5px}
button,input,select,textarea{font:inherit}.section{min-height:100vh}.card-meta{line-height:1.75}.card-row{align-items:center}
.tbl-wrap,.yield-wrap,.cal-wrap{border-radius:14px}.modal{max-height:90vh;overflow:auto}.modal-bg{padding:20px}
@media(max-width:760px){.add-row,.add-row-3{grid-template-columns:1fr}.summary-bar{gap:10px}.cards-grid{grid-template-columns:1fr}.section{padding:18px}.logo-sub{display:none}}


:root{--paper:#f4f7f3;--paper-2:#ffffff;--paper-3:#edf3ec;--paper-edge:#dce5dc;--ink:#17231b;--ink-soft:#445248;--ink-faint:#6b786e;--ink-ghost:#a5afa7;--orchard:#2e5a3a;--orchard-deep:#1f3d2b;--orchard-lite:#6a8f6d;--russet:#d16442;--russet-deep:#a9472c;--gold:#9a731f;--gold-bright:#d3a94e;--plum:#72506f;--line:#dfe7df;--line-strong:#ccd8ce;--disp:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;font-size:15px}
body{background:var(--paper);background-image:none;padding-left:252px}
.masthead{position:fixed;inset:0 auto 0 0;width:252px;height:100vh;background:#123b38;box-shadow:8px 0 30px rgba(20,43,30,.10);display:flex;flex-direction:column;z-index:120}
.app-header{background:transparent;border:0;padding:28px 22px 20px;display:block}.logo-area{display:flex;align-items:center;gap:12px}.logo-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.12);font-size:22px}.brand-copy{min-width:0}.logo-text{font-family:var(--body);font-size:19px;font-weight:750;color:#fff;letter-spacing:-.02em}.logo-sub{font-family:var(--body);font-size:12px;color:#a9c5b4;text-transform:none;letter-spacing:.01em;line-height:1.35}.header-actions{margin-top:22px}.header-actions .btn{width:100%;padding:10px 12px;border-radius:10px;color:#d7e5db;border-color:rgba(255,255,255,.18);text-transform:none;letter-spacing:0;font-size:13.5px}.header-actions .btn:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.32)}
.nav-bar{background:transparent;border:0;display:flex;flex-direction:column;gap:5px;padding:8px 14px;overflow:visible}.nav-tab{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:11px;color:#b8ccbf;font-size:14.5px;font-weight:600;letter-spacing:0;text-align:left}.nav-tab:hover{background:rgba(255,255,255,.07);color:#fff}.nav-tab.active{background:#fff;color:#0d4a45;border:0;box-shadow:0 10px 24px rgba(0,0,0,.14)}.nav-icon{background:rgba(255,255,255,.08);border-radius:7px}.nav-tab.active .nav-icon{background:#d9edeb;color:#2e5a3a}
.section{max-width:1500px;padding:34px 38px 60px}.summary-bar{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;background:transparent;border:0;padding:0;margin-bottom:30px;box-shadow:none}.sum-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;text-align:left;box-shadow:0 8px 22px rgba(35,66,45,.05)}.sum-val{font-family:var(--body);font-size:26px;font-weight:760;color:var(--ink);letter-spacing:-.03em}.sum-label{font-family:var(--body);font-size:12px;letter-spacing:.03em;color:var(--ink-faint);margin-top:7px}.sum-divider{display:none}.summary-bar>div[style*="margin-left:auto"]{grid-column:1/-1;margin-left:0!important;justify-content:flex-start!important;padding-top:4px}.log-btn{font-family:var(--body);font-size:13px;text-transform:none;letter-spacing:0;border-radius:9px;padding:8px 12px}.btn-add{background:var(--orchard)!important;border-color:var(--orchard)!important}
.sect-head{font-family:var(--body);font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:750;border:0;padding:0;margin:34px 0 14px}.sect-head::before{width:4px;height:18px;border-radius:4px;background:var(--orchard);transform:none}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px;box-shadow:0 8px 24px rgba(35,66,45,.055)}.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(35,66,45,.10)}.card::before{top:16px;bottom:16px;width:4px;border-radius:4px}.card-head{padding-left:8px;border:0;margin-bottom:10px;padding-bottom:0}.card-name{font-family:var(--body);font-size:19px;font-weight:760}.card-meta{padding-left:8px}.card-meta b{font-family:var(--body);font-size:11px;letter-spacing:.04em}.card-row{margin:14px -2px 0;padding:13px 10px 0;border-color:var(--line)}.score-pill,.card-badge{border-radius:999px}.score-pill{background:#e5f1e8;color:#285d3d}.tbl-wrap,.yield-wrap,.cal-wrap{background:#fff;border:1px solid var(--line);padding:8px;box-shadow:0 8px 24px rgba(35,66,45,.04)}
th{background:#eff5f0;color:#445248;border-color:var(--line);font-family:var(--body);font-size:11px}.yield-table th,.cal-table th,.fp-table th{background:transparent}.yield-table td,.fp-table td,.pmap-tbl td,td{background:#fff;border-color:var(--line)}.tabs{gap:8px;border:0}.tab{border:1px solid var(--line);border-radius:10px;padding:9px 14px}.tab.active{background:#e8f2ea;color:var(--orchard-deep);border-color:#c9ddce}
.modal{background:#fff;border:0;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.22)}.modal h3{font-family:var(--body);font-weight:760}.btn{font-family:var(--body);text-transform:none;letter-spacing:0;border-radius:10px}.add-field input,.add-field select,.add-field textarea,.modal-field input,.modal-field select,.modal-field textarea{background:#fff;border-radius:10px;padding:10px 12px}
@media(max-width:980px){body{padding-left:0}.masthead{position:sticky;inset:auto;width:auto;height:auto;display:block}.app-header{padding:14px 18px;display:flex}.header-actions{margin-top:0}.header-actions .btn{width:auto}.nav-bar{flex-direction:row;overflow-x:auto;padding:6px 12px 10px}.nav-tab{width:auto;white-space:nowrap}.section{padding:24px}.summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-bar>div[style*="margin-left:auto"]{grid-column:1/-1}}

/* ═══════════════════════════════════════════════════════════════════════
   2026 WORKSPACE REDESIGN, structural shell, component refresh, dark mode
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --canvas:#eef2f3;
  --surface:#ffffff;
  --surface-raised:#ffffff;
  --surface-soft:#e0e7e8;
  --surface-muted:#dbe4e5;
  --surface-inverse:#123b38;
  --text-primary:#0d1416;
  --text-secondary:#5f7378;
  --text-tertiary:#839599;
  --line:#c8d2d4;
  --line-strong:#b3c1c3;
  --accent:#2e5a3a;
  --accent-strong:#1f3d2b;
  --accent-soft:#d9edeb;
  --accent-bright:#6a8f6d;
  --warm:#c55d3d;
  --warm-soft:#f7e8e2;
  --gold:#b8891f;
  --gold-bright:#d3a94e;
  --gold-soft:#f6eedc;
  --plum:#755473;
  --plum-soft:#eee7ef;
  --crisp-bar:#1f9e8b;   /* dedicated data hue for the Crispness bar (was --orchard = UI green) */
  --danger:#b8493c;
  --danger-soft:#f8e7e4;
  --bloom:#d58aa7;
  --bloom-color:#d58aa7;
  --harvest-apple:#6a8f6d;
  --harvest-peach:#e0a63a;
  --paper:var(--canvas);--paper-2:var(--surface-raised);--paper-3:var(--surface-soft);--paper-edge:var(--line);
  --ink:var(--text-primary);--ink-soft:var(--text-secondary);--ink-faint:var(--text-tertiary);--ink-ghost:#a5afa8;
  --orchard:var(--accent);--orchard-deep:var(--accent-strong);--orchard-lite:var(--accent-bright);
  --russet:var(--warm);--russet-deep:#9f422b;--sage:var(--accent);--sage-light:var(--accent-bright);
  --bg:var(--canvas);--bg2:var(--surface-raised);--bg3:var(--surface-soft);--border:var(--line);--border-light:var(--line-strong);
  --text:var(--text-primary);--text-muted:var(--text-secondary);--text-dim:var(--text-tertiary);
  --badge-planted:var(--accent-soft);--badge-planned:var(--gold-soft);--badge-consider:var(--surface-muted);
  /* Grok-integration compat aliases: bridge orphan tokens (never defined) to real theme tokens so they adapt to light/dark/high-contrast. Fixes white-card-in-dark-mode. */
  --panel:var(--surface-raised);--card:var(--surface-raised);--panel2:var(--surface-soft);--panel-soft:var(--surface-soft);--surface-2:var(--surface-soft);--surface-strong:var(--surface-muted);--input-bg:var(--canvas);--rr87-bg:var(--surface-raised);
  --muted:var(--text-secondary);--text-soft:var(--text-secondary);--faint:var(--text-tertiary);
  --sage-soft:var(--accent-soft);--sage2:var(--accent);--sage3:var(--accent);--accent-tint:var(--accent-soft);--accent-contrast:#fff;
  --red:var(--danger);--warning:var(--gold);--orange:var(--warm);--info:var(--accent);--teal:var(--accent);--teal-light:var(--accent-bright);--shadow:var(--shadow-sm);
  --s1:#f6ebe6;--s2:#f5edda;--s3:#eaf1e7;--s4:#dcecdf;--s5:#d4e9da;
  --body:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --disp:var(--body);--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --sidebar-width:264px;
  --topbar-height:112px;
  --radius-xs:8px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:26px;
  --shadow-xs:0 1px 2px rgba(19,45,31,.04);
  --shadow-sm:0 6px 18px rgba(19,45,31,.055);
  --shadow-md:0 14px 38px rgba(19,45,31,.09);
  --shadow-lg:0 26px 70px rgba(8,25,16,.18);
  color-scheme:light;
  font-size:15px;
}
html[data-theme="dark"]{
  --canvas:#080c0e;
  --surface:#0f171a;
  --surface-raised:#11191c;
  --surface-soft:#162024;
  --surface-muted:#1e2c31;
  --surface-inverse:#e8f3ec;
  --text-primary:#e4ecee;
  --text-secondary:#7d9499;
  --text-tertiary:#546b70;
  --line:#233239;
  --line-strong:#31454d;
  --accent:#6a8f6d;
  --accent-strong:#4ec9b0;
  --accent-soft:#132d2b;
  --accent-bright:#4ec9b0;
  --warm:#e07a59;
  --warm-soft:#3a241e;
  --gold:#e9c46a;
  --gold-bright:#e2bd6b;
  --gold-soft:#342d1d;
  --plum:#c090bd;
  --plum-soft:#322536;
  --crisp-bar:#4fd0bd;   /* dedicated data hue for the Crispness bar (bright teal for dark surfaces) */
  --danger:#e47b70;
  --danger-soft:#3c2422;
  --bloom:#e193b1;
  --bloom-color:#e193b1;
  --harvest-apple:#4ec9b0;
  --harvest-peach:#e9c46a;
  --paper-edge:var(--line);
  --ink-ghost:#53675b;
  --russet-deep:#f19879;
  --s1:#32221d;--s2:#322c1d;--s3:#213326;--s4:#1d3a29;--s5:#1a4029;
  --shadow-xs:0 1px 2px rgba(0,0,0,.18);
  --shadow-sm:0 8px 24px rgba(0,0,0,.2);
  --shadow-md:0 18px 46px rgba(0,0,0,.3);
  --shadow-lg:0 28px 80px rgba(0,0,0,.5);
  color-scheme:dark;
}

*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth}
body{margin:0;padding:0!important;min-height:100vh;background:var(--canvas)!important;background-image:none!important;color:var(--text-primary);font-family:var(--body);transition:background .25s ease,color .25s ease;overflow-x:hidden;overflow-x:clip}
button,input,select,textarea{font:inherit}
button{color:inherit}
a{color:var(--orchard);text-underline-offset:3px}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:150;display:flex;flex-direction:column;padding:22px 16px 16px;background:linear-gradient(180deg,#173b2b 0%,#102c20 100%);color:#ecf6ef;border-right:1px solid rgba(255,255,255,.08);box-shadow:10px 0 34px rgba(12,36,23,.1)}
html[data-theme="dark"] .sidebar{background:linear-gradient(180deg,#101c17 0%,#0a1511 100%);border-color:#203229;box-shadow:12px 0 40px rgba(0,0,0,.24)}
.brand{height:62px;display:flex;align-items:center;gap:12px;padding:0 8px 0 5px;margin-bottom:24px}
.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.17),rgba(255,255,255,.07));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.brand-mark svg{width:23px;height:23px;stroke:#d9f2e2}
.brand-name{font-weight:760;font-size:17px;letter-spacing:-.02em}
.brand-meta{font-size:12.5px;color:#9dbbaa;margin-top:3px}
.primary-nav{display:flex;flex-direction:column;gap:5px;flex:1}
.nav-label{padding:0 13px;margin:3px 0 5px;color:#739482;font-size:11.5px;line-height:1;text-transform:uppercase;letter-spacing:.13em;font-weight:700}
.nav-label-secondary{margin-top:22px}
.nav-tab{width:100%;height:43px;display:flex;align-items:center;gap:12px;padding:0 13px;border:0!important;border-radius:12px!important;background:transparent!important;color:#aac2b4!important;font-size:14.5px!important;font-weight:590!important;letter-spacing:0!important;text-align:left;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease;white-space:nowrap}
.nav-tab svg{width:19px;height:19px;flex:none;opacity:.86}
.nav-tab:hover{background:rgba(255,255,255,.07)!important;color:#fff!important;transform:translateX(2px)}
.nav-tab.active{background:rgba(255,255,255,.13)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09),0 8px 20px rgba(0,0,0,.08)!important}
.nav-tab.active svg{stroke:#9fe0b5}
.sidebar-footer{display:grid;gap:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}
.sidebar-action,.theme-control{width:100%;border:0;background:transparent;color:#b8ccbf;border-radius:12px;cursor:pointer;text-align:left;transition:.18s ease}
.sidebar-action{display:flex;align-items:center;gap:11px;padding:10px 11px}
.sidebar-action:hover,.theme-control:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar-action svg{width:18px;height:18px;flex:none}
.sidebar-action span{display:grid;gap:2px}.sidebar-action b{font-size:13.5px;font-weight:650}.sidebar-action small{font-size:11.5px;color:#789686}
.theme-control{height:42px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;padding:0 10px;font-size:13.5px;font-weight:620}
.theme-icon{width:28px;height:28px;display:grid;place-items:center}.theme-icon svg{width:17px;height:17px}
.theme-switch{width:34px;height:19px;border-radius:999px;background:rgba(255,255,255,.14);padding:3px;transition:.2s}.theme-switch i{display:block;width:13px;height:13px;border-radius:50%;background:#e8f1eb;transition:transform .2s ease}
html[data-theme="dark"] .theme-switch{background:#4d8b62}html[data-theme="dark"] .theme-switch i{transform:translateX(15px)}
.sidebar-scrim{display:none}
.workspace{grid-column:2;min-width:0;min-height:100vh}
.topbar{position:sticky;top:0;z-index:90;min-height:var(--topbar-height);display:flex;align-items:center;gap:18px;padding:20px clamp(24px,3vw,48px);background:color-mix(in srgb,var(--canvas) 88%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.page-heading{min-width:0;flex:1}.page-eyebrow,.section-kicker{font-family:var(--mono);font-size:11.5px;line-height:1;text-transform:uppercase;letter-spacing:.13em;color:var(--orchard);font-weight:700;margin-bottom:7px}
.page-heading h1{font-size:27px;line-height:1.1;letter-spacing:-.035em;margin:0;color:var(--text-primary);font-weight:760}
.page-heading p{font-size:14px;line-height:1.45;color:var(--text-secondary);margin:6px 0 0;max-width:680px}
.topbar-actions{display:flex;align-items:center;gap:10px;flex:none}
.icon-button,.primary-action{border:1px solid var(--line);background:var(--paper-2);box-shadow:var(--shadow-xs);cursor:pointer;transition:.18s ease}
.icon-button{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.icon-button svg{width:19px;height:19px}.icon-button:hover{background:var(--surface-soft);border-color:var(--line-strong);transform:translateY(-1px)}
.primary-action{height:42px;border-radius:12px;padding:0 16px;display:flex;align-items:center;gap:8px;background:var(--orchard);color:#fff;border-color:var(--orchard);font-size:13.5px;font-weight:700;box-shadow:0 8px 18px color-mix(in srgb,var(--orchard) 24%,transparent)}
.primary-action svg{width:17px;height:17px}.primary-action:hover{background:var(--accent-strong);border-color:var(--accent-strong);transform:translateY(-1px)}
.mobile-menu{display:none}.mobile-bottom-nav{display:none}
.content-area{padding:8px clamp(24px,3vw,48px) 70px;max-width:1700px;margin:0 auto}
.section{display:none!important;padding:24px 0 0!important;max-width:none!important;min-height:auto!important}.section.active{display:block!important;animation:sectionIn .24s ease both}
@keyframes sectionIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* Overview */
.summary-bar{display:grid!important;grid-template-columns:minmax(300px,1.35fr) repeat(3,minmax(150px,.65fr))!important;gap:14px!important;background:transparent!important;border:0!important;padding:0!important;margin:0 0 22px!important;box-shadow:none!important}
.overview-hero{min-height:166px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:24px;border-radius:var(--radius-xl);background:linear-gradient(135deg,#123b38 0%,#2e5a3a 60%,#6a8f6d 100%);color:#fff;box-shadow:0 18px 44px rgba(18,59,56,.17)}
.overview-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-80px;top:-95px;background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 68%)}
.overview-hero:before{content:"";position:absolute;width:180px;height:180px;right:20px;bottom:-120px;border:28px solid rgba(255,255,255,.07);border-radius:50%}
.hero-kicker{position:relative;z-index:1;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:#bce1c8;font-weight:700}.hero-title{position:relative;z-index:1;font-size:26px;line-height:1.05;font-weight:760;letter-spacing:-.035em;max-width:360px;margin:8px 0}.hero-copy{position:relative;z-index:1;font-size:13.5px;line-height:1.5;color:#d8ebe0;max-width:430px}.hero-actions{position:relative;z-index:1;display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.hero-button{height:34px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.13);color:#fff;font-size:12.5px;font-weight:650;cursor:pointer}.hero-button.primary{background:#fff;color:#245f3e;border-color:#fff}.hero-button:hover{background:rgba(255,255,255,.22)}.hero-button.primary:hover{background:#edf7f0}
.metric-card{min-height:166px;display:flex;flex-direction:column;justify-content:space-between;padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);box-shadow:var(--shadow-card);transition:.18s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.metric-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--orchard)}.metric-icon svg{width:18px;height:18px}.metric-icon.warm{background:var(--warm-soft);color:var(--warm)}.metric-icon.gold{background:var(--gold-soft);color:var(--gold)}
.metric-value{font-size:26px;line-height:1;letter-spacing:-.035em;font-weight:760;color:var(--text-primary)}.metric-value small{font-size:13px;color:var(--text-secondary);font-weight:600;letter-spacing:0}.metric-label{font-size:12.5px;color:var(--text-secondary);margin-top:7px}.metric-detail{font-size:11.5px;color:var(--text-tertiary);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orchard-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);background:var(--paper-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:26px;position:sticky;top:calc(var(--topbar-height) + 8px);z-index:40}
.search-field{position:relative;min-width:220px;flex:1}.search-field svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-tertiary)}.search-field input{width:100%;height:39px;padding:0 12px 0 37px;border:1px solid var(--line);background:var(--canvas);color:var(--text-primary);border-radius:11px;outline:0;font-size:13.5px}.search-field input:focus{border-color:var(--orchard);box-shadow:0 0 0 3px color-mix(in srgb,var(--orchard) 13%,transparent)}
.filter-group{display:flex;gap:5px;padding:4px;border-radius:11px;background:var(--surface-soft)}.filter-chip{height:31px;padding:0 11px;border:0;background:transparent;border-radius:8px;color:var(--text-secondary);font-size:12.5px;font-weight:650;cursor:pointer}.filter-chip.active{background:var(--paper-2);color:var(--orchard);box-shadow:var(--shadow-xs)}.filter-chip:hover:not(.active){color:var(--text-primary)}
.toolbar-select{height:39px;min-width:130px;padding:0 32px 0 11px;border:1px solid var(--line);border-radius:11px;background:var(--canvas);color:var(--text-secondary);font-size:12.5px;outline:none}.result-count{font-family:var(--mono);font-size:11.5px;color:var(--text-tertiary);padding:0 4px;white-space:nowrap}
.orchard-group{margin-bottom:32px}.orchard-group[hidden],.orchard-card[hidden]{display:none!important}.group-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 2px 12px}.group-heading h2{font-size:16px;line-height:1.2;margin:0;font-weight:730;color:var(--text-primary);letter-spacing:-.015em}.group-heading p{font-size:12px;color:var(--text-tertiary);margin:3px 0 0}.group-count{height:23px;min-width:23px;padding:0 8px;border-radius:999px;display:grid;place-items:center;background:var(--surface-soft);color:var(--text-secondary);font-size:11.5px;font-family:var(--mono)}
.cards-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))!important;gap:15px!important;margin:0!important}
.card,.orchard-card{position:relative;background:var(--paper-2)!important;border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;padding:0!important;overflow:hidden;box-shadow:var(--shadow-card)!important;opacity:1!important;transform:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.card:hover,.orchard-card:hover{transform:translateY(-3px)!important;box-shadow:var(--shadow-md)!important;border-color:var(--line-strong)!important}.card:before{display:none!important}
.card-accent{height:4px;background:var(--orchard)}.card-planned .card-accent{background:var(--gold-bright)}.card-consideration .card-accent{background:var(--text-tertiary)}
.card-main{padding:18px}.card-head{display:flex!important;justify-content:flex-start!important;align-items:center!important;gap:12px;margin:0 0 16px!important;padding:0!important;border:0!important}.fruit-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);font-size:22px;flex:none}.card-planned .fruit-icon{background:var(--gold-soft)}.card-consideration .fruit-icon{background:var(--surface-soft)}
.card-heading-copy{min-width:0;flex:1}.card-name{font-family:var(--body)!important;font-size:18px!important;line-height:1.15!important;font-weight:750!important;letter-spacing:-.025em!important;color:var(--text-primary)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-subtitle{font-size:12px;color:var(--text-tertiary);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-score{height:31px;min-width:31px;padding:0 8px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--orchard);font-family:var(--mono);font-size:13px;font-weight:750;flex:none}
.card-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card-stat{background:var(--paper-2);padding:11px 12px;min-width:0}.card-stat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:700}.card-stat-value{font-size:13.5px;color:var(--text-primary);margin-top:4px;font-weight:630;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-stat-note{font-size:10.5px;color:var(--text-tertiary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-details{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:13px;font-size:11.5px;color:var(--text-secondary)}.detail-item b{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);margin-right:4px}.card-note{margin-top:12px;padding:9px 10px;border-radius:10px;background:var(--surface-soft);color:var(--text-secondary);font-size:11.5px;line-height:1.45}.card-note.warning{background:var(--danger-soft);color:var(--danger)}.card-note.positive{background:var(--accent-soft);color:var(--orchard)}
.card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-soft) 50%,var(--paper-2))}.card-tags,.card-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.card-badge{font-family:var(--body)!important;height:22px;display:inline-flex;align-items:center;padding:0 8px!important;border:0!important;border-radius:999px!important;font-size:10.5px!important;letter-spacing:.02em!important;text-transform:none!important;font-weight:680!important}.badge-planted{background:var(--accent-soft)!important;color:var(--orchard)!important}.badge-planned{background:var(--gold-soft)!important;color:var(--gold)!important}.badge-consideration,.badge-prevot{background:var(--surface-muted)!important;color:var(--text-secondary)!important}.badge-removal{background:var(--danger-soft)!important;color:var(--danger)!important}.badge-replaces{background:var(--accent-soft)!important;color:var(--orchard)!important}.badge-useradd{background:var(--plum-soft)!important;color:var(--plum)!important}.score-pill{height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px!important;background:var(--accent-soft)!important;color:var(--orchard)!important;font-size:10.5px!important}
.log-btn,.bench-btn,.remove-btn{height:29px!important;padding:0 9px!important;border-radius:9px!important;border:1px solid var(--line)!important;background:var(--paper-2)!important;color:var(--text-secondary)!important;font-family:var(--body)!important;font-size:11px!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important;font-weight:650!important;cursor:pointer;transition:.16s ease}.log-btn:hover,.bench-btn:hover{color:var(--orchard)!important;border-color:color-mix(in srgb,var(--orchard) 40%,var(--line))!important;background:var(--accent-soft)!important}.remove-btn{width:29px;padding:0!important;color:var(--text-tertiary)!important}.remove-btn:hover{color:var(--danger)!important;background:var(--danger-soft)!important;border-color:color-mix(in srgb,var(--danger) 35%,var(--line))!important}.btn-add{background:var(--orchard)!important;color:white!important;border-color:var(--orchard)!important}
.actuals-badge{font-family:var(--body)!important;font-size:10px!important;margin-left:3px!important;color:inherit!important}.bench-section{margin:0 18px 16px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--canvas)!important;padding:10px!important;overflow-x:auto}.bench-table{width:100%;min-width:400px;border-collapse:collapse}.bench-table th,.bench-table td{padding:7px!important;font-size:10.5px!important;background:transparent!important;border-bottom:1px solid var(--line)!important;color:var(--text-secondary)!important}.bench-src{font-size:10px!important;color:var(--text-tertiary)!important;margin-top:7px!important}
.fbar{display:inline-flex;gap:1px;vertical-align:middle}.fbar-s,.fbar-t{height:6px}.empty-filter-state{display:none;padding:34px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);background:var(--paper-2)}.empty-filter-state.show{display:block}.empty-filter-state b{display:block;color:var(--text-primary);font-size:14.5px;margin-bottom:5px}
.correction-note{border:1px solid var(--line)!important;border-left:3px solid var(--gold)!important;background:var(--paper-2)!important;border-radius:var(--radius-md)!important;padding:15px 17px!important;color:var(--text-secondary)!important;line-height:1.65!important;font-size:12px!important;box-shadow:var(--shadow-xs)}

/* Shared sections & controls */
.section-control-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;margin-bottom:18px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.section-control-bar p{font-size:12.5px;color:var(--text-secondary);margin:5px 0 0}.control-label{font-size:13.5px;font-weight:720;color:var(--text-primary)}
.cal-year-select,.toolbar-select{appearance:auto}.cal-year-select{height:40px;min-width:110px;margin:0!important;padding:0 11px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:var(--canvas)!important;color:var(--text-primary)!important;font-weight:650!important}
.sect-head{font-family:var(--body)!important;font-size:15px!important;line-height:1.25!important;letter-spacing:-.01em!important;text-transform:none!important;color:var(--text-primary)!important;font-weight:730!important;border:0!important;padding:0!important;margin:28px 0 12px!important}.sect-head:before{display:none!important}.page-section-title{font-size:20px!important;margin-top:0!important}.section-kicker{margin-top:4px}
.tbl-wrap,.yield-wrap,.cal-wrap{width:100%;overflow:auto;background:var(--paper-2)!important;border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;padding:0!important;box-shadow:var(--shadow-card)!important;scrollbar-color:var(--line-strong) transparent}.tbl-wrap::-webkit-scrollbar,.yield-wrap::-webkit-scrollbar,.cal-wrap::-webkit-scrollbar{height:10px}.tbl-wrap::-webkit-scrollbar-thumb,.yield-wrap::-webkit-scrollbar-thumb,.cal-wrap::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--paper-2);border-radius:999px}
table{border-collapse:separate!important;border-spacing:0!important}th{position:sticky;top:0;z-index:3;background:var(--surface-soft)!important;color:var(--text-secondary)!important;border-color:var(--line)!important;font-family:var(--body)!important;font-size:10.5px!important;letter-spacing:.05em!important;font-weight:720!important;text-transform:uppercase!important}td{background:var(--paper-2)!important;color:var(--text-secondary)!important;border-color:var(--line)!important}.yield-table th:first-child,.yield-table td:first-child,.cal-table th:first-child,.cal-table td:first-child{position:sticky;left:0;z-index:4;box-shadow:1px 0 0 var(--line)}.yield-table th:first-child,.cal-table th:first-child{z-index:6}.tree-td,.tree-label{color:var(--text-primary)!important;font-weight:680!important}.yield-cell:hover{background:var(--accent-soft)!important}.yield-forecast{color:var(--text-secondary)!important}.yield-actual{color:var(--orchard)!important}.yield-total-row td{background:var(--surface-soft)!important;color:var(--text-primary)!important}.yield-src{font-size:11px!important;font-weight:450!important}.cal-legend{color:var(--text-secondary)!important}.cal-bar{border-radius:999px!important}.cal-month-sep{border-color:var(--line)!important}.cal-bloom{background:var(--bloom-color)!important}.cal-harvest-apple{background:var(--harvest-apple)!important}.cal-harvest-peach{background:var(--harvest-peach)!important}
.segmented-control,.tabs{width:max-content;max-width:100%;display:flex!important;gap:4px!important;padding:4px!important;margin:0 0 22px!important;border:1px solid var(--line)!important;border-radius:13px!important;background:var(--surface-soft)!important;overflow:auto}.tab{height:36px;padding:0 13px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--text-secondary)!important;font-family:var(--body)!important;font-size:12.5px!important;font-weight:670!important;white-space:nowrap}.tab span{font-size:10.5px;color:var(--text-tertiary);margin-left:5px}.tab.active{background:var(--paper-2)!important;color:var(--orchard)!important;box-shadow:var(--shadow-xs)!important}.fair-toggle{display:flex!important;align-items:center!important;gap:9px!important;margin-bottom:15px!important;font-family:var(--body)!important;font-size:12.5px!important;letter-spacing:0!important;text-transform:none!important;color:var(--text-secondary)!important;cursor:pointer}.fair-toggle input{accent-color:var(--orchard)}
.fp-note,.pmap-sub,.pmap-note{color:var(--text-secondary)!important}.fp-table th,.fp-table td,.pmap-tbl th,.pmap-tbl td{border-color:var(--line)!important}.fp-table tr:hover td,.pmap-tbl tr:hover td{background:var(--surface-soft)!important}.fp-name{font-family:var(--body)!important;font-weight:690!important;color:var(--text-primary)!important}.pmap-card{border:1px solid var(--line)!important;background:var(--paper-2)!important;border-radius:var(--radius-lg)!important;padding:10px!important;box-shadow:var(--shadow-xs)!important}.pmap-head{color:var(--text-primary)!important}.pmap-note{background:var(--surface-soft)!important;border-radius:10px!important}.autopop-box{background:var(--surface-soft)!important;border:1px solid var(--line)!important;border-radius:var(--radius-md)!important;color:var(--text-secondary)!important}.ap-title{color:var(--text-primary)!important}

/* Forms and modal sheets */
.modal-bg{position:fixed!important;inset:0!important;z-index:300!important;display:none!important;align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(4,14,9,.56)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-bg.open{display:flex!important}.modal{width:min(620px,100%)!important;max-height:min(88vh,860px)!important;overflow:auto!important;background:var(--surface-raised)!important;color:var(--text-primary)!important;border:1px solid var(--line)!important;border-radius:22px!important;padding:24px!important;box-shadow:var(--shadow-lg)!important}.modal h3{font-family:var(--body)!important;font-size:20px!important;letter-spacing:-.025em!important;font-weight:760!important;color:var(--text-primary)!important;margin:0 0 20px!important}.modal-field,.add-field{margin-bottom:13px!important}.modal-field label,.add-field label{display:block!important;margin-bottom:6px!important;font-family:var(--body)!important;font-size:11px!important;font-weight:720!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--text-tertiary)!important}.modal-field input,.modal-field select,.modal-field textarea,.add-field input,.add-field select,.add-field textarea{width:100%!important;min-height:40px!important;padding:9px 11px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:var(--canvas)!important;color:var(--text-primary)!important;outline:0!important;font-size:13.5px!important}.modal-field textarea,.add-field textarea{min-height:70px!important;resize:vertical}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus,.add-field input:focus,.add-field select:focus,.add-field textarea:focus{border-color:var(--orchard)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--orchard) 13%,transparent)!important}.add-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:11px!important}.add-row-3{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:11px!important}.modal-btns{position:sticky;bottom:-24px;display:flex!important;justify-content:flex-end!important;gap:8px!important;margin:20px -24px -24px!important;padding:15px 24px!important;border-top:1px solid var(--line)!important;background:color-mix(in srgb,var(--surface-raised) 94%,transparent);backdrop-filter:blur(14px)}.btn{height:39px!important;padding:0 14px!important;border-radius:11px!important;font-family:var(--body)!important;font-size:12.5px!important;font-weight:690!important;letter-spacing:0!important;text-transform:none!important;cursor:pointer!important}.btn-primary{background:var(--orchard)!important;color:#fff!important;border:1px solid var(--orchard)!important}.btn-primary:hover{background:var(--accent-strong)!important}.btn-ghost{background:var(--paper-2)!important;color:var(--text-secondary)!important;border:1px solid var(--line)!important}.btn-ghost:hover{color:var(--text-primary)!important;background:var(--surface-soft)!important}.modal-year-tabs{gap:5px!important}.myt{height:31px!important;padding:0 10px!important;border:1px solid var(--line)!important;border-radius:9px!important;background:var(--paper-2)!important;color:var(--text-secondary)!important;font-family:var(--body)!important;font-size:11.5px!important}.myt.active{background:var(--accent-soft)!important;color:var(--orchard)!important;border-color:color-mix(in srgb,var(--orchard) 35%,var(--line))!important}.prefill-hint{color:var(--text-tertiary)!important}

@media(max-width:1180px){
  :root{--sidebar-width:232px}
  .summary-bar{grid-template-columns:repeat(3,1fr)!important}.overview-hero{grid-column:1/-1;min-height:150px}
  .cards-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))!important}
}
@media(max-width:860px){:root{--nav-zone:calc(61px + max(10px,env(safe-area-inset-bottom)) + 14px)}.content-area{padding-bottom:calc(var(--nav-zone) + 10px)}.rr1276-trust{bottom:calc(74px + var(--nav-zone)) !important}
  :root{--topbar-height:96px}
  .app-shell{display:block}.workspace{grid-column:auto}.sidebar{transform:translateX(-104%);transition:transform .24s ease;width:min(290px,86vw);box-shadow:18px 0 60px rgba(0,0,0,.24)}.sidebar.open{transform:translateX(0)}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:140;background:rgba(4,13,8,.45);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.22s}.sidebar-scrim.open{opacity:1;pointer-events:auto}.mobile-menu{display:grid}.topbar{min-height:var(--topbar-height);padding:14px 18px}.page-heading h1{font-size:23px}.page-heading p{display:none}.content-area{padding:4px 18px 88px}.theme-button{display:none}.summary-bar{grid-template-columns:repeat(3,minmax(0,1fr))!important}.metric-card{min-height:130px;padding:15px}.metric-value{font-size:23px}.overview-hero{min-height:154px}.orchard-toolbar{top:calc(var(--topbar-height) + 5px)}.mobile-bottom-nav{position:fixed;z-index:100;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));height:61px;display:grid;grid-template-columns:repeat(4,1fr);padding:5px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--paper-2) 92%,transparent);box-shadow:0 14px 45px rgba(12,32,21,.18);backdrop-filter:blur(18px)}.mobile-nav-item{border:0;border-radius:13px;background:transparent;color:var(--text-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:650}.mobile-nav-item svg{width:18px;height:18px}.mobile-nav-item.active{background:var(--accent-soft);color:var(--orchard)}
}
@media(max-width:620px){
  .topbar-actions .primary-action{width:40px;padding:0;justify-content:center}.topbar-actions .primary-action span{display:none}.topbar{gap:11px}.content-area{padding-left:12px;padding-right:12px}.page-eyebrow{font-size:10.5px}.page-heading h1{font-size:20px}.summary-bar{grid-template-columns:1fr!important}.overview-hero{grid-column:auto}.metric-card{min-height:112px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:12px;align-content:center}.metric-icon{grid-row:1/3}.metric-value{align-self:end}.metric-label{align-self:start;margin-top:4px}.metric-detail{display:none}.orchard-toolbar{position:relative;top:auto;display:grid;grid-template-columns:1fr}.search-field{min-width:0}.filter-group{overflow:auto}.toolbar-select{width:100%}.result-count{text-align:right}.cards-grid{grid-template-columns:1fr!important}.card-main{padding:15px}.card-footer{padding:11px 15px}.card-stats{grid-template-columns:1fr 1fr}.section-control-bar{align-items:flex-start;flex-direction:column}.cal-year-select{width:100%}.add-row,.add-row-3{grid-template-columns:1fr!important}.modal-bg{padding:0!important;align-items:flex-end!important}.modal{width:100%!important;max-height:92vh!important;border-radius:22px 22px 0 0!important;border-bottom:0!important;padding:20px!important}.modal-btns{bottom:-20px;margin:18px -20px -20px!important;padding:13px 20px calc(13px + env(safe-area-inset-bottom))!important}.segmented-control{width:100%}.tab{flex:1}.tab span{display:none}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}


/* ── Kimi-inspired integrated modernization: timeline, microcharts, visual scoring ── */
.harvest-pill{width:max-content;max-width:100%;height:29px;display:inline-flex;align-items:center;gap:7px;margin:0 18px 2px;padding:0 10px;border-radius:999px;background:var(--surface-soft);color:var(--orchard);font-size:11.5px;font-weight:700}
.harvest-pill svg{width:14px;height:14px;flex:none}
.card-trajectory{margin:15px 0 2px;padding:12px 13px 9px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-soft) 55%,var(--paper-2)),var(--paper-2))}
.trajectory-head,.trajectory-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.trajectory-head{font-size:11.5px;color:var(--text-secondary);font-weight:700}.trajectory-head b,.trajectory-foot{font-family:var(--mono);font-size:10px;color:var(--text-tertiary);font-weight:600}.trajectory-chart{width:100%;height:42px;margin:6px 0 1px;overflow:visible}.trajectory-area{fill:color-mix(in srgb,var(--orchard) 14%,transparent);stroke:none}.trajectory-line{fill:none;stroke:var(--orchard);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.season-control-shell{align-items:flex-start!important}.season-control-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap}.timeline-toggle{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);color:var(--text-secondary);font-size:11.5px;font-weight:680;cursor:pointer;transition:.18s}.timeline-toggle:hover{border-color:var(--line-strong);color:var(--text-primary)}.timeline-toggle.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--orchard) 30%,var(--line));color:var(--orchard)}.timeline-zoom{height:36px;display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper-2)}.timeline-zoom button{width:34px;height:100%;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:18px}.timeline-zoom button:hover{background:var(--surface-soft);color:var(--text-primary)}.timeline-zoom span{min-width:50px;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--text-tertiary)}
.timeline-card,.bloom-overlap-panel,.score-workspace{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);box-shadow:var(--shadow-card)}.timeline-card{overflow:hidden}.timeline-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 20px 15px;border-bottom:1px solid var(--line)}.timeline-summary h2,.score-workspace h2{margin:3px 0 0;font-size:18px;letter-spacing:-.025em}.timeline-summary-meta{display:flex;align-items:baseline;gap:6px;color:var(--text-tertiary);font-size:11px}.timeline-summary-meta b{font-size:23px;color:var(--text-primary)}.score-panel-kicker{display:block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-tertiary);font-weight:750}.timeline-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.timeline-canvas{min-width:760px}.timeline-month-row,.timeline-row{display:grid;grid-template-columns:170px minmax(590px,1fr)}.timeline-month-row{position:sticky;top:0;z-index:8;border-bottom:1px solid var(--line);background:var(--surface-soft)}.timeline-tree-spacer{position:sticky;left:0;z-index:9;padding:11px 16px;border-right:1px solid var(--line);background:var(--surface-soft);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);font-weight:720}.timeline-months{display:grid;grid-template-columns:repeat(8,1fr)}.timeline-months div{padding:11px 8px;border-left:1px solid var(--line);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:720}.timeline-row{min-height:57px;border-bottom:1px solid var(--line)}.timeline-row:last-child{border-bottom:0}.timeline-tree{position:sticky;left:0;z-index:6;display:flex;align-items:center;gap:10px;padding:10px 15px;border-right:1px solid var(--line);background:var(--paper-2)}.timeline-tree>span{font-size:18px}.timeline-tree b{display:block;font-size:12.5px;color:var(--text-primary)}.timeline-tree small{display:block;margin-top:3px;font-size:10px;color:var(--text-tertiary)}.timeline-track{position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),var(--line) calc(12.5% - 1px),var(--line) 12.5%)}.timeline-row:hover .timeline-tree,.timeline-row:hover .timeline-track{background-color:color-mix(in srgb,var(--accent-soft) 25%,var(--paper-2))}.timeline-bar{position:absolute;height:9px;border:0;border-radius:999px;cursor:help;box-shadow:0 1px 2px rgba(0,0,0,.1);transition:filter .15s,transform .15s}.timeline-bar:hover{filter:brightness(1.06);transform:scaleY(1.25)}.timeline-bar.bloom{top:15px;background:var(--bloom-color)}.timeline-bar.harvest{top:33px}.timeline-bar.harvest.apple{background:var(--harvest-apple)}.timeline-bar.harvest.peach{background:var(--harvest-peach)}.actual-marker{position:absolute;z-index:5;width:10px;height:10px;margin-left:-5px;border:2px solid var(--paper-2);border-radius:50%;cursor:help;box-shadow:0 0 0 1px rgba(0,0,0,.08)}.bloom-actual{top:14px;background:var(--plum)}.harvest-actual{top:32px;background:var(--gold-bright)}.today-line{position:absolute;z-index:4;top:0;bottom:0;width:2px;background:var(--orchard);opacity:.7}.today-line span{position:absolute;top:2px;left:5px;padding:2px 5px;border-radius:5px;background:var(--orchard);color:#fff;font-size:9px;font-style:normal;font-weight:700}.frost-band{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bloom) 12%,transparent) 0 5px,transparent 5px 10px);pointer-events:none}.frost-band.fall{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--warm) 11%,transparent) 0 5px,transparent 5px 10px)}.timeline-legend{display:flex;gap:18px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--line);font-size:10.5px;color:var(--text-secondary)}.timeline-legend span{display:flex;align-items:center;gap:6px}.timeline-legend i{width:15px;height:7px;border-radius:999px}.legend-bloom{background:var(--bloom-color)}.legend-apple{background:var(--harvest-apple)}.legend-peach{background:var(--harvest-peach)}.legend-actual{width:9px!important;height:9px!important;border-radius:50%!important;background:var(--gold-bright)}.frost-guide-note{margin:0 20px 16px;padding:9px 11px;border-radius:10px;background:var(--surface-soft);font-size:10.5px;color:var(--text-secondary)}.timeline-tooltip{position:fixed;z-index:500;left:0;top:0;width:max-content;max-width:260px;padding:10px 12px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#102219;color:#f1f7f3;box-shadow:0 14px 34px rgba(0,0,0,.28);pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .1s,transform .1s}.timeline-tooltip.show{opacity:1;transform:none}.timeline-tooltip b,.timeline-tooltip span{display:block}.timeline-tooltip b{font-size:12px}.timeline-tooltip span{margin-top:3px;color:#b9cdc0;font-size:10.5px;line-height:1.4}
.bloom-overlap-panel{margin-top:18px;padding:20px}.bloom-overlap-panel h3{margin:3px 0 5px;font-size:16px}.bloom-overlap-panel>p{margin:0 0 15px;color:var(--text-secondary);font-size:11px}.bloom-overlap-row{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:10px;margin:5px 0}.bloom-overlap-name{text-align:right;font-size:11px;color:var(--text-secondary)}.bloom-overlap-track{position:relative;height:17px;border-radius:6px;background:var(--surface-soft)}.bloom-peak-band,.bloom-overlap-bar{position:absolute}.bloom-peak-band{top:0;height:100%;background:color-mix(in srgb,var(--gold) 14%,transparent);border-radius:5px}.bloom-overlap-bar{top:3px;height:11px;border-radius:999px;background:var(--bloom-color)}.bloom-overlap-axis{display:grid;grid-template-columns:120px 1fr;gap:10px;margin-top:3px}.bloom-overlap-axis-track{position:relative;height:16px}.bloom-overlap-axis-track span{position:absolute;transform:translateX(-50%);font-size:9.5px;color:var(--text-tertiary);white-space:nowrap}
.score-workspace{margin-bottom:20px;overflow:hidden}.score-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 70%,var(--paper-2)),var(--paper-2))}.score-workspace-head p{margin:6px 0 0;color:var(--text-secondary);font-size:11.5px}.score-overall-pair{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.score-overall-pair span{height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);font-size:10.5px;color:var(--text-secondary)}.score-overall-pair b{font-size:13px;color:var(--text-primary)}.score-overall-pair i{width:8px;height:8px;border-radius:50%}.dot-a{background:var(--orchard)}.dot-b{background:var(--warm)}.score-workspace-grid{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(330px,1.05fr);gap:0}.score-radar-card,.score-ranking-card{padding:20px}.score-radar-card{border-right:1px solid var(--line)}.score-select-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.score-select-row label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:720}.score-select-row select{width:100%;height:36px;margin-top:5px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--text-primary);font-size:11.5px;text-transform:none;letter-spacing:0}.score-radar{width:100%;height:auto;max-height:350px;margin:4px auto}.radar-grid,.radar-axis{fill:none;stroke:var(--line);stroke-width:1}.radar-label{fill:var(--text-secondary);font-size:10px}.radar-shape{stroke-width:2;stroke-linejoin:round}.radar-a{fill:color-mix(in srgb,var(--orchard) 16%,transparent);stroke:var(--orchard)}.radar-b{fill:color-mix(in srgb,var(--warm) 13%,transparent);stroke:var(--warm)}.score-insight{padding:11px 13px;border-left:3px solid var(--gold);border-radius:0 9px 9px 0;background:var(--gold-soft);font-size:11px;line-height:1.5;color:var(--text-secondary)}.score-insight b{color:var(--text-primary)}.score-ranking-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.score-ranking-head h3{margin:3px 0 0;font-size:16px}.score-ranking-head small{font-size:10px;color:var(--text-tertiary)}.score-rank-list{display:grid;gap:9px}.score-rank-row{display:grid;grid-template-columns:22px minmax(90px,145px) 1fr 28px;align-items:center;gap:8px}.score-rank-number{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--surface-soft);font-family:var(--mono);font-size:9.5px;color:var(--text-tertiary)}.score-rank-name{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-rank-track{height:8px;border-radius:999px;background:var(--surface-soft);overflow:hidden}.score-rank-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--orchard),var(--accent-bright))}.score-rank-row>b{text-align:right;font-family:var(--mono);font-size:11px;color:var(--text-primary)}
@media(max-width:1050px){.season-control-actions{justify-content:flex-start}.score-workspace-grid{grid-template-columns:1fr}.score-radar-card{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:700px){.season-control-actions{width:100%}.season-control-actions .cal-year-select{width:100%}.timeline-toggle{flex:1}.timeline-zoom{width:100%}.timeline-zoom span{flex:1}.timeline-month-row,.timeline-row{grid-template-columns:138px minmax(590px,1fr)}.timeline-tree-spacer,.timeline-tree{padding-left:10px;padding-right:10px}.score-workspace-head{display:block}.score-overall-pair{justify-content:flex-start;margin-top:12px}.score-select-row{grid-template-columns:1fr}.score-radar-card,.score-ranking-card{padding:15px}.score-rank-row{grid-template-columns:22px minmax(82px,110px) 1fr 26px}.bloom-overlap-row,.bloom-overlap-axis{grid-template-columns:92px 1fr}.harvest-pill{margin-left:15px}.card-trajectory{margin-left:0;margin-right:0}}


/* MiniMax-inspired product layer: actionable dashboard + personal-fit explorer */
.smart-hero .hero-title{max-width:430px}
.dashboard-focus,.dashboard-insights{margin:0 0 28px}
.dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 2px 13px}
.dashboard-section-head h2{margin:4px 0 0;font-size:18px;letter-spacing:-.025em;color:var(--text-primary)}
.dashboard-section-head>p{max-width:430px;margin:0;color:var(--text-tertiary);font-size:11.5px;line-height:1.45;text-align:right}
.text-action{border:0;background:transparent;color:var(--orchard);font-size:12px;font-weight:700;cursor:pointer;padding:5px 0}
.text-action:hover{text-decoration:underline}
.dashboard-task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dashboard-task{position:relative;min-height:184px;display:flex;flex-direction:column;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);box-shadow:var(--shadow-card);overflow:hidden}
.dashboard-task:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--text-tertiary);opacity:.55}
.dashboard-task.urgent:before{background:var(--danger);opacity:1}.dashboard-task.warning:before{background:var(--gold);opacity:1}.dashboard-task.info:before{background:var(--info);opacity:1}
.dashboard-task-top{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.09em;color:var(--text-tertiary);font-weight:700}
.dashboard-task-dot{width:7px;height:7px;border-radius:50%;background:var(--text-tertiary)}
.dashboard-task.urgent .dashboard-task-dot{background:var(--danger)}.dashboard-task.warning .dashboard-task-dot{background:var(--gold)}.dashboard-task.info .dashboard-task-dot{background:var(--info)}
.dashboard-task h3{margin:15px 0 6px;font-size:15px;line-height:1.25;letter-spacing:-.015em;color:var(--text-primary)}
.dashboard-task p{margin:0 0 17px;font-size:11.5px;line-height:1.5;color:var(--text-secondary)}
.dashboard-task button{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--orchard);font-size:11.5px;font-weight:720;cursor:pointer}
.dashboard-task button span{transition:transform .16s}.dashboard-task button:hover span{transform:translateX(3px)}
.dashboard-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);box-shadow:var(--shadow-card);overflow:hidden}
.dashboard-insight{display:flex;gap:11px;min-height:110px;padding:17px;border-right:1px solid var(--line)}
.dashboard-insight:last-child{border-right:0}.insight-symbol{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--orchard);font-size:16px;font-weight:800}
.dashboard-insight b{font-size:12.5px;color:var(--text-primary)}.dashboard-insight p{margin:5px 0 0;color:var(--text-secondary);font-size:11px;line-height:1.48}

.fit-explorer{margin:0 0 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);box-shadow:var(--shadow-card);overflow:hidden}
.fit-explorer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:21px 22px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--gold-soft) 58%,var(--paper-2)),var(--paper-2))}
.fit-explorer-head h2{margin:4px 0 5px;font-size:18px;letter-spacing:-.025em;color:var(--text-primary)}
.fit-explorer-head p{margin:0;max-width:680px;font-size:11.5px;line-height:1.5;color:var(--text-secondary)}
.fit-mode-badge{height:28px;display:flex;align-items:center;padding:0 10px;border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));border-radius:999px;background:var(--paper-2);color:var(--gold);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:750;white-space:nowrap}
.fit-explorer-grid{display:grid;grid-template-columns:minmax(255px,.72fr) minmax(0,2fr)}
.fit-controls{padding:20px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface-soft) 48%,var(--paper-2))}
.fit-controls h3,.fit-results h3{margin:0;font-size:14.5px;color:var(--text-primary);letter-spacing:-.015em}
.fit-presets{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0 17px}
.fit-presets button{height:28px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--text-secondary);font-size:10.5px;font-weight:680;cursor:pointer}
.fit-presets button.active{background:var(--orchard);border-color:var(--orchard);color:#fff}.fit-presets button:hover:not(.active){border-color:var(--line-strong);color:var(--text-primary)}
.fit-sliders{display:grid;gap:13px}.fit-slider-row{display:grid;gap:7px}.fit-slider-row>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.fit-slider-row b{font-size:13.5px;color:var(--text-primary);font-weight:650}.fit-slider-row output{font-family:var(--mono);font-size:13px;color:var(--orchard);font-weight:750}
.fit-slider-row input{width:100%;height:4px;appearance:none;border-radius:999px;background:var(--line);outline:none;accent-color:var(--orchard)}
.fit-slider-row input::-webkit-slider-thumb{appearance:none;width:15px;height:15px;border:3px solid var(--paper-2);border-radius:50%;background:var(--orchard);box-shadow:0 0 0 1px var(--orchard),var(--shadow-xs);cursor:pointer}
.fit-slider-row input::-moz-range-thumb{width:12px;height:12px;border:3px solid var(--paper-2);border-radius:50%;background:var(--orchard);box-shadow:0 0 0 1px var(--orchard);cursor:pointer}
.fit-results{padding:20px;min-width:0}.fit-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:13px}.fit-results-head p{margin:4px 0 0;font-size:10.5px;color:var(--text-tertiary)}
.fit-selection-count{font-family:var(--mono);font-size:10px;color:var(--text-tertiary);white-space:nowrap}
.fit-ranking{display:grid;gap:6px;margin-bottom:18px}
.fit-rank-row{display:grid;grid-template-columns:24px minmax(120px,170px) 1fr 32px 56px;align-items:center;gap:9px;width:100%;min-height:38px;padding:5px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}
.fit-rank-row:hover{background:var(--surface-soft)}.fit-rank-row.selected{border-color:color-mix(in srgb,var(--orchard) 28%,var(--line));background:color-mix(in srgb,var(--accent-soft) 42%,var(--paper-2))}
.fit-rank-order{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--surface-soft);font-family:var(--mono);font-size:9.5px;color:var(--text-tertiary)}
.fit-rank-copy{min-width:0}.fit-rank-copy b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fit-rank-copy small{display:block;margin-top:2px;font-size:9.5px;color:var(--text-tertiary)}
.fit-rank-bar{height:7px;border-radius:999px;background:var(--surface-soft);overflow:hidden}.fit-rank-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--orchard))}
.fit-rank-row>strong{font-family:var(--mono);font-size:11px;text-align:right}.fit-rank-row>em{font-style:normal;font-size:9.5px;text-align:right;color:var(--orchard);font-weight:700}
.fit-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.fit-compare-card{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}
.fit-compare-card header{position:relative;display:flex;align-items:flex-start;gap:9px;margin-bottom:12px}.fit-compare-card header>div:first-child{min-width:0;flex:1}
.fit-compare-card header span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:700}.fit-compare-card h4{margin:3px 0 0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}
.fit-score{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--paper-2);color:var(--orchard);font-family:var(--mono);font-size:13.5px;font-weight:800;line-height:1}.fit-score small{display:block;font-size:5.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}
.fit-compare-card header button{width:20px;height:20px;border:0;border-radius:6px;background:transparent;color:var(--text-tertiary);font-size:16px;cursor:pointer}.fit-compare-card header button:hover{background:var(--paper-2);color:var(--text-primary)}
.fit-axis-list{display:grid;gap:7px}.fit-axis{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:7px}.fit-axis span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary)}.fit-axis b{font-family:var(--mono);font-size:9.5px;text-align:right;color:var(--text-primary)}
.fit-axis i{grid-column:1/-1;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.fit-axis u{display:block;height:100%;border-radius:inherit;background:var(--orchard);text-decoration:none}

@media(max-width:1180px){
  .dashboard-insight-grid{grid-template-columns:repeat(2,1fr)}.dashboard-insight:nth-child(2){border-right:0}.dashboard-insight:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .fit-explorer-grid{grid-template-columns:230px minmax(0,1fr)}
}
@media(max-width:900px){
  .dashboard-task-grid{grid-template-columns:1fr}.dashboard-task{min-height:0}
  .fit-explorer-grid{grid-template-columns:1fr}.fit-controls{border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:700px){
  .dashboard-section-head{display:block}.dashboard-section-head>p{margin-top:7px;text-align:left}
  .dashboard-insight-grid{grid-template-columns:1fr}.dashboard-insight{border-right:0!important;border-bottom:1px solid var(--line)}.dashboard-insight:last-child{border-bottom:0}
  .fit-explorer-head{display:block}.fit-mode-badge{width:max-content;margin-top:12px}.fit-results{padding:15px}.fit-controls{padding:15px}
  .fit-rank-row{grid-template-columns:22px minmax(90px,1fr) 52px 28px}.fit-rank-bar{display:none}.fit-rank-row>em{display:none}
  .fit-comparison{grid-template-columns:1fr}.fit-results-head{align-items:flex-start;flex-direction:column}
}

/* ═══════════════════════════════════════════════════════
   v4 · GLM-informed workflow upgrades
   persistent shortlist · inline logs · pressure + coverage
   ═══════════════════════════════════════════════════════ */
.pinned-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,2fr) auto;gap:16px;align-items:center;padding:16px 18px;margin:0 0 22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--paper-2),var(--surface-soft));box-shadow:var(--shadow-card)}
.pinned-copy{display:flex;flex-direction:column;gap:2px}.pinned-copy b{font-size:14.5px}.pinned-copy span{font-size:13px;color:var(--text-dim)}
.pinned-chips{display:flex;gap:7px;flex-wrap:wrap}.pinned-chip{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);padding:7px 10px;border-radius:999px;font-size:13px;font-weight:650}.pinned-chip:hover{border-color:var(--gold);transform:translateY(-1px)}.pinned-chip span{color:var(--text-dim);margin-left:4px}
.pinned-actions{display:flex;gap:7px;justify-content:flex-end}.pinned-actions button{padding:8px 11px;border:1px solid var(--line);background:var(--surface-raised);border-radius:9px;color:var(--text);font-size:13px;font-weight:700}.pinned-actions button.primary{background:var(--orchard);border-color:var(--orchard);color:#fff}
.disease-shields{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}.disease-shield{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:7px;font-size:11px;font-weight:750;letter-spacing:.015em;border:1px solid transparent}.disease-shield i{width:6px;height:6px;border-radius:50%}.disease-shield b{font-variant-numeric:tabular-nums}.disease-shield.good{background:color-mix(in srgb,var(--sage) 14%,transparent);color:var(--forest-deep);border-color:color-mix(in srgb,var(--sage) 35%,transparent)}.disease-shield.good i{background:var(--sage)}.disease-shield.watch{background:color-mix(in srgb,var(--gold) 14%,transparent);color:var(--gold);border-color:color-mix(in srgb,var(--gold) 35%,transparent)}.disease-shield.watch i{background:var(--gold)}.disease-shield.risk{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.disease-shield.risk i{background:var(--danger)}
.pin-btn{width:34px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text-dim);font-size:18px;line-height:1}.pin-btn:hover,.pin-btn.active{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 15%,var(--paper-2));color:var(--gold)}
.inline-log-panel{max-height:0;overflow:hidden;margin:0;border-top:0 solid var(--line);background:var(--surface-soft);transition:max-height .32s ease,padding .32s ease,border-width .32s ease;padding:0 18px}.inline-log-panel.open{max-height:520px;padding:16px 18px 18px;border-top-width:1px}.inline-log-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.inline-log-head>div{display:flex;flex-direction:column}.inline-log-head span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);font-weight:800}.inline-log-head b{font-size:15px}.inline-log-head>button{width:28px;height:28px;border:1px solid var(--line);background:var(--surface-raised);border-radius:8px;color:var(--text-dim);font-size:18px}.inline-log-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.inline-log-grid label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-weight:750}.inline-log-grid input,.inline-log-grid select{display:block;width:100%;margin-top:4px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text);font:inherit;font-size:13.5px}.inline-log-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.inline-log-actions button{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text);font-size:13px;font-weight:750}.inline-log-actions button.primary{background:var(--orchard);border-color:var(--orchard);color:#fff}.inline-log-status{min-height:16px;margin-top:6px;text-align:right;font-size:12px;color:var(--sage)}
.timeline-quicklog{margin:14px 18px 0;padding:15px;border:1px solid color-mix(in srgb,var(--sage) 45%,var(--line));border-radius:12px;background:linear-gradient(135deg,var(--surface-soft),var(--paper-2));box-shadow:var(--shadow-card)}
.harvest-pressure{margin:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:16px}.harvest-pressure-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:13px}.harvest-pressure-head h3{font-size:15px;margin:2px 0}.harvest-pressure-head p{font-size:13px;color:var(--text-dim)}.pressure-summary{text-align:right;display:flex;flex-direction:column}.pressure-summary b{font-size:19px;color:var(--orchard)}.pressure-summary span{font-size:12px;color:var(--text-dim)}.pressure-chart{height:72px;display:grid;grid-template-columns:repeat(32,1fr);gap:3px;align-items:end;padding:8px 8px 0;border-bottom:1px solid var(--line)}.pressure-bar{min-height:3px;border:0;border-radius:3px 3px 0 0;background:var(--line);opacity:.65}.pressure-bar.active{background:var(--sage);opacity:.8}.pressure-bar.warm{background:var(--gold);opacity:.88}.pressure-bar.hot{background:var(--danger);opacity:.88}.pressure-bar:hover{filter:brightness(1.08);transform:scaleY(1.07);transform-origin:bottom}.pressure-axis{display:flex;justify-content:space-between;padding:5px 7px 0;font-size:11px;color:var(--text-dim)}
.fit-recommendation{display:grid;grid-template-columns:1fr auto;gap:20px;padding:19px 20px;margin-bottom:16px;border-radius:14px;background:linear-gradient(135deg,var(--orchard),var(--forest-mid));color:#fff;overflow:hidden;position:relative}.fit-recommendation:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-65px;top:-80px;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 35%,transparent),transparent 70%)}.fit-recommendation>div{position:relative;z-index:1}.fit-recommendation .score-panel-kicker{color:rgba(255,255,255,.68)}.fit-recommendation h3{font-size:20px;margin:4px 0 6px}.fit-recommendation h3 em{font-style:normal;font-size:12px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.13);color:var(--gold-bright);vertical-align:middle}.fit-recommendation p{max-width:620px;color:rgba(255,255,255,.8);font-size:13.5px}.fit-recommendation-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:104px}.fit-recommendation-score b{font-size:31px;line-height:1}.fit-recommendation-score span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.65);margin:3px 0 8px}.fit-recommendation-score button{padding:7px 11px;border-radius:8px;background:var(--gold-bright);color:#1a201a;font-size:12px;font-weight:800}
.fit-coverage{margin:16px 0;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.fit-coverage-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:10px}.fit-coverage-head h3{font-size:15px;margin-top:2px}.fit-coverage-head>span{font-size:12px;color:var(--text-dim)}.coverage-cells{display:grid;grid-template-columns:repeat(22,1fr);gap:3px}.coverage-cell{height:24px;border-radius:4px;background:var(--line);display:grid;place-items:center;font-size:10px;font-weight:800;color:var(--text-dim)}.coverage-cell.c1{background:color-mix(in srgb,var(--sage) 35%,var(--paper-2));color:var(--forest-deep)}.coverage-cell.c2{background:color-mix(in srgb,var(--gold) 45%,var(--paper-2));color:var(--text)}.coverage-cell.c3{background:var(--gold);color:#1b1b16}.coverage-cell.c4{background:var(--danger);color:#fff}.coverage-axis{display:flex;justify-content:space-between;margin-top:5px;font-size:11px;color:var(--text-dim)}.fit-coverage p{font-size:12px;color:var(--text-dim);margin-top:8px}
.fit-pinned{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 15px;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}.fit-pinned h3{font-size:14.5px;margin-top:2px}.fit-pinned>div:last-child{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.fit-pinned button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);font-size:12px;font-weight:700}.fit-pinned button span{color:var(--text-dim);margin-left:3px}.fit-pinned button.compare-all{background:var(--orchard);border-color:var(--orchard);color:#fff}.fit-pinned.empty{justify-content:flex-start;flex-direction:column;align-items:flex-start;color:var(--text-dim);font-size:13px}.fit-pinned.empty b{color:var(--text)}
[data-theme="dark"] .disease-shield.good{color:var(--sage-light)}
[data-theme="dark"] .pinned-actions button.primary,[data-theme="dark"] .inline-log-actions button.primary,[data-theme="dark"] .fit-pinned button.compare-all{background:var(--sage);border-color:var(--sage);color:#111713}
@media(max-width:900px){.pinned-bar{grid-template-columns:1fr}.pinned-actions{justify-content:flex-start}.inline-log-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fit-recommendation{grid-template-columns:1fr}.fit-recommendation-score{align-items:flex-start}.fit-pinned{align-items:flex-start;flex-direction:column}.fit-pinned>div:last-child{justify-content:flex-start}}
@media(max-width:620px){.pinned-bar{padding:14px}.pinned-chips{max-height:92px;overflow:auto}.inline-log-grid{grid-template-columns:1fr 1fr}.harvest-pressure{margin:12px;padding:12px}.harvest-pressure-head{flex-direction:column}.pressure-summary{text-align:left}.pressure-chart{gap:2px}.fit-recommendation{padding:16px}.coverage-cells{gap:2px}.coverage-cell{height:21px}.card-actions{flex-wrap:wrap}}

/* ══════════════════════════════════════════════════════════
   v5, Growth planner + readable score radar
   ══════════════════════════════════════════════════════════ */
.bench-open-planner{margin-top:10px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);color:var(--orchard);font-weight:720;font-size:11px;cursor:pointer}.bench-open-planner:hover{background:var(--accent-soft);border-color:var(--orchard)}
.growth-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 26px;margin-bottom:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-soft) 72%,var(--paper-2)),var(--paper-2));box-shadow:var(--shadow-card)}.growth-hero h2{margin:4px 0 7px;font-size:23px;letter-spacing:-.025em}.growth-hero p{max-width:700px;margin:0;color:var(--text-secondary);font-size:13px;line-height:1.65}.growth-hero-stat{min-width:116px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2);text-align:center}.growth-hero-stat b{display:block;font-family:var(--mono);font-size:25px;line-height:1;color:var(--orchard)}.growth-hero-stat span{display:block;margin-top:5px;color:var(--text-tertiary);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.growth-tree-selector{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}.growth-tree-chip{height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);color:var(--text-secondary);font-size:11.5px;font-weight:700;cursor:pointer}.growth-tree-chip:hover{border-color:var(--orchard);color:var(--text-primary)}.growth-tree-chip.active{background:var(--orchard);border-color:var(--orchard);color:var(--paper-2)}
.growth-planner-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);gap:16px;margin-bottom:16px}.growth-chart-card,.growth-summary-card,.growth-table-card{border:1px solid var(--line);border-radius:17px;background:var(--paper-2);box-shadow:var(--shadow-card)}.growth-chart-card{padding:20px 20px 12px;overflow:hidden}.growth-chart-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.growth-chart-card header span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:720}.growth-chart-card h3{margin:3px 0 0;font-size:19px}.growth-legend-inline{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.growth-legend-inline span{display:flex;align-items:center;gap:6px;font-size:10.5px;text-transform:none;letter-spacing:0;color:var(--text-secondary)}.growth-legend-inline i{width:18px;height:3px;border-radius:999px}.growth-legend-inline i.height{background:var(--orchard)}.growth-legend-inline i.spread{background:var(--warm)}.growth-chart{display:block;width:100%;height:auto;min-height:310px}.growth-grid-line{stroke:var(--line);stroke-width:1}.growth-y-label,.growth-x-label{fill:var(--text-tertiary);font-size:12px;font-family:var(--mono)}.growth-x-tick{stroke:var(--line-strong);stroke-width:1}.growth-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.growth-height-line{stroke:var(--orchard)}.growth-spread-line{stroke:var(--warm)}.growth-point{stroke:var(--paper-2);stroke-width:3}.growth-height-point{fill:var(--orchard)}.growth-spread-point{fill:var(--warm)}
.growth-summary-card{padding:22px}.growth-summary-card h3{margin:4px 0 14px;font-size:20px}.growth-summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.growth-summary-metrics div{padding:12px;border-radius:11px;background:var(--surface-soft);border:1px solid var(--line)}.growth-summary-metrics b{display:block;font-family:var(--mono);font-size:17px;color:var(--text-primary)}.growth-summary-metrics span{display:block;margin-top:3px;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.growth-summary-card p{margin:16px 0 0;padding-top:15px;border-top:1px solid var(--line);font-size:12px;line-height:1.65;color:var(--text-secondary)}
.growth-table-card{padding:20px}.growth-table-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:13px}.growth-table-head h3{margin:3px 0 0;font-size:18px}.growth-table-head small{font-size:10px;color:var(--text-tertiary)}.growth-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.growth-plan-table{width:100%;min-width:920px;border-collapse:collapse}.growth-plan-table th{padding:10px 12px;background:var(--surface-soft);border-bottom:1px solid var(--line);text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.growth-plan-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:11px;line-height:1.55;color:var(--text-secondary)}.growth-plan-table tbody tr:last-child td{border-bottom:0}.growth-plan-table td:first-child b{display:block;color:var(--text-primary);font-size:12px}.growth-plan-table td:first-child span{display:block;margin-top:2px;color:var(--text-tertiary);font-size:10px}.growth-plan-table td:nth-child(2),.growth-plan-table td:nth-child(3){font-family:var(--mono);white-space:nowrap}.growth-action-tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--accent-soft);color:var(--orchard);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.growth-method-note{margin:12px 2px 0;color:var(--text-tertiary);font-size:10.5px;line-height:1.6}

/* The old radar labels were 8px and almost unreadable. Keep the wheel, but make it a supporting visual. */
.score-workspace-head p{font-size:13px;line-height:1.55}.score-overall-pair span{font-size:12px}.score-overall-pair b{font-size:13.5px}.score-select-row label{font-size:11.5px}.score-select-row select{height:40px;font-size:13.5px}.score-radar{max-height:430px;margin:6px auto 2px;overflow:visible}.radar-label{fill:var(--text-primary);font-size:13.5px;font-weight:800;stroke:none}.radar-grid,.radar-axis{stroke:var(--line-strong)}.radar-point{stroke:var(--paper-2);stroke-width:2.5}.radar-point-a{fill:var(--orchard)}.radar-point-b{fill:var(--warm)}.radar-key-head,.radar-key-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(58px,auto) minmax(58px,auto);gap:10px;align-items:center}.radar-key-head{padding:0 10px 7px;color:var(--text-tertiary);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.radar-key-head b{text-align:center;color:var(--text-secondary);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radar-axis-key{display:grid;gap:5px;margin:0 0 13px}.radar-key-row{min-height:34px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.radar-key-row span{font-size:12px;font-weight:700;color:var(--text-secondary)}.radar-key-row b{display:grid;place-items:center;min-width:36px;height:23px;border-radius:7px;font-family:var(--mono);font-size:12px}.radar-key-row b.a{background:color-mix(in srgb,var(--orchard) 15%,var(--paper-2));color:var(--orchard)}.radar-key-row b.b{background:color-mix(in srgb,var(--warm) 16%,var(--paper-2));color:var(--warm)}.score-insight{font-size:12px}.score-rank-name{font-size:12.5px}.score-rank-row>b{font-size:12.5px}.score-rank-number{font-size:10.5px}.score-ranking-head small{font-size:11px}

@media(max-width:900px){.growth-planner-grid{grid-template-columns:1fr}.growth-summary-card{display:grid;grid-template-columns:minmax(160px,.4fr) 1fr;column-gap:20px}.growth-summary-card>span,.growth-summary-card>h3{grid-column:1}.growth-summary-metrics{grid-column:2;grid-row:1/4}.growth-summary-card p{grid-column:1/-1}}
@media(max-width:700px){.growth-hero{display:block;padding:19px}.growth-hero-stat{display:inline-block;margin-top:14px}.growth-tree-selector{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.growth-tree-chip{flex:0 0 auto}.growth-chart-card{padding:15px 8px 8px}.growth-chart-card header{display:block;padding:0 8px}.growth-legend-inline{justify-content:flex-start;margin-top:9px}.growth-chart{min-width:640px}.growth-chart-card{overflow-x:auto}.growth-summary-card{display:block;padding:17px}.growth-summary-metrics{grid-template-columns:1fr 1fr}.growth-table-card{padding:15px}.radar-label{font-size:13px}.score-radar{min-width:430px}.score-radar-card{overflow-x:auto}.radar-key-head,.radar-key-row{min-width:390px}.score-workspace-grid{overflow:hidden}}


/* VERSION 6, Nemotron-informed exact comparison and pressure detail */
.score-select-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.exact-compare{margin:2px 0 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);overflow:hidden}
.exact-compare-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:12px 13px 10px;border-bottom:1px solid var(--line);background:var(--paper-2)}
.exact-compare-head h3{margin:2px 0 0;font-size:14.5px}
.exact-compare-head small{font-size:10.5px;color:var(--text-tertiary);text-align:right}
.exact-compare-scroll{overflow-x:auto}
.exact-compare table{width:100%;min-width:520px;border-collapse:collapse;font-size:11px}
.exact-compare th,.exact-compare td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.exact-compare tbody tr:last-child th,.exact-compare tbody tr:last-child td{border-bottom:0}
.exact-compare thead th{background:color-mix(in srgb,var(--surface-soft) 68%,var(--paper-2));font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}
.exact-compare thead th:first-child,.exact-compare tbody th{text-align:left}
.exact-compare tbody th{font-size:11.5px;color:var(--text-secondary)}
.score-value{display:inline-grid;place-items:center;min-width:36px;height:25px;border-radius:7px;font-family:var(--mono);font-weight:800}
.score-value.score-a{background:color-mix(in srgb,var(--orchard) 15%,var(--paper-2));color:var(--orchard)}
.score-value.score-b{background:color-mix(in srgb,var(--warm) 16%,var(--paper-2));color:var(--warm)}
.score-difference{font-family:var(--mono);font-weight:800}
.score-edge{font-size:10px;font-weight:750}
.score-difference.edge-a,.score-edge.edge-a{color:var(--orchard)}
.score-difference.edge-b,.score-edge.edge-b{color:var(--warm)}
.score-difference.even,.score-edge.even{color:var(--text-tertiary)}
.pressure-summary-grid{display:grid;grid-template-columns:repeat(3,auto);gap:9px;text-align:right}
.pressure-summary-grid span{min-width:72px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2)}
.pressure-summary-grid b,.pressure-summary-grid small{display:block}
.pressure-summary-grid b{font-size:16px;color:var(--orchard);line-height:1.1}
.pressure-summary-grid small{margin-top:3px;font-size:9.5px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.pressure-bar{cursor:pointer}
.pressure-bar:focus-visible{outline:2px solid var(--orchard);outline-offset:2px}
.pressure-week-detail{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:baseline;margin-top:12px;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:9px;background:var(--paper-2);color:var(--text-secondary)}
.pressure-week-detail span{grid-column:1/-1;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:750}
.pressure-week-detail b{font-size:12px;color:var(--text-primary)}
.pressure-week-detail p{margin:0;font-size:11px;color:var(--text-secondary)}
.pressure-week-detail.selected{border-style:solid;border-color:color-mix(in srgb,var(--orchard) 38%,var(--line));background:color-mix(in srgb,var(--accent-soft) 45%,var(--paper-2))}
@media(max-width:700px){.score-select-row{grid-template-columns:1fr}.pressure-summary-grid{width:100%;grid-template-columns:repeat(3,1fr);text-align:left}.pressure-summary-grid span{min-width:0}.pressure-week-detail{grid-template-columns:1fr}.exact-compare-head{align-items:flex-start}.exact-compare-head small{max-width:150px}}

/* v7, mature usable-crop assumptions */
.yield-assumption-card{margin:0 0 26px;background:var(--paper-2);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-card);overflow:hidden}
.yield-assumption-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:24px 26px;background:linear-gradient(135deg,color-mix(in srgb,var(--orchard) 10%,var(--paper-2)),var(--paper-2))}
.yield-assumption-head h2{margin:4px 0 8px;font-size:23px;letter-spacing:-.02em}.yield-assumption-head p{margin:0;max-width:760px;color:var(--ink-soft);font-size:14.5px;line-height:1.55}
.yield-assumption-total{min-width:210px;padding:16px 18px;border-radius:14px;background:var(--paper-3);border:1px solid var(--border);text-align:right}.yield-assumption-total b{display:block;font-size:28px;line-height:1;color:var(--orchard)}.yield-assumption-total span,.yield-assumption-total small{display:block}.yield-assumption-total span{margin-top:5px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.yield-assumption-total small{margin-top:4px;color:var(--ink-faint)}
.yield-assumption-table-wrap{overflow-x:auto}.yield-assumption-table{width:100%;border-collapse:collapse;font-size:13.5px}.yield-assumption-table th,.yield-assumption-table td{padding:11px 14px;border-top:1px solid var(--border);text-align:left;white-space:nowrap}.yield-assumption-table th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);background:var(--paper-3)}.yield-assumption-table td b{display:block}.yield-assumption-table td span{display:block;color:var(--ink-faint);font-size:12px}
.yield-assumption-note{margin:0;padding:12px 18px;border-top:1px solid var(--border);background:var(--paper-3);color:var(--ink-faint);font-size:13px;line-height:1.5}
@media(max-width:760px){.yield-assumption-head{grid-template-columns:1fr;padding:20px}.yield-assumption-total{text-align:left;min-width:0}.yield-assumption-table th,.yield-assumption-table td{padding:10px 12px}}


/* ══════════════════════════════════════════════════════════
   v9 PWA, install, offline status, field actions, backups
   ══════════════════════════════════════════════════════════ */
.pwa-status-pill,.pwa-install-button{height:38px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);color:var(--text-secondary);padding:0 11px;font-size:12px;font-weight:750;white-space:nowrap;transition:.16s ease}
.pwa-status-pill:hover,.pwa-install-button:hover{border-color:var(--sage);background:var(--surface-raised);color:var(--text-primary)}
.pwa-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);box-shadow:0 0 0 3px color-mix(in srgb,var(--text-tertiary) 12%,transparent)}
.pwa-status-dot[data-state="installed"],.pwa-status-dot[data-state="ready"],.pwa-status-dot[data-state="offline-ready"]{background:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 15%,transparent)}
.pwa-status-dot[data-state="offline"]{background:var(--warm);box-shadow:0 0 0 3px color-mix(in srgb,var(--warm) 14%,transparent)}
.pwa-install-button{background:color-mix(in srgb,var(--orchard) 10%,var(--surface-soft));color:var(--orchard);border-color:color-mix(in srgb,var(--orchard) 28%,var(--line))}
.pwa-install-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.pwa-update-banner{position:fixed;left:50%;bottom:calc(var(--nav-zone) + 8px);z-index:160;transform:translate(-50%,calc(100% + 50px));opacity:0;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;width:min(620px,calc(100vw - 28px));padding:13px 14px 13px 17px;border:1px solid color-mix(in srgb,var(--sage) 42%,var(--line));border-radius:14px;background:var(--surface-raised);box-shadow:var(--shadow-lg);transition:.25s ease;pointer-events:none}
.pwa-update-banner.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}.pwa-update-banner div{display:flex;flex-direction:column}.pwa-update-banner b{font-size:13.5px}.pwa-update-banner span{font-size:11px;color:var(--text-tertiary)}.pwa-update-banner>button{padding:8px 11px;border-radius:9px;background:var(--orchard);color:#fff;font-size:12px;font-weight:800}.pwa-update-banner .pwa-update-dismiss{width:29px;height:29px;padding:0;background:var(--surface-soft);color:var(--text-secondary);border:1px solid var(--line);font-size:19px}
.field-actions{position:fixed;right:18px;bottom:calc(var(--nav-zone) + 8px);z-index:130;display:none;flex-direction:column;align-items:flex-end;gap:10px}.field-action-fab{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,var(--orchard),var(--forest-mid));color:#fff;box-shadow:0 12px 32px rgba(20,48,28,.28);transition:.2s ease}.field-action-fab svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2}.field-actions.open .field-action-fab{transform:rotate(45deg)}
.field-action-menu{display:grid;gap:7px;width:min(310px,calc(100vw - 36px));padding:9px;border:1px solid var(--line);border-radius:15px;background:var(--surface-raised);box-shadow:var(--shadow-lg);transform:translateY(10px) scale(.97);opacity:0;pointer-events:none;transform-origin:bottom right;transition:.18s ease}.field-actions.open .field-action-menu{transform:none;opacity:1;pointer-events:auto}.field-action-menu button{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:9px;border-radius:10px;text-align:left;color:var(--text-primary)}.field-action-menu button:hover{background:var(--surface-soft)}.field-action-menu svg{width:20px;height:20px;justify-self:center;fill:none;stroke:var(--orchard);stroke-width:1.8}.field-action-menu span{display:flex;flex-direction:column}.field-action-menu b{font-size:13px}.field-action-menu small{font-size:10.5px;color:var(--text-tertiary);margin-top:1px}
.pwa-panel-modal,.backup-panel-modal{max-width:780px}.field-picker-modal{max-width:480px}.pwa-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:13px}.pwa-modal-head>div{display:flex;flex-direction:column}.pwa-modal-head span,.pwa-section-head span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--sage)}.pwa-modal-head h3{margin:2px 0 0}.pwa-modal-head>button{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);font-size:20px;color:var(--text-secondary)}.pwa-modal-copy{margin:0 0 15px;color:var(--text-secondary);font-size:12px;line-height:1.5}
.pwa-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pwa-status-grid article{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);display:flex;flex-direction:column}.pwa-status-grid article>span{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:800}.pwa-status-grid article>b{margin-top:4px;font-size:13.5px}.pwa-status-grid article>small{margin-top:3px;font-size:10.5px;line-height:1.45;color:var(--text-tertiary)}
.pwa-install-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:13px 0;padding:14px 15px;border:1px solid color-mix(in srgb,var(--sage) 35%,var(--line));border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--sage) 8%,var(--surface-soft)),var(--surface-soft))}.pwa-install-card span{font-size:10px;color:var(--sage);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.pwa-install-card h4{margin:3px 0 0;font-size:13.5px}.pwa-install-card p{margin:0;max-width:340px;font-size:11px;color:var(--text-secondary)}.pwa-panel-primary{padding:9px 13px;border-radius:9px;background:var(--orchard);color:#fff;font-size:12px;font-weight:800}.pwa-good{color:var(--sage)!important}
.pwa-diagnostics{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.pwa-section-head{margin-bottom:9px}.pwa-section-head h4{margin:2px 0 0;font-size:13.5px}.pwa-check{display:grid;grid-template-columns:23px 1fr;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:11px;color:var(--text-secondary)}.pwa-check:first-of-type{border-top:0}.pwa-check i{width:20px;height:20px;display:grid;place-items:center;border-radius:7px;font-style:normal;font-weight:900}.pwa-check.pass i{background:color-mix(in srgb,var(--sage) 15%,var(--surface-raised));color:var(--sage)}.pwa-check.fail i{background:color-mix(in srgb,var(--danger) 13%,var(--surface-raised));color:var(--danger)}
.pwa-panel-actions{display:flex;gap:8px;margin-top:13px}.pwa-panel-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text-primary);font-size:11px;font-weight:800}.pwa-panel-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}.pwa-loading{padding:30px;text-align:center;color:var(--text-tertiary);font-size:12px}
.backup-summary{display:grid;grid-template-columns:46px 1fr;gap:13px;align-items:center;padding:15px;border-radius:13px;border:1px solid var(--line);background:var(--surface-soft)}.backup-summary.needs-backup{border-color:color-mix(in srgb,var(--warm) 38%,var(--line));background:color-mix(in srgb,var(--warm) 7%,var(--surface-soft))}.backup-summary>i{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--surface-raised);color:var(--orchard)}.backup-summary svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.backup-summary>div{display:flex;flex-direction:column}.backup-summary span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:800}.backup-summary b{font-size:13.5px;margin-top:2px}.backup-summary small{font-size:10.5px;color:var(--text-tertiary);margin-top:2px}.backup-option-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.backup-option{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);text-align:left;color:var(--text-primary)}.backup-option:hover{border-color:var(--sage);background:var(--surface-raised)}.backup-option.primary{border-color:color-mix(in srgb,var(--orchard) 35%,var(--line));background:color-mix(in srgb,var(--orchard) 7%,var(--surface-soft))}.backup-option svg{width:21px;height:21px;justify-self:center;fill:none;stroke:var(--orchard);stroke-width:1.8}.backup-option span{display:flex;flex-direction:column}.backup-option b{font-size:12px}.backup-option small{margin-top:2px;color:var(--text-tertiary);font-size:10px;line-height:1.4}.backup-warning{margin:12px 2px 0;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,var(--gold) 9%,var(--surface-soft));font-size:10.5px;line-height:1.5;color:var(--text-secondary)}
@media(max-width:1000px){.pwa-status-pill span:last-child{display:none}.pwa-status-pill{width:38px;justify-content:center;padding:0}.pwa-install-button span{display:none}.pwa-install-button{width:38px;justify-content:center;padding:0}}
@media(max-width:760px){.field-actions{display:flex}.pwa-update-banner{bottom:calc(var(--nav-zone) + 8px);grid-template-columns:1fr auto}.pwa-update-banner .pwa-update-dismiss{position:absolute;right:5px;top:5px;width:24px;height:24px}.pwa-update-banner div{padding-right:16px}.pwa-status-grid,.backup-option-grid{grid-template-columns:1fr}.pwa-install-card{align-items:flex-start;flex-direction:column}.pwa-panel-actions{flex-direction:column}.topbar-actions .pwa-status-pill{display:none}}
@media(min-width:761px){.field-actions{display:none!important}}
@media(display-mode:standalone){body{overscroll-behavior-y:none}.topbar{padding-top:max(var(--topbar-pad,0px),env(safe-area-inset-top))}}


/* ── v10 legibility, installed-state, and mobile horizontal scrolling fixes ── */
.pwa-install-button[hidden],html[data-pwa-installed="true"] .pwa-install-button{display:none!important}

.workspace,.content-area,.section,.timeline-card,.score-workspace,.score-workspace-grid,.score-radar-card,.score-ranking-card,.fit-explorer,.fit-explorer-grid,.fit-results,.growth-chart-card,.growth-table-card{min-width:0;max-width:100%}

.radar-axis-label rect{fill:var(--surface-raised);stroke:var(--line-strong);stroke-width:1;vector-effect:non-scaling-stroke}
.radar-axis-label text{fill:var(--text-primary);font-family:var(--body);font-size:13.5px;font-weight:780;stroke:none;paint-order:normal;letter-spacing:0}
.score-radar-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.score-radar-scroll:focus-visible,.timeline-scroll:focus-visible{outline:2px solid var(--orchard);outline-offset:-2px;border-radius:10px}

.timeline-scroll,.cal-wrap,.yield-wrap,.tbl-wrap,.bench-section,.growth-chart-card,.growth-tree-selector,.growth-table-wrap,.exact-compare-scroll,.yield-assumption-table-wrap,.filter-group{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.timeline-scroll{width:100%;overflow-x:scroll!important;overflow-y:hidden;scroll-snap-type:none}

.timeline-scroll::-webkit-scrollbar,.cal-wrap::-webkit-scrollbar,.yield-wrap::-webkit-scrollbar,.tbl-wrap::-webkit-scrollbar,.bench-section::-webkit-scrollbar,.growth-chart-card::-webkit-scrollbar,.growth-tree-selector::-webkit-scrollbar,.growth-table-wrap::-webkit-scrollbar,.score-radar-scroll::-webkit-scrollbar,.exact-compare-scroll::-webkit-scrollbar,.yield-assumption-table-wrap::-webkit-scrollbar,.harvest-pressure::-webkit-scrollbar{height:8px}
.timeline-scroll::-webkit-scrollbar-thumb,.cal-wrap::-webkit-scrollbar-thumb,.yield-wrap::-webkit-scrollbar-thumb,.tbl-wrap::-webkit-scrollbar-thumb,.bench-section::-webkit-scrollbar-thumb,.growth-chart-card::-webkit-scrollbar-thumb,.growth-tree-selector::-webkit-scrollbar-thumb,.growth-table-wrap::-webkit-scrollbar-thumb,.score-radar-scroll::-webkit-scrollbar-thumb,.exact-compare-scroll::-webkit-scrollbar-thumb,.yield-assumption-table-wrap::-webkit-scrollbar-thumb,.harvest-pressure::-webkit-scrollbar-thumb{background:var(--line-strong);border:2px solid transparent;border-radius:999px;background-clip:padding-box}
.timeline-canvas{width:max-content;max-width:none}
.timeline-bar,.actual-marker,.pressure-bar{touch-action:pan-x pan-y}
.horizontal-scroll-hint{display:none;padding:8px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent-soft) 45%,var(--paper-2));color:var(--text-secondary);font-size:11px;font-weight:700;text-align:right}
.horizontal-scroll-hint span{display:inline-block;margin-left:4px;color:var(--orchard);font-size:14.5px}

@media(max-width:700px){
  .horizontal-scroll-hint{display:block}
  .timeline-card{overflow:hidden;width:100%}
  .timeline-scroll{display:block;max-width:100%;cursor:grab}
  .timeline-scroll:active{cursor:grabbing}
  .timeline-canvas{min-width:760px!important}
  .score-radar-card{overflow:visible!important}
  .score-radar-scroll{margin:4px -4px 8px;padding:0 4px}
  .score-radar{min-width:470px!important;max-height:none}
  .radar-axis-label text{font-size:13.5px}
  .season-control-actions{min-width:0}
  .pressure-chart{min-width:520px}
  .harvest-pressure{overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
  .harvest-pressure-head,.pressure-week-detail{min-width:0}
}

/* ═══════════════════════════════════════════════════════════════════════
   GARDEN BEDS, square-foot designer
   ═══════════════════════════════════════════════════════════════════════ */
.bed-intro{font-size:13.5px;line-height:1.6;color:var(--text-secondary);background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md);padding:11px 13px;margin-bottom:16px}
.bed-newbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.bed-newbar input[type=text],.bed-newbar #bed-name{flex:1;min-width:170px}
.bed-newbar input{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--text-primary);font-size:13.5px}
.bed-newbar #bed-w,.bed-newbar #bed-h{width:58px;text-align:center}
.bed-newbar label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);font-weight:650}
.bed-newbar-unit{font-size:13px;color:var(--text-tertiary)}
.bed-palette{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.bed-swatch{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;padding:7px 8px;border:1px solid var(--line);border-top:3px solid var(--sw,var(--line));border-radius:11px;background:var(--surface-raised);cursor:pointer;transition:.14s}
.bed-swatch:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.bed-swatch.active{border-color:var(--sw);background:color-mix(in srgb,var(--sw) 16%,var(--surface-raised));box-shadow:0 4px 14px rgba(0,0,0,.12)}
.bed-swatch.erase{--sw:var(--text-tertiary)}
.bed-swatch-emoji{font-size:19px;line-height:1.1}
.bed-swatch-name{font-size:12px;font-weight:700;color:var(--text-primary)}
.bed-swatch-den{font-size:10.5px;color:var(--text-tertiary);font-family:var(--mono)}
.bed-brush-hint{font-size:13px;color:var(--text-secondary);margin:2px 0 18px;padding:8px 11px;background:var(--accent-soft);border-radius:9px}
.bed-list{display:flex;flex-direction:column;gap:18px}
.bed-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);padding:16px;box-shadow:var(--shadow-xs)}
.bed-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.bed-card-head h3{margin:0;font-size:16px;color:var(--text-primary)}
.bed-card-head span{font-size:12px;color:var(--text-tertiary);font-family:var(--mono)}
.bed-card-actions{display:flex;gap:6px}
.bed-card-actions button{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text-secondary);font-size:12.5px;font-weight:650;cursor:pointer}
.bed-card-actions button:hover{border-color:var(--line-strong);color:var(--text-primary)}
.bed-card-actions button.danger:hover{border-color:var(--danger);color:var(--danger)}
.bed-grid{display:grid;gap:4px;max-width:540px;margin:0 auto 14px}
.bed-cell{aspect-ratio:1;min-height:32px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);cursor:pointer;display:grid;place-items:center;position:relative;padding:0;transition:.1s}
.bed-cell:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.bed-cell.filled{border-width:1.5px}
.bed-cell-emoji{font-size:clamp(14px,3.4vw,22px);line-height:1}
.bed-cell-badge{position:absolute;right:2px;bottom:1px;font-family:var(--mono);font-size:9.5px;font-weight:700;color:var(--text-primary);background:color-mix(in srgb,var(--paper-2) 78%,transparent);border-radius:4px;padding:0 2px}
.bed-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
.bed-chip{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:5px 9px;background:var(--surface-soft);font-size:12px}
.bed-chip b{font-size:13px;color:var(--text-primary)}
.bed-chip small{display:block;color:var(--text-tertiary);font-size:11px;margin-top:1px}
.bed-totals{font-size:13px;color:var(--text-secondary)}
.bed-totals b{color:var(--text-primary)}
.bed-warn{margin-top:7px;font-size:12.5px;color:var(--gold);background:var(--gold-soft);border-radius:8px;padding:6px 9px}
.bed-summary-empty{font-size:13px;color:var(--text-tertiary);font-style:italic}
@media(max-width:700px){.bed-swatch{min-width:64px;padding:6px}.bed-grid{max-width:100%}}

/* Drag-to-scroll affordance (pairs with initHorizontalDragScroll in app.js).
   Text selection is disabled inside these scrollers so a drag pans instead of
   highlighting cell text; the left-hand name columns stay readable/selectable. */
@media(hover:hover){
  .timeline-scroll,.tbl-wrap,.yield-wrap,.cal-wrap,.growth-table-wrap,
  .exact-compare-scroll,.yield-assumption-table-wrap{cursor:grab}
  .timeline-scroll:active,.tbl-wrap:active,.yield-wrap:active,.cal-wrap:active,
  .growth-table-wrap:active,.exact-compare-scroll:active{cursor:grabbing}
}
.timeline-scroll,.tbl-wrap,.yield-wrap,.cal-wrap,.growth-table-wrap,
.exact-compare-scroll,.yield-assumption-table-wrap{-webkit-user-select:none;user-select:none}
.fp-name,.timeline-tree,.growth-plan-table td:first-child{-webkit-user-select:text;user-select:text}

/* ── v11 mobile gesture fix ──────────────────────────────────────────────
   The fixed field-actions flex container includes the hidden 310px menu in
   its hit-test box even while that menu is transparent.  On phones this box
   covered most of each wide table/timeline, so touch drags reached the scroll
   container only in the uncovered sticky name column.  Make the shell
   transparent to pointer hit testing and opt the visible controls back in. */
.field-actions{pointer-events:none}
.field-action-fab{pointer-events:auto}
.field-actions.open .field-action-menu{pointer-events:auto}

/* v11 follow-up: remove the closed quick-action menu from visual/focus hit
   testing as well. The fixed shell remains pointer-transparent; only the FAB
   and the deliberately opened menu can receive input. */
.field-action-menu{visibility:hidden}
.field-actions.open .field-action-menu{visibility:visible}

/* Beds: backup / restore actions (localStorage is per-device) */
.bed-sync-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.bed-sync-actions button{padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-secondary);font-size:12.5px;font-weight:650;cursor:pointer}
.bed-sync-actions button:hover{border-color:var(--accent);color:var(--text-primary)}
.bed-intro code{font-family:var(--mono);font-size:12px;background:var(--surface-soft);padding:1px 4px;border-radius:4px}

/* Sync status pill (sync.js). Tap to sign in / out. */
.sync-pill{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:2147483000;
  padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface-raised);
  color:var(--text-secondary);font-size:12px;font-weight:700;font-family:var(--mono);cursor:pointer;
  box-shadow:var(--shadow-sm);opacity:.92}
.sync-pill:hover{opacity:1;border-color:var(--line-strong)}
.sync-pill[data-state="ok"]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.sync-pill[data-state="syncing"]{color:var(--gold)}
.sync-pill[data-state="offline"]{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.sync-pill[data-state="error"]{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}
.sync-pill[data-state="config"],.sync-pill[data-state="signin"]{color:var(--text-tertiary)}
@media(max-width:900px){.sync-pill{left:14px;right:auto;bottom:calc(var(--nav-zone) + 8px);font-size:11px;padding:5px 9px}}

/* Variety picker + subtype glyphs (variety-db.js) */
.bed-swatch-varcount{font-family:var(--mono);font-size:9.5px;color:var(--accent);font-weight:700}
.bed-varrow{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px;padding:9px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-soft)}
.bed-var{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);color:var(--text-secondary);font-size:12.5px;font-weight:650;cursor:pointer}
.bed-var:hover{border-color:var(--accent);color:var(--text-primary)}
.bed-var.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}
.bed-var small{color:var(--text-tertiary);font-size:10.5px;font-family:var(--mono)}
.bed-var em{font-style:normal;color:var(--gold);font-weight:800}
.bed-var-empty{font-size:12px;color:var(--text-tertiary);font-style:italic;align-self:center}
.veg-glyph{display:block;flex:0 0 auto}
.bed-cell .veg-glyph{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
.bed-chip .veg-glyph{display:inline-block;vertical-align:-3px}
.bed-chip em{font-style:normal;font-size:10.5px;color:var(--text-tertiary);font-family:var(--mono)}

/* ═══ Weather card (weather.js · data from Open-Meteo, CC BY 4.0) ═══ */
.weather-host{grid-column:1/-1}
.weather-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);padding:16px;box-shadow:var(--shadow-xs)}
.weather-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.weather-head h3{margin:0;font-size:16px;color:var(--text-primary)}
.weather-stamp{font-size:11.5px;color:var(--text-tertiary);font-family:var(--mono)}
.weather-now{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:13px;border-bottom:1px solid var(--line)}
.wn-temp{font-size:40px;font-weight:300;line-height:1;color:var(--text-primary)}
.wn-src{display:block;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--accent,#6a8f6d);margin-top:3px}
.wn-temp span{font-size:16px;color:var(--text-tertiary);margin-left:2px}
.wn-meta{font-size:13px;color:var(--text-secondary);line-height:1.7}
.wn-hilo{margin-left:auto;display:flex;gap:16px;font-size:12.5px;color:var(--text-secondary);text-align:center}
.wn-hilo b{display:block;font-size:18px;color:var(--text-primary)}
.weather-alert{margin-top:11px;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.55;border-left:3px solid var(--line);background:var(--surface-soft);color:var(--text-secondary)}
.weather-alert b{color:var(--text-primary)}
.weather-alert.calm{border-left-color:var(--accent);color:var(--text-tertiary)}
.weather-alert.frost{border-left-color:#4b9fd5;background:color-mix(in srgb,#4b9fd5 12%,var(--surface-soft))}
.weather-alert.freeze{border-left-color:#2f7fc4;background:color-mix(in srgb,#2f7fc4 16%,var(--surface-soft))}
.weather-alert.hard{border-left-color:#1c5f9e;background:color-mix(in srgb,#1c5f9e 20%,var(--surface-soft))}
.weather-alert.wind-breezy{border-left-color:var(--gold)}
.weather-alert.wind-high{border-left-color:#d98324;background:color-mix(in srgb,#d98324 14%,var(--surface-soft))}
.weather-alert.wind-severe{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,var(--surface-soft))}
.weather-rain{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.wr-item{flex:1;min-width:92px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.wr-item span{display:block;font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}
.wr-item b{font-size:17px;color:var(--text-primary);font-weight:650}
.weather-days{margin-top:13px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:5px}
.weather-day{display:grid;grid-template-columns:1.15fr 34px 1fr .8fr .6fr;gap:6px;padding:8px 11px;font-size:13px;color:var(--text-secondary);align-items:center;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.weather-day.head{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border:0;background:transparent;padding:0 11px 2px}
.weather-day+.weather-day{border-top:1px solid var(--line)}
.wd-name{font-weight:650;color:var(--text-primary)}
.wd-temp b{color:var(--text-primary)}
.wd-temp small{color:var(--text-tertiary)}
.wd-rain{font-family:var(--mono);font-size:12px}
.wd-rain.wet{color:#2f7fc4;font-weight:700}
.wd-gust{font-family:var(--mono);font-size:12px;text-align:right}
.wd-gust.windy{color:var(--gold);font-weight:700}
.weather-credit{margin-top:11px;font-size:10.5px;color:var(--text-tertiary)}
.weather-credit a{color:var(--text-tertiary)}
.weather-empty{font-size:13px;color:var(--text-tertiary);padding:14px 0}
@media(max-width:700px){.wn-temp{font-size:34px}.wn-hilo{margin-left:0;width:100%}}

/* ═══ Water status (water.js) ═══ */
.water-strip{margin-top:13px;padding:11px 12px;border:1px solid var(--line);border-left-width:3px;border-radius:11px;background:var(--surface-soft)}
.water-strip.dry{border-left-color:#c0392b}
.water-strip.low{border-left-color:#d98324}
.water-strip.ontrack{border-left-color:#2f9e6f}
.water-strip.ample{border-left-color:#3d8fd1}
.water-strip.soaked{border-left-color:#1c5f9e}
.ws-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.ws-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}
.ws-band{font-size:12px;font-weight:800}
.water-strip.dry .ws-band{color:#c0392b}
.water-strip.low .ws-band{color:#d98324}
.water-strip.ontrack .ws-band{color:#2f9e6f}
.water-strip.ample .ws-band{color:#3d8fd1}
.water-strip.soaked .ws-band{color:#1c5f9e}
.ws-bar{position:relative;height:8px;border-radius:999px;background:color-mix(in srgb,var(--line) 60%,transparent);overflow:hidden;margin-bottom:7px}
.ws-bar i{display:block;height:100%;border-radius:999px;transition:width .3s}
.water-strip.dry .ws-bar i{background:#c0392b}
.water-strip.low .ws-bar i{background:#d98324}
.water-strip.ontrack .ws-bar i{background:#2f9e6f}
.water-strip.ample .ws-bar i{background:#3d8fd1}
.water-strip.soaked .ws-bar i{background:#1c5f9e}
.ws-bar u{position:absolute;top:-2px;width:1px;height:12px;background:var(--text-tertiary);opacity:.7}
.ws-nums{font-size:12.5px;color:var(--text-secondary);line-height:1.7}
.ws-nums b{color:var(--text-primary)}
.ws-split{display:block;font-size:11.5px;color:var(--text-tertiary);font-family:var(--mono)}
.ws-deficit{display:block;font-size:11.5px;color:#d98324;font-weight:700}
.ws-met{display:block;font-size:11.5px;color:#2f9e6f;font-weight:700}
.ws-actions{display:flex;gap:6px;margin-top:8px}
.ws-actions button{padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-secondary);font-size:12px;font-weight:650;cursor:pointer}
.ws-actions button:hover{border-color:var(--accent);color:var(--text-primary)}
.ws-history{margin-top:9px;border-top:1px solid var(--line);padding-top:7px}
.wh-row{display:grid;grid-template-columns:52px 1fr auto 20px;gap:7px;font-size:11.5px;color:var(--text-secondary);padding:3px 0;align-items:center}
.wh-row button{border:none;background:none;color:var(--text-tertiary);cursor:pointer;font-size:14.5px;line-height:1}
.wh-row button:hover{color:var(--danger)}
.wh-empty{font-size:12px;color:var(--text-tertiary);font-style:italic}
.water-modal{max-width:440px}
.wm-context{font-size:13px;color:var(--text-secondary);background:var(--surface-soft);padding:9px 11px;border-radius:9px;margin-bottom:13px}
.wm-preview{margin:11px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-size:13.5px;line-height:1.7;color:var(--text-secondary)}
.wm-preview b{color:var(--text-primary)}
.wm-after{display:block;margin-top:3px;font-size:12.5px;font-weight:700}
.wm-after.dry{color:#c0392b}.wm-after.low{color:#d98324}.wm-after.ontrack{color:#2f9e6f}
.wm-after.ample{color:#3d8fd1}.wm-after.soaked{color:#1c5f9e}
.wm-cal{margin:12px 0;border:1px dashed var(--line);border-radius:10px;padding:9px 11px}
.wm-cal summary{font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer}
.wm-cal p{font-size:12px;color:var(--text-tertiary);line-height:1.6;margin:8px 0}
.wm-cal-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.wm-cal-row label{font-size:12px;color:var(--text-secondary);display:flex;flex-direction:column;gap:3px}
.wm-cal-row input{width:80px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-primary)}
.wm-cal-row button{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-secondary);font-size:12.5px;font-weight:650;cursor:pointer}

/* ═══ Weather icons (weather.js) ═══ */
.wi{display:block}
.wi-sun{fill:#f0b429}
.wi-ray{stroke:#f0b429;stroke-width:3;stroke-linecap:round}
.wi-cloud{fill:#b9c2cc}
[data-theme="dark"] .wi-cloud{fill:#7d8794}
.wi-rain{stroke:#3d8fd1;stroke-width:3.4;stroke-linecap:round}
.wi-drizzle{stroke:#7fb4dd;stroke-width:2.6;stroke-linecap:round}
.wi-snow line{stroke:#9fd0e8;stroke-width:2;stroke-linecap:round}
.wi-fog{stroke:#a9b3bd;stroke-width:3;stroke-linecap:round;opacity:.85}
.wi-bolt{fill:#f0b429}
.wi-wind path{stroke:var(--text-tertiary);stroke-width:3;fill:none;stroke-linecap:round}
.wi-wind.strong path{stroke:#d98324;stroke-width:3.6}
/* current-conditions icon */
.wn-icon{flex:0 0 auto;margin-right:2px}
.wn-icon .wi{width:64px;height:64px}
/* forecast rows */
.wd-icon{display:flex;justify-content:center}
.weather-day.is-today{background:color-mix(in srgb,var(--accent) 10%,var(--surface-soft));border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.weather-day.is-today .wd-name{font-weight:800;color:var(--text-primary)}
.weather-day.head span:nth-child(2){min-width:34px}
@media(max-width:700px){
  .weather-day{grid-template-columns:1fr 28px .9fr .7fr .55fr;gap:4px;font-size:12.5px}
  .wn-icon .wi{width:52px;height:52px}
}

/* ═══ v12 watering: trees + individual plantings ═══ */
.ws-footprint{display:block;font-size:11px;color:var(--text-tertiary);font-family:var(--mono)}
.wm-date-note{display:grid;grid-template-columns:150px 1fr;gap:10px}
.wm-setup{margin:12px 0;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:10px;padding:9px 11px;background:color-mix(in srgb,var(--accent) 4%,var(--surface-soft))}
.wm-setup summary{font-size:13px;font-weight:750;color:var(--text-secondary);cursor:pointer}
.wm-setup p{font-size:11.5px;color:var(--text-tertiary);line-height:1.55;margin:8px 0}
.wm-setup-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wm-setup-grid label{font-size:11px;color:var(--text-secondary);display:flex;flex-direction:column;gap:4px}
.wm-setup-grid input{width:100%;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-primary)}
.wm-save-setup{margin-top:8px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer}
.wm-save-setup:hover{border-color:var(--accent);color:var(--text-primary)}
.planting-water-settings{margin:14px 0 4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}
.planting-water-settings legend{padding:0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);font-weight:800}
.planting-water-settings p{margin:0 0 10px;font-size:11.5px;line-height:1.5;color:var(--text-tertiary)}
.planting-footprint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.fp-water-table{min-width:1120px}
.fp-footprint{font-family:var(--mono);font-size:12px;white-space:nowrap;color:var(--text-secondary)}
.fp-water-cell{min-width:275px;padding-top:8px!important;padding-bottom:8px!important}
.plant-water-compact{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-left-width:3px;border-radius:9px;background:var(--surface-soft);min-width:250px}
.plant-water-compact.dry{border-left-color:#c0392b}.plant-water-compact.low{border-left-color:#d98324}.plant-water-compact.ontrack{border-left-color:#2f9e6f}.plant-water-compact.ample{border-left-color:#3d8fd1}.plant-water-compact.soaked{border-left-color:#1c5f9e}
.plant-water-compact>div:first-child{display:flex;flex-direction:column;min-width:0}
.plant-water-compact span{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:750}
.plant-water-compact b{font-size:13px;color:var(--text-primary);margin-top:1px}
.plant-water-compact small{font-size:10.5px;line-height:1.4;color:var(--text-tertiary);white-space:normal}
.plant-water-compact>div:nth-child(2){display:flex;gap:4px;flex-direction:column}
.plant-water-compact button{padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--text-secondary);font-size:10.5px;font-weight:700;cursor:pointer}
.plant-water-compact .ws-history{grid-column:1/-1;width:100%}
.orchard-card .water-strip{margin:4px 0 14px}
@media(max-width:700px){
  .wm-date-note,.wm-setup-grid,.planting-footprint-grid{grid-template-columns:1fr}
  .water-modal{max-height:88vh;overflow-y:auto}
  .ws-actions{flex-wrap:wrap}
  .fp-water-table{min-width:1050px}
}

/* ═══ Water history / trends (water.js) ═══ */
.wh-modal{max-width:520px}
.wh-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.wh-head h3{margin:0}
.wh-range{display:flex;gap:4px}
.wh-range button{padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--text-tertiary);font-size:12px;font-weight:700;cursor:pointer}
.wh-range button.active{border-color:var(--accent);color:var(--text-primary);background:var(--accent-soft)}
.wh-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:11.5px;color:var(--text-tertiary);margin:8px 0}
.wh-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px;margin-right:3px}
.wh-k-rain{background:#3d8fd1}.wh-k-man{background:#5aa469}
.wh-k-none{background:repeating-linear-gradient(45deg,var(--text-tertiary),var(--text-tertiary) 2px,transparent 2px,transparent 4px)}
.wh-k-target{background:none;border-top:2px dashed var(--text-secondary);border-radius:0;height:0;width:12px}
.wh-chart{display:block;margin:4px 0 2px;background:var(--surface-soft);border-radius:10px;padding:4px 0}
.wh-manual{fill:#5aa469}
.wh-rain{fill:#3d8fd1}
.wh-norain{fill:var(--text-tertiary);opacity:.35}
.wh-bar.current .wh-manual{stroke:var(--text-primary);stroke-width:.8}
.wh-bar.dry .wh-manual,.wh-bar.low .wh-manual{fill:#8bbf95}
.wh-target{stroke:var(--text-secondary);stroke-width:1.2;stroke-dasharray:4 3;opacity:.75}
.wh-target-lbl{fill:var(--text-tertiary);font-size:9.5px;text-anchor:end}
.wh-xlabel{fill:var(--text-tertiary);font-size:9px;text-anchor:middle}
.wh-verdict{margin:9px 0;padding:9px 12px;border-radius:9px;font-size:13px;line-height:1.5;border-left:3px solid var(--line)}
.wh-verdict.chronic{border-left-color:#c0392b;background:color-mix(in srgb,#c0392b 10%,var(--surface-soft));color:var(--text-secondary)}
.wh-verdict.ok{border-left-color:#2f9e6f;background:color-mix(in srgb,#2f9e6f 10%,var(--surface-soft));color:var(--text-secondary)}
.wh-verdict.none{border-left-color:var(--text-tertiary);background:var(--surface-soft);color:var(--text-tertiary)}
.wh-note{font-size:11.5px;color:var(--text-tertiary);line-height:1.5;margin-top:8px}

/* ═══ Weather ensemble panel (ensemble.js) ═══ */
.ensemble-host{grid-column:1/-1}
.ens-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2);padding:16px;box-shadow:var(--shadow-xs)}
.ens-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:11px}
.ens-head h3{margin:0;font-size:16px;color:var(--text-primary)}
.ens-count{font-size:11.5px;color:var(--text-tertiary);font-family:var(--mono)}
.ens-days{display:flex;flex-direction:column;gap:6px}
.ens-day{display:grid;grid-template-columns:1fr auto auto auto;gap:9px;align-items:center;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);font-size:13.5px}
.ens-day-name{font-weight:700;color:var(--text-primary)}
.ens-day-temp b{color:var(--text-primary)}.ens-day-temp small{color:var(--text-tertiary);font-size:11px}
.ens-day-rain{font-family:var(--mono);font-size:12.5px;color:var(--text-tertiary)}
.ens-day-rain.wet{color:#3d8fd1;font-weight:700}
.ens-badge{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;white-space:nowrap}
.ens-high{background:color-mix(in srgb,#2f9e6f 18%,transparent);color:#2f9e6f}
.ens-med{background:color-mix(in srgb,var(--gold) 20%,transparent);color:var(--gold)}
.ens-low{background:color-mix(in srgb,#c0392b 16%,transparent);color:#c0392b}
.ens-split{grid-column:1/-1;font-size:10.5px;color:#c0392b;font-style:italic}
.ens-weights{margin-top:10px;font-size:12px;color:var(--text-secondary);line-height:1.6}
.ens-weights span{color:var(--text-tertiary);text-transform:uppercase;font-size:10.5px;letter-spacing:.05em;margin-right:6px}
.ens-truth{margin-top:8px;font-size:12px;line-height:1.5;padding:7px 10px;border-radius:8px;border-left:3px solid var(--line);background:var(--surface-soft);color:var(--text-secondary)}
.ens-truth.station{border-left-color:#2f9e6f}
.ens-truth.nws{border-left-color:#3d8fd1}
.ens-truth.reanalysis,.ens-truth.none{border-left-color:var(--gold)}
.ens-station{margin-top:11px;padding-top:11px;border-top:1px solid var(--line)}
.ens-station label{display:block;font-size:12.5px;color:var(--text-secondary);font-weight:650;margin-bottom:5px}
.ens-station label small{color:var(--text-tertiary);font-weight:400}
.ens-station-in{display:flex;gap:6px}
.ens-station-in input{flex:1;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--text-primary)}
.ens-station-in button{height:34px;padding:0 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--text-primary);font-size:13px;font-weight:700;cursor:pointer}
.ens-station-note{margin-top:6px;font-size:11px;color:var(--text-tertiary);line-height:1.5}
.ens-credit{margin-top:10px;font-size:10.5px;color:var(--text-tertiary)}
.ens-credit a{color:var(--text-tertiary)}
.ens-empty{font-size:13px;color:var(--text-tertiary);padding:8px 0;line-height:1.5}

/* ═══ Multi-square plant footprints (bed designer) ═══ */
.bed-footprint{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;background:var(--surface-soft)}
.bed-fp-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-right:2px}
.bed-fp{padding:4px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer;font-family:var(--mono)}
.bed-fp:hover{border-color:var(--accent);color:var(--text-primary)}
.bed-fp.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}
.bed-fp-hint{font-size:11.5px;color:var(--text-tertiary);margin-left:auto}
.bed-cell.bed-block{display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--paper-2) 55%,transparent)}
.bed-cell.bed-block .bed-cell-badge{background:color-mix(in srgb,var(--text-primary) 12%,transparent)}

/* ═══ Non-square footprint stepper ═══ */
.bed-fp-dims{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.bed-fp-step{width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--text-secondary);font-size:16px;line-height:1;cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:center}
.bed-fp-step:hover{border-color:var(--accent);color:var(--text-primary)}
.bed-fp-wh{font-family:var(--mono);font-size:14.5px;color:var(--text-primary);padding:0 4px;display:inline-flex;align-items:baseline;gap:2px}
.bed-fp-wh span{color:var(--text-tertiary);font-size:13px}
.bed-fp-axis{font-size:10.5px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:6px}
.bed-fp-presets{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px}

/* ═══════════════════════════════════════════════════════════════════════════
   PROPOSED DIRECTION, "Field Command" refresh (light + dark via tokens)
   Season timeline + refreshed hero/metric treatment. All colors are tokenized
   so the dark theme block above drives dark automatically.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Season timeline strip */
.season-strip{margin:22px 0 4px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(135deg,#123b38,#0c2b29);
  color:#fff;box-shadow:var(--shadow-sm)}
.season-strip .dashboard-section-head{margin-bottom:14px}
.season-strip .score-panel-kicker{color:color-mix(in srgb,var(--accent-bright) 85%,#fff)}
.season-strip h2{color:#fff}
.season-strip .text-action{color:color-mix(in srgb,var(--accent-bright) 88%,#fff)}
.st-axis{position:relative;height:20px;margin:0 4px 6px}
.st-axis-inner{position:relative;height:100%;margin-left:150px}
.st-month{position:absolute;transform:translateX(-50%);font-size:12px;color:rgba(255,255,255,.6);top:4px}
.st-today{position:absolute;transform:translateX(-50%);z-index:3;top:-2px}
.st-today i{display:block;width:2px;height:78px;background:#fff;margin:0 auto;position:absolute;left:50%;top:16px}
.st-today b{font-size:11px;font-weight:800;color:#fff;background:rgba(255,255,255,.16);padding:1px 5px;border-radius:5px;white-space:nowrap;position:relative}
.st-rows{display:flex;flex-direction:column;gap:5px;position:relative}
.st-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:0;font-size:13px}
.st-name{color:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:10px}
.st-track{position:relative;height:15px;border-radius:8px;background:rgba(255,255,255,.08)}
.st-window{position:absolute;top:1px;height:13px;border-radius:7px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.st-window.st-apple{background:var(--harvest-apple)}
.st-window.st-peach{background:var(--harvest-peach)}
.st-window.st-planned{opacity:.55;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.25) 3px,rgba(255,255,255,.25) 6px)}
.st-legend{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11.5px;color:rgba(255,255,255,.65)}
.st-key{width:12px;height:9px;border-radius:3px;display:inline-block}
.st-key.st-apple{background:var(--harvest-apple)}
.st-key.st-peach{background:var(--harvest-peach)}
.st-key.st-planned-key{background:repeating-linear-gradient(45deg,rgba(255,255,255,.4),rgba(255,255,255,.4) 3px,transparent 3px,transparent 6px)}
@media(max-width:640px){
  .st-axis-inner{margin-left:96px}
  .st-row{grid-template-columns:96px 1fr}
  .st-name{font-size:12px}
}

/* ═══ Hero refresh, exception-first + workload stat block (both themes) ═══ */
.overview-hero.smart-hero{flex-direction:row;align-items:stretch;gap:22px;min-height:0}
.summary-bar>.overview-hero.smart-hero{grid-column:1/-1}
.smart-hero .hero-lead{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}
.smart-hero .hero-actions{margin-top:auto}
.hero-btn-ic{width:14px;height:14px;display:inline-block;vertical-align:-2px;margin-right:6px;stroke:currentColor}
.hero-button{display:inline-flex;align-items:center}
/* stat block */
.hero-stat{position:relative;z-index:1;flex:0 0 232px;align-self:stretch;display:flex;flex-direction:column;
  padding:16px 18px;border-radius:var(--radius-lg);background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(2px)}
.hero-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#cfe6d7;font-weight:800}
.hero-stat-value{font-size:34px;font-weight:820;letter-spacing:-.03em;line-height:1;margin:8px 0 3px;color:#fff}
.hero-stat-value span{font-size:15px;font-weight:600;margin-left:5px;color:#d8ebe0}
.hero-stat-sub{font-size:12.5px;color:#d3e6da;line-height:1.4}
.hero-stat-divider{height:1px;background:rgba(255,255,255,.16);margin:13px 0 10px}
.hero-stat-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:#cfe6d7;margin:4px 0}
.hero-stat-row b{color:#fff;font-weight:750;font-size:13.5px}
.hero-stat-row b.is-warn{color:#ffcf8f}
@media(max-width:900px){
  .overview-hero.smart-hero{flex-direction:column;gap:16px}
  .hero-stat{flex-basis:auto}
  .hero-stat-value{font-size:31px}
}

/* ═══ Attention queue, exception rows (approved direction, both themes) ═══ */
.attn-list{display:flex;flex-direction:column;gap:9px}
.attn-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:var(--shadow-xs);border-left-width:3px;border-left-color:var(--text-tertiary)}
.attn-row.urgent{border-left-color:var(--danger)}
.attn-row.warning{border-left-color:var(--gold)}
.attn-row.info{border-left-color:var(--accent)}
.attn-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:850;font-size:17px;
  background:var(--surface-soft);color:var(--text-tertiary)}
.attn-row.urgent .attn-ic{background:var(--danger-soft);color:var(--danger)}
.attn-row.warning .attn-ic{background:var(--gold-soft);color:var(--gold)}
.attn-row.info .attn-ic{background:var(--accent-soft);color:var(--accent)}
.attn-body{min-width:0}
.attn-body b{display:block;font-size:14px;color:var(--text-primary);line-height:1.25}
.attn-body span{display:block;font-size:13px;color:var(--text-secondary);margin-top:2px;line-height:1.4}
.attn-btn{border:1px solid var(--line);background:var(--surface-raised);color:var(--text-primary);
  border-radius:9px;padding:8px 13px;font-size:13px;font-weight:750;cursor:pointer;white-space:nowrap}
.attn-btn:hover{border-color:var(--accent);background:var(--accent-soft)}
@media(max-width:640px){
  .attn-row{grid-template-columns:30px minmax(0,1fr);gap:10px}
  .attn-btn{grid-column:2;justify-self:start;margin-top:2px}
}

/* ═══ Sidebar → command-console polish (pass 4) ═══════════════════════════════
   Refines the existing labeled sidebar toward the approved "Field Command" feel:
   an accent left-edge indicator on the active item, an icon badge that lights up,
   tighter row rhythm, and crisper group labels. Labels are KEPT (they aid desktop
   scanning); this is the recommended middle path, not a strip to icons-only. */
.sidebar .nav-tab{position:relative;gap:11px;padding:9px 12px 9px 14px;border-radius:11px;margin:1px 0;transition:background .14s ease,color .14s ease}
.sidebar .nav-tab svg{width:18px;height:18px;flex:0 0 auto;opacity:.9}
/* left-edge active indicator */
.sidebar .nav-tab.active{background:rgba(255,255,255,.11);color:#fff;box-shadow:none;font-weight:700}
.sidebar .nav-tab.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);
  width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent-bright)}
.sidebar .nav-tab.active svg{opacity:1;color:var(--accent-bright)}
.sidebar .nav-tab:hover:not(.active){background:rgba(255,255,255,.06);color:#fff}
/* crisper group labels */
.sidebar .nav-label{color:#7fa38c;font-size:11px;letter-spacing:.14em;margin:4px 0 6px;opacity:.85}
.sidebar .nav-label-secondary{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}
/* brand mark a touch more "console" */
.sidebar .brand-mark{box-shadow:0 6px 16px rgba(0,0,0,.22)}

/* ═══ Season timeline storage tails (harvest → how long it keeps) ═══ */
.st-tail{position:absolute;top:3px;height:8px;border-radius:0 6px 6px 0;opacity:.34;
  background-image:repeating-linear-gradient(90deg,currentColor,currentColor 5px,transparent 5px,transparent 9px)}
.st-tail.st-apple{color:var(--harvest-apple)}
.st-tail.st-peach{color:var(--harvest-peach)}
.st-key.st-tail-key{background:repeating-linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.55) 4px,transparent 4px,transparent 8px)}

/* ═══ Variety scoring radar (6-axis profile comparison) ═══ */
.score-radar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;margin:14px 0;box-shadow:var(--shadow-xs)}
.score-radar-head{margin-bottom:8px}
.score-radar-head h3{margin:2px 0 0;font-size:16px}
.score-radar-body{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:center}
.radar-svg{width:100%;max-width:300px;height:auto;overflow:visible}
.radar-ring{fill:none;stroke:var(--line);stroke-width:1;opacity:.6}
.radar-spoke{stroke:var(--line);stroke-width:1;opacity:.5}
.radar-axis-label{fill:var(--text-secondary);font-size:12px;font-weight:650}
.radar-shape{fill-opacity:.14;stroke-width:2;stroke-linejoin:round}
.radar-legend{display:flex;flex-direction:column;gap:7px}
.radar-legend-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}
.radar-legend-item i{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
.radar-note{font-size:12.5px;color:var(--text-tertiary);line-height:1.5;margin:6px 0 0}
@media(max-width:640px){.score-radar-body{grid-template-columns:1fr}.radar-svg{margin:0 auto}}

/* ═══ Ensemble per-model breakdown ═══ */
.ens-models{margin:10px 0;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);overflow:hidden}
.ens-models summary{cursor:pointer;padding:10px 12px;font-size:13.5px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px;list-style:none}
.ens-models summary::-webkit-details-marker{display:none}
.ens-models summary:before{content:"▸";color:var(--text-tertiary);transition:transform .15s}
.ens-models[open] summary:before{transform:rotate(90deg)}
.ens-consensus-chip{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.ens-model-head,.ens-model-row{display:grid;grid-template-columns:1fr 42px 48px 62px 38px;gap:6px;align-items:center;padding:5px 12px;font-size:13px}
.ens-model-head{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700;border-top:1px solid var(--line)}
.ens-model-row{border-top:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.ens-model-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ens-model-temp{font-family:var(--mono);color:var(--text-secondary);text-align:right}
.ens-model-rain{font-family:var(--mono);color:var(--text-tertiary);text-align:right}
.ens-model-rain.wet{color:var(--w-ample,#3d8fd1);font-weight:700}
.ens-model-w{font-family:var(--mono);font-size:12px;color:var(--text-tertiary);text-align:right}
.ens-model-foot{padding:8px 12px;font-size:12px;line-height:1.5;color:var(--text-tertiary);border-top:1px solid var(--line);background:var(--surface)}

/* ═══ Calendar view switcher (Timeline / Workload / Pollination) ═══ */
.cal-viewswitch{display:inline-flex;gap:3px;padding:3px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.cal-viewbtn{border:0;background:transparent;color:var(--text-secondary);font-size:13.5px;font-weight:680;padding:8px 15px;border-radius:9px;cursor:pointer;transition:.15s;white-space:nowrap}
.cal-viewbtn:hover{color:var(--text-primary)}
.cal-viewbtn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}
.cal-view[hidden]{display:none}
.cal-view .bloom-overlap-panel,.cal-view .timeline-card{margin-top:0}
@media(max-width:700px){.cal-viewswitch{display:flex;width:100%}.cal-viewbtn{flex:1;padding:8px 6px;font-size:13px}}

/* ═══ Use-vs-yield surplus reconciliation (Yield tab) ═══ */
.recon-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;margin:16px 0;box-shadow:var(--shadow-xs)}
.recon-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.recon-left{flex:1;min-width:220px}
.recon-left h3{font-size:17px;margin:3px 0 4px}
.recon-left p{font-size:13.5px;color:var(--text-secondary);margin:0;line-height:1.5;max-width:52ch}
.recon-right{text-align:right}
.recon-big{font-family:var(--serif,Georgia),serif;font-size:34px;font-style:italic;font-weight:500;line-height:1;letter-spacing:-.02em;color:var(--accent)}
.recon-big.neg{color:var(--danger)}
.recon-big .u{font-size:16px;font-style:normal;color:var(--text-tertiary);margin-left:3px}
.recon-sub{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-top:3px}
.recon-mult{font-size:13px;color:var(--accent);font-weight:650;margin-top:5px}
.recon-bars{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.recon-row{display:grid;grid-template-columns:110px 1fr 62px;gap:10px;align-items:center;font-size:13.5px}
.recon-label{color:var(--text-secondary)}
.recon-track{height:11px;border-radius:6px;background:var(--surface-soft);overflow:hidden}
.recon-track i{display:block;height:100%;border-radius:6px}
.recon-track i.fresh{background:var(--accent)}
.recon-track i.preserved{background:var(--accent-bright)}
.recon-track i.pressed{background:var(--gold)}
.recon-track i.shared{background:var(--text-tertiary)}
.recon-track i.cap{background:repeating-linear-gradient(90deg,var(--line),var(--line) 6px,transparent 6px,transparent 11px)}
.recon-val{font-family:var(--mono);font-size:13px;text-align:right;color:var(--text-secondary)}
.recon-row.total{border-top:1px solid var(--line);padding-top:7px;margin-top:2px}
.recon-fields{display:flex;flex-wrap:wrap;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.recon-field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-tertiary)}
.recon-field span{font-weight:650;text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.recon-field input{width:82px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text-primary);font-family:var(--mono);font-size:13.5px}
.recon-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.recon-field small{color:var(--text-tertiary);font-size:11px}
.recon-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--text-secondary);line-height:1.55}
@media(max-width:640px){.recon-row{grid-template-columns:92px 1fr 54px}.recon-field input{width:72px}}

/* ═══ Season narrative (calendar) ═══ */
.season-narrative{background:linear-gradient(135deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 55%,var(--surface)));border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:16px}
.season-narrative p{font-size:15px;line-height:1.7;margin:6px 0 0;color:var(--text-primary)}
.season-narrative .nar-hl{font-weight:700;color:var(--accent)}

/* ═══ Activity-log feed (Overview) ═══ */
.activity-feed{margin:22px 0}
.activity-count{font-family:var(--mono);font-size:12px;color:var(--text-tertiary)}
.activity-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}
.activity-row{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;padding:11px 15px;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.activity-row:first-child{border-top:0}
.activity-mark{width:9px;height:9px;border-radius:50%}
.activity-mark.apple{background:var(--harvest-apple)}
.activity-mark.peach{background:var(--harvest-peach)}
.activity-body b{display:block;font-size:14px;font-weight:650}
.activity-body span{display:block;font-size:13px;color:var(--text-secondary);font-family:var(--mono);margin-top:1px}
.activity-year{font-family:var(--mono);font-size:13px;color:var(--text-tertiary)}
.activity-empty{border:1px dashed var(--line);border-radius:var(--radius-lg);padding:16px 18px;font-size:13.5px;color:var(--text-secondary);line-height:1.55;background:var(--surface-soft)}

/* ═══ Flavor scatter-map (Sweet × Crisp) ═══ */
.flavor-map-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-xs)}
.flavor-map-body{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:center}
.flavor-map-svg{width:100%;height:auto;overflow:visible}
.fm-grid{stroke:var(--line);opacity:.35}
.fm-median{stroke:var(--accent);opacity:.4;stroke-dasharray:4 3}
.fm-axis-title{fill:var(--text-secondary);font-size:13.5px;font-weight:800;font-family:var(--mono);letter-spacing:.02em}
.fm-quad{fill:var(--text-tertiary);font-size:11px;opacity:.7;text-anchor:middle;font-style:italic}
.fm-committed{stroke:var(--surface);stroke-width:2.5}
.fm-cand{opacity:.32}
.fm-tick{fill:var(--text-tertiary);font-size:11px;font-family:var(--mono);text-anchor:middle}
.fm-label-c{fill:var(--text-primary);font-size:13px;font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.flavor-map-key p{font-size:13.5px;line-height:1.6;color:var(--text-secondary);margin:0 0 12px}
.flavor-map-key b{color:var(--text-primary)}
.fm-legend{display:flex;gap:14px;font-size:12.5px;color:var(--text-secondary)}
.fm-legend span{display:flex;align-items:center;gap:5px}
.fm-legend i{width:11px;height:11px;border-radius:50%}
@media(max-width:720px){.flavor-map-body{grid-template-columns:1fr}}

/* ═══ Compare table: highlight the winning value per row (MiniMax touch) ═══ */
.score-value.win{font-weight:800;position:relative;box-shadow:inset 0 0 0 1.5px var(--accent);border-radius:6px}
.score-value.win::after{content:"▲";font-size:9px;margin-left:3px;color:var(--accent);vertical-align:1px}

/* ═══ Comparison table, MiniMax-style winner/loser + inline delta ═══ */
.cmp-table{margin:4px 0 14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.cmp-head-row,.cmp-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px;align-items:center;padding:9px 14px}
.cmp-head-row{background:var(--surface-soft);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);font-weight:700;border-bottom:1px solid var(--line)}
.cmp-hcell{text-align:center;display:flex;align-items:center;justify-content:center;gap:6px}
.cmp-hcell .dot-a,.cmp-hcell .dot-b{width:8px;height:8px;border-radius:50%}
.cmp-hcell .dot-a{background:var(--accent)} .cmp-hcell .dot-b{background:var(--gold)}
.cmp-row{border-top:1px solid color-mix(in srgb,var(--line) 50%,transparent)}
.cmp-row:nth-child(odd){background:color-mix(in srgb,var(--surface-soft) 40%,transparent)}
.cmp-label{font-size:13.5px;font-weight:600;color:var(--text-secondary)}
.cmp-cell{text-align:center;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;gap:6px}
.cmp-cell.win{color:var(--accent);font-weight:800}
.cmp-cell.lose{color:var(--text-tertiary)}
.cmp-delta{font-size:12px;font-weight:700;color:var(--text-tertiary);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
.cmp-foot{padding:9px 14px;font-size:12px;color:var(--text-tertiary);border-top:1px solid var(--line);background:var(--surface-soft);line-height:1.5}

/* ======================================================================
   v12.41, Graphite + Sage visual modernization
   Applied as a final token/component layer so every generated view uses
   the same palette without changing app structure or behavior.
   ====================================================================== */
:root{
  --canvas:#f3f5f2;
  --surface:#ffffff;
  --surface-raised:#ffffff;
  --surface-soft:#e9eeea;
  --surface-muted:#e1e8e2;
  --surface-inverse:#233128;
  --text-primary:#18201b;
  --text-secondary:#5f6d63;
  --text-tertiary:#839087;
  --line:#d5ddd6;
  --line-strong:#bdc8bf;
  --accent:#638d62;
  --accent-strong:#4d744f;
  --accent-soft:#e4eee3;
  --accent-bright:#7ca97a;
  --warm:#c46c4d;
  --warm-soft:#f5e8e2;
  --gold:#a87920;
  --gold-bright:#c59a43;
  --gold-soft:#f4ecda;
  --plum:#755b79;
  --plum-soft:#eee8ef;
  --crisp-bar:#4f9b8d;
  --danger:#bd5b52;
  --danger-soft:#f5e6e3;
  --bloom:#cf819f;
  --bloom-color:#cf819f;
  --harvest-apple:#6f9d6e;
  --harvest-peach:#cf8d45;
  --shadow-xs:0 1px 2px rgba(23,32,26,.035);
  --shadow-sm:0 7px 20px rgba(23,32,26,.055);
  --shadow-md:0 16px 42px rgba(23,32,26,.085);
  --shadow-lg:0 28px 72px rgba(15,22,18,.16);
}
html[data-theme="dark"]{
  --canvas:#0d1110;
  --surface:#171c19;
  --surface-raised:#1a201c;
  --surface-soft:#202722;
  --surface-muted:#272f2a;
  --surface-inverse:#edf3ee;
  --text-primary:#f1f4f1;
  --text-secondary:#b2bcb5;
  --text-tertiary:#7e8b82;
  --line:rgba(255,255,255,.075);
  --line-strong:rgba(255,255,255,.13);
  --accent:#7ea878;
  --accent-strong:#9bc296;
  --accent-soft:#213128;
  --accent-bright:#98c092;
  --warm:#d97858;
  --warm-soft:#39251f;
  --gold:#d4ad57;
  --gold-bright:#e1c06f;
  --gold-soft:#382f20;
  --plum:#b78bb6;
  --plum-soft:#302633;
  --crisp-bar:#67aeb2;
  --danger:#d56762;
  --danger-soft:#382321;
  --bloom:#d990ae;
  --bloom-color:#d990ae;
  --harvest-apple:#7ea878;
  --harvest-peach:#d88c3a;
  --ink-ghost:#66736a;
  --russet-deep:#e58b6c;
  --s1:#33241f;--s2:#342e20;--s3:#243128;--s4:#26392b;--s5:#29412f;
  --shadow-xs:0 1px 0 rgba(255,255,255,.02) inset,0 1px 2px rgba(0,0,0,.16);
  --shadow-sm:0 1px 0 rgba(255,255,255,.025) inset,0 9px 25px rgba(0,0,0,.2);
  --shadow-md:0 1px 0 rgba(255,255,255,.025) inset,0 18px 45px rgba(0,0,0,.28);
  --shadow-lg:0 1px 0 rgba(255,255,255,.025) inset,0 30px 80px rgba(0,0,0,.42);
}

/* Neutral graphite shell; sage becomes the deliberate UI accent. */
.sidebar{
  background:linear-gradient(180deg,#173b2b 0%,#102c20 100%);
  box-shadow:8px 0 30px rgba(21,38,27,.09);
}
html[data-theme="dark"] .sidebar{
  background:linear-gradient(180deg,#151b17 0%,#0f1411 100%);
  border-color:var(--line);
  box-shadow:10px 0 34px rgba(0,0,0,.22);
}
.brand-mark{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.brand-mark svg{stroke:#cce4c8}
.brand-meta{color:#a9bea9}.nav-label{color:#8ca18e}.nav-tab{color:#bdd0bf!important}
.nav-tab:hover{background:rgba(255,255,255,.065)!important}
.nav-tab.active{background:rgba(126,168,120,.19)!important;box-shadow:inset 3px 0 0 #9bc296!important}
.nav-tab.active svg{stroke:#bfe0ba}.theme-switch{background:rgba(255,255,255,.15)}
html[data-theme="dark"] .theme-switch{background:#638d62}

/* Cleaner, flatter surfaces with restrained elevation. */
.card,.metric-card,.priority-card,.insight-card,.section-control-bar,.tbl-wrap,.yield-wrap,.cal-wrap,
.score-visual-card,.score-card,.fit-panel,.fp-card,.pmap-card,.weather-card,.water-summary-card,
.planting-card,.bed-card,.modal,.pwa-status-panel,.backup-center-panel{
  border-color:var(--line)!important;
  box-shadow:var(--shadow-sm)!important;
}
html[data-theme="dark"] .card,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .priority-card,
html[data-theme="dark"] .insight-card,
html[data-theme="dark"] .section-control-bar,
html[data-theme="dark"] .tbl-wrap,
html[data-theme="dark"] .yield-wrap,
html[data-theme="dark"] .cal-wrap,
html[data-theme="dark"] .score-visual-card,
html[data-theme="dark"] .score-card,
html[data-theme="dark"] .fit-panel,
html[data-theme="dark"] .fp-card,
html[data-theme="dark"] .pmap-card{
  background:var(--surface)!important;
}

/* Hero remains distinctive without the saturated teal gradient. */
.overview-hero{
  background:linear-gradient(135deg,#31493a 0%,#527a56 58%,#769a70 100%)!important;
  box-shadow:0 18px 42px rgba(53,86,58,.17)!important;
}
html[data-theme="dark"] .overview-hero{
  background:linear-gradient(135deg,#1c2921 0%,#304d35 58%,#4d714e 100%)!important;
  box-shadow:0 20px 50px rgba(0,0,0,.28)!important;
}

/* Improve text contrast throughout the dark theme. */
html[data-theme="dark"] .page-heading p,
html[data-theme="dark"] .card-subtitle,
html[data-theme="dark"] .card-details,
html[data-theme="dark"] .card-note,
html[data-theme="dark"] .fp-note,
html[data-theme="dark"] .pmap-sub,
html[data-theme="dark"] .pmap-note,
html[data-theme="dark"] td,
html[data-theme="dark"] .metric-note,
html[data-theme="dark"] .insight-copy{color:var(--text-secondary)!important}
html[data-theme="dark"] .page-eyebrow,
html[data-theme="dark"] .section-kicker{color:#a5c99f!important}

/* Scoring: UI sage is separate from data comparison hues. */
.score-compare-a,.comparison-a,.radar-a,.exact-a,.score-a{--series-color:#d4ad57!important;color:#d4ad57!important}
.score-compare-b,.comparison-b,.radar-b,.exact-b,.score-b{--series-color:#67aeb2!important;color:#67aeb2!important}
.score-diff-positive{color:#8fbd88!important}.score-diff-negative{color:#d88c3a!important}
.score-recommendation,.fit-recommendation{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))!important;background:color-mix(in srgb,var(--accent-soft) 80%,var(--surface))!important}

/* Flavor and flavor-map: warmer reference surfaces, but clean rather than antique. */
#sec-flavor .fp-card,#sec-flavor .pmap-card,#sec-flavor .flavor-card{
  background:color-mix(in srgb,#f7f2e9 84%,var(--surface))!important;
  border-color:color-mix(in srgb,#d7cdbd 68%,var(--line))!important;
}
#sec-flavor .fp-name,#sec-flavor .pmap-head{color:#3e3429!important}
#sec-flavor .fp-note,#sec-flavor .pmap-note,#sec-flavor .pmap-sub{color:#71675a!important}
html[data-theme="dark"] #sec-flavor .fp-card,
html[data-theme="dark"] #sec-flavor .pmap-card,
html[data-theme="dark"] #sec-flavor .flavor-card{
  background:#1d211d!important;
  border-color:rgba(196,181,153,.18)!important;
}
html[data-theme="dark"] #sec-flavor .fp-name,
html[data-theme="dark"] #sec-flavor .pmap-head{color:#f0e9dd!important}
html[data-theme="dark"] #sec-flavor .fp-note,
html[data-theme="dark"] #sec-flavor .pmap-note,
html[data-theme="dark"] #sec-flavor .pmap-sub{color:#bdb4a6!important}

/* Inputs and controls feel current rather than boxed-in. */
input,select,textarea,.icon-button,.primary-action,.log-btn,.bench-btn,.remove-btn,.toolbar-select,.cal-year-select{
  border-color:var(--line)!important;
}
input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:color-mix(in srgb,var(--accent) 68%,var(--line))!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)!important;
}
.primary-action,.btn-primary,.btn-add{background:var(--accent)!important;border-color:var(--accent)!important}
.primary-action:hover,.btn-primary:hover,.btn-add:hover{background:var(--accent-strong)!important;border-color:var(--accent-strong)!important}

/* Tables and sticky headers gain clearer layering. */
th{background:color-mix(in srgb,var(--surface-soft) 88%,var(--surface))!important}
html[data-theme="dark"] th{background:#202722!important;color:#b7c1ba!important}
html[data-theme="dark"] td{background:var(--surface)!important}
html[data-theme="dark"] .yield-total-row td{background:var(--surface-soft)!important}

/* Reduce visual noise from oversized elevation and gradients. */
.topbar{box-shadow:none}.metric-card:hover,.card:hover{transform:translateY(-1px)!important;box-shadow:var(--shadow-md)!important}


/* =========================================================
   V12.42, FULL FEATURE MERGE
   Adaptive Console overview/scoring + Season Notebook flavor
   ========================================================= */
.cultivar-photo{position:relative;display:block;overflow:hidden;background:linear-gradient(135deg,var(--surface-strong),var(--surface));color:inherit;text-decoration:none}
.cultivar-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease,filter .25s ease}.cultivar-photo:hover img{transform:scale(1.025)}
.cultivar-photo-fallback{display:none;position:absolute;inset:0;place-items:center;padding:18px;text-align:center;font-weight:800;color:var(--text-dim)}.cultivar-photo.image-failed .cultivar-photo-fallback{display:grid}
.cultivar-photo small{position:absolute;right:8px;bottom:7px;padding:3px 6px;border-radius:999px;background:rgba(8,13,11,.76);color:#eef4ef;font-size:10px;opacity:0;transition:opacity .2s}.cultivar-photo:hover small,.cultivar-photo:focus small{opacity:1}
.cultivar-photo-card{height:132px;margin:-1px -1px 13px;border-radius:13px 13px 9px 9px}.cultivar-photo-flavor{height:100%;min-height:170px}
.cultivar-credits{margin-top:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px;color:var(--text-dim);font-size:13px}.cultivar-credits summary{cursor:pointer;color:var(--text);font-weight:800}.cultivar-credits>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin-top:10px}.cultivar-credits a{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:8px;background:var(--surface-strong);color:var(--text);text-decoration:none}.cultivar-credits span{color:var(--text-dim);font-size:11px}
.ops-console{margin:20px 0}.ops-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ops-panel{border:1px solid var(--border);border-radius:13px;background:var(--surface);padding:13px;box-shadow:var(--shadow-sm)}.ops-panel>header{display:flex;justify-content:space-between;align-items:center;padding-bottom:9px;border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:800}.ops-panel>header button{border:0;background:transparent;color:var(--accent-bright);font:inherit;cursor:pointer;text-transform:none;letter-spacing:0}.ops-alert,.ops-task{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.ops-alert:last-child,.ops-task:last-child{border-bottom:0}.ops-alert i,.ops-task>i{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-bright);font-style:normal;font-weight:900}.ops-alert.warn i{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.ops-alert.good i{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}.ops-alert b,.ops-task b{display:block;font-size:13px}.ops-alert span,.ops-task span{display:block;margin-top:2px;color:var(--text-dim);font-size:11px;line-height:1.4}.ops-task button{border:1px solid var(--border);background:var(--surface-strong);color:var(--text);border-radius:7px;padding:5px 8px;font-size:11px;cursor:pointer}.ops-report{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);padding:10px 0;cursor:pointer}.ops-report:last-child{border-bottom:0}.ops-report>i{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:var(--surface-strong);color:var(--accent-bright);font-style:normal}.ops-report b{display:block;font-size:13px}.ops-report small{display:block;color:var(--text-dim);font-size:11px;margin-top:2px}.ops-report strong{font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--accent-bright)}
.flavor-notebook-shell{border:1px solid #d7cdbc;border-radius:16px;background:#f3eee4;color:#3b3023;padding:16px;box-shadow:0 12px 30px rgba(15,20,17,.16)}[data-theme="dark"] .flavor-notebook-shell{background:#e9e2d5;color:#352c21}.flavor-notebook-head{display:flex;justify-content:space-between;align-items:end;gap:16px;padding:4px 4px 14px}.flavor-notebook-head h2{margin:2px 0 3px;font:800 25px Georgia,serif}.flavor-notebook-head p{margin:0;color:#746755;font-size:13px}.flavor-journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.flavor-journal-card{display:grid;grid-template-columns:150px minmax(0,1fr);min-height:190px;border:1px solid #d9cdbb;border-radius:12px;overflow:hidden;background:#fbf8f1}.flavor-journal-body{padding:13px}.flavor-journal-body header{display:flex;justify-content:space-between;gap:10px}.flavor-journal-body header span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8b7c66}.flavor-journal-body h3{margin:2px 0 0;font:800 21px Georgia,serif}.flavor-score-ring{width:48px;height:48px;border:2px solid #b49350;border-radius:50%;display:grid;place-items:center;font:800 17px Georgia,serif;line-height:.75;flex:0 0 auto}.flavor-score-ring small{font:7px system-ui;color:#786a55}.flavor-note-chips{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.flavor-note-chips i{font-style:normal;font-size:10px;padding:4px 7px;border-radius:999px;border:1px solid #ddcda9;background:#eee3ca}.flavor-meter-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px}.flavor-meter-grid label{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;color:#756854}.flavor-meter-grid label b{color:#453a2b}.flavor-meter-grid span{display:block;height:5px;margin-top:3px;border-radius:99px;background:#ded5c6;overflow:hidden}.flavor-meter-grid span i{display:block;height:100%;border-radius:99px}.flavor-journal-body p{font:italic 11px Georgia,serif;color:#665744;margin:9px 0}.flavor-journal-body button{border:0;background:transparent;color:#486541;padding:0;font-size:11px;font-weight:800;cursor:pointer}.flavor-exact{margin-top:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px}.flavor-exact summary{cursor:pointer;font-weight:800;color:var(--text)}
.score-console-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0 12px;padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(110deg,var(--surface),color-mix(in srgb,var(--accent-soft) 42%,var(--surface)));box-shadow:var(--shadow-sm)}.score-console-intro h2{margin:3px 0;font-size:22px}.score-console-intro p{margin:0;color:var(--text-dim);font-size:13px}.score-console-pulse{min-width:150px;border-left:1px solid var(--border);padding-left:18px}.score-console-pulse span,.score-console-pulse small{display:block;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.score-console-pulse b{display:block;margin:3px 0;color:var(--gold-bright);font-size:19px}
#sec-scoring .score-workspace,#sec-scoring .fit-explorer{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm)}#sec-scoring .score-radar-card,#sec-scoring .score-ranking-card{background:var(--surface-strong);border-color:var(--border)}#sec-scoring .score-rank-track{background:color-mix(in srgb,var(--text) 8%,transparent)}#sec-scoring .score-rank-track i{background:linear-gradient(90deg,var(--gold-bright),var(--compare-b))}.radar-a{stroke:var(--gold-bright)!important;fill:color-mix(in srgb,var(--gold-bright) 17%,transparent)!important}.radar-b{stroke:var(--compare-b)!important;fill:color-mix(in srgb,var(--compare-b) 15%,transparent)!important}.radar-point-a{fill:var(--gold-bright)!important}.radar-point-b{fill:var(--compare-b)!important}.dot-a{background:var(--gold-bright)!important}.dot-b{background:var(--compare-b)!important}
@media(max-width:1000px){.ops-grid{grid-template-columns:1fr}.flavor-journal-grid{grid-template-columns:1fr}}
@media(max-width:620px){.cultivar-photo-card{height:150px}.flavor-journal-card{grid-template-columns:105px minmax(0,1fr)}.cultivar-photo-flavor{min-height:215px}.flavor-meter-grid{grid-template-columns:1fr}.score-console-intro{align-items:flex-start;flex-direction:column}.score-console-pulse{border-left:0;border-top:1px solid var(--border);padding:10px 0 0;width:100%}.cultivar-credits>div{grid-template-columns:1fr}}
/* V12.42 token aliases used by the merged console layers. */
:root{--compare-b:#67aeb2;--success:#638d62;--warn:#d88c3a}
html[data-theme="dark"]{--compare-b:#76bcc0;--success:#8fb98a;--warn:#df9b50}
.flavor-card-actions{display:flex;gap:10px;margin-top:9px}.flavor-card-actions button{border:0;background:transparent;color:#486541;padding:0;font-size:11px;font-weight:800;cursor:pointer}.flavor-card-actions button.selected{color:#8b641d}
.flavor-compare-panel{margin-top:13px;padding:14px;border:1px solid #d7c9b3;border-radius:11px;background:#f9f5ec}.flavor-compare-panel header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.flavor-compare-panel h3{margin:2px 0 0;font:800 17px Georgia,serif}.flavor-compare-panel header small{color:#7c6e5b;font-size:11px}.flavor-compare-row{display:grid;grid-template-columns:90px repeat(3,minmax(0,1fr));gap:8px;align-items:center;padding:7px 0;border-top:1px solid #e1d7c7}.flavor-compare-row>b{font-size:11px;text-transform:uppercase;color:#756854}.flavor-compare-row>span{position:relative;height:24px;border-radius:7px;background:#e3dacb;overflow:hidden}.flavor-compare-row>span i{position:absolute;inset:0 auto 0 0;opacity:.72}.flavor-compare-row em,.flavor-compare-row strong{position:relative;z-index:1;font-style:normal;font-size:10px;line-height:24px}.flavor-compare-row em{padding-left:7px}.flavor-compare-row strong{float:right;padding-right:7px}
@media(max-width:620px){.flavor-compare-row{grid-template-columns:72px 1fr}.flavor-compare-row>span{grid-column:2}.flavor-card-actions{flex-wrap:wrap}}


/* v12.43, exact weighted point ledger */
.weighted-ledger{border-top:1px solid var(--border);background:var(--surface)}
.weighted-ledger-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-strong) 78%,var(--accent-soft))}
.weighted-ledger-head h3{margin:3px 0 5px;font-size:17px}.weighted-ledger-head p{max-width:760px;margin:0;color:var(--text-dim);font-size:12.5px;line-height:1.55}.weighted-ledger-head p b{color:var(--text)}
.ledger-formula{flex:0 0 auto;min-width:195px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:right}.ledger-formula span{display:block;color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.ledger-formula b{display:block;margin-top:3px;color:var(--gold-bright);font:700 10px var(--mono)}
.weighted-ledger-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior-inline:contain}
.weighted-ledger-table{width:100%;min-width:1020px;border-collapse:separate;border-spacing:0;font-size:11.5px}
.weighted-ledger-table th,.weighted-ledger-table td{padding:9px 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:middle;text-align:right;white-space:nowrap}
.weighted-ledger-table th:first-child,.weighted-ledger-table td:first-child{text-align:left}.weighted-ledger-table th:nth-child(2),.weighted-ledger-table td:nth-child(2){text-align:left;color:var(--text-dim)}
.weighted-ledger-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-strong);color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.weighted-ledger-table thead th:nth-child(4),.weighted-ledger-table thead th:nth-child(5){color:var(--gold-bright)}.weighted-ledger-table thead th:nth-child(6),.weighted-ledger-table thead th:nth-child(7){color:var(--compare-b)}
.weighted-ledger-table td small,.weighted-ledger-table th small{display:block;margin-top:2px;color:var(--text-dim);font-size:9.5px;font-weight:500}
.weighted-ledger-table .point-category{font-weight:700;color:var(--text)}.point-raw,.point-earned{font-family:var(--mono);font-weight:700}.point-earned{background:color-mix(in srgb,var(--text) 2.5%,transparent)}.point-win{color:var(--success)!important;background:color-mix(in srgb,var(--success) 9%,transparent)!important}.point-edge{color:var(--text-dim);font-size:10.5px}
.point-group-row th{background:color-mix(in srgb,var(--accent-soft) 48%,var(--surface-strong));color:var(--text);font-size:10.5px}.point-group-row th:first-child{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-bright)}
.weighted-ledger-table tfoot th{background:var(--surface-strong);color:var(--text);font-size:11.5px}.weighted-ledger-table .ledger-final-row th{background:color-mix(in srgb,var(--gold-soft) 72%,var(--surface-strong));font-size:13px}.weighted-ledger-table .ledger-final-row th:nth-child(2){color:var(--gold-bright)}.weighted-ledger-table .ledger-final-row th:nth-child(3){color:var(--compare-b)}
@media(max-width:700px){.weighted-ledger-head{display:block;padding:15px}.ledger-formula{margin-top:12px;text-align:left;min-width:0}.weighted-ledger-table{min-width:930px}}


/* v12.44, primary weighted scoring command view */
.score-command-shell{margin-top:12px;border:1px solid var(--border);border-radius:15px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}
.score-command-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:15px 17px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-strong) 83%,var(--accent-soft))}.score-command-toolbar h2{margin:3px 0 0;font-size:18px}.score-command-toolbar .score-select-row{padding:0;border:0;background:transparent;flex:0 0 auto}.score-command-toolbar .score-select-row label{min-width:145px}
.score-command-grid{display:grid;grid-template-columns:260px minmax(440px,1fr) 380px;gap:14px;padding:14px;background:var(--bg)}
.score-command-grid>article{min-width:0;border:1px solid var(--border);border-radius:13px;background:var(--surface);overflow:hidden}
.score-command-overall{padding:16px 18px}.score-command-overall>header,.score-command-contributions>header{display:flex;justify-content:space-between;align-items:center;color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.score-command-primary{padding:18px 0 15px;border-bottom:1px solid var(--border)}.score-command-primary b{display:block;font-size:18px}.score-command-primary strong{display:block;margin-top:8px;font:800 42px Georgia,serif;line-height:1}.score-command-primary.score-a b{color:var(--gold-bright)}.score-command-primary.score-b b{color:var(--compare-b)}.score-command-ranks{padding-top:4px}.score-command-rank{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-dim)}.score-command-rank b{color:var(--text);font-family:var(--mono)}
.score-command-radar{padding:8px 12px 12px}.score-radar-main{min-width:620px;max-height:430px}.score-command-axis-label{fill:var(--text-soft);font:10px var(--mono)}.score-command-comparison{margin:0 8px 8px}.score-command-comparison .cmp-row small,.score-command-comparison .cmp-cell small{display:block;font-size:9px;color:var(--text-dim)}
.score-command-contributions{padding:16px 18px}.score-contribution-row{padding:11px 0;border-bottom:1px solid var(--border)}.score-contribution-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:11px;color:var(--text-dim)}.score-contribution-label b{color:var(--text);font-family:var(--mono)}.score-contribution-track{height:8px;margin-top:5px;border-radius:999px;background:color-mix(in srgb,var(--text) 9%,transparent);overflow:hidden}.score-contribution-track i{display:block;height:100%;border-radius:inherit}.score-contribution-track .contrib-a{background:var(--gold-bright)}.score-contribution-track .contrib-b{background:var(--compare-b)}.score-contribution-caption{display:flex;justify-content:space-between;gap:8px;margin-top:5px;color:var(--text-dim);font-size:9.5px}.score-contribution-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;text-transform:uppercase;color:var(--text-dim)}.score-contribution-total b{color:var(--text);font-family:var(--mono)}
.weighted-ledger-secondary{border-top:1px solid var(--border);background:var(--surface)}.weighted-ledger-secondary>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;list-style:none;font-weight:800}.weighted-ledger-secondary>summary::-webkit-details-marker{display:none}.weighted-ledger-secondary>summary:after{content:'＋';color:var(--accent-bright);font-size:17px}.weighted-ledger-secondary[open]>summary:after{content:'−'}.weighted-ledger-secondary>summary small{margin-left:auto;color:var(--text-dim);font-size:10.5px;font-weight:500}.weighted-ledger-body{border-top:1px solid var(--border)}
@media(max-width:1250px){.score-command-grid{grid-template-columns:220px minmax(430px,1fr)}.score-command-contributions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.score-command-contributions>header,.score-contribution-total{grid-column:1/-1}}
@media(max-width:820px){.score-command-toolbar{align-items:flex-start;flex-direction:column}.score-command-toolbar .score-select-row{width:100%;display:grid;grid-template-columns:1fr 1fr}.score-command-toolbar .score-select-row label{min-width:0}.score-command-grid{grid-template-columns:1fr}.score-command-contributions{grid-column:auto;display:block}.score-radar-main{min-width:590px}.weighted-ledger-secondary>summary{align-items:flex-start;flex-wrap:wrap}.weighted-ledger-secondary>summary small{order:3;width:100%;margin-left:0}}


/* ======================================================================
   v12.45, Glass Blend production theme
   Kimi-inspired typography, spacing and density, selectively blended into
   the full app. Functional layouts and opaque data surfaces are preserved.
   ====================================================================== */
:root{
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --disp:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --sidebar-width:220px;
  --topbar-height:70px;
  --radius-sm:7px;
  --radius-md:10px;
  --radius-lg:13px;
  --radius-xl:15px;

  /* Quieter production accents than the neon prototype. */
  --accent:#6f9d6c;
  --accent-strong:#588458;
  --accent-soft:#e3ede2;
  --accent-bright:#82ad7e;
  --gold:#aa7e27;
  --gold-bright:#c6a04d;
  --gold-soft:#f3ead6;
  --crisp-bar:#579b9c;
  --compare-b:#579b9c;

  --shadow-xs:0 1px 2px rgba(18,27,21,.035);
  --shadow-sm:0 7px 22px rgba(18,27,21,.06);
  --shadow-md:0 14px 38px rgba(18,27,21,.09);
}
html[data-theme="dark"]{
  --canvas:#0a0f0d;
  --surface:#151b18;
  --surface-raised:#181f1b;
  --surface-soft:#202822;
  --surface-muted:#273029;
  --text-primary:#f1f5f2;
  --text-secondary:#aebbb3;
  --text-tertiary:#829188;
  --line:rgba(255,255,255,.085);
  --line-strong:rgba(255,255,255,.14);
  --accent:#88b986;
  --accent-strong:#a0cb9d;
  --accent-soft:#203027;
  --accent-bright:#9bc798;
  --gold:#d9b65f;
  --gold-bright:#e4c675;
  --gold-soft:#372f20;
  --crisp-bar:#70b7ba;
  --compare-b:#70b7ba;
  --warn:#d9924b;
  --shadow-xs:0 1px 0 rgba(255,255,255,.018) inset,0 1px 2px rgba(0,0,0,.16);
  --shadow-sm:0 1px 0 rgba(255,255,255,.022) inset,0 8px 22px rgba(0,0,0,.20);
  --shadow-md:0 1px 0 rgba(255,255,255,.024) inset,0 15px 42px rgba(0,0,0,.28);
}

/* A restrained atmospheric canvas. No glass-dependent readability. */
body{
  font-size:14.5px;
  line-height:1.5;
  background:
    radial-gradient(circle at 18% -5%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 34%),
    radial-gradient(circle at 95% 5%,color-mix(in srgb,var(--compare-b) 5%,transparent),transparent 32%),
    var(--canvas)!important;
}

/* Narrower but still explicit navigation; labels remain visible. */
.sidebar{
  padding:14px 10px 12px;
  background:color-mix(in srgb,#123b38 88%,transparent);
  -webkit-backdrop-filter:blur(15px);
  backdrop-filter:blur(15px);
  border-right:1px solid var(--line);
  box-shadow:8px 0 28px rgba(0,0,0,.09);
}
html[data-theme="dark"] .sidebar{
  background:color-mix(in srgb,#0d1f1c 90%,transparent);
  box-shadow:9px 0 30px rgba(0,0,0,.22);
}
.brand{height:52px;padding:0 6px;margin-bottom:14px;gap:10px}
.brand-mark{width:39px;height:39px;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,transparent);border-color:color-mix(in srgb,var(--accent) 27%,var(--line))}
.brand-name{font-size:15px;font-weight:800}.brand-meta{font-size:11px}.primary-nav{gap:3px}.nav-label{padding:0 10px;margin:7px 0 4px;font-size:10.5px}.nav-label-secondary{margin-top:13px}
.nav-tab{height:39px;gap:10px;padding:0 10px!important;border-radius:10px!important;font-size:13px!important;font-weight:650!important}
.nav-tab svg{width:17px;height:17px}.nav-tab:hover{transform:none!important}.nav-tab.active{background:color-mix(in srgb,var(--accent) 15%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent)!important}
.sidebar-footer{gap:4px;padding-top:9px}.sidebar-action{padding:7px 8px}.sidebar-action b,.theme-control{font-size:12px}.sidebar-action small{font-size:10px}.theme-control{height:36px}

/* Selective glass: shell and floating surfaces only. */
.topbar{
  min-height:var(--topbar-height);
  padding:13px clamp(18px,2.4vw,34px);
  background:color-mix(in srgb,var(--canvas) 76%,transparent);
  -webkit-backdrop-filter:blur(16px) saturate(115%);
  backdrop-filter:blur(16px) saturate(115%);
  border-bottom:1px solid var(--line);
}
.page-eyebrow,.section-kicker{font-size:10.5px;margin-bottom:5px}.page-heading h1{font-size:23px;font-weight:800}.page-heading p{font-size:13px;margin-top:4px}.topbar-actions{gap:7px}.icon-button{width:37px;height:37px;border-radius:10px}.primary-action{height:38px;border-radius:10px;padding:0 13px;font-size:12.5px}.pwa-status-pill,.pwa-install-button{min-height:36px!important;border-radius:10px!important}
.content-area{padding:4px clamp(18px,2.4vw,34px) 56px}.section{padding-top:16px!important}

/* Compact information rhythm. */
.summary-bar{gap:10px!important;margin-bottom:12px!important}.overview-hero{min-height:146px;padding:18px;border-radius:15px;background:linear-gradient(135deg,color-mix(in srgb,#18362a 92%,transparent),color-mix(in srgb,#285d43 90%,transparent));box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.08)}
.overview-hero:after{opacity:.55}.hero-kicker{font-size:10.5px}.hero-title{font-size:23px;margin:6px 0}.hero-copy{font-size:12.5px}.hero-actions{margin-top:13px}.hero-button{height:31px;border-radius:8px;font-size:11.5px}
.metric-card{min-height:146px;padding:14px;border-radius:13px;box-shadow:var(--shadow-xs)}.metric-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.metric-icon{width:32px;height:32px;border-radius:9px}.metric-icon svg{width:16px;height:16px}.metric-value{font:800 24px/1 var(--mono);letter-spacing:-.035em}.metric-label{font-size:11.5px;margin-top:6px}.metric-detail{font-size:10.5px}

/* Opaque, crisp working surfaces. */
.card,.metric-card,.section-control-bar,.timeline-card,.growth-chart-card,.growth-table-card,.score-workspace,.score-command-shell,.score-command-grid>article,.fit-explorer,.fit-results,.flavor-map-card,.weighted-ledger,.weighted-ledger-secondary,.modal,.backup-panel,.pwa-panel{
  background:var(--surface-raised)!important;
  border-color:var(--line)!important;
}
.card,.section-control-bar,.timeline-card,.growth-chart-card,.growth-table-card,.flavor-map-card{border-radius:13px!important;box-shadow:var(--shadow-xs)!important}
.cards-grid{gap:10px!important}.card{padding:13px!important}.card-head{margin-bottom:8px!important;padding-bottom:7px!important}.card-name{font-family:var(--body)!important;font-size:17px!important;font-weight:800!important}.card-meta{font-size:12.5px!important;line-height:1.65!important}.card-meta b{font-family:var(--body)!important;font-size:10px!important;font-weight:750!important}.card-row{margin-top:8px!important;padding-top:8px!important}.score-pill{font-family:var(--mono)!important;border-radius:7px!important}
.orchard-toolbar{padding:9px!important;border-radius:12px!important;gap:7px!important}.search-field input,.toolbar-select,.cal-year-select{height:36px!important;border-radius:9px!important}.section-control-bar{padding:13px 14px;margin-bottom:12px;gap:12px}.section-control-bar p{font-size:11.5px;margin-top:3px}.control-label{font-size:13px}

/* Tables stay readable, but become less padded. */
table{font-size:12px}.tbl-wrap,.yield-wrap,.cal-wrap,.weighted-ledger-scroll{border-radius:11px}.yield-table th,.yield-table td,.cal-table th,.weighted-ledger-table th,.weighted-ledger-table td{padding-top:7px!important;padding-bottom:7px!important}th{font-family:var(--body)!important;font-size:10px!important;letter-spacing:.055em!important}td{font-variant-numeric:tabular-nums}.yield-actual,.ov-cell{font-family:var(--mono)!important}.summary-bar .sum-val,.stat-value,.growth-value,.water-stat-value{font-family:var(--mono)!important}

/* Scoring gains the strongest analytical typography. */
.score-command-shell{border-radius:14px;box-shadow:var(--shadow-sm)}.score-command-toolbar{padding:12px 14px;background:color-mix(in srgb,var(--surface-raised) 92%,var(--accent-soft))}.score-command-toolbar h2{font-size:16px}.score-command-grid{grid-template-columns:235px minmax(410px,1fr) 350px;gap:10px;padding:10px;background:transparent}.score-command-grid>article{border-radius:12px}.score-command-overall,.score-command-contributions{padding:13px 15px}.score-command-primary{padding:14px 0 12px}.score-command-primary b{font-size:16px}.score-command-primary strong{font:800 37px/1 var(--mono);letter-spacing:-.04em}.score-command-rank{padding:8px 0;font-size:11.5px}.score-command-radar{padding:4px 8px 8px}.score-radar-main{max-height:390px}.score-command-axis-label{font:700 11px var(--body);fill:var(--text-primary);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.score-contribution-row{padding:8px 0}.score-contribution-label{font-size:10.5px}.score-contribution-track{height:6px}.score-contribution-caption{font-size:9px}.weighted-ledger-head{padding:14px 16px}.weighted-ledger-table{font-size:11px}

/* Flavor keeps its editorial warmth; only spacing and type hierarchy change. */
.flavor-notebook-shell{padding:13px;border-radius:14px;box-shadow:var(--shadow-sm)}.flavor-notebook-head{padding:2px 3px 11px}.flavor-notebook-head h2{font-size:23px}.flavor-journal-grid{gap:9px}.flavor-journal-card{grid-template-columns:135px minmax(0,1fr);min-height:174px;border-radius:11px}.flavor-journal-body{padding:11px}.flavor-journal-body h3{font-size:20px}.flavor-journal-body header span,.flavor-meter-grid label{font-family:var(--body);font-weight:700}.flavor-note-chips{margin:8px 0}.flavor-note-chips i{font-family:var(--body);font-size:10px}.flavor-journal-body p{font-size:12.5px;margin:7px 0}.flavor-compare-panel{padding:11px;margin-top:10px}.flavor-map-card{padding:14px}

/* Form controls remain comfortably touchable. */
.modal-field input,.modal-field select,.modal-field textarea,.add-field input,.add-field select,.add-field textarea{min-height:39px!important;border-radius:9px!important}.btn{height:37px!important;border-radius:9px!important}.timeline-toggle{min-height:34px!important;border-radius:9px!important}

/* Small-screen density without removing functionality. */
@media(max-width:1250px){
  :root{--sidebar-width:206px}
  .score-command-grid{grid-template-columns:210px minmax(390px,1fr)}
}
@media(max-width:980px){
  :root{--sidebar-width:74px}
  .brand{justify-content:center;padding:0}.brand>div:last-child,.nav-label,.nav-tab span,.sidebar-action span,.theme-control>span:nth-child(2){display:none}.nav-tab{justify-content:center;padding:0!important}.sidebar-action{justify-content:center}.theme-control{grid-template-columns:1fr}.theme-switch{display:none}
}
@media(max-width:760px){
  body{font-size:14px}.content-area{padding:3px 12px 72px}.topbar{padding:10px 12px}.page-heading h1{font-size:20px}.summary-bar{gap:8px!important}.metric-card{min-height:122px;padding:12px}.overview-hero{min-height:135px}.score-command-grid{padding:8px;gap:8px}.flavor-journal-card{grid-template-columns:108px minmax(0,1fr)}
}

@media(prefers-reduced-transparency:reduce){
  .sidebar,.topbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--surface-raised)}
}


/* V12.46 fixes, dark flavor table + uncapped score-command clarification */
html[data-theme="dark"] .flavor-exact,
html[data-theme="dark"] .flavor-exact .tbl-wrap{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-exact .fp-note{
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .flavor-exact .fp-table,
html[data-theme="dark"] .flavor-exact .fp-table thead,
html[data-theme="dark"] .flavor-exact .fp-table tbody,
html[data-theme="dark"] .flavor-exact .fp-table tr{
  background:transparent!important;
}
html[data-theme="dark"] .flavor-exact .fp-table th{
  background:var(--surface-raised)!important;
  color:var(--text-secondary)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-exact .fp-table td{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-exact .fp-table tr:nth-child(even) td{
  background:color-mix(in srgb,var(--surface-raised) 58%,var(--surface))!important;
}
html[data-theme="dark"] .flavor-exact .fp-table tr:hover td{
  background:var(--accent-soft)!important;
}
html[data-theme="dark"] .flavor-exact .fp-name,
html[data-theme="dark"] .flavor-exact .fp-num{
  color:var(--text-primary)!important;
}
.score-command-overall header small{white-space:nowrap}

/* ═══ Cultivar photo: local-image-with-clean-placeholder ═══ */
.cultivar-photo{position:relative;display:block;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,var(--accent-soft),color-mix(in srgb,var(--accent-soft) 45%,var(--surface)));text-decoration:none}
.cultivar-photo img{display:block;width:100%;height:100%;object-fit:cover}
.cultivar-photo-initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif,Georgia),serif;font-size:34px;font-weight:700;color:var(--accent);opacity:.55;z-index:0}
.cultivar-photo img{position:relative;z-index:1}
.cultivar-photo-fallback{position:absolute;left:0;right:0;bottom:0;z-index:2;font-size:12.5px;font-weight:700;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));padding:14px 8px 5px;text-align:center}
.cultivar-photo small{position:absolute;top:6px;right:7px;z-index:2;font-size:10px;color:var(--text-tertiary);background:color-mix(in srgb,var(--surface) 80%,transparent);padding:2px 6px;border-radius:6px;opacity:0;transition:opacity .15s}
.cultivar-photo:hover small{opacity:1}
.cultivar-photo.image-missing{border:1px dashed var(--line)}
.cultivar-photo.image-missing .cultivar-photo-fallback{background:none;color:var(--text-primary);position:static;padding:6px}
.cultivar-photo.image-missing small{position:static;opacity:1;display:block;text-align:center;background:none;color:var(--text-tertiary);margin-top:2px}
.cultivar-photo-card{aspect-ratio:4/3;margin-bottom:10px}
.cultivar-photo-flavor{width:100%;aspect-ratio:16/10}


/* V12.47, theme-complete tables and chart-label legibility */
/* All data tables follow the active design tokens instead of retaining hard-coded paper colors. */
.tbl-wrap,.yield-wrap,.cal-wrap,.growth-table-wrap,.weighted-ledger-scroll,.exact-compare-scroll,
.bench-section,.yield-assumption-table-wrap{
  background:var(--surface-raised);
  color:var(--text-primary);
  border-color:var(--line);
}
table,table thead,table tbody,table tfoot,table tr{background:transparent;color:inherit}
table th{
  background:var(--surface-soft);
  color:var(--text-secondary);
  border-color:var(--line);
}
table td{
  background:var(--surface-raised);
  color:var(--text-primary);
  border-color:var(--line);
}
table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-soft) 55%,var(--surface-raised))}
table tbody tr:hover td{background:var(--accent-soft)}
html[data-theme="light"] table th{background:var(--paper-3);color:var(--ink-faint)}
html[data-theme="light"] table td{background:var(--paper-2);color:var(--ink)}
html[data-theme="light"] table tbody tr:nth-child(even) td{background:var(--paper-3)}
html[data-theme="light"] table tbody tr:hover td{background:var(--sage-soft)}

/* SVG plot labels: remove halo strokes that bloom at browser zoom/scaling. */
.radar-axis-label,
.score-command-axis-label{
  fill:var(--text-primary)!important;
  font-family:var(--body)!important;
  font-size:13.5px!important;
  font-weight:700!important;
  stroke:none!important;
  paint-order:normal!important;
  text-shadow:none!important;
  filter:none!important;
  letter-spacing:0!important;
}
.score-command-axis-label{font-size:13.5px!important}
.radar-svg text,.score-radar text{shape-rendering:geometricPrecision;text-rendering:optimizeLegibility}
.radar-ring,.radar-spoke,.radar-grid,.radar-axis{stroke:var(--line-strong)!important;opacity:.82}
@media(max-width:760px){
  .radar-axis-label{font-size:13px!important}
  .score-command-axis-label{font-size:12.5px!important}
}

/* V12.48, complete dark-mode treatment for the Season Notebook flavor workspace */
html[data-theme="dark"] .flavor-notebook-shell{
  background:#171b18!important;
  color:var(--text-primary)!important;
  border-color:var(--line-strong)!important;
  box-shadow:var(--shadow-sm)!important;
}
html[data-theme="dark"] .flavor-notebook-head{
  background:linear-gradient(90deg,#1b211d,#171c19)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-notebook-head h2,
html[data-theme="dark"] .flavor-notebook-head strong{
  color:var(--text-primary)!important;
}
html[data-theme="dark"] .flavor-notebook-head p,
html[data-theme="dark"] .flavor-notebook-head small{
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .flavor-journal-card{
  background:#1d231f!important;
  color:var(--text-primary)!important;
  border-color:var(--line)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.02) inset!important;
}
html[data-theme="dark"] .flavor-journal-body{
  background:#1d231f!important;
  color:var(--text-primary)!important;
}
html[data-theme="dark"] .flavor-journal-body header span,
html[data-theme="dark"] .flavor-meter-grid label,
html[data-theme="dark"] .flavor-score-ring small{
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .flavor-journal-body h3,
html[data-theme="dark"] .flavor-meter-grid label b{
  color:var(--text-primary)!important;
}
html[data-theme="dark"] .flavor-score-ring{
  color:var(--text-primary)!important;
  border-color:var(--gold)!important;
  background:rgba(212,173,87,.06)!important;
}
html[data-theme="dark"] .flavor-note-chips i{
  background:#2a2a22!important;
  color:#e7dcc8!important;
  border-color:#4a4333!important;
}
html[data-theme="dark"] .flavor-meter-grid span{
  background:#303833!important;
}
html[data-theme="dark"] .flavor-journal-body p{
  color:#c8beb0!important;
}
html[data-theme="dark"] .flavor-journal-body button,
html[data-theme="dark"] .flavor-card-actions button{
  color:#a9d5a3!important;
}
html[data-theme="dark"] .flavor-card-actions button.selected{
  color:#e3c36f!important;
}
html[data-theme="dark"] .flavor-compare-panel{
  background:#181e1a!important;
  color:var(--text-primary)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-compare-panel h3,
html[data-theme="dark"] .flavor-compare-row em,
html[data-theme="dark"] .flavor-compare-row strong{
  color:var(--text-primary)!important;
}
html[data-theme="dark"] .flavor-compare-panel header small,
html[data-theme="dark"] .flavor-compare-row>b{
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .flavor-compare-row{
  border-color:var(--line)!important;
}
html[data-theme="dark"] .flavor-compare-row>span{
  background:#303833!important;
}
html[data-theme="dark"] #sec-flavor .cultivar-credits,
html[data-theme="dark"] #sec-flavor details.cultivar-credits{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--line)!important;
}

/* v12.49, SVG chart text legibility
   The base svg rule supplies currentColor strokes for line icons. Chart text
   inherited that stroke unless explicitly reset, producing thick white glyphs. */
svg text{
  stroke:none!important;
  stroke-width:0!important;
  paint-order:normal!important;
  text-shadow:none!important;
  filter:none!important;
  text-rendering:geometricPrecision;
}
.flavor-map-svg .fm-axis-title{
  fill:var(--text-primary);
  font-size:14.5px;
  font-weight:750;
  stroke:none!important;
}
.flavor-map-svg .fm-tick{
  fill:var(--text-secondary);
  font-size:12px;
  font-weight:650;
  stroke:none!important;
}
.flavor-map-svg .fm-label-c{
  fill:var(--text-primary);
  font-size:13px;
  font-weight:700;
  stroke:none!important;
  paint-order:normal!important;
}
.growth-chart .growth-y-label,
.growth-chart .growth-x-label{
  fill:var(--text-secondary);
  font-size:13px;
  font-weight:650;
  stroke:none!important;
  paint-order:normal!important;
}
.growth-chart text{
  stroke:none!important;
  stroke-width:0!important;
  paint-order:normal!important;
}
@media(max-width:720px){
  .flavor-map-svg .fm-axis-title{font-size:13.5px}
  .flavor-map-svg .fm-tick{font-size:11.5px}
  .growth-chart .growth-y-label,.growth-chart .growth-x-label{font-size:12.5px}
}

/* ═══ Mobile overflow fixes (≤640px): contain wide tables, collapse grids ═══ */
@media(max-width:640px){
  /* wide data tables scroll inside their own wrapper instead of pushing the page */
  .yield-wrap,.yield-table-wrap,.yield-assumption-table-wrap,.tbl-wrap,
  .weighted-ledger-scroll,.exact-compare-scroll,.growth-chart-card{
    overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;
  }
  .yield-table,.yield-assumption-table{min-width:640px}   /* keep columns legible, scroll within wrapper */
  /* multi-column explorer/grids collapse to one column */
  .fit-explorer-grid,.score-command-body,.flavor-map-body,.recon-head,
  .score-command-overall{grid-template-columns:1fr!important;display:block}
  .fit-explorer,.fit-results,.fit-recommendation{max-width:100%;overflow:hidden}
  /* variety chip selectors wrap instead of overflowing */
  .growth-tree-selector,.fit-chip-row,.variety-chip-row{flex-wrap:wrap;overflow-x:visible;max-width:100%}
  /* SVG charts scale down to fit */
  .growth-chart-card svg,.flavor-map-svg,.radar-svg,.score-command-radar svg{max-width:100%;height:auto}
  /* smart hero never exceeds viewport */
  .overview-hero,.smart-hero{max-width:100%;overflow:hidden}
}

@media(max-width:640px){
  .growth-table-wrap,.growth-plan-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  .growth-plan-table{min-width:600px}
  /* scoring: force all inner blocks to viewport width */
  .fit-results,.fit-recommendation,.score-radar,.score-radar-head,.score-command,.score-command-contributions{max-width:100%;overflow:hidden}
  .score-radar-body{grid-template-columns:1fr!important}
  /* smart hero inner grid stacks */
  .smart-hero,.overview-hero{display:block!important}
  .smart-hero>*,.overview-hero>*{max-width:100%}
}


/* ═══════════════════════════════════════════════════════════════════════
   ROOT & ROW v12.54, brand system, semantic states, and motion handoff
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --rr-sage:#7f9f78;--rr-sage-strong:#9fbd97;--rr-cream:#eee9de;--rr-charcoal:#14251d;
  --rr-gold:#d3ad59;--rr-teal:#69aeb3;--rr-water-dry:#c85b50;--rr-water-low:#d68a43;
  --rr-water-track:#79a276;--rr-water-ample:#5fa4a9;--rr-water-saturated:#7a6f9e;
}
.icon-sprite .rr-leaf{fill:var(--rr-sage);stroke:none!important}.icon-sprite .rr-datum,.icon-sprite .rr-root,.icon-sprite .rr-row{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.icon-sprite .rr-datum{stroke-width:7}.icon-sprite .rr-root{stroke-width:6}.icon-sprite .rr-row{stroke:var(--rr-sage);stroke-width:4}.icon-sprite .rr-node{fill:var(--rr-charcoal);stroke:var(--rr-gold);stroke-width:4}
.brand-mark{background:transparent!important;border:0!important;border-radius:0!important}.brand-mark svg{width:43px!important;height:43px!important;color:var(--rr-cream)}.brand-name{letter-spacing:.035em!important}.brand-name b{color:var(--rr-sage-strong)}.brand-meta{text-transform:none;letter-spacing:.01em!important;color:rgba(238,233,222,.72)!important}
.page-eyebrow{color:var(--accent)!important;letter-spacing:.11em!important}.page-heading h1{letter-spacing:-.025em}
.nav-tab.active{box-shadow:inset 3px 0 0 var(--rr-sage),inset 0 0 0 1px color-mix(in srgb,var(--rr-sage) 22%,transparent)!important}
.overview-hero{background:linear-gradient(135deg,#17372b 0%,#24543e 62%,#2f6950 100%)!important}.overview-hero:before{border-radius:48% 52% 58% 42%!important}.hero-kicker{color:#bfd6c2!important}.hero-title{max-width:540px!important}.hero-copy{max-width:650px!important}.rr-tag-nav{gap:7px!important}.rr-tag-nav .hero-button{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18)}.rr-tag-nav .hero-button b{color:#d7ebd8}.rr-tag-nav .hero-button.primary b{color:#295f43}
/* Major headers use the line/node motif once, not on every component. */
.dashboard-section-head:after,.section-control-bar:after{content:'';height:1px;flex:1;min-width:24px;margin-left:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--rr-sage) 62%,transparent),transparent);order:2}.dashboard-section-head:before{content:'';width:8px;height:8px;border:2px solid var(--rr-sage);border-radius:50%;background:var(--surface);order:3;margin-left:-12px}
/* Semantic water language across themes. */
.water-band-dry,.water-status-dry,[data-water-band="dry"]{--water-band-color:var(--rr-water-dry)}
.water-band-low,.water-status-low,[data-water-band="low"]{--water-band-color:var(--rr-water-low)}
.water-band-on-track,.water-status-on-track,[data-water-band="on-track"]{--water-band-color:var(--rr-water-track)}
.water-band-ample,.water-status-ample,[data-water-band="ample"]{--water-band-color:var(--rr-water-ample)}
.water-band-saturated,.water-status-saturated,[data-water-band="saturated"]{--water-band-color:var(--rr-water-saturated)}
/* Loading: mark -> terminal node -> data line -> actual UI boundaries. */
.rr-loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:var(--canvas);color:var(--text-primary);transition:opacity .35s ease,visibility .35s ease}.rr-loader-brand{position:relative;z-index:2;text-align:center;opacity:0;transform:translateY(5px) scale(.98)}.rr-loader-logo{display:block;margin:0 auto;width:150px;height:150px;color:var(--rr-cream)}html[data-theme="light"] .rr-loader-logo{color:#29352e}.rr-loader-name{font-size:22px;font-weight:850;letter-spacing:.08em}.rr-loader-name b{color:var(--rr-sage)}.rr-loader-sub{margin-top:3px;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.17em;color:var(--text-secondary)}.rr-loader-tag{margin-top:7px;font-size:11px;letter-spacing:.08em;color:var(--rr-gold)}.rr-loader.rr-logo-on .rr-loader-brand{animation:rrBrandIn .48s ease forwards}.rr-loader-trace{position:absolute;inset:0;width:100%;height:100%;z-index:1}.rr-loader-trace path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:0}.rr-line,.rr-frame{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}.rr-line{stroke:var(--rr-sage-strong);stroke-width:2.5;fill:none}.rr-root{stroke-width:2;stroke:color-mix(in srgb,var(--rr-sage) 78%,var(--rr-cream))}.rr-frame{stroke:color-mix(in srgb,var(--rr-sage) 82%,var(--rr-cream));stroke-width:2.5}.rr-dot{fill:var(--rr-sage-strong);stroke:var(--canvas);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}.rr-box{stroke:color-mix(in srgb,var(--rr-sage) 58%,transparent);stroke-width:2;transform-box:fill-box;transform-origin:center}.rr-box-primary{stroke:var(--rr-gold);stroke-width:2.5;transform-box:fill-box;transform-origin:center}.rr-loader-node{position:absolute;z-index:3;width:14px;height:14px;border-radius:50%;border:3px solid var(--rr-gold);background:var(--canvas);opacity:0;transform:translate(-50%,-50%) scale(.7)}.rr-loader.rr-trace-on{background:color-mix(in srgb,var(--canvas) 76%,transparent);backdrop-filter:blur(2px)}.rr-loader.rr-trace-on .rr-loader-brand{opacity:.18;transform:scale(.94);transition:.35s}.rr-loader.rr-trace-on .rr-loader-node{animation:rrNode .48s ease-out forwards}.rr-loader.rr-trace-on .rr-line{opacity:1;animation:rrDraw .85s .05s cubic-bezier(.22,.61,.36,1) forwards}.rr-loader.rr-trace-on .rr-dot{animation:rrDot .36s .82s cubic-bezier(.34,1.56,.64,1) forwards}.rr-loader.rr-trace-on .rr-frame{opacity:1;animation:rrDraw .95s .66s cubic-bezier(.65,0,.35,1) forwards}.rr-loader.rr-trace-on .rr-bx2{animation:rrSettle .6s 1.55s cubic-bezier(.22,.61,.36,1) forwards}.rr-loader.rr-trace-on .rr-bx3{animation:rrSettle .6s 1.68s cubic-bezier(.22,.61,.36,1) forwards}.rr-loader.rr-trace-on .rr-box-primary{animation:rrSettle .55s 1.85s cubic-bezier(.22,.61,.36,1) forwards,rrPulse 1.3s 2.45s ease-in-out}.rr-loader.rr-handoff{opacity:0;pointer-events:none}.rr-loader.rr-done{opacity:0;visibility:hidden}@keyframes rrBrandIn{to{opacity:1;transform:none}}@keyframes rrDraw{to{stroke-dashoffset:0}}@keyframes rrSettle{from{opacity:0;transform:scale(.955)}to{opacity:1;transform:scale(1)}}@keyframes rrDot{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes rrPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(1.015)}}@keyframes rrNode{0%{opacity:0;transform:translate(-50%,-50%) scale(.65);box-shadow:0 0 0 0 color-mix(in srgb,var(--rr-gold) 35%,transparent)}25%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 18px transparent}}
@media(max-width:760px){.rr-loader-logo{width:126px;height:126px}.rr-loader-name{font-size:19px}.brand-mark svg{width:39px!important;height:39px!important}.dashboard-section-head:after,.dashboard-section-head:before{display:none}}
@media(prefers-reduced-motion:reduce){.rr-loader{transition:none}.rr-loader-brand{opacity:1;transform:none}.rr-loader-trace,.rr-loader-node{display:none}}


/* ======================================================================
   v12.55, Root & Row synthesis refinement
   Consensus implementation from the design review: stronger shared tokens,
   quieter elevation, deliberate shell glass, readable compact type, explicit
   card hierarchy, framed Flavor notebook, unified charts, accessible motion,
   and a more tool-like bed editor. Functional layouts remain unchanged.
   ====================================================================== */
:root{
  /* Spacing rhythm: 4 / 8 / 12 / 16 / 24 / 32. */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px;
  /* Three purposeful radii plus overlay elevation. */
  --radius-control:8px; --radius-card:12px; --radius-pill:999px; --radius-overlay:16px;
  /* Compact, legible type scale. Tiny text is reserved for charts/badges. */
  --text-2xs:10px; --text-xs:11px; --text-sm:12px; --text-base:13px; --text-md:15px;
  --text-lg:19px; --text-xl:24px; --text-2xl:30px; --text-score:38px;
  /* Line hierarchy. */
  --line-subtle:color-mix(in srgb,var(--line) 58%,transparent);
  --line-default:var(--line);
  --line-emphasis:color-mix(in srgb,var(--accent) 30%,var(--line));
  --line-brand:var(--accent);
  /* Low, medium, and floating elevation. */
  --shadow-xs:0 1px 2px rgba(18,27,21,.045);
  --shadow-sm:0 1px 2px rgba(18,27,21,.055),0 4px 12px rgba(18,27,21,.055);
  --shadow-md:0 2px 5px rgba(18,27,21,.07),0 9px 24px rgba(18,27,21,.085);
  --shadow-lg:0 10px 36px rgba(18,27,21,.16);
  /* Motion tokens. */
  --motion-fast:120ms; --motion-base:180ms; --motion-slow:320ms;
  /* Domain status colors. */
  --water-dry:var(--danger); --water-low:var(--warn); --water-on-track:var(--accent);
  --water-ample:var(--compare-b); --water-saturated:#8772a4;
  /* Crop-category colors used by planning surfaces. */
  --crop-fruiting:#a9584f; --crop-pepper:#95743c; --crop-vining:#4d8889;
  --crop-herb:#6f9d6c; --crop-root:#a16f55; --crop-grain:#b28a37;
}
html[data-theme="dark"]{
  --line-subtle:rgba(255,255,255,.045);
  --shadow-xs:0 1px 0 rgba(255,255,255,.018) inset,0 1px 2px rgba(0,0,0,.12);
  --shadow-sm:0 1px 0 rgba(255,255,255,.02) inset,0 4px 13px rgba(0,0,0,.14);
  --shadow-md:0 1px 0 rgba(255,255,255,.022) inset,0 10px 28px rgba(0,0,0,.20);
  --shadow-lg:0 1px 0 rgba(255,255,255,.025) inset,0 22px 58px rgba(0,0,0,.34);
}

/* Static atmospheric depth makes selective shell glass visible without motion. */
body{
  font-size:var(--text-base)!important;
  line-height:1.52;
  background:
    radial-gradient(circle at 17% -6%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 36%),
    radial-gradient(circle at 92% 4%,color-mix(in srgb,var(--compare-b) 10%,transparent),transparent 33%),
    radial-gradient(circle at 65% 105%,color-mix(in srgb,var(--gold) 4%,transparent),transparent 35%),
    var(--canvas)!important;
}

/* Glass remains framing chrome only. Edge highlights make it intentional. */
.sidebar{
  background:color-mix(in srgb,#10342f 87%,transparent)!important;
  -webkit-backdrop-filter:blur(18px) saturate(116%);
  backdrop-filter:blur(18px) saturate(116%);
  border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.025),7px 0 25px rgba(0,0,0,.08)!important;
}
html[data-theme="dark"] .sidebar{
  background:color-mix(in srgb,#0d1915 89%,transparent)!important;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.02),8px 0 28px rgba(0,0,0,.18)!important;
}
.topbar{
  background:color-mix(in srgb,var(--canvas) 84%,transparent)!important;
  -webkit-backdrop-filter:blur(18px) saturate(116%);
  backdrop-filter:blur(18px) saturate(116%);
  border-bottom:0!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;background:linear-gradient(90deg,var(--line-subtle),var(--line),transparent 88%)}
html[data-theme="light"] .topbar{background:color-mix(in srgb,var(--surface-raised) 92%,transparent)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important}

/* Typography hierarchy: still compact, no 8px body copy. */
.page-heading h1{font-size:var(--text-xl)!important;line-height:1.15;font-weight:750!important;letter-spacing:-.025em}
.page-heading p{font-size:var(--text-xs)!important;line-height:1.45}
.page-eyebrow,.section-kicker,.score-panel-kicker{font-size:var(--text-2xs)!important;letter-spacing:.075em!important}
.card-title,.metric-label,.control-label{font-size:var(--text-2xs)!important;letter-spacing:.055em!important}
.metric-detail,.card-note,.insight-copy,.ops-alert span,.ops-task span{font-size:var(--text-2xs)!important;line-height:1.45}
.metric-value{font-size:26px!important;line-height:1.1!important;font-variant-numeric:tabular-nums}
.score-command-primary strong{font-size:var(--text-score)!important;line-height:1.06!important}
th{font-size:var(--text-2xs)!important}td{font-size:var(--text-xs);line-height:1.45;font-variant-numeric:tabular-nums}

/* Consistent control geometry, focus, and calm motion. */
button,.btn,.icon-button,.primary-action,.nav-tab,.sidebar-action,.theme-control,input,select,textarea,a[role="button"],summary{
  transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease;
}
button:focus-visible,.btn:focus-visible,.icon-button:focus-visible,.nav-tab:focus-visible,.sidebar-action:focus-visible,.theme-control:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2px solid var(--accent-bright)!important;outline-offset:2px!important;
}
button:active,.btn:active,.icon-button:active,.primary-action:active{transform:scale(.98)}
.icon-button,.primary-action,.pwa-status-pill,.pwa-install-button,.nav-tab,input,select,textarea{border-radius:var(--radius-control)!important}
.nav-tab:hover{transform:none!important}.nav-tab.active{box-shadow:inset 3px 0 0 var(--accent-bright),inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)!important}
.nav-tab.active svg{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 22%,transparent))}

/* Opaque working surfaces with purposeful elevation hierarchy. */
.card,.metric-card,.timeline-card,.growth-chart-card,.growth-table-card,.section-control-bar,.score-command-grid>article,.fit-panel,.flavor-map-card,.tbl-wrap,.yield-wrap,.cal-wrap,.bed-card,.planting-card{
  border-radius:var(--radius-card)!important;
  border-color:var(--line-default)!important;
  box-shadow:var(--shadow-xs)!important;
}
.card:hover,.metric-card:hover,.bed-card:hover,.planting-card:hover{transform:none!important;box-shadow:var(--shadow-xs)!important}
.card[data-action],button.card,.metric-card[onclick],.bed-swatch,.ops-report{cursor:pointer}
.card[data-action]:hover,button.card:hover,.metric-card[onclick]:hover,.bed-swatch:hover,.ops-report:hover{
  transform:translateY(-1px)!important;border-color:var(--line-emphasis)!important;box-shadow:var(--shadow-sm)!important;
}
.overview-hero,.priority-card,.score-recommendation,.fit-recommendation{
  border-color:color-mix(in srgb,var(--accent) 32%,var(--line))!important;
  box-shadow:var(--shadow-md)!important;
}
.modal,.pwa-status-panel,.backup-center-panel,.field-action-menu,.success-toast{border-radius:var(--radius-overlay)!important;box-shadow:var(--shadow-lg)!important}

/* Density with rhythm: more space at section level, not inflated tables. */
.content-area{padding-left:clamp(var(--space-4),2.4vw,var(--space-6));padding-right:clamp(var(--space-4),2.4vw,var(--space-6))}
.summary-bar,.cards-grid,.ops-grid,.growth-planner-grid,.score-command-grid,.flavor-journal-grid{gap:var(--space-3)!important}
.section-control-bar{padding:var(--space-3) var(--space-4)!important;margin-bottom:var(--space-4)!important}
.card{padding:var(--space-3)!important}.metric-card{padding:var(--space-4)!important}

/* Root & Row line motif: branded only at major boundaries, plain rules elsewhere. */
.major-rule,.root-row-rule{height:12px;display:flex;align-items:center;gap:8px;margin:var(--space-4) 0}
.major-rule::before,.root-row-rule::before{content:"";height:2px;flex:1;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 14%,transparent))}
.major-rule::after,.root-row-rule::after{content:"";width:8px;height:8px;border-radius:50%;border:2px solid var(--accent);background:var(--surface-raised)}
.card-head,.card-row,.ops-panel>header,.ops-alert,.ops-task,.score-command-rank,.score-contribution-row,.timeline-row,table th,table td{border-color:var(--line-subtle)!important}

/* Charts behave as one family. Measured lines stay honest; projections remain dashed. */
.growth-grid-line,.radar-ring,.radar-spoke,.radar-grid,.radar-axis{stroke:var(--line-subtle)!important}
.growth-y-label,.growth-x-label,.radar-axis-label,.score-command-axis-label,.flavor-map-svg text{font-family:var(--body)!important;fill:var(--text-secondary)!important;font-size:var(--text-2xs)!important;font-weight:650!important}
.growth-line{stroke-width:3.25!important;stroke-linecap:round;stroke-linejoin:round}
.growth-point{stroke:var(--surface-raised)!important;stroke-width:2.5!important}
.score-contribution-track,.flavor-meter-grid span{height:7px!important;border-radius:var(--radius-pill)!important}
.score-contribution-track i,.flavor-meter-grid span i{border-radius:inherit}

/* A consistent, utility-first Today marker across time views. */
.today-line{width:2px!important;background:var(--accent-bright)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}
.today-line::after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:var(--surface-raised);border:2px solid var(--accent-bright);transform:translateX(-50%)}
.today-line span{background:var(--accent-strong)!important;color:#fff!important;border-radius:var(--radius-control)!important;font-size:var(--text-2xs)!important}
.st-today i{background:var(--accent-bright)!important}.st-today b{background:color-mix(in srgb,var(--accent-strong) 82%,transparent)!important}

/* Flavor is a contained editorial artifact inside the operational shell. */
.flavor-notebook-shell{
  border-radius:var(--radius-overlay)!important;
  padding:var(--space-3)!important;
  background:linear-gradient(145deg,#282d29,#171d19)!important;
  border:1px solid color-mix(in srgb,var(--gold) 20%,var(--line))!important;
  box-shadow:var(--shadow-md)!important;
}
.flavor-notebook-head{padding:var(--space-2) var(--space-2) var(--space-4)!important;color:#f1ece2!important}
.flavor-notebook-head h2{font-family:Georgia,'Times New Roman',serif!important;font-size:var(--text-xl)!important;line-height:1.18}
.flavor-notebook-head p{font-family:var(--body)!important;font-size:var(--text-xs)!important;color:#c4bbac!important}
.flavor-journal-card{
  border-radius:var(--radius-card)!important;
  background:#f3eee4!important;
  border-color:#d5c9b8!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),var(--shadow-xs)!important;
}
.flavor-journal-body{background:#f3eee4!important;color:#382f26!important}
.flavor-journal-body h3{font-family:Georgia,'Times New Roman',serif!important}
.flavor-journal-body header span,.flavor-meter-grid label,.flavor-note-chips i{font-family:var(--body)!important}
.flavor-journal-body p{font-family:Georgia,'Times New Roman',serif!important}
html[data-theme="dark"] .flavor-notebook-shell{background:linear-gradient(145deg,#202722,#101512)!important}
html[data-theme="dark"] .flavor-journal-card,html[data-theme="dark"] .flavor-journal-body{background:#1e241f!important;color:var(--text-primary)!important}

/* Bed editor: explicit square-foot grid and interactive elevation, not placeholder stripes. */
.bed-card{background:linear-gradient(180deg,var(--surface-raised),color-mix(in srgb,var(--surface-soft) 42%,var(--surface-raised)))!important}
.bed-grid{
  gap:3px!important;padding:8px;border-radius:var(--radius-card);
  background-color:color-mix(in srgb,var(--surface-soft) 88%,var(--surface-raised));
  background-image:linear-gradient(color-mix(in srgb,var(--line) 48%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 48%,transparent) 1px,transparent 1px);
  background-size:24px 24px;border:1px solid var(--line-subtle)
}
.bed-cell{border-radius:6px!important;background:color-mix(in srgb,var(--surface-raised) 82%,transparent)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.bed-cell:hover{transform:translateY(-1px);border-color:var(--accent)!important;box-shadow:var(--shadow-sm)!important;z-index:2}
.bed-cell.filled{box-shadow:0 2px 6px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.09)!important}
.bed-swatch{border-radius:var(--radius-control)!important;box-shadow:var(--shadow-xs)}

/* Floating feedback can use subtle glass because it is temporary chrome. */
.pwa-update-banner,.field-action-menu,.toast,.success-toast{
  background:color-mix(in srgb,var(--surface-raised) 88%,transparent)!important;
  -webkit-backdrop-filter:blur(16px) saturate(112%);backdrop-filter:blur(16px) saturate(112%);
  border:1px solid var(--line-emphasis)!important;
}

/* Touch targets and mobile readability without sacrificing information density. */
@media(max-width:760px){
  body{font-size:14.5px!important}
  .page-heading h1{font-size:23px!important}
  .page-heading p{font-size:13px!important}
  .mobile-bottom-nav button,.field-action-fab,.icon-button{min-width:44px;min-height:44px}
  .nav-tab{min-height:44px!important}
  .primary-action,.pwa-status-pill,.pwa-install-button{min-height:42px!important}
  .modal-field input,.modal-field select,.modal-field textarea,.add-field input,.add-field select,.add-field textarea{min-height:44px!important;font-size:17px!important}
  .metric-card{padding:var(--space-3)!important}.metric-label{font-size:12px!important}.metric-detail{font-size:12px!important}
  .flavor-journal-card{grid-template-columns:104px minmax(0,1fr)!important}
  .bed-cell{min-height:36px!important}
}
@media(hover:none){.card:hover,.metric-card:hover,.bed-card:hover,.planting-card:hover,.bed-cell:hover,.bed-swatch:hover{transform:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.sidebar,.topbar,.pwa-update-banner,.field-action-menu,.toast,.success-toast{background:var(--surface-raised)!important}}

/* ═══ Stone-fruit bloom timing table (pollination view) ═══ */
.sf-bloom-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg,12px);padding:18px;margin-top:16px;box-shadow:var(--shadow-xs)}
.sf-bloom-head h3{font-size:16px;margin:3px 0 5px}
.sf-bloom-head p{font-size:13.5px;color:var(--text-secondary);margin:0 0 14px;line-height:1.55;max-width:70ch}
.sf-bloom-table{width:100%;border-collapse:collapse;font-size:14.5px}
.sf-bloom-table th[scope=row]{text-align:left;font-weight:650;padding:9px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.sf-bloom-table thead th{text-align:left;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);padding:6px 12px;border-bottom:1px solid var(--line)}
.sf-bloom-table td{padding:9px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-family:var(--mono);font-size:13.5px;color:var(--text-secondary)}
.sf-planned{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--rr-gold,#d3ad59);border:1px solid var(--rr-gold,#d3ad59);border-radius:4px;padding:1px 4px;margin-left:5px;vertical-align:1px}
.sf-bloom-foot{font-size:13px;color:var(--text-tertiary);margin:12px 0 0;font-style:italic;line-height:1.5}

/* v12.57 all-14 review features */
.command-button{display:flex;align-items:center;gap:7px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-control,8px);background:var(--panel);color:var(--text);font-weight:700}.command-button svg{width:16px;height:16px}.command-button kbd,.command-search kbd{font:600 10px ui-monospace,monospace;color:var(--text-dim);border:1px solid var(--line);border-radius:5px;padding:2px 5px}.command-palette-bg{display:none;position:fixed;inset:0;z-index:1200;background:rgba(8,12,9,.64);backdrop-filter:blur(8px);padding:10vh 16px}.command-palette-bg.open{display:block}.command-palette{max-width:680px;margin:auto;background:var(--panel);border:1px solid var(--line-strong,var(--line));border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.command-search{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.command-search svg{width:20px;height:20px}.command-search input{flex:1;border:0;background:transparent;color:var(--text);font-size:16px;outline:0}.command-results{max-height:56vh;overflow:auto;padding:7px}.command-result{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:0;background:transparent;color:var(--text);border-radius:9px;padding:10px}.command-result:hover,.command-result.selected{background:color-mix(in srgb,var(--sage) 13%,transparent)}.command-result svg{width:18px;height:18px;color:var(--sage)}.command-result small{display:block;color:var(--text-dim);margin-top:2px}.feature-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-3,12px)}.feature-card{grid-column:span 4;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card,12px);padding:var(--space-4,16px);box-shadow:var(--shadow-sm)}.feature-card.wide{grid-column:span 8}.feature-card.full{grid-column:1/-1}.feature-card h3{margin:0 0 5px;font-size:17px}.feature-card p{color:var(--text-dim);font-size:13.5px;margin:0 0 12px}.feature-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.feature-kicker{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--sage);font-weight:800}.activity-toolbar,.settings-row,.health-row,.reminder-row,.history-row{display:flex;align-items:center;gap:10px}.activity-toolbar{flex-wrap:wrap;margin-bottom:12px}.activity-list{display:grid;gap:7px}.activity-item{display:grid;grid-template-columns:92px 28px 1fr auto;align-items:start;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.activity-date{font:600 10px ui-monospace,monospace;color:var(--text-dim)}.activity-dot{width:24px;height:24px;border-radius:7px;background:color-mix(in srgb,var(--sage) 15%,transparent);display:grid;place-items:center;color:var(--sage)}.activity-item b{font-size:13.5px}.activity-item small{display:block;color:var(--text-dim);margin-top:2px}.source-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;border:1px solid var(--line);font-size:11px;color:var(--text-dim);white-space:nowrap}.source-badge.recorded{color:var(--sage)}.source-badge.estimated{color:var(--gold)}.source-badge.override{color:var(--orange)}.settings-list,.health-list,.reminder-list,.history-list{display:grid;gap:8px}.settings-row,.health-row,.reminder-row,.history-row{justify-content:space-between;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.settings-row label,.settings-row>span:first-child{font-weight:700}.settings-row small,.health-row small,.reminder-row small,.history-row small{display:block;color:var(--text-dim);font-weight:400}.settings-row input,.settings-row select{max-width:210px}.health-status{width:9px;height:9px;border-radius:50%;background:var(--sage);flex:none}.health-status.warn{background:var(--gold)}.health-status.bad{background:var(--red)}.sync-state{display:flex;align-items:center;gap:8px;font-weight:800}.sync-state i{width:9px;height:9px;border-radius:50%;background:var(--sage)}.module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.module-toggle{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}.photo-strip{display:flex;gap:8px;overflow:auto}.photo-tile{width:120px;aspect-ratio:4/3;border-radius:9px;border:1px dashed var(--line-strong,var(--line));display:grid;place-items:center;color:var(--text-dim);background:var(--panel2);overflow:hidden;flex:none}.photo-tile img{width:100%;height:100%;object-fit:cover}.training-tree{min-height:260px;display:grid;place-items:center;position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--sage) 7%,transparent),transparent);border-radius:10px;overflow:hidden}.training-tree svg{width:100%;height:250px}.rotation-board{display:grid;grid-template-columns:80px repeat(4,1fr);gap:5px}.rotation-cell{padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);font-size:12px}.rotation-cell.head{font-weight:800;color:var(--sage)}.undo-toast{position:fixed;z-index:1300;left:50%;bottom:calc(52px + var(--nav-zone));transform:translate(-50%,20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:14px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg)}.undo-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}.undo-toast button{border:0;background:transparent;color:var(--sage);font-weight:800}.metric,.big-score,.kpi-value,.yield-number{font-variant-numeric:tabular-nums}.offline-font-note{font-size:12px;color:var(--text-dim)}
@media(max-width:900px){.feature-card,.feature-card.wide{grid-column:span 6}}
@media(max-width:680px){.command-button span,.command-button kbd{display:none}.command-button{width:40px;justify-content:center}.feature-card,.feature-card.wide{grid-column:1/-1}.activity-item{grid-template-columns:64px 24px 1fr}.activity-item>.source-badge{grid-column:3}.module-grid{grid-template-columns:1fr}.rotation-board{grid-template-columns:60px repeat(4,115px);overflow:auto}.settings-row{align-items:flex-start;flex-direction:column}.settings-row input,.settings-row select{max-width:none;width:100%}}

/* ═══ Spray planner ═══ */
.spray-guard{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.spray-guard-item{padding:11px 14px;border-radius:10px;font-size:14px;line-height:1.5}
.spray-guard-item.danger{background:color-mix(in srgb,#b8493c 12%,var(--surface));border:1px solid color-mix(in srgb,#b8493c 40%,var(--line))}
.spray-guard-item.warn{background:color-mix(in srgb,var(--rr-gold,#d3ad59) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--rr-gold,#d3ad59) 35%,var(--line))}
.spray-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}
.spray-filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.spray-filter-group>span{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-right:2px}
.spray-filter{border:1px solid var(--line);background:var(--surface-soft);color:var(--text-secondary);font-size:13.5px;font-weight:600;padding:5px 11px;border-radius:8px;cursor:pointer;transition:.15s}
.spray-filter:hover{color:var(--text-primary)}
.spray-filter.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.spray-count{font-family:var(--mono);font-size:12px;color:var(--text-tertiary);margin-bottom:12px}
.spray-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.spray-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface);box-shadow:var(--shadow-xs)}
.spray-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.spray-card h3{font-size:15px;margin:0 0 2px}
.spray-klass{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}
.spray-bloom{font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap;flex:0 0 auto}
.spray-bloom.danger{background:color-mix(in srgb,#b8493c 18%,transparent);color:#b8493c}
.spray-bloom.warn{background:color-mix(in srgb,var(--rr-gold,#d3ad59) 20%,transparent);color:var(--rr-gold,#b8891f)}
.spray-bloom.ok{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.spray-targets,.spray-timing{font-size:13.5px;color:var(--text-secondary);margin:5px 0;line-height:1.45}
.spray-targets b,.spray-timing b{color:var(--text-primary);font-weight:650}
.spray-crops{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0}
.spray-crop{font-size:12px;font-weight:600;padding:2px 8px;border-radius:6px}
.spray-crop.for{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.spray-crop.avoid{background:color-mix(in srgb,#b8493c 12%,transparent);color:#b8493c}
.spray-note{font-size:13.5px;line-height:1.5;color:var(--text-secondary);margin:8px 0 0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.spray-disclaimer{font-size:13px;color:var(--text-tertiary);line-height:1.5;margin-top:16px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px}
@media(max-width:640px){.spray-grid{grid-template-columns:1fr}}

/* ═══ GDD season-adjustment banner ═══ */
.gdd-banner{display:flex;align-items:center;gap:10px;margin-top:12px;padding:9px 13px;border-radius:9px;font-size:13.5px;line-height:1.4}
.gdd-banner.gdd-warm{background:color-mix(in srgb,#d98324 12%,var(--surface));border:1px solid color-mix(in srgb,#d98324 32%,var(--line))}
.gdd-banner.gdd-cool{background:color-mix(in srgb,#3d8fd1 12%,var(--surface));border:1px solid color-mix(in srgb,#3d8fd1 32%,var(--line))}
.gdd-banner.gdd-neutral{background:var(--surface-soft);border:1px solid var(--line)}
.gdd-icon{font-size:13px;font-weight:700}
.gdd-warm .gdd-icon{color:#d98324}.gdd-cool .gdd-icon{color:#3d8fd1}
.gdd-text{flex:1}
.gdd-src{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);white-space:nowrap}

/* ═══ Collapsible nav clusters (nav-consolidation.js) ═══ */
.nav-cluster{border:none;margin:0 0 2px}
.nav-cluster>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;
  font-family:var(--mono,ui-monospace,monospace);font-size:11.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--text-tertiary,#8a9a90);padding:9px 12px 5px;user-select:none;transition:color .15s}
.nav-cluster>summary::-webkit-details-marker{display:none}
.nav-cluster>summary::before{content:'▸';font-size:10px;transition:transform .15s;opacity:.7}
.nav-cluster[open]>summary::before{transform:rotate(90deg)}
.nav-cluster>summary:hover{color:var(--text-secondary,#b8c6bd)}
.nav-cluster.has-active>summary{color:var(--accent,#6a8f6d)}
.nav-cluster>summary::after{content:attr(data-count);margin-left:auto;font-size:10.5px;opacity:.55;font-weight:600}
.nav-cluster[open]>summary::after{opacity:.3}
.nav-cluster-body{display:flex;flex-direction:column;gap:1px;padding-bottom:4px}

/* ═══ Simple/Full nav mode toggle (progressive disclosure) ═══ */
.rr-nav-mode-toggle{display:block;width:calc(100% - 16px);margin:8px 8px 12px;padding:8px 10px;
  background:transparent;border:1px dashed var(--line,#2a3a34);border-radius:8px;cursor:pointer;
  font-family:var(--mono,ui-monospace,monospace);font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--text-tertiary,#8a9a90);transition:all .15s;text-align:center}
.rr-nav-mode-toggle:hover{color:var(--accent,#6a8f6d);border-color:var(--accent,#6a8f6d)}
html[data-rr-nav-mode="simple"] .nav-cluster[hidden]{display:none}

/* ═══ Rain reliance hedge (ensemble) ═══ */
.ens-rain-hedge{display:inline-block;font-size:12px;font-weight:600;color:var(--accent,#6a8f6d);
  background:color-mix(in srgb,var(--accent,#6a8f6d) 12%,transparent);padding:2px 7px;border-radius:6px;margin-left:6px;white-space:nowrap}

/* ═══ Ensemble model track-record column ═══ */
.ens-model-rec{font-size:11.5px;color:var(--text-secondary,#8a9a90);font-variant-numeric:tabular-nums;text-align:right}
.ens-model-rec-new{font-style:italic;opacity:.7}

/* ═══ Weather station setup panel ═══ */
.ens-station{margin-top:12px;padding:12px;border:1px solid var(--line,#2a3a34);border-radius:10px;background:color-mix(in srgb,var(--accent,#6a8f6d) 5%,transparent)}
.ens-station-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ens-station-title{font-weight:700;font-size:14px}
.ens-station-link{background:none;border:none;color:var(--accent,#6a8f6d);font-weight:600;font-size:13px;cursor:pointer;padding:4px 6px;border-radius:6px}
.ens-station-link:hover{background:color-mix(in srgb,var(--accent,#6a8f6d) 12%,transparent)}
.ens-station-note{font-size:12.5px;color:var(--text-secondary,#8a9a90);line-height:1.4}
.ens-station-note.ens-station-live{color:var(--accent,#6a8f6d);font-weight:600}
.ens-station-current{margin-top:4px;font-size:13px;color:var(--text-primary,#243027);line-height:1.4}
.ens-station-current b{font-size:15px}
.ens-station-current small{color:var(--text-tertiary,#8a9a90);font-weight:400}
.ens-station-current-stale b{color:var(--text-tertiary,#8a9a90)}
.ens-station-setup{margin-top:10px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--line) 50%,transparent)}
.ens-station-field label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.ens-station-field input[type=url]{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;box-sizing:border-box}
.ens-station-actions{display:flex;gap:6px;margin-top:8px}
.ens-station-help{font-size:11.5px;color:var(--text-tertiary,#8a9a90);line-height:1.4;margin-top:8px}
.ens-station-help a{color:var(--accent,#6a8f6d)}
.ens-station-manual{margin-top:12px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--line) 50%,transparent)}
.ens-station-manual label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.ens-station-in{display:flex;gap:6px}
.ens-station-in input{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13.5px}

/* ═══ Mobile: stack the smart-hero so it doesn't force horizontal scroll ═══ */
@media(max-width:620px){
  .overview-hero.smart-hero{flex-direction:column;gap:14px}
  .smart-hero .hero-title,.smart-hero .hero-copy,.hero-title,.hero-copy{max-width:100%!important}
  .overview-hero{padding:18px}
}

/* Grid item must be allowed to shrink below content width (fixes hero h-overflow) */
.summary-bar>.overview-hero,.overview-hero.smart-hero{min-width:0;max-width:100%;overflow:hidden}
.smart-hero .hero-lead,.smart-hero .hero-stat{min-width:0;max-width:100%}
.hero-title,.hero-copy,.hero-kicker,.hero-lead{overflow-wrap:anywhere}

/* Force single-column overview + shrinkable hero on phones (overrides the global
   minmax(300px) grid that was forcing a 517px track and horizontal scroll). */
@media(max-width:620px){
  .summary-bar{grid-template-columns:1fr!important}
  .summary-bar>.overview-hero,.overview-hero.smart-hero,.summary-bar>*{min-width:0!important;max-width:100%!important}
  .overview-hero.smart-hero{flex-direction:column!important}
}

/* Ensemble day rows: allow wrapping on phones so the trust badge + rain hedge
   don't force horizontal overflow. */
@media(max-width:620px){
  .ens-day{grid-template-columns:1fr auto;grid-auto-rows:min-content;row-gap:4px}
  .ens-day-temp,.ens-day-rain{white-space:nowrap}
  .ens-rain-hedge,.ens-split{grid-column:1/-1;margin-left:0;white-space:normal}
  .ens-badge{justify-self:end}
  .ens-model-row,.ens-model-head{grid-template-columns:1fr 34px 42px 52px 32px;font-size:12px;gap:4px}
  .ens-card,.ens-station{max-width:100%;overflow:hidden}
}

/* ═══ Weather station: prominent add-a-station CTA + finder ═══ */
.ens-station-cta{border:1.5px solid color-mix(in srgb,var(--accent,#6a8f6d) 40%,transparent);
  background:color-mix(in srgb,var(--accent,#6a8f6d) 6%,transparent);border-radius:12px;padding:14px}
.ens-station-cta .ens-station-title{font-weight:700}
.ens-station-finder{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line,#2a3a34)}
.ens-station-finder-label{display:block;font-size:13.5px;font-weight:600;color:var(--text-secondary,#b8c6bd);margin-bottom:6px}
.ens-station-finder-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.ens-station-finder-links a{font-size:13.5px;font-weight:600;color:var(--accent,#6a8f6d);
  border:1px solid color-mix(in srgb,var(--accent,#6a8f6d) 35%,transparent);border-radius:999px;padding:5px 12px;text-decoration:none;white-space:nowrap}
.ens-station-finder-links a:hover{background:color-mix(in srgb,var(--accent,#6a8f6d) 12%,transparent)}
.ens-station-help{font-size:13.5px;color:var(--text-tertiary,#8a9a90);line-height:1.5;margin:4px 0 0}

/* ═══ Multi-station list ═══ */
.ens-station-list{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.ens-station-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line,#2a3a34);border-radius:8px;background:var(--surface-2,rgba(255,255,255,0.02))}
.ens-station-item-label{font-weight:600;font-size:13.5px;white-space:nowrap}
.ens-station-item-url{flex:1;font-size:12.5px;color:var(--text-tertiary,#8a9a90);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ens-station-remove{border:none;background:transparent;color:var(--text-tertiary,#8a9a90);cursor:pointer;font-size:14.5px;padding:2px 6px;border-radius:5px}
.ens-station-remove:hover{color:#c0392b;background:color-mix(in srgb,#c0392b 12%,transparent)}

/* ═══ Supply planner ═══ */
.supply-card{background:var(--surface,rgba(255,255,255,0.03));border:1px solid var(--line,#2a3a34);border-radius:12px;padding:16px;margin-bottom:12px}
.supply-kicker{font-family:var(--mono,ui-monospace,monospace);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent,#6a8f6d);margin-bottom:4px}
.supply-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.supply-item{padding:10px 12px;border:1px solid var(--line,#2a3a34);border-radius:9px;background:var(--surface-2,rgba(255,255,255,0.02))}
.supply-item>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.supply-item b{font-size:15px}
.supply-item p{margin:4px 0 0;font-size:14px;color:var(--text-secondary,#b8c6bd);line-height:1.5}
.supply-chip{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--accent,#6a8f6d) 14%,transparent);color:var(--accent,#6a8f6d)}
.supply-disclaimer,.supply-muted{font-size:13.5px;color:var(--text-tertiary,#8a9a90);font-style:italic;margin-top:8px}
.supply-note{background:color-mix(in srgb,var(--accent,#6a8f6d) 5%,transparent)}
.supply-note p{margin:0;font-size:13.5px;color:var(--text-secondary,#b8c6bd);line-height:1.5}
.supply-empty{text-align:center;padding:28px 16px}

/* ═══ Rich catalog detail ═══ */
.market61-chip.cat-flavor{background:color-mix(in srgb,var(--accent,#6a8f6d) 16%,transparent);color:var(--accent,#6a8f6d);font-weight:700}
.cat-detail{font-size:13.5px;color:var(--text-secondary,#b8c6bd);margin:6px 0 0;line-height:1.5}
.cat-detail b{color:var(--text-primary,#e8f0ec)}
.cat-detail a{color:var(--accent,#6a8f6d);text-decoration:none}

/* ═══ Per-plant spray schedule ═══ */
.spray-sched-details{margin-top:8px}
.spray-sched-details>summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--accent,#6a8f6d);padding:4px 0}
.spray-sched{border:1px solid var(--line,#2a3a34);border-radius:9px;padding:10px;margin-top:6px;background:var(--surface-2,rgba(255,255,255,0.02))}
.spray-sched-head{font-size:14px;font-weight:700;margin-bottom:6px}
.spray-sched-head small{font-weight:400;color:var(--text-tertiary,#8a9a90)}
.spray-sched-row{display:flex;gap:10px;padding:5px 0;border-top:1px dashed var(--line,#2a3a34);font-size:13.5px}
.spray-sched-row:first-of-type{border-top:none}
.spray-sched-row time{flex:0 0 62px;font-weight:600;color:var(--text-secondary,#b8c6bd);font-size:13px}
.spray-sched-row time.spray-asneeded{flex:0 0 auto;font-style:italic;color:var(--text-tertiary,#8a9a90)}
.spray-name{display:flex;flex-direction:column;gap:2px}
.spray-klass{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent,#6a8f6d);font-style:normal}
.spray-name small{color:var(--text-tertiary,#8a9a90);font-size:12.5px}
.spray-warn{font-size:11px;font-weight:700;color:#c0392b;margin-left:4px}
.spray-caution{font-size:11px;font-weight:700;color:#d68910;margin-left:4px}
.spray-sched-foot{font-size:12.5px;color:var(--text-tertiary,#8a9a90);font-style:italic;margin:8px 0 0;line-height:1.5}

/* stage-grouped spray schedule */
.spray-stage-row{display:flex;gap:10px;padding:6px 0;border-top:1px dashed var(--line,#2a3a34)}
.spray-stage-row:first-of-type{border-top:none}
.spray-stage-row time{flex:0 0 62px;font-weight:600;color:var(--text-secondary,#b8c6bd);font-size:13px}
.spray-stage-name{font-size:13px;font-weight:700;text-transform:capitalize;color:var(--accent,#6a8f6d);margin-bottom:3px}
.spray-opts{display:flex;flex-direction:column;gap:3px}
.spray-opt{font-size:13.5px}

/* ═══ Yard map (satellite layout) ═══ */
.yard-card{background:var(--surface,rgba(255,255,255,0.03));border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}
.yard-kicker{font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--orchard);margin-bottom:4px}
.yard-head h2{margin:0 0 4px;font-family:var(--disp)}
.yard-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 8px}
.yard-status{font-size:14.5px;color:var(--gold-bright,#b8862f);min-height:18px;margin-bottom:6px;font-weight:600}
.yard-canvas{width:100%;height:420px;border-radius:12px;border:1px solid var(--line-strong);overflow:hidden;background:#233}
.yard-note{font-size:13.5px;color:var(--text-tertiary,#8a7c66);line-height:1.5;margin:8px 0 0}
.yard-list{margin-top:14px}
.yard-total{font-size:14.5px;font-weight:700;margin-bottom:8px}
.yard-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:var(--surface-2,rgba(255,255,255,0.02))}
.yard-swatch{width:16px;height:16px;border-radius:4px;flex:0 0 auto}
.yard-row-body{flex:1;display:flex;flex-direction:column}
.yard-row-body small{color:var(--text-tertiary,#8a7c66);font-size:13.5px}
.yard-focus,.yard-del{border:1px solid var(--line-strong);background:transparent;border-radius:8px;padding:6px 10px;font-size:14.5px;cursor:pointer;min-height:36px}
.yard-del{color:#a8482a;border-color:transparent}
.yard-empty{font-size:14.5px;color:var(--text-tertiary,#8a7c66);line-height:1.6;padding:14px;text-align:center}
.leaflet-container{font-family:var(--body)}

/* ═══════════════════════════════════════════════════════════════════
   MODERN REFINEMENT LAYER (v85k), loaded last, wins the cascade.
   Sharpens the existing orchard identity: comfortable touch targets,
   a readable type floor, and softer, more contemporary surfaces.
   ═══════════════════════════════════════════════════════════════════ */

/* Touch targets: interactive elements meet ~44px so the app feels native on
   a phone rather than like a dense desktop dashboard. */
.btn, button.btn, .nav-tab, select, input[type="date"], input[type="number"], input[type="text"], input[type="url"], input[type="search"]{
  min-height:44px;
}
.btn{ padding:11px 16px; font-size:14px; }
.btn-ghost{ padding:11px 16px; }
.nav-tab{ padding:12px 14px; font-size:14px; }
/* small utility buttons keep a comfortable-but-compact 36px floor */
.yard-focus,.yard-del,.spray-remove,.ens-station-remove,.market61-card-actions .btn{ min-height:38px; }

/* Inputs: unify the four conflicting definitions to one comfortable size. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]){
  min-height:44px; font-size:15px; border-radius:12px;
}
textarea{ font-size:15px; border-radius:12px; padding:11px 13px; }
select{ font-size:15px; border-radius:12px; }

/* Type comfort: a readable body floor and a touch more line-height so dense
   cards breathe. Only lifts what's genuinely small. */
body{ font-size:15px; line-height:1.5; -webkit-text-size-adjust:100%; }
p{ line-height:1.55; }
small{ font-size:12px; }

/* Caption / label / eyebrow text: a firm 11px floor. These are the smallest
   legitimate text (kickers, stat labels, chip captions); below 11px they read
   as cramped on a phone. */
small, .page-eyebrow, .hero-kicker, .rr79-kicker, .yard-kicker, .feature-kicker,
.market61-chip, .card-stat-label, .card-stat-note, .score-panel-kicker,
.v1264-kicker, .v1265-badge, .supply-chip, .spray-klass, summary, kbd,
.detail-item, .cat-detail, .source-badge{
  font-size:11px !important;
}
/* but let genuine body copy and headings keep their (now larger) sizes */
p, h1, h2, h3, h4, li, td, th, .btn, input, textarea, select{ font-size:revert; }
.btn{ font-size:14px !important; }

/* Cards: slightly larger radius + softer border reads more contemporary. */
.card, .feature-card, .market61-card, .v1264-card, .v1265-card, .v1267-card,
.rr79-card, .yard-card, .spray-sched, .supply-card{
  border-radius:16px;
}

/* Primary actions get a hair more presence. */
.btn-primary{ font-weight:600; box-shadow:0 1px 2px rgba(23,35,27,.10); }
.btn-primary:active{ transform:translateY(1px); }

/* Focus visibility (accessibility floor). */
:focus-visible{ outline:2px solid var(--orchard,#2e5a3a); outline-offset:2px; }

/* Respect reduced-motion. */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* On true phone widths, give content a touch more edge breathing room. */
@media (max-width:480px){
  .card, .feature-card, .yard-card, .supply-card, .spray-sched{ padding:14px; }
  .btn{ font-size:14.5px; }
}

/* ═══ Test harness panel ═══ */
.tests-card{background:var(--surface,rgba(255,255,255,0.03));border:1px solid var(--line);border-radius:16px;padding:16px}
.tests-kicker{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--orchard);margin-bottom:4px}
.tests-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.tests-summary{margin:12px 0;padding:10px 14px;border-radius:10px;font-weight:700;font-size:14px}
.tests-summary.all-pass{background:color-mix(in srgb,var(--orchard,#2e5a3a) 14%,transparent);color:var(--orchard)}
.tests-summary.has-fail{background:color-mix(in srgb,#c0392b 14%,transparent);color:#c0392b}
.tests-list{display:flex;flex-direction:column;gap:5px}
.tests-row{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:9px}
.tests-row i{font-style:normal;font-weight:800;width:18px;flex:0 0 auto}
.tests-row.pass i{color:var(--orchard,#2e5a3a)}
.tests-row.fail i{color:#c0392b}
.tests-row.fail{border-color:color-mix(in srgb,#c0392b 40%,transparent)}
.tests-row.skip i{color:var(--text-tertiary,#839087)}
.tests-row span{display:flex;flex-direction:column}
.tests-row small{color:var(--text-tertiary,#839087);font-size:12px;margin-top:2px}

/* ═══════════════════════════════════════════════════════════════════
   CANONICAL DESIGN TOKENS (v85m), single source of truth.
   The stylesheet accumulated ~6 competing :root blocks across build
   layers, so which accent/radius/type "won" was down to load order.
   This block, loaded last, pins the values that were ALREADY winning
   at runtime, so appearance is unchanged, but the system is now
   intentional and predictable instead of accidental. Future changes
   happen HERE, not by adding another competing :root.
   ═══════════════════════════════════════════════════════════════════ */
:root{
  /* Identity, the sage-orchard palette currently in effect. */
  --accent:#6f9d6c; --accent-strong:#588458; --accent-bright:#88b986;
  --orchard:#6f9d6c; --orchard-deep:#588458; --orchard-lite:#88b986;

  /* Spacing rhythm, 8px grid (4/8/12/16/24/32). Reviewers asked for this;
     it already exists from the last layer, re-pinned here as canonical. */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px;

  /* Radii, three purposeful steps + overlay. */
  --radius-control:8px; --radius-card:12px; --radius-pill:999px; --radius-overlay:16px;
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px;

  /* Shadow system, three soft tiers (per DeepSeek/MiniMax feedback), replacing
     the single heavy card shadow. Kept subtle for a contemporary feel. */
  --shadow-sm:0 1px 3px rgba(20,37,29,.06);
  --shadow-md:0 4px 12px rgba(20,37,29,.08);
  --shadow-lg:0 8px 24px rgba(20,37,29,.12);
}

/* yard map location search */
.yard-search{flex:1;min-width:180px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;font-size:15px;background:var(--surface-raised,#fff);color:var(--text-primary)}

/* automatic backup restore points */
.autobackup-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.autobackup-section h4{margin:0 0 4px;font-size:15px}
.autobackup-note{font-size:12px;color:var(--text-tertiary,#839087);line-height:1.5;margin:0 0 10px}
.autobackup-list{display:flex;flex-direction:column;gap:6px}
.autobackup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px}
.autobackup-row span{display:flex;flex-direction:column}
.autobackup-row small{color:var(--text-tertiary,#839087);font-size:12px}
.autobackup-empty{font-size:13px;color:var(--text-tertiary,#839087);font-style:italic}
.corrupt-recovery{border-left:3px solid var(--warm);padding-left:10px}
.corrupt-recovery .autobackup-row{flex-wrap:wrap}

/* onboarding start-mode choice */
.rr1275-startmode{margin-top:12px}
.rr-startmode-row{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.rr-startmode-opt{flex:1;min-width:140px;text-align:left;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-raised,#fff);cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:44px}
.rr-startmode-opt b{font-size:14px}
.rr-startmode-opt small{font-size:12px;color:var(--text-tertiary,#839087)}
.rr-startmode-opt.active{border-color:var(--accent,#6f9d6c);background:color-mix(in srgb,var(--accent,#6f9d6c) 8%,transparent)}

/* frost-lead hero, subtle warm emphasis when spring frost risk leads the overview */
.smart-hero.frost-lead{border-color:color-mix(in srgb,var(--warm,#c46c4d) 45%,var(--line));box-shadow:var(--shadow-md)}
.smart-hero.frost-lead .hero-title{color:var(--warm,#c46c4d)}

/* orchard empty state, an invitation to act */
.orchard-empty{text-align:center;max-width:440px;margin:32px auto;padding:32px 24px;border:1px dashed var(--line-strong);border-radius:16px;background:var(--surface,rgba(255,255,255,.03))}
.orchard-empty-mark{color:var(--accent,#6f9d6c);display:flex;justify-content:center;margin-bottom:12px}
.orchard-empty h2{font-family:var(--disp);margin:0 0 8px;font-size:22px}
.orchard-empty p{color:var(--text-secondary,#5f6d63);line-height:1.55;margin:0 0 8px}
.orchard-empty-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 10px}
.orchard-empty-hint{font-size:12px;color:var(--text-tertiary,#839087)}

/* yield horizon control, focused window vs full projection */
.yield-horizon{font-size:12px;font-weight:400;color:var(--text-tertiary,#839087);margin-top:4px}
.link-btn{background:none;border:none;color:var(--accent,#6f9d6c);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;min-height:auto}

/* onboarding advanced disclosure */
.mo-advanced{margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:2px 12px}
.mo-advanced summary{cursor:pointer;padding:11px 2px;font-size:13px;color:var(--text-secondary,#5f6d63);font-weight:600}
.mo-advanced summary:hover{color:var(--accent,#6f9d6c)}
.mo-advanced[open] summary{margin-bottom:8px}

/* sample-data banner, clear, dismissible, not alarming */
.sample-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--gold,#a87920) 40%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--gold,#a87920) 8%,transparent)}
.sample-banner-body{flex:1;min-width:220px;font-size:14px;line-height:1.5;color:var(--text-primary)}
.sample-banner-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ═══ Catalog hierarchical browse ═══ */
.cbrowse{margin-bottom:16px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface,rgba(255,255,255,.03))}
.cbrowse-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cbrowse-head b{font-size:15px}
.cbrowse-head span{font-size:12px;color:var(--text-tertiary,#839087)}
.cbrowse-crumbs{font-size:13px;margin-bottom:10px;color:var(--text-secondary,#5f6d63)}
.cbrowse-crumbs button{background:none;border:none;color:var(--accent,#6f9d6c);cursor:pointer;padding:0;font-size:13px;text-decoration:underline;min-height:auto}
.cbrowse-chips{display:flex;flex-wrap:wrap;gap:8px}
.cbrowse-chip{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-raised,#fff);cursor:pointer;font-size:14px;min-height:40px}
.cbrowse-chip:hover{border-color:var(--accent,#6f9d6c)}
.cbrowse-chip i{font-style:normal;font-size:11px;color:var(--text-tertiary,#839087);background:var(--surface-muted,#e1e8e2);padding:1px 7px;border-radius:999px}
.cbrowse-varieties{display:flex;flex-direction:column;gap:8px}
.cbrowse-variety{padding:11px 13px;border:1px solid var(--line);border-radius:12px}
.cbrowse-vhead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cbrowse-vhead b{font-size:15px}
.cbrowse-add{padding:7px 12px !important;min-height:38px !important}
.cbrowse-vchips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.cbrowse-vchip{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface-muted,#e1e8e2);color:var(--text-secondary,#5f6d63)}
.cbrowse-vnote{font-size:12px;color:var(--text-tertiary,#839087);margin:6px 0 0;line-height:1.5}
.cbrowse-photo{display:inline-block;margin-top:7px;font-size:12px;color:var(--accent,#6f9d6c)}

/* ═══ Garden yield estimate (parity with orchard projection) ═══ */
.garden-yield-est{display:flex;flex-direction:column;gap:1px;padding:2px 10px;border-left:2px solid var(--accent,#6f9d6c);margin:0 4px}
.garden-yield-est .gy-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary,#839087)}
.garden-yield-est b{font-size:14px;color:var(--accent-strong,#4e7a4b)}
.garden-yield-est small{font-size:10px;color:var(--text-tertiary,#839087);line-height:1.3;max-width:160px}

/* ═══ Bloom-stage frost tolerance reference ═══ */
.rr-frosttol .rr-ft-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rr-ft-tab{padding:6px 12px;border:1px solid var(--line-strong,#c9d3ca);border-radius:999px;background:var(--surface-raised,#fff);cursor:pointer;font-size:13px;min-height:36px}
.rr-ft-tab.active{background:var(--accent,#6f9d6c);color:#fff;border-color:var(--accent,#6f9d6c)}
.rr-ft-tab[data-grown]{font-weight:600}
.rr-ft-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:4px}
.rr-ft-table th,.rr-ft-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line,#e1e8e2)}
.rr-ft-table th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary,#839087)}
.rr-ft-table td:nth-child(2){color:#b8860b}
.rr-ft-table td:nth-child(3){color:#c0392b}

/* ═══ Bud-stage logger + frost alert ═══ */
.rr-stagelogger .rr-stage-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.rr-stage-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rr-stage-name b{font-size:14px}
.rr-stage-name small{display:block;font-size:11px;color:var(--text-tertiary,#839087)}
.rr-stage-row select{min-height:40px;padding:6px 10px;border:1px solid var(--line-strong,#c9d3ca);border-radius:8px;background:var(--surface-raised,#fff)}
.rr-stage-threat{font-size:12px;padding:6px 10px;border-radius:8px;margin:2px 0 4px}
.rr-stage-threat.severe{background:#fdecea;color:#a5281b;border:1px solid #f5c6c0}
.rr-stage-threat.partial{background:#fef6e7;color:#8a6100;border:1px solid #f5e2b8}
.rr-stage-threat.safe{background:var(--surface-muted,#eef3ee);color:var(--text-secondary,#5f6d63)}
.rr1275-overview-alert.severe{border-color:#f5c6c0}

/* ═══ Planting instructions (sow guide) ═══ */
.rr-sow-guide{margin-top:10px;padding:10px 12px;border:1px solid var(--line,#e1e8e2);border-radius:10px;background:var(--surface,rgba(111,157,108,.04))}
.rr-sow-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong,#4e7a4b);font-weight:600;margin-bottom:6px}
.rr-sow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:4px 12px;margin:0}
.rr-sow-grid>div{display:flex;flex-direction:column}
.rr-sow-grid dt{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary,#839087)}
.rr-sow-grid dd{margin:0;font-size:13px;color:var(--text,#1e2a22)}
.rr-sow-note{font-size:12px;color:var(--text-secondary,#5f6d63);margin:8px 0 0;line-height:1.5}
.rr-sow-src{font-size:10px;color:var(--text-tertiary,#839087);margin:6px 0 0;line-height:1.4}

/* ═══ Personalized sow dates ═══ */
.rr-sow-dates{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--accent-tint,rgba(111,157,108,.10))}
.rr-sow-dates-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong,#4e7a4b);font-weight:600}
.rr-sow-date{font-size:13px;color:var(--text,#1e2a22)}
.rr-sow-date b{font-weight:600}
.rr-sow-dates small{flex-basis:100%;font-size:10px;color:var(--text-tertiary,#839087)}

/* ═══ Catalog provenance panel, collapsed, de-emphasized ═══ */
.v1268-provenance-collapsed{margin-top:16px}
.v1268-provenance-collapsed:not([open]) .v1268-toolbar,
.v1268-provenance-collapsed:not([open]) .v1268-catalog-meta{display:none}
.v1268-provenance-summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:10px 12px}
.v1268-provenance-summary::-webkit-details-marker{display:none}
.v1268-provenance-summary::before{content:'▸';color:var(--text-tertiary,#839087);transition:transform .15s}
.v1268-provenance-collapsed[open] .v1268-provenance-summary::before{transform:rotate(90deg)}
.v1268-provenance-summary b{font-size:14px}
.v1268-provenance-summary small{display:block;font-size:12px;color:var(--text-tertiary,#839087);margin-top:2px}

/* ═══ Catalog images (fallback tiles + badges) ═══ */
.rr-catimg{position:relative;flex-shrink:0}
.rr-catimg-thumb{width:64px;height:64px}
.rr-catimg-card{width:100%;height:120px;margin-bottom:8px}
.rr-catimg-tile{width:100%;height:100%;border-radius:10px;background:linear-gradient(135deg,var(--catcolor) 0%,color-mix(in srgb,var(--catcolor) 70%,#000) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.rr-catimg-glyph{font-size:26px;line-height:1}
.rr-catimg-thumb .rr-catimg-glyph{font-size:28px}
.rr-catimg-name{display:none}
.rr-catimg-card .rr-catimg-name{display:block;font-size:11px;color:#fff;opacity:.9;margin-top:4px;padding:0 6px;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.rr-catimg-badge{position:absolute;bottom:2px;left:2px;font-size:9px;padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.6);color:#fff;text-decoration:none}
.rr-catimg-badge.exact{background:#2e7d32}

/* variety card now has an image + body side by side */
.cbrowse-variety{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border:1px solid var(--line);border-radius:12px}
.cbrowse-vbody{flex:1;min-width:0}
.cbrowse-vcrumb{display:block;font-size:11px;color:var(--text-tertiary,#839087);margin-bottom:2px}
.cbrowse-traits{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.cbrowse-trait{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--accent-tint,rgba(111,157,108,.14));color:var(--accent-strong,#4e7a4b);font-weight:500}

/* ═══ Catalog search + facets ═══ */
.cbrowse-search{margin-bottom:12px}
.cbrowse-search input{width:100%;padding:11px 14px;border:1px solid var(--line-strong,#c9d3ca);border-radius:10px;font-size:15px;background:var(--surface-raised,#fff);box-sizing:border-box}
.cbrowse-facets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cbrowse-facet{padding:6px 12px;border:1px solid var(--line-strong,#c9d3ca);border-radius:999px;background:var(--surface-raised,#fff);cursor:pointer;font-size:13px;min-height:36px}
.cbrowse-facet.on{background:var(--accent,#6f9d6c);color:#fff;border-color:var(--accent,#6f9d6c)}
.cbrowse-resultcount{font-size:12px;color:var(--text-tertiary,#839087);margin-bottom:8px}
.cbrowse-more{font-size:12px;color:var(--text-tertiary,#839087);text-align:center;margin-top:10px}

/* ═══ Field provenance ═══ */
.rr-prov{margin-top:8px;font-size:12px}
.rr-prov summary{cursor:pointer;color:var(--accent,#6f9d6c)}
.rr-prov-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:2px 12px;margin:8px 0 0}
.rr-prov-list dt{font-size:10px;text-transform:uppercase;color:var(--text-tertiary,#839087)}
.rr-prov-list dd{margin:0 0 4px;font-size:12px}
.rr-prov-note{font-size:11px;color:var(--text-tertiary,#839087);margin-top:6px}

/* ═══ Today hierarchy ═══ */
.rr-today{margin:14px 0;display:flex;flex-direction:column;gap:8px}
.rr-today-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary,#839087);font-weight:600}
.rr-today-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-raised,#fff);cursor:pointer;min-height:56px}
.rr-today-icon{font-size:22px;flex-shrink:0}
.rr-today-text{flex:1;min-width:0;display:flex;flex-direction:column}
.rr-today-text b{font-size:14px}
.rr-today-text small{font-size:12px;color:var(--text-secondary,#5f6d63);line-height:1.4}
.rr-today-go{font-size:22px;color:var(--text-tertiary,#c9d3ca)}
.rr-today-critical{border-color:#f5c6c0;background:#fdf0ee}
.rr-today-critical .rr-today-text b{color:#a5281b}
.rr-today-donext{border-left:3px solid var(--accent,#6f9d6c)}

/* ═══ Yield calibration ═══ */
.fp-harvest-cell small{color:var(--text-tertiary,#839087);font-size:11px}
.rr-cal{font-size:12px;color:var(--text-secondary,#5f6d63);margin-top:2px}
.rr-cal-label{text-transform:uppercase;font-size:10px;letter-spacing:.03em;color:var(--text-tertiary,#839087)}
.rr-cal-over{color:#2e7d32;font-weight:600}
.rr-cal-under{color:#a5601b;font-weight:600}
.rr-cal-on{color:var(--accent-strong,#4e7a4b);font-weight:600}

/* ═══ Container water estimate ═══ */
.rr-cwater{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--surface-muted,#eef3ee)}
.rr-cwater-row{display:flex;justify-content:space-between;font-size:13px;margin:1px 0}
.rr-cwater-label{color:var(--text-tertiary,#839087);font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.rr-cwater-note{font-size:11px;color:var(--text-secondary,#5f6d63);margin:6px 0 0;line-height:1.4}

/* ═══ Space card water guidance ═══ */
.space-card-water{margin-top:10px;padding-top:8px;border-top:1px solid var(--line,#e1e8e2)}
.space-card-water-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong,#4e7a4b);font-weight:600;margin-bottom:4px}

/* ═══ Today guided header ═══ */
.rr-today-header{margin-bottom:4px}
.rr-today-header b{display:block;font-size:16px;color:var(--text,#1e2a22)}
.rr-today-header span{font-size:13px;color:var(--text-secondary,#5f6d63)}

/* ═══ Photo journaling ═══ */
.planting-photos-fs{margin-top:12px}
.rr-photos-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary,#839087);font-weight:600;margin-bottom:6px}
.rr-photo-strip{display:flex;flex-wrap:wrap;gap:8px}
.rr-photo-tile{position:relative;width:84px;height:84px;border-radius:8px;overflow:hidden;background:var(--surface-muted,#eef3ee)}
.rr-photo-tile img{width:100%;height:100%;object-fit:cover;display:block}
.rr-photo-del{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:14px;line-height:1;cursor:pointer;padding:0}
.rr-photo-date{position:absolute;bottom:0;left:0;right:0;font-size:9px;color:#fff;background:rgba(0,0,0,.5);text-align:center;padding:1px 0}
.rr-photo-add{display:flex;align-items:center;justify-content:center;width:84px;height:84px;border:1.5px dashed var(--line-strong,#c9d3ca);border-radius:8px;font-size:12px;color:var(--accent-strong,#4e7a4b);cursor:pointer;text-align:center}
.pl-photos-hint{font-size:12px;color:var(--text-tertiary,#839087);margin-top:10px;font-style:italic}

/* ═══ Forecast track record ═══ */
.rr-today-progress{border-left:3px solid #4a6fa5}
.rr-track{margin-top:10px}
.rr-track-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary,#839087);font-weight:600;margin-bottom:6px}
.rr-track-headline{font-size:14px;margin:0 0 2px}
.rr-track-conf{font-size:12px;color:var(--text-secondary,#5f6d63);margin:0 0 8px}
.rr-track-empty{font-size:13px;color:var(--text-secondary,#5f6d63);line-height:1.5}
.rr-track-list{display:flex;flex-direction:column;gap:4px}
.rr-track-row{display:flex;align-items:center;gap:10px;font-size:13px}
.rr-track-crop{flex:1}
.rr-track-ratio{font-weight:700}
.rr-track-over{color:#2e7d32}.rr-track-under{color:#a5601b}.rr-track-on{color:var(--accent-strong,#4e7a4b)}
.rr-track-n{font-size:11px;color:var(--text-tertiary,#839087)}

/* ═══ Photo journaling (IndexedDB) additions ═══ */
.rr-photo-ph{background:var(--surface-muted,#eef3ee)}
.rr-photos-note{font-size:10px;color:var(--text-tertiary,#839087);margin-top:6px}

/* ═══ Catalog inline verified photos ═══ */
.rr-catimg.has-photo{position:relative;overflow:hidden;border-radius:10px}
.rr-catimg-photo{width:100%;height:100%;object-fit:cover;display:block;min-height:120px;background:var(--surface-muted,#eef3ee)}
.rr-catimg-badge.exact{position:absolute;top:6px;left:6px;background:rgba(46,125,50,.92);color:#fff;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px}
.rr-catimg-attrib{position:absolute;bottom:0;left:0;right:0;font-size:9px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6));padding:8px 6px 3px;text-decoration:none;text-align:right}
.rr-catimg-attrib:hover{text-decoration:underline}

/* ═══ Rootstock (fruit tree) ═══ */
.pl-rootstock-hint{font-size:11px;color:var(--text-tertiary,#839087);margin:6px 0 0;line-height:1.4}
.rr-rs-effects{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--surface-muted,#eef3ee);border-left:3px solid var(--accent,#6f9d6c)}
.rr-rs-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin:2px 0}
.rr-rs-row span{color:var(--text-tertiary,#839087);text-transform:uppercase;font-size:10px;letter-spacing:.03em}
.rr-rs-row b{text-align:right}
.rr-rs-good{color:#2e7d32}
.rr-rs-warn{color:#a5281b}
.rr-rs-note{font-size:11px;color:var(--text-secondary,#5f6d63);margin:6px 0 0;font-style:italic}

/* ═══ Rootstock line in plantings ledger ═══ */
.fp-rootstock{font-size:11px;color:var(--accent-strong,#4e7a4b);margin-top:2px}

/* ═══ Orchard rootstock expander ═══ */
.orchard-rootstock-details{margin-top:8px;font-size:12px}
.orchard-rootstock-details summary{cursor:pointer;color:var(--accent-strong,#4e7a4b);font-weight:600}

/* ═══ Pollination ═══ */
.rr-pollen{font-size:12px;margin-top:8px;padding:6px 10px;border-radius:8px}
.rr-pollen.ok{background:#eef5ee;color:#2e6d32}
.rr-pollen.warn{background:#fdf3e7;color:#8a5a1b}
.rr-pollen-note{opacity:.8;font-size:11px}

.rr-harvest-chip{display:inline-block;font-size:10px;font-weight:600;padding:1px 7px;border-radius:10px;margin-left:2px;vertical-align:middle}
.rr-hc-early{background:#e8f4ea;color:#2e7d43}
.rr-hc-mid{background:#fef4e4;color:#b06a12}
.rr-hc-late{background:#eae7f4;color:#5a3fb0}

.cbrowse-resultbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:2px 0 6px}
.cbrowse-sortbtn.on{background:var(--accent,#6a8f6d);color:#fff}

/* ── v12.122, bottom-bar de-duplication + FAB placement (device-reported) ─────
   On phones, three fixed elements stacked at the bottom:
   (1) .mobile-bottom-nav, canonical nav (rebuilt by integration-v1287d) had 5 items in a 4-col grid
   (2) .rr79-mobile-nav  , an OLDER duplicate bottom nav from marketability-v1279, never removed
   (3) #rr-grok-bug-fab  , the Report-a-bug FAB sat on the nav's right edge
   Fix: keep the canonical nav (correct its columns), retire the v1279 duplicate,
   and lift the FAB clear of the nav. CSS-only; no JS/data/write-path change. */
@media (max-width:820px){
  .mobile-bottom-nav{grid-template-columns:repeat(5,1fr)!important}
  #rr79-mobile-nav{display:none!important}
  #rr-grok-bug-fab{bottom:calc(80px + env(safe-area-inset-bottom))!important;right:14px!important}
}

/* ── v12.125, QA sweep: form-control overflow guard (medium79 select overflowed viewport) ── */
select,input,textarea{max-width:100%}
.form-grid,.market-form-grid{min-width:0}
.form-grid select,.form-grid input,.form-grid textarea{max-width:100%;box-sizing:border-box}

/* v12.135, Developer/Diagnostics opt-in toggle (Full mode only) */
.rr-dev-toggle{opacity:.6;font-size:12px}
.rr-dev-toggle:hover{opacity:1}

/* Batch4: sample tour, hide mutation controls on orchard cards */
html[data-rr-sample="1"] .log-btn,
html[data-rr-sample="1"] .remove-btn,
html[data-rr-sample="1"] button.log-btn,
html[data-rr-sample="1"] .inline-log-panel,
html[data-rr-sample="1"] .inline-log-actions,
html[data-rr-sample="1"] [onclick*="toggleCardQuickLog"],
html[data-rr-sample="1"] [onclick*="saveCardQuickLog"],
html[data-rr-sample="1"] [onclick*="openModal"],
html[data-rr-sample="1"] [onclick*="removeTree"],
html[data-rr-sample="1"] [onclick*="openAddModal"],
html[data-rr-sample="1"] [onclick*="openFieldAction"],
html[data-rr-sample="1"] [onclick*="openWaterModal"],
html[data-rr-sample="1"] .orchard-actions .btn-danger,
html[data-rr-sample="1"] .tree-card .remove-btn {
  display: none !important;
}
html[data-rr-sample="1"] .rr87d-quick-grid { display: none !important; }

/* v12.173, property map grid-snap overlay */
.v1267-map-grid{background-image:linear-gradient(to right,rgba(120,140,120,.14) 1px,transparent 1px),linear-gradient(to bottom,rgba(120,140,120,.14) 1px,transparent 1px);background-size:5% 5%}

/* v12.173b, property map: precise-layout selection + alignment */
.v1267-alignbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;margin:8px 0;border-radius:10px;background:color-mix(in srgb,var(--rr-sage,#7fa77b) 12%,transparent);border:1px solid color-mix(in srgb,var(--rr-sage,#7fa77b) 28%,transparent)}
.v1267-alignbar-count{font-weight:700;font-size:12px;margin-right:4px}
.v1267-map-row .v1267-sel{margin-right:8px;width:16px;height:16px;flex-shrink:0}
.v1267-map-item.v1267-selected{outline:2px solid var(--rr-gold,#d8a44a);outline-offset:2px;z-index:5}

/* v12.175, property map spacing intelligence advisory */
.v1267-spacing{margin:10px 0;padding:10px;border-radius:10px;background:color-mix(in srgb,#c9772f 12%,transparent);border:1px solid color-mix(in srgb,#c9772f 30%,transparent)}
.v1267-spacing-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:13px}
.v1267-spacing-note,.v1267-spacing-ok{font-size:12px;color:var(--ink-soft,#6a6a6a);margin:8px 0}

/* v12.177, to-scale map footprints keep label centered + circular */
.v1267-map-item[style*="aspect-ratio"]{display:flex;align-items:center;justify-content:center;border-radius:50%}

/* v12.184, score workspace: ensure the command grid actually stacks on phones.
   A later base (non-media) .score-command-grid 3-column rule was overriding the
   <=820px stack; this appended rule wins the cascade and keeps mobile single-column. */
@media(max-width:820px){
  .score-command-grid{grid-template-columns:1fr}
  .score-command-radar,.score-radar{max-width:100%;overflow:hidden}
  .score-radar{min-width:0!important}
  .score-radar-main{min-width:0!important;max-width:100%}
  .score-radar-head{max-width:100%;flex-wrap:wrap;gap:6px}
  .score-radar-scroll{overflow-x:auto;max-width:100%}
}

/* v12.186, garden crops on the season timeline */
.timeline-garden-head{display:flex;align-items:baseline;gap:8px;padding:9px 16px 5px;border-top:1px solid var(--line);background:var(--surface-soft)}
.timeline-garden-head span{font-size:11px;font-weight:750;color:var(--text-secondary)}
.timeline-garden-head small{font-size:9.5px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}
.timeline-bar.garden-grow{top:20px;height:7px;background:linear-gradient(90deg,var(--sage,#7a9a5e),color-mix(in srgb,var(--gold-bright,#e0a82e) 70%,var(--sage,#7a9a5e)));opacity:.85}
.garden-mark{position:absolute;top:15px;width:8px;height:8px;margin-left:-4px;border-radius:2px;border:2px solid var(--paper-2);box-shadow:0 0 0 1px rgba(0,0,0,.08);z-index:5}
.garden-mark.garden-sow{background:#8bbf6a;border-radius:50%}
.garden-mark.garden-transplant{background:#4e9ac9}
.garden-mark.garden-harvest{background:var(--gold-bright,#e0a82e);transform:rotate(45deg)}

/* v12.187, yard-as-canvas hierarchy */
.yard-canvas-head{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line,#d8e0d4);border-left:3px solid #5b7553;border-radius:9px;background:color-mix(in srgb,#5b7553 7%,var(--panel2,#fff));margin-bottom:6px}
.yard-canvas-head .yard-row-body b{font-size:13px}
.yard-canvas-head .yard-row-body small{color:var(--text-secondary,#5a6b52)}
.yard-inside-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary,#8a9a82);margin:8px 0 5px;padding-left:2px}
.yard-outside{color:var(--warning,#b5762e);font-weight:600}
.yard-outside-label{margin-top:12px}

/* ═══════════════════════════════════════════════════════════════════════
   ALSOS BRAND TOKENS, authoritative override (Phase A). Re-points the
   semantic token system to the locked ALSOS palette; propagates app-wide
   because the app is token-based. Remove this block to fully revert.
   Palette: Deep #0F2A1E · Forest #2E5A3A/#315B3A · Sage #6A8F6D/#A7B99C
            Cream #F7F3E8 · Graphite #1F2A1F · Signal #F28C2E (semantic only)
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --paper:#f7f3e8; --paper-2:#fffdf6; --paper-3:#efe9db; --paper-edge:#e4decb;
  --ink:#1f2a1f; --ink-soft:#44523f; --ink-faint:#6b7866; --ink-ghost:#a7b39f;
  --orchard:#2e5a3a; --orchard-deep:#1f3d2b; --orchard-lite:#6a8f6d;
  --russet:#b0553c; --russet-deep:#8c3b2e; --gold:#c58a2e; --gold-bright:#e0a94e; --plum:#4b5f4a;
  --line:#e4decb; --line-strong:#d3cbb4;
  --canvas:#f7f3e8; --surface:#fffdf6; --surface-raised:#fffdf6; --surface-soft:#efe9db;
  --surface-muted:#e6dfce; --surface-inverse:#0f2a1e;
  --text-primary:#1f2a1f; --text-secondary:#54634e; --text-tertiary:#84907c;
  --accent:#2e5a3a; --accent-strong:#1f3d2b; --accent-soft:#dde7dc; --accent-bright:#6a8f6d;
  --warm:#f28c2e; --warm-soft:#fbe7d2;
  --sage:#6a8f6d; --sage-light:#a7b99c; --signal:#f28c2e;
}
html[data-theme="dark"]{
  --paper:#0f2a1e; --paper-2:#16241d; --paper-3:#1c3327; --paper-edge:#26402f;
  --ink:#f7f3e8; --ink-soft:#c4d3c7; --ink-faint:#93a897; --ink-ghost:#6f8676;
  --canvas:#0f2a1e; --surface:#16241d; --surface-raised:#16241d; --surface-soft:#1c3327;
  --surface-muted:#22402f; --surface-inverse:#0b1f16;
  --text-primary:#f7f3e8; --text-secondary:#b8ccbf; --text-tertiary:#89a08f;
  --line:#26402f; --line-strong:#31543c;
  --accent:#6a8f6d; --accent-strong:#86a473; --accent-soft:#1f3d2b; --accent-bright:#a7b99c;
  --orchard:#6a8f6d; --orchard-deep:#86a473; --orchard-lite:#a7b99c;
  --warm:#f28c2e; --warm-soft:#3a2a1c;
}
/* Shell chrome: recolor hardcoded masthead/sidebar greens to ALSOS deep, and the active-nav ink */
.masthead{background:#0f2a1e !important}
.app-header .logo-sub, .logo-sub{color:#a7b99c}
.nav-tab.active{color:#0f2a1e}
.nav-tab.active .nav-icon{background:#dde7dc; color:#2e5a3a}
html[data-theme="dark"] .sidebar{background:linear-gradient(180deg,#12271d 0%,#0b1f16 100%); border-color:#26402f}
.sidebar{background:#0f2a1e}
/* ALSOS wordmark in the sidebar brand, flared/serif feel, matches the outlined wordmark */
.brand-name-alsos{font-family:"Optima","Optima Nova","Gill Sans","Gill Sans MT",Candara,var(--body);
  font-weight:600; letter-spacing:.16em; font-size:20px; color:#f7f3e8; padding-left:.06em}
.brand-mark svg{width:40px; height:40px}
/* Semantic-orange rule: signal is reserved. Any decorative use of --warm elsewhere inherits the signal orange. */

/* ═══ ALSOS domain hubs (single-system nav) ═══ */
.domain-hub{max-width:760px;margin:0 auto}

.domain-tile.is-hero{grid-column:1/-1;background:var(--accent-soft,#d9edeb);border-color:var(--accent-bright,#6a8f6d);padding:18px 16px;box-shadow:0 8px 22px rgba(46,90,58,.10)}.domain-tile.is-hero .domain-tile-icon{width:48px;height:48px;background:var(--accent,#2e5a3a);color:#fff}.domain-tile.is-hero b{font-size:.98rem}.domain-tile.is-hero small{color:var(--ink-soft)}
.domain-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.domain-tile{display:flex;align-items:center;gap:12px;text-align:left;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 14px;color:var(--text-primary);box-shadow:0 6px 18px rgba(15,42,30,.05);transition:transform .12s,box-shadow .12s,border-color .12s}
.domain-tile:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(15,42,30,.10);border-color:var(--accent-bright)}
.domain-tile-icon{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.domain-tile-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.domain-tile-text{min-width:0;display:flex;flex-direction:column;gap:2px}
.domain-tile-text b{font-size:15.5px;font-weight:700;line-height:1.15}
.domain-tile-text small{font-size:12px;color:var(--text-secondary)}
.domain-tile-go{margin-left:auto;color:var(--text-tertiary);font-size:20px;line-height:1}
@media(max-width:520px){.domain-grid{grid-template-columns:1fr}}

/* ═══ ALSOS loader + wordmark (brand cleanup) ═══ */
.rr-loader{background:#0f2a1e !important;color:#f7f3e8 !important}
.rr-loader-logo{width:128px;height:128px;display:block;margin:0 auto 18px}
.rr-loader-wordmark{display:block;height:34px;width:auto;margin:0 auto 10px}
.rr-loader-tag{font-family:var(--body);color:#86a473;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;text-align:center}
.rr-loader-name,.rr-loader-sub{display:none}
/* sidebar canonical wordmark (replaces OS-font text) */
.brand-wordmark{display:block;height:20px;width:auto}

/* ═══ Yard Map → Build My Garden connection ═══ */
.yard-bmg-prompt{display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,var(--accent-soft),var(--surface));
  border:1px solid var(--accent-bright);border-radius:14px;padding:14px 16px;margin:0 0 14px;box-shadow:0 6px 18px rgba(15,42,30,.08)}
.yard-bmg-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.yard-bmg-text b{font-size:15px;color:var(--text-primary)}
.yard-bmg-text small{font-size:12px;color:var(--text-secondary)}
.yard-bmg-prompt .btn{flex:none;white-space:nowrap}
.yard-bmg-x{flex:none;background:none;border:none;font-size:20px;line-height:1;color:var(--text-tertiary);cursor:pointer;padding:2px 6px}
.yard-bmg-x:hover{color:var(--text-primary)}
.yard-bmg-persist{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;
  background:var(--accent);color:#fff;font-weight:700;font-size:14.5px;border-radius:12px;padding:12px 16px;margin:0 0 14px;
  box-shadow:0 6px 16px rgba(46,90,58,.28);transition:transform .12s,box-shadow .12s}
.yard-bmg-persist:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(46,90,58,.34)}
.yard-bmg-leaf{font-size:16px}

/* ═══ Yard Map, natural (illustration) view ═══ */
.yard-viewtoggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 10px}
.yard-vt{background:var(--surface);border:none;padding:8px 15px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:background .12s,color .12s}
.yard-vt+.yard-vt{border-left:1px solid var(--line)}
.yard-vt.active{background:var(--accent);color:#fff}
.yard-illustration{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#eef2e6}
.yard-illus-svg{width:100%;height:auto;display:block}
.yard-illus-label{font-family:var(--body,system-ui,sans-serif);font-weight:700;font-size:13px;fill:#2b3a28}
.yard-illus-sub{font-family:var(--body,system-ui,sans-serif);font-size:11px;fill:#5a6b52}

/* ═══ Planning Board (annual lifecycle) ═══ */
.pb-wrap{max-width:1100px;margin:0 auto}
.pb-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.pb-top h2{margin:0 0 2px;font-size:22px}
.pb-top p{margin:0;color:var(--text-secondary);font-size:13.5px}
.pb-restart{flex:none;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:700;font-size:13.5px;cursor:pointer}
.pb-restart:hover{background:var(--accent-strong)}
.pb-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.pb-col{background:var(--surface-soft);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:120px}
.pb-col-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;padding:4px 4px 2px}
.pb-col-head span{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1px 9px;font-size:12px;font-weight:700}
.pb-head-planned b{color:#8a6410}.pb-head-growing b{color:var(--accent)}.pb-head-post b{color:var(--text-tertiary)}
.pb-col-sub{font-size:11.5px;color:var(--text-tertiary);padding:0 4px 8px}
.pb-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent-bright);border-radius:10px;padding:10px;margin-bottom:8px}
.pb-planned{border-left-color:#c9a94e}.pb-growing{border-left-color:var(--accent)}.pb-post{border-left-color:var(--ink-ghost)}
.pb-card-body b{display:block;font-size:14px}
.pb-card-body small{display:block;font-size:11.5px;color:var(--text-secondary)}
.pb-adv{margin-top:8px;background:var(--accent-soft);color:var(--accent);border:none;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer}
.pb-adv:hover{background:var(--accent-bright);color:#fff}
.pb-empty{color:var(--text-tertiary);font-size:12px;padding:8px 4px;font-style:italic}
.pb-peren{margin-top:16px;background:var(--surface-soft);border:1px solid var(--line);border-radius:14px;padding:12px}
.pb-peren-head{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:8px}
.pb-peren-head span{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1px 9px;font-size:12px;font-weight:700}
.pb-peren-head small{color:var(--text-tertiary);font-weight:400}
.pb-peren-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pb-chip{display:inline-block;font-size:11px;color:var(--text-secondary);margin-top:2px}
.pb-blank,.pb-empty{text-align:center}.pb-blank{padding:40px 16px;color:var(--text-secondary)}.pb-blank b{display:block;font-size:16px;color:var(--text-primary);margin-bottom:4px}
@media(max-width:640px){.pb-cols{grid-template-columns:1fr}.pb-top{flex-direction:column}}

/* ═══ Planning Board, placement (sun-matched) UI ═══ */
.pb-top-btns{display:flex;gap:8px;flex:none}
.pb-optimize{background:var(--accent-strong,#2E5A3A);color:#fff;border:none;border-radius:10px;padding:10px 15px;font-weight:700;font-size:13.5px;cursor:pointer}
.pb-optimize:hover{filter:brightness(1.08)}
.pb-card-actions{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.pb-space-row{margin-top:6px}
.pb-space{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--text-secondary);background:var(--accent-soft);border-radius:20px;padding:2px 9px;cursor:help}
.pb-lock{background:none;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px;cursor:pointer;line-height:1}
.pb-lock.on{background:var(--accent-soft);border-color:var(--accent-bright)}
.pb-lock:hover{border-color:var(--accent)}
@media(max-width:640px){.pb-top-btns{flex-direction:column;width:100%}.pb-optimize,.pb-restart{width:100%}}

/* ═══ Alsos loader, orange active-window ring sweep (replaces legacy root-growth) ═══ */
.rr-loader-markwrap{position:relative;width:150px;height:150px;margin:0 auto}
.rr-loader-markwrap .rr-loader-logo{position:absolute;inset:0;width:150px;height:150px;margin:0}
.rr-loader-ring{position:absolute;inset:0;width:150px;height:150px;overflow:visible;z-index:2;transform:rotate(-4deg)}
.rr-ring-sweep{fill:none;stroke:#F28C2E;stroke-width:15;stroke-linecap:round;
  stroke-dasharray:105 1265;stroke-dashoffset:1370;opacity:0;
  filter:drop-shadow(0 0 5px rgba(242,140,46,.35))}
.rr-loader.rr-trace-on .rr-ring-sweep{opacity:1;animation:rrRingSweep 1.15s cubic-bezier(.32,.66,.28,1) forwards}
@keyframes rrRingSweep{from{stroke-dashoffset:1370}to{stroke-dashoffset:292}}
@media(prefers-reduced-motion:reduce){.rr-ring-sweep{display:none}}

/* ═══ Desktop 5-domain IA parity (Today · Orchard · Garden · Plan · Records) ═══ */
.desktop-domain-nav{display:flex;flex-direction:column;gap:4px;padding:8px 14px 6px}
.dnav-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 13px;border:0;border-radius:12px;background:transparent;color:#c3d6c8;font-size:15px;font-weight:680;letter-spacing:.01em;text-align:left;cursor:pointer;transition:background .16s,color .16s}
.dnav-item svg{width:20px;height:20px;flex:none}
.dnav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.dnav-item.active{background:#fff;color:#0d4a45;box-shadow:0 8px 20px rgba(0,0,0,.14)}
.dnav-item.active svg{color:#2e5a3a}
.alltools-toggle{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 28px);margin:4px 14px 2px;padding:8px 13px;border:0;border-radius:10px;background:transparent;color:#9bb39f;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;cursor:pointer}
.alltools-toggle:hover{background:rgba(255,255,255,.06);color:#cfe0d4}
.alltools-chev{transition:transform .18s ease;font-size:15px}
.alltools-toggle.open .alltools-chev{transform:rotate(90deg)}
.primary-nav.alltools-collapsed{display:none}
/* mobile: bottom-nav owns the 5 domains; hide desktop domain nav + keep the horizontal tab strip as-is */
@media(max-width:980px){.desktop-domain-nav{display:none}.alltools-toggle{display:none}.primary-nav.alltools-collapsed{display:flex}}

/* Use-my-location button (geolocation) */
.rr1275-geo{background:var(--surface-soft,#eef2e6);color:var(--accent,#2e5a3a);border:1px solid var(--line);font-weight:600;white-space:nowrap}
.rr1275-geo:hover{background:var(--accent-soft);border-color:var(--accent-bright)}
.rr1275-location-row{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:520px){.rr1275-location-row{flex-direction:column}.rr1275-geo{width:100%}}

/* Choose Trees (portfolio optimizer surface) */
.ct-wrap{display:flex;flex-direction:column;gap:14px}
.ct-timeline{position:relative;height:104px;margin:20px 6px 10px}.ct-timeline:before{content:"";position:absolute;left:0;right:0;top:52px;height:2px;background:var(--line-strong)}.ct-mark{position:absolute;top:48px;transform:translateX(-50%);width:76px;text-align:center}.ct-mark i{display:block;width:9px;height:9px;border-radius:50%;background:var(--orchard,#2e5a3a);margin:0 auto;box-shadow:0 0 0 3px var(--paper);position:relative;z-index:2}.ct-mark b{position:absolute;left:50%;transform:translateX(-50%);width:82px;font-size:.7rem;color:var(--ink);font-weight:600;line-height:1.12}.ct-mark small{position:absolute;left:50%;transform:translateX(-50%);width:82px;font-size:.6rem;color:var(--ink-faint)}.ct-mk-up b{bottom:20px}.ct-mk-up small{bottom:8px}.ct-mk-down b{top:16px}.ct-mk-down small{top:31px}


.ct-fit{margin:2px 0 12px}.ct-fit-pill{display:inline-flex;align-items:baseline;gap:5px;font:inherit;font-size:.82rem;color:var(--ink-soft,#4f4334);background:var(--ic-gold-bg,#efe4cc);border:1px solid var(--ic-gold-fg,#856a34);border-radius:999px;padding:4px 12px;cursor:pointer}.ct-fit-pill b{font-size:1rem;color:var(--ic-gold-fg,#856a34);font-weight:700}.ct-fit-caret{transition:transform .15s;font-size:.7rem}.ct-fit.open .ct-fit-caret{transform:rotate(180deg)}.ct-fit-body{display:none;margin-top:10px;padding:11px 13px;border:1px solid var(--line,#c8b99a);border-radius:10px;background:var(--paper,#f4efe2)}.ct-fit.open .ct-fit-body{display:block}.ct-fit-meta{font-size:.74rem;color:var(--ink-faint,#8a7c66);margin:0 0 9px;line-height:1.4}.ct-fit-table{width:100%;border-collapse:collapse;font-size:.76rem}.ct-fit-table th{text-align:left;color:var(--ink-faint,#8a7c66);font-weight:600;border-bottom:1px solid var(--line,#c8b99a);padding:3px 6px}.ct-fit-table td{padding:3px 6px;border-bottom:1px solid var(--line-soft,#e5dcc8);color:var(--ink-soft,#4f4334)}.ct-fit-adjust{margin-top:10px;background:none;border:none;color:var(--accent,#2e5a3a);font:inherit;font-size:.78rem;text-decoration:underline;cursor:pointer;padding:0}
.ct-goals{margin:2px 0 14px}.ct-goals-label{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:6px}.ct-goal-seg{display:flex;flex-wrap:wrap;gap:6px}.ct-goal-btn{font:inherit;font-size:.72rem;padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);cursor:pointer;transition:all .12s}.ct-goal-btn:hover{border-color:var(--line-strong)}.ct-goal-btn.is-on{background:var(--accent,#2e5a3a);border-color:var(--accent,#2e5a3a);color:#fff;font-weight:600}

.ct-deeper-row{display:flex;flex-direction:column;gap:8px}.ct-deeper-link{display:block;text-align:left;font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper);cursor:pointer;transition:border-color .12s}.ct-deeper-link:hover{border-color:var(--accent,#2e5a3a)}.ct-deeper-link b{display:block;font-size:.82rem;color:var(--ink);font-weight:600}.ct-deeper-link small{display:block;font-size:.7rem;color:var(--ink-faint);margin-top:2px}

.ct-build-counts{margin-top:4px}.ct-seq{list-style:none;counter-reset:seq;margin:14px 0 6px;padding:0}.ct-seq-item{counter-increment:seq;position:relative;padding:10px 0 10px 34px;border-top:1px solid var(--line)}.ct-seq-item:before{content:counter(seq);position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;background:var(--accent,#2e5a3a);color:#fff;font-size:.72rem;font-weight:600;display:grid;place-items:center}.ct-seq-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.ct-seq-name{font-weight:600;color:var(--ink);font-size:.9rem}.ct-seq-when{font-size:.68rem;color:var(--ink-faint)}.ct-seq-why{margin:4px 0 0;padding-left:16px}.ct-seq-why li{font-size:.72rem;color:var(--ink-soft);line-height:1.35}



.qb-rot{background:none;border:none}.qb-rot-dot{display:block;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--accent,#2e5a3a);box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:grab}.qb-snap{font-size:.74rem;color:var(--ink-soft,#4f4334);display:inline-flex;align-items:center;gap:4px;margin-left:8px;cursor:pointer}.qb-snap input{margin:0}
.qb-handle{background:none;border:none}.qb-handle-dot{display:block;width:22px;height:22px;border-radius:50%;background:var(--accent,#2e5a3a);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);cursor:grab}.qb-handle-dot:active{cursor:grabbing}

.qb-preset{font:inherit;font-size:.72rem;padding:3px 8px;margin-right:4px;border:1px solid var(--line,#c8b99a);border-radius:999px;background:var(--paper,#f4efe2);color:var(--ink-soft,#4f4334);cursor:pointer}.qb-preset.on{background:var(--accent,#2e5a3a);border-color:var(--accent,#2e5a3a);color:#fff}
.yard-quick-bar{flex-wrap:wrap;align-items:center;gap:6px}.yard-quick-label{font-size:.72rem;font-weight:600;color:var(--ink-soft,#4f4334);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.qb-type{font-size:.78rem;padding:6px 11px}.yard-quick-panel{background:var(--accent-soft,#d9edeb);border:1px solid var(--accent-bright,#6a8f6d);border-radius:12px;padding:10px 12px;margin:8px 0}.qb-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0}.qb-label{font-weight:600;color:var(--ink,#2a2118)}.qb-size{font-size:.82rem;color:var(--ink-soft,#4f4334)}.qb-num{width:52px;padding:4px 6px;border:1px solid var(--line,#c8b99a);border-radius:6px;font:inherit;font-size:.82rem}.qb-hint{font-size:.74rem;color:var(--ink-faint,#8a7c66)}
.ct-card{padding:16px 18px}
.ct-h{font-size:1.02rem;margin:0 0 4px;color:var(--ink)}
.ct-sub{font-size:.85rem;color:var(--ink-faint);margin:0 0 12px;line-height:1.5}


.ct-tick{position:absolute;top:44px;transform:translateX(-50%);text-align:center}
.ct-tick i{display:block;width:1px;height:8px;background:var(--ink-ghost);margin:0 auto}
.ct-tick b{display:block;font-size:.68rem;color:var(--ink-faint);font-weight:600;margin-top:2px}




.ct-note{font-size:.78rem;margin:8px 0 0;padding:7px 10px;border-radius:7px;line-height:1.45}
.ct-note-warn{background:var(--badge-planned);color:var(--ink-soft)}
.ct-note-dim{color:var(--ink-faint)}
.ct-rec .ct-pick{display:flex;align-items:center;gap:10px;margin:2px 0 10px}
.ct-pick-name{font-size:1.28rem;font-weight:700;color:var(--ink)}
.badge.ct-strong{background:var(--orchard);color:#fff;font-size:.68rem;padding:2px 8px;border-radius:20px}
.ct-why{margin:0 0 12px;padding-left:18px}
.ct-why li{font-size:.88rem;color:var(--ink-soft);line-height:1.5;margin:3px 0}
.ct-more{border-top:1px solid var(--line);padding-top:10px}
.ct-more summary{font-size:.82rem;color:var(--orchard-deep);cursor:pointer;font-weight:600}
.ct-e-block{padding:10px 0 2px}
.ct-e-line{font-size:.82rem;color:var(--ink-soft);margin:4px 0}
.ct-prov{color:var(--ink-ghost);font-size:.74rem}
.ct-etable{width:100%;border-collapse:collapse;margin-top:8px;font-size:.78rem}
.ct-etable th{text-align:left;color:var(--ink-faint);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--line)}
.ct-etable td{padding:4px 6px;border-bottom:1px solid var(--line);color:var(--ink-soft);vertical-align:top}
.ct-runners{margin-top:12px;font-size:.8rem;color:var(--ink-faint)}
.ct-runner{display:inline-block;margin-right:10px;color:var(--ink-soft)}
.ct-runner small{color:var(--ink-ghost)}
.ct-caveat{font-size:.76rem;color:var(--ink-faint);margin:12px 0 0;font-style:italic;line-height:1.45}
.ct-drow{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.ct-drow:last-child{border-bottom:0}
.ct-dname{flex:0 0 118px;font-size:.84rem;font-weight:600;color:var(--ink)}
.ct-chips{display:flex;flex-wrap:wrap;gap:5px}
.ct-chip{font-size:.68rem;padding:2px 7px;border-radius:20px;font-weight:600;border:1px solid transparent}
.ct-good{background:#dde9d2;color:#2f5233}
.ct-mid{background:#efe2c4;color:#6b5626}
.ct-bad{background:#eed6cc;color:#7a3b26}
.ct-mixed{background:#e4ddc8;color:#6b6144}
.ct-unknown{background:#e8e4da;color:#8a7c66}
td.ct-good{background:none;color:#2f5233;font-weight:600}
td.ct-mid{background:none;color:#8a6a2a;font-weight:600}
td.ct-bad{background:none;color:#a04a2c;font-weight:600}
td.ct-mixed{background:none;color:#6b6144;font-weight:600}
.ct-empty{text-align:center;padding:32px 18px}

/* botanical touch-box icon palette: restrained, tokenized; color in the icon + soft container tint only */


.market61-head{display:flex;align-items:flex-start;gap:11px}
.cat-sourced{margin:10px 0;padding:10px 12px;border:1px solid var(--accent-bright,#6a8f6d);border-radius:10px;background:var(--accent-soft,#d9edeb)}.cat-src-row{display:flex;gap:8px;font-size:.82rem;padding:2px 0;line-height:1.4}.cat-src-k{flex:none;width:112px;font-weight:600;color:var(--accent,#2e5a3a)}.cat-src-v{color:var(--ink-soft,#4f4334)}.cat-src-prov{margin-top:7px;padding-top:6px;border-top:1px solid var(--accent-bright,#6a8f6d);font-size:.72rem;color:var(--ink-faint,#8a7c66)}

.ct-fit-note{margin:2px 0 8px;padding:6px 9px;border-radius:7px;background:var(--paper,#f4efe2);border:1px dashed var(--line,#c8b99a);font-size:.74rem;color:var(--ink-soft,#4f4334);line-height:1.4}html[data-theme="dark"] .ct-fit-note{background:#26241d}
.cat-crop-ic{flex:none;width:40px;height:40px;border-radius:10px;background:#ece5d3;display:flex;align-items:center;justify-content:center}html[data-theme="dark"] .cat-crop-ic{background:#2a271f}.cat-crop-ic svg{width:27px;height:27px;stroke:none}
svg:has(use[href*="-rich"]){stroke:none}
.domain-tile-icon.ic-rich{background:#ece5d3}html[data-theme="dark"] .domain-tile-icon.ic-rich{background:#2a271f}.domain-tile-icon.ic-rich svg{width:26px;height:26px;stroke:none}
.domain-tile-icon.ic-forest{background:var(--ic-forest-bg);color:var(--ic-forest-fg)}.domain-tile-icon.ic-sage{background:var(--ic-sage-bg);color:var(--ic-sage-fg)}.domain-tile-icon.ic-gold{background:var(--ic-gold-bg);color:var(--ic-gold-fg)}.domain-tile-icon.ic-blue{background:var(--ic-blue-bg);color:var(--ic-blue-fg)}.domain-tile-icon.ic-teal{background:var(--ic-teal-bg);color:var(--ic-teal-fg)}.domain-tile-icon.ic-plum{background:var(--ic-plum-bg);color:var(--ic-plum-fg)}.domain-tile-icon.ic-clay{background:var(--ic-clay-bg);color:var(--ic-clay-fg)}
/* hero keeps the solid accent fill (do not tint) */.domain-tile.is-hero .domain-tile-icon{background:var(--accent,#2e5a3a);color:#fff}
/* Next Best Action card (S11-18) */
.rr-nba{margin:0 0 16px;padding:16px 18px;border-radius:14px;background:var(--card,#fbf7ec);border:1px solid rgba(42,33,24,.10);border-left:4px solid var(--accent,#2e5a3a);box-shadow:0 1px 3px rgba(42,33,24,.06)}
.rr-nba-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent,#2e5a3a);opacity:.85;margin-bottom:5px}
.rr-nba-label{font-size:16px;font-weight:650;line-height:1.3;color:var(--ink,#2a2118);margin-bottom:4px}
.rr-nba-why{font-size:13.5px;line-height:1.5;color:var(--ink,#2a2118);opacity:.78;margin-bottom:12px}
.rr-nba-cta{appearance:none;border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:650;padding:8px 14px;border-radius:9px;background:var(--accent,#2e5a3a);color:#fff;transition:filter .15s}
.rr-nba-cta:hover{filter:brightness(1.08)}
.rr-nba-urgent{border-left-color:var(--warm,#c55d3d)}
.rr-nba-urgent .rr-nba-eyebrow{color:var(--warm,#c55d3d)}
.rr-nba-urgent .rr-nba-cta{background:var(--warm,#c55d3d)}
.rr-nba-warn{border-left-color:#c79a2e}
.rr-nba-warn .rr-nba-eyebrow{color:#a6800f}
.rr-nba-onboard{border-left-color:var(--accent,#2e5a3a);background:linear-gradient(180deg,rgba(46,90,58,.06),transparent)}
html[data-theme="dark"] .rr-nba{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08)}

/* R3 NBA priority semantics: confidence + snooze/dismiss/done controls */
.rr87d-nba-conf{display:inline;margin-left:8px;font-style:normal;font-size:11px;font-weight:500;opacity:.62}
.rr87d-nba-conf::before{content:"\00B7";margin-right:6px;opacity:.7}
.rr87d-nba-controls{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.rr87d-nba-controls button{appearance:none;border:1px solid rgba(42,33,24,.16);background:transparent;color:var(--ink,#2a2118);opacity:.72;font:inherit;font-size:12px;padding:4px 10px;border-radius:7px;cursor:pointer;transition:opacity .15s,background .15s}
.rr87d-nba-controls button:hover{opacity:1;background:rgba(42,33,24,.05)}
html[data-theme="dark"] .rr87d-nba-controls button{border-color:rgba(255,255,255,.16);color:#ece5d3}
html[data-theme="dark"] .rr87d-nba-controls button:hover{background:rgba(255,255,255,.06)}

/* P1 proof: plain-language "why" under the fit pill */
.ct-fit-why{margin:4px 0 0;font-size:12.5px;line-height:1.4;color:var(--ink,#2a2118);opacity:.72}

/* ═══ v315 PASS 1, living domain homes: Orchard ═══ */
.domain-home{max-width:980px;margin:0 auto;display:grid;gap:18px}
.domain-summary{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(240px,.8fr) 1.2fr;align-items:stretch;background:linear-gradient(135deg,var(--surface),var(--accent-soft));border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 34px rgba(15,42,30,.08);min-height:220px}
.domain-summary-copy{padding:28px 28px 24px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.domain-eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:5px}
.domain-summary h2,.domain-live-section h3,.domain-empty-live h2{margin:0;color:var(--text-primary)}
.domain-summary h2{font-size:clamp(28px,4vw,42px);line-height:1.02;letter-spacing:-.035em}
.domain-summary-copy>p{margin:8px 0 20px;color:var(--text-secondary);font-size:14px}
.summary-signals{display:flex;flex-wrap:wrap;gap:8px}
.summary-signals>span{display:flex;flex-direction:column;gap:1px;min-width:92px;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.summary-signals small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}
.summary-signals b{font-size:13px;color:var(--text-primary)}
.orchard-vignette{position:relative;min-height:220px;overflow:hidden;background:linear-gradient(180deg,#dfe8d7 0%,#f1eadc 72%)}
html[data-theme="dark"] .orchard-vignette{background:linear-gradient(180deg,#1c3527 0%,#17291f 72%)}
.orchard-sun{position:absolute;width:42px;height:42px;border-radius:50%;right:17%;top:17%;background:#f28c2e;box-shadow:0 8px 24px rgba(242,140,46,.18)}
.orchard-hill{position:absolute;left:-12%;width:125%;height:58%;border-radius:50% 52% 0 0/42% 44% 0 0;bottom:-25%}
.orchard-hill-back{background:#41684b;transform:rotate(-4deg);bottom:-17%}
.orchard-hill-front{background:#1f3025;transform:rotate(5deg);left:-4%;bottom:-34%}
.orchard-tree{position:absolute;color:#294632;z-index:3;filter:drop-shadow(0 8px 9px rgba(15,42,30,.14))}
.orchard-tree svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65}
.orchard-tree-a{width:112px;height:112px;left:29%;bottom:26px;color:#294632}
.orchard-tree-b{width:82px;height:82px;left:7%;bottom:18px;color:#385d40;opacity:.94}
.orchard-tree-c{width:72px;height:72px;right:8%;bottom:18px;color:#4f7656;opacity:.9}
.domain-actions.domain-grid{max-width:none;margin-top:0}
.domain-live-section{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(15,42,30,.045)}
.domain-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px}
.domain-section-head h3{font-size:18px}
.domain-signal-list{display:grid;gap:8px}
.domain-signal{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--surface-raised,var(--surface));border-radius:14px;padding:12px;color:var(--text-primary);cursor:pointer}
.domain-signal:hover,.owned-object-card:hover{border-color:var(--accent-bright);transform:translateY(-1px)}
.domain-signal-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--accent)}
.domain-signal-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.domain-signal>span:nth-child(2){display:flex;flex-direction:column;min-width:0;gap:1px}
.domain-signal small{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-tertiary)}
.domain-signal b{font-size:14px}
.domain-signal em{font-size:12px;font-style:normal;color:var(--text-secondary)}
.domain-quiet{display:flex;flex-direction:column;gap:3px;border:1px dashed var(--line);border-radius:14px;padding:14px 16px;background:var(--accent-soft)}
.domain-quiet b{font-size:14px}.domain-quiet span{font-size:12px;color:var(--text-secondary)}
.owned-object-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.owned-object-card{display:flex;align-items:center;gap:10px;text-align:left;background:var(--surface-raised,var(--surface));border:1px solid var(--line);border-radius:14px;padding:11px;color:var(--text-primary);cursor:pointer;transition:.12s}
.owned-object-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--accent)}
.owned-object-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.owned-object-card>span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}.owned-object-card b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owned-object-card small{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.domain-empty-live{max-width:700px;margin:8px auto 0;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 34px rgba(15,42,30,.08);padding:0 28px 28px}
.domain-empty-live .orchard-vignette{height:190px;min-height:190px;margin:0 -28px 24px}.domain-empty-live p{max-width:560px;margin:10px auto 18px;color:var(--text-secondary)}.domain-empty-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.domain-summary{grid-template-columns:1fr}.orchard-vignette{min-height:165px}.domain-summary-copy{padding:20px}.owned-object-strip{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.domain-home{gap:12px}.domain-summary{border-radius:17px}.orchard-vignette{min-height:145px}.domain-summary-copy{padding:17px}.domain-summary h2{font-size:29px}.summary-signals>span{min-width:calc(50% - 4px);flex:1}.domain-live-section{padding:14px;border-radius:15px}.owned-object-strip{grid-template-columns:1fr}.domain-section-head{align-items:center}.domain-empty-live{padding:0 18px 22px}.domain-empty-live .orchard-vignette{margin:0 -18px 20px}}

/* ═══ v316 PASS 2, living domain homes: Garden ═══ */
.garden-vignette{position:relative;min-height:220px;overflow:hidden;background:linear-gradient(180deg,#e6eadc 0%,#efe6d3 100%)}
html[data-theme="dark"] .garden-vignette{background:linear-gradient(180deg,#1d3428 0%,#18261e 100%)}
.garden-path{position:absolute;width:135%;height:42px;left:-18%;top:47%;background:#d8c7a5;transform:rotate(-8deg);opacity:.8}
html[data-theme="dark"] .garden-path{background:#5b4d38;opacity:.62}
.garden-sun{position:absolute;width:34px;height:34px;border-radius:50%;right:12%;top:12%;background:#f28c2e;box-shadow:0 7px 20px rgba(242,140,46,.15)}
.garden-mini-bed{position:absolute;width:25%;height:25%;border-radius:8px;transform:skewY(-8deg);background:#6e5135;border:3px solid #4c3828;box-shadow:0 8px 12px rgba(31,48,37,.12);display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:6px}
.garden-mini-bed-1{transform:skewY(7deg)}.garden-mini-bed-2{transform:skewY(-3deg)}
.garden-mini-bed i{display:block;border-radius:50%;background:#4f7656;box-shadow:inset 0 -2px 0 rgba(20,38,27,.18)}
.garden-mini-bed i:nth-child(2n){background:#8eae82}.garden-mini-bed i:nth-child(3){background:#385d40}
.garden-mini-container{position:absolute;width:23px;height:18px;border-radius:4px 4px 9px 9px;background:#8c6045;border:2px solid #68432f;bottom:13%;right:14%;box-shadow:0 6px 9px rgba(31,48,37,.12)}
.garden-mini-container:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#4f7656;left:2px;top:-12px}
.garden-mini-container.c2{right:5%;bottom:21%;transform:scale(.82)}
.garden-summary{grid-template-columns:minmax(260px,.9fr) 1.1fr}.garden-summary .garden-vignette{order:0}.garden-summary .domain-summary-copy{order:1}
.garden-space-card .owned-object-icon{background:#efe3d6;color:#6b4937}html[data-theme="dark"] .garden-space-card .owned-object-icon{background:#332b24;color:#d5b69e}
.garden-empty .garden-vignette{height:190px;min-height:190px;margin:0 -28px 24px}
@media(max-width:760px){.garden-summary{grid-template-columns:1fr}.garden-vignette{min-height:165px}}
@media(max-width:520px){.garden-vignette{min-height:145px}.garden-empty .garden-vignette{margin:0 -18px 20px}}


/* ═══ v317 PASS 3, living domain homes: Plan ═══ */
.plan-summary{grid-template-columns:minmax(280px,.9fr) 1.1fr}
.plan-vignette{position:relative;min-height:220px;overflow:hidden;background:linear-gradient(180deg,#e4eadf 0%,#f2eadb 100%)}
html[data-theme="dark"] .plan-vignette{background:linear-gradient(180deg,#1b3326 0%,#17271e 100%)}
.plan-sun{position:absolute;width:36px;height:36px;border-radius:50%;right:12%;top:14%;background:#f28c2e;box-shadow:0 7px 20px rgba(242,140,46,.14)}
.plan-season-line{position:absolute;left:8%;right:8%;top:56%;height:3px;border-radius:4px;background:linear-gradient(90deg,#385d40,#8eae82);box-shadow:0 2px 7px rgba(31,48,37,.12)}
.plan-season-line:before,.plan-season-line:after{content:"";position:absolute;top:-4px;width:11px;height:11px;border-radius:50%;background:#294632}.plan-season-line:before{left:-2px}.plan-season-line:after{right:-2px;background:#8eae82}
.plan-dot{position:absolute;top:calc(56% - 6px);width:14px;height:14px;border-radius:50%;background:#f28c2e;border:3px solid rgba(245,241,231,.92);transform:translateX(-50%);box-shadow:0 3px 8px rgba(31,48,37,.18);z-index:2}
.plan-dot.d1,.plan-dot.d3,.plan-dot.d5{background:#4f7656}.plan-now,.plan-later{position:absolute;top:calc(56% + 15px);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#41684b}.plan-now{left:8%}.plan-later{right:8%}
html[data-theme="dark"] .plan-now,html[data-theme="dark"] .plan-later{color:#9db49e}
.plan-leaf{position:absolute;left:14%;bottom:13%;width:64px;height:64px;color:#385d40;opacity:.9}.plan-leaf svg{width:100%;height:100%;stroke:none;fill:none}
.plan-event .domain-signal-icon{background:#e7ece1}
html[data-theme="dark"] .plan-event .domain-signal-icon{background:#26382d}
@media(max-width:760px){.plan-summary{grid-template-columns:1fr}.plan-vignette{min-height:165px}}
@media(max-width:520px){.plan-vignette{min-height:145px}.plan-summary .domain-summary-copy h2{font-size:27px}}

/* ═══ v318 PASS 4, living domain homes: Records ═══ */
.records-summary{grid-template-columns:minmax(270px,.9fr) 1.1fr}
.records-vignette{position:relative;min-height:220px;overflow:hidden;background:linear-gradient(180deg,#e4e8dd 0%,#f2eadc 100%)}
html[data-theme="dark"] .records-vignette{background:linear-gradient(180deg,#1b3125 0%,#18251e 100%)}
.records-ground{position:absolute;left:-8%;right:-8%;bottom:-24%;height:58%;border-radius:50% 50% 0 0;background:#294632;transform:rotate(-2deg)}
.records-tree{position:absolute;left:12%;bottom:24px;width:94px;height:94px;color:#385d40;filter:drop-shadow(0 8px 8px rgba(20,38,27,.12))}
.records-tree svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65}
.records-book{position:absolute;right:12%;bottom:35px;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:#f5f1e7;border:1px solid rgba(31,48,37,.16);color:#5e466e;box-shadow:0 10px 22px rgba(31,48,37,.12)}
html[data-theme="dark"] .records-book{background:#24362b;color:#c7add6;border-color:rgba(255,255,255,.12)}
.records-book svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8}
.records-line{position:absolute;left:34%;right:29%;top:49%;height:2px;background:#8eae82;opacity:.75}
.records-mark{position:absolute;top:calc(49% - 5px);width:10px;height:10px;border-radius:50%;background:#4f7656;border:2px solid #f5f1e7;box-shadow:0 2px 5px rgba(31,48,37,.12)}
.records-mark.r0{left:37%;background:#f28c2e}.records-mark.r1{left:44%}.records-mark.r2{left:51%}.records-mark.r3{left:58%}.records-mark.r4{left:65%}.records-mark.r5{left:70%}.records-mark.r6{left:73%}
.records-proof{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 22px rgba(15,42,30,.045)}
.records-proof h3{margin:0;color:var(--text-primary);font-size:18px}.records-proof p{margin:7px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.55}
.records-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.records-proof-grid span{display:flex;flex-direction:column;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--accent-soft)}.records-proof-grid b{font-size:20px;color:var(--text-primary)}.records-proof-grid small{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}
.records-empty .records-vignette{height:190px;min-height:190px;margin:0 -28px 24px}
@media(max-width:760px){.records-summary{grid-template-columns:1fr}.records-vignette{min-height:165px}.records-proof{grid-template-columns:1fr}}
@media(max-width:520px){.records-vignette{min-height:145px}.records-empty .records-vignette{margin:0 -18px 20px}.records-proof{padding:14px}}

/* v320, Choose Trees / Personal Fit flagship hierarchy */
.ct-rec-v320{position:relative;overflow:hidden}
.ct-rec-v320:before{content:"";position:absolute;right:-70px;top:-90px;width:220px;height:220px;border-radius:50%;background:color-mix(in srgb,var(--orchard,#315b3a) 8%,transparent);pointer-events:none}
.ct-rec-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--orchard-deep,var(--accent));margin-bottom:3px}
.ct-pick-v320{display:flex;align-items:center;gap:13px;margin:12px 0 13px;position:relative}
.ct-cultivar-mark{width:54px;height:54px;flex:0 0 54px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--orchard,#315b3a) 10%,var(--paper));border:1px solid color-mix(in srgb,var(--orchard,#315b3a) 22%,var(--line));color:var(--orchard-deep,var(--accent))}
.ct-cultivar-mark svg{width:36px;height:36px}
.ct-pick-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.ct-pick-v320 .ct-pick-name{font-size:1.48rem;letter-spacing:-.025em}
.ct-fit-hero{display:grid;grid-template-columns:auto minmax(160px,.75fr) minmax(220px,1.25fr);gap:16px;align-items:center;padding:14px 15px;margin:4px 0 14px;border:1px solid color-mix(in srgb,var(--orchard,#315b3a) 24%,var(--line));border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--orchard,#315b3a) 8%,var(--paper)),var(--paper));position:relative}
.ct-fit-score-hero{width:82px;height:82px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--orchard,#315b3a);color:#fff;box-shadow:0 8px 24px color-mix(in srgb,var(--orchard,#315b3a) 18%,transparent)}
.ct-fit-score-hero strong{font-size:1.85rem;line-height:1;font-variant-numeric:tabular-nums}.ct-fit-score-hero span{font-size:.68rem;margin-top:4px;opacity:.9;font-weight:700}
.ct-fit-hero-copy>b{display:block;font-size:.92rem;color:var(--ink)}.ct-fit-hero-copy p{font-size:.76rem;color:var(--ink-faint);line-height:1.4;margin:3px 0 5px}.ct-fit-evidence{font-size:.65rem;color:var(--ink-faint);font-weight:700}
.ct-fit-axis-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.ct-fit-axis>div{display:flex;justify-content:space-between;gap:8px;font-size:.66rem;color:var(--ink-faint);margin-bottom:3px}.ct-fit-axis b{color:var(--ink-soft);font-variant-numeric:tabular-nums}.ct-fit-axis i{display:block;height:5px;border-radius:999px;background:var(--line);overflow:hidden}.ct-fit-axis em{display:block;height:100%;border-radius:inherit;background:var(--orchard,#315b3a)}
.ct-portfolio-reason{padding:11px 13px;margin:0 0 10px;border-left:3px solid var(--orchard,#315b3a);background:color-mix(in srgb,var(--orchard,#315b3a) 5%,transparent);border-radius:0 10px 10px 0}.ct-portfolio-reason .ct-why{margin:5px 0 0}
.ct-runners{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.ct-runners-label{width:100%;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.ct-runner{border:1px solid var(--line);border-radius:9px;padding:6px 9px;background:var(--paper)}.ct-runner b{display:block;font-size:.74rem;color:var(--ink)}.ct-runner small{display:block;margin-top:1px;font-size:.63rem;color:var(--ink-faint)}
@media(max-width:760px){.ct-fit-hero{grid-template-columns:auto 1fr}.ct-fit-axis-grid{grid-column:1/-1}.ct-fit-score-hero{width:72px;height:72px}.ct-fit-score-hero strong{font-size:1.6rem}}
@media(max-width:430px){.ct-fit-hero{grid-template-columns:1fr}.ct-fit-score-hero{width:auto;height:auto;border-radius:12px;flex-direction:row;gap:6px;padding:10px 12px;justify-content:flex-start}.ct-fit-score-hero strong{font-size:1.45rem}.ct-fit-axis-grid{grid-template-columns:1fr}.ct-cultivar-mark{width:48px;height:48px;flex-basis:48px}.ct-pick-v320 .ct-pick-name{font-size:1.3rem}}

/* v321 Pass 7, Growth Planner: observed state vs planning benchmark */
.growth-observed-card{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 16px;padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:var(--paper-2);box-shadow:var(--shadow-xs)}
.growth-observed-identity{display:flex;align-items:center;gap:14px;min-width:0}.growth-observed-identity .rr-feature-identity{flex:0 0 auto}.growth-observed-identity h3{margin:3px 0 4px;font-size:17px}.growth-observed-identity p{margin:0;max-width:610px;color:var(--text-secondary);font-size:11.5px;line-height:1.55}
.growth-observed-metrics{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:8px;min-width:min(430px,48%)}.growth-observed-metrics>div{padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.growth-observed-metrics span,.growth-observed-metrics small{display:block}.growth-observed-metrics span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:750}.growth-observed-metrics b{display:block;margin-top:4px;font-family:var(--mono);font-size:16px;color:var(--text-primary)}.growth-observed-metrics small{margin-top:3px;color:var(--text-secondary);font-size:9.5px}.growth-observed-empty{border-style:dashed}.growth-observed-empty .btn{flex:0 0 auto}
.growth-observed-point{fill:var(--paper-2);stroke:var(--text-primary);stroke-width:4}.growth-observed-height{stroke:var(--orchard)}.growth-observed-spread{stroke:var(--warm)}.growth-legend-inline i.observed{height:9px;width:9px;border-radius:50%;background:var(--paper-2);border:2px solid var(--text-primary)}
@media(max-width:900px){.growth-observed-card{display:block}.growth-observed-metrics{min-width:0;margin-top:14px}.growth-observed-empty .btn{margin-top:14px}}
@media(max-width:600px){.growth-observed-card{padding:15px}.growth-observed-metrics{grid-template-columns:1fr 1fr}.growth-observed-metrics>div:last-child{grid-column:1/-1}.growth-observed-identity{align-items:flex-start}}

/* v322, populated Beds / My Spaces: make saved spaces read as pieces of the property. */
.bed-space-card{padding:0;overflow:hidden}
.bed-space-overview{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--surface-raised) 88%,var(--sage-soft)),var(--surface-raised))}
.bed-space-identity{display:flex;align-items:center;gap:12px;min-width:0}.bed-space-identity h3{margin:2px 0 2px;font-size:18px}.bed-space-identity p{margin:0;color:var(--text-tertiary);font:12px var(--mono)}
.bed-space-icon{width:48px;height:48px;flex:0 0 48px;padding:8px;border-radius:14px;background:color-mix(in srgb,var(--sage-soft) 68%,var(--surface-raised));border:1px solid color-mix(in srgb,var(--sage) 28%,var(--line))}.bed-space-icon svg{width:100%;height:100%}
.bed-space-stats{display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:6px}.bed-space-stats>div{padding:8px 10px;border-left:1px solid var(--line)}.bed-space-stats b{display:block;font-size:16px;line-height:1.1;color:var(--text-primary)}.bed-space-stats span{display:block;margin-top:3px;font-size:10px;line-height:1.15;color:var(--text-tertiary);max-width:72px}
.bed-space-body{display:grid;grid-template-columns:minmax(300px,1.15fr) minmax(240px,.85fr);gap:20px;padding:18px}.bed-space-map,.bed-space-detail{min-width:0}.bed-space-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.bed-space-label span{font-size:12px;font-weight:800;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.bed-space-label small{font-size:11px;color:var(--text-tertiary)}
.bed-space-detail .bed-summary-empty{margin-top:0;padding:14px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-soft)}
@media(max-width:860px){.bed-space-overview{grid-template-columns:1fr auto}.bed-space-stats{grid-column:1/-1;order:3}.bed-space-body{grid-template-columns:1fr}.bed-space-detail{border-top:1px solid var(--line);padding-top:16px}}
@media(max-width:560px){.bed-space-overview{grid-template-columns:1fr}.bed-space-overview>.bed-card-actions{justify-self:start}.bed-space-stats{grid-template-columns:repeat(2,1fr)}.bed-space-stats>div:nth-child(odd){border-left:0}.bed-space-body{padding:14px}.bed-space-label{align-items:flex-start;flex-direction:column;gap:2px}}


/* v12.324, catalog image specificity / botanical fallback */
.rr-catimg-fallback .rr-catimg-tile{position:relative;isolation:isolate;background:linear-gradient(145deg,color-mix(in srgb,var(--catcolor) 18%,var(--panel,#fff)),color-mix(in srgb,var(--catcolor) 34%,var(--panel,#fff)));border:1px solid color-mix(in srgb,var(--catcolor) 35%,var(--line,#d8ded8));color:var(--ink,#14261b)}
.rr-catimg-fallback .rr-catimg-tile:after{content:"";position:absolute;inset:auto -18% -38% 28%;height:72%;border-radius:50% 50% 0 0;background:color-mix(in srgb,var(--catcolor) 15%,transparent);z-index:-1}
.rr-catimg-symbol{width:42px;height:42px;color:color-mix(in srgb,var(--catcolor) 82%,#14261b);filter:drop-shadow(0 5px 8px rgba(20,38,27,.08))}
.rr-catimg-card .rr-catimg-symbol{width:58px;height:58px}
.rr-catimg-fallback .rr-catimg-name{display:block;color:var(--ink,#14261b);font-weight:700;font-size:11px;text-shadow:none;margin-top:5px;max-width:92%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-catimg-kind{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#68736b);margin-top:2px;font-weight:700}
.rr-catimg-badge.representative{top:6px;left:6px;bottom:auto;background:rgba(20,38,27,.82);font-weight:700;padding:2px 7px;border-radius:10px}
.rr-catimg-specificity{position:absolute;left:6px;right:6px;bottom:6px;padding:4px 6px;border-radius:7px;background:rgba(20,38,27,.78);color:#fff;font-size:9px;line-height:1.2;text-align:left;z-index:2}
.rr-catimg-category .rr-catimg-attrib{bottom:25px}
.rr-catimg-thumb .rr-catimg-specificity,.rr-catimg-thumb .rr-catimg-attrib{display:none}
.rr-catimg-thumb .rr-catimg-kind{display:none}
@media(max-width:640px){.rr-catimg-card{height:112px}.rr-catimg-card .rr-catimg-symbol{width:52px;height:52px}}


/* v325, supporting visual-intelligence cluster */
.rr-intel-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 22px;margin:0 0 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--panel),var(--panel2));overflow:hidden;position:relative}
.rr-intel-hero:after{content:"";position:absolute;width:180px;height:180px;border:1px solid color-mix(in srgb,var(--sage) 18%,transparent);border-radius:50%;right:-70px;bottom:-120px;pointer-events:none}
.rr-intel-art{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--sage) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--sage) 25%,var(--line))}
.rr-intel-art svg{width:38px;height:38px}.rr-intel-hero h2{margin:3px 0 5px}.rr-intel-hero p{margin:0;max-width:760px;color:var(--text-dim)}
.rr-intel-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;position:relative;z-index:1}.rr-intel-stats span{min-width:86px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent);display:flex;flex-direction:column}.rr-intel-stats b{font-size:18px}.rr-intel-stats small,.rr-evidence-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}
.rr-health-row>span{display:flex;flex-direction:column;gap:3px}.rr-health-row .rr-evidence-label{font-weight:700;color:var(--sage)}
@media(max-width:760px){.rr-intel-hero{grid-template-columns:auto 1fr}.rr-intel-stats{grid-column:1/-1;justify-content:flex-start}.rr-intel-stats span{flex:1;min-width:92px}}
@media(max-width:480px){.rr-intel-hero{grid-template-columns:1fr}.rr-intel-art{width:48px;height:48px}.rr-intel-stats{grid-column:auto}.rr-intel-stats span{min-width:calc(50% - 4px)}}


/* ── v12.328, living icon pass: rich identity for product concepts, monochrome for utilities ── */
.nav-living-icon{stroke:none!important;fill:none!important;overflow:visible;opacity:.96}
.dnav-item .nav-living-icon{width:22px;height:22px}
.sidebar .nav-tab .nav-living-icon{width:19px;height:19px;opacity:.9}
.sidebar .nav-tab:hover .nav-living-icon,.sidebar .nav-tab.active .nav-living-icon,.dnav-item:hover .nav-living-icon,.dnav-item.active .nav-living-icon{opacity:1;filter:none}
.mobile-nav-item .nav-living-icon{width:20px;height:20px;opacity:.96}
.mobile-nav-item.active .nav-living-icon{filter:none}
.field-action-menu .nav-living-icon{width:22px;height:22px;stroke:none!important;fill:none!important}
/* Rich symbols carry their own semantic colors; don't recolor them through the generic active-icon stroke rules. */
.nav-tab.active .nav-living-icon,.dnav-item.active .nav-living-icon{stroke:none!important}

/* Yard Designer (Plan view) */
.yd-wrap{display:grid;grid-template-columns:1fr 300px;height:100%;min-height:520px}
.yd-stage{position:relative;background:radial-gradient(120% 90% at 50% -10%,#eef1e6,#e4e9dc 70%);padding:14px;display:flex;flex-direction:column}
.yd-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.yd-seg{display:inline-flex;background:#eae5da;border-radius:9px;padding:3px}
.yd-seg button{border:0;background:transparent;padding:5px 12px;border-radius:7px;font-weight:650;font-size:12.5px;color:#6c7970;cursor:pointer}
.yd-seg button.on{background:#fff;color:#212a23;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.yd-cap{font-size:12.5px;color:#37503a;font-weight:600}.yd-cap b{font-variant-numeric:tabular-nums}
#yd-map{flex:1;width:100%;min-height:360px}
.yd-obj{cursor:pointer}
.yd-label{font:600 9.5px ui-monospace,monospace;fill:#33422f}
.yd-dim{font:600 9px ui-monospace,monospace;fill:#5b6b56}
.yd-sel{fill:none;stroke:#e0a53a;stroke-width:1.6;stroke-dasharray:4 3}
.yd-note{font-size:11.5px;color:#5b6b56;margin-top:8px;max-width:60ch}
.yd-props{border-left:1px solid #e3ddd0;background:#fbfaf5;padding:16px;overflow:auto}
.yd-eyebrow{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#5a8a4a;font-weight:800}
.yd-props h3{font-size:16px;margin:3px 0 2px}
.yd-sub{color:#6c7970;font-size:12px;margin:0 0 12px}
.yd-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px dashed #e7e2d6}.yd-row b{font-variant-numeric:tabular-nums}
.yd-unify{margin-top:14px;border:1.5px solid #cfe0c6;border-radius:12px;background:linear-gradient(180deg,#f2f7ec,#fff);overflow:hidden}
.yd-unify-h{padding:9px 11px;background:#e9f1e2;border-bottom:1px solid #d7e6cd}
.yd-unify-h b{font-size:12px;color:#2f4a2b}.yd-unify-h small{display:block;font-size:10.5px;color:#5e7256;font-family:ui-monospace,monospace}
.yd-views{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:#dce7d3}
.yd-views span{background:#fff;padding:8px 6px;text-align:center;font-size:10.5px;font-weight:700;color:#3d4c39}.yd-views span.on{background:#f4f9ef}
.yd-views i{display:block;font-style:normal;font-weight:400;color:#8a968b;font-size:9.5px;margin-top:2px}
.yd-unify-note{padding:8px 11px;font-size:11px;color:#5b6b56;margin:0}
.yd-inspect{margin-top:12px}.yd-inspect summary{cursor:pointer;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:#8a968b;font-weight:800}
.yd-inspect pre{background:#1c2a1e;color:#d7e6cf;border-radius:9px;padding:10px;font:11px/1.5 ui-monospace,monospace;overflow:auto;white-space:pre-wrap;word-break:break-word;margin-top:7px}.yd-inspect pre .k{color:#9dc98a}

/* Yard Designer, bed drill-in */
.yd-openbed{width:100%;margin:10px 0 4px;border:0;border-radius:11px;padding:12px;font-weight:700;font-size:13.5px;cursor:pointer;background:#1c2a1e;color:#eaf1e6}
.yd-back{border:1px solid var(--line,#e3ddd0);background:#fff;border-radius:9px;padding:6px 12px;font-weight:650;font-size:12.5px;color:var(--ink,#212a23);cursor:pointer}
.yd-bedstage{align-items:stretch}
#yd-bed{flex:1;min-height:0;width:100%;height:100%}
.yd-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--dim,#6c7970);padding:40px;font-size:13px;line-height:1.6}
.yd-legendwrap{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.yd-leg{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:9px}
.yd-leg>svg{width:30px;height:30px;flex:none}
.yd-leg b{font-size:12.5px}.yd-leg small{color:var(--dim,#6c7970);font-size:11px;display:block}
.yd-leg>span{margin-left:auto;font:600 12.5px ui-monospace,monospace;color:#3d4c39}
.yd-intel{border:1.5px solid #cfe0c6;border-radius:12px;background:linear-gradient(180deg,#f2f7ec,#fff);padding:12px 13px;margin-bottom:14px}
.yd-intel b{font-size:12.5px;color:#2f4a2b}
.yd-irow{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-top:7px;color:#48583f}
.yd-irow i{width:9px;height:9px;border-radius:50%;flex:none;margin-top:1px}/* brand lockup: wordmark at legible size, left-pinned to match tagline */
.brand .brand-wordmark{height:22px!important;width:88px!important;max-width:none!important;flex:none!important;object-fit:contain;object-position:left center;margin-left:-11px}
/* tagline: keep on one line in the sidebar */
.brand .brand-meta{white-space:nowrap;font-size:10.5px}
/* borderless: strip the sidebar mark tile's frame so only the mark's own shape shows */
.brand .brand-mark{border:0!important;box-shadow:none!important;background:transparent!important}
/* mark uses filled shapes; don't let the sidebar's icon stroke rule outline every shape */
.brand-mark svg,.brand-mark svg *{stroke:none!important}
