/* ============================================================
   韭菜农事 · 移动端样式 v9（浅色专业工作台）
   浅灰画布 + 白色模块面板 + 细边框 + 品牌绿只做小面积点缀
   （图标位 / 主按钮 / 激活态 / 数据高亮），全站无深色大块
   结构语义：页头=模块导航条 / ctx-card=当前任务面板 / big-three·g-strip·d-sum=数据磁贴
             qa-list=快捷操作区 / list·row=任务行 / card=分析面板
   ── 面向高龄农户的硬指标（改样式前先看这三行）──
   · 正文字号 ≥17px，辅助文字 ≥14px，全站不允许出现 ≤13px 的字号
   · 所有可点区域 ≥48×48px；主按钮高 ≥54px
   · 不出现横向滚动容器、不用长按/滑动等隐藏手势
   设计纪律：不用渐变、不用 emoji 图标、不用深色底反白大字
   视觉体系：画布 #F3F5F4 / 面板 #FFFFFF / 主绿 #0F7A54 / 收入绿 / 支出褐 / 警示红
   ============================================================ */
:root{
  --paper:#F3F5F4;
  --surface:#FFFFFF;
  --surface-2:#F6F8F7;
  --surface-3:#EBF0ED;
  --line:#DFE5E2;
  --line-2:#EBEFEC;
  --ink:#1C2420;
  --ink-2:#46534C;
  --ink-3:#6E7C75;
  --brand:#0F7A54;
  --brand-2:#0C6244;
  --brand-deep:#0A4E37;
  --brand-soft:#E3F2EA;
  --amber:#7E5611;
  --amber-soft:#F5EEDD;
  --blue:#2F5A85;
  --blue-soft:#E8EEF4;
  --red:#A32E22;
  --red-soft:#F8E9E6;
  --in:var(--brand-2);
  --out:var(--red);
  --r-s:6px; --r:10px; --r-l:12px;
  --shadow-1:0 1px 2px rgba(18,26,22,.04);
  --shadow-2:0 1px 3px rgba(18,26,22,.05),0 2px 8px rgba(18,26,22,.05);
  --shadow-3:0 -10px 32px rgba(18,26,22,.16);
  --ease:cubic-bezier(.32,.72,.35,1);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:#C4CDC9 transparent}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--paper);color:var(--ink);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(78px + env(safe-area-inset-bottom));
}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;font-size:inherit}
input,select,textarea{font-family:inherit;font-size:17px;color:var(--ink)}
b{font-weight:600}
.ic{vertical-align:-3px;flex:none}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#C4CDC9;border-radius:6px;border:2px solid var(--paper)}
::-webkit-scrollbar-track{background:transparent}
::selection{background:#CFE9DC;color:var(--ink)}

:focus{outline:none}
button:focus-visible,[data-tab]:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield;appearance:textfield}

/* ── 页面容器 ── */
#app{padding:16px 14px 26px;max-width:620px;margin:0 auto}
.page-enter{animation:fadeUp .2s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── 页头：模块导航条（白面板 + 品牌绿图标位 + 标题 + 副标题） ── */
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);
  box-shadow:var(--shadow-1)}
.page-head h1{font-size:20px;font-weight:700;letter-spacing:.3px;line-height:1.3;color:var(--ink);
  display:flex;flex-direction:column;gap:2px;min-width:0}
/* 副标题：一行小灰字，交代页面职责（JS 注入 .ph-sub） */
.page-head h1 .ph-sub{font-size:14px;font-weight:500;color:var(--ink-3);letter-spacing:.4px;line-height:1.4}
/* 图标位：品牌绿实底小方块，全站唯一的深色点缀（JS 注入 .ph-ic） */
.ph-ic{flex:none;width:44px;height:44px;border-radius:11px;background:var(--brand);color:#F4FAF7;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(15,122,84,.28)}
/* 页头右侧日期胶囊（农活页） */
.ph-date{margin-left:auto;align-self:center;font-size:14.5px;color:var(--ink-2);letter-spacing:.3px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 12px;
  font-variant-numeric:tabular-nums;white-space:nowrap}

/* ── 区块头：品牌色竖条 + 计数徽章 ── */
.sec{margin:22px 0 10px}
.sec-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
/* 幕分隔（农活页·全年农活）：上留白稍大，隔开「今天」区与「全年」区 */
.sec-year{margin:26px 0 10px}

/* 财务首页：子页导航（扁平列表，复用 .list/.row 语言，统一入口，不堆宫格） */
.cost-list{margin-top:2px}
.cn-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:13px 14px;border-bottom:1px solid var(--line-2);background:none;min-height:64px;
  transition:background-color .15s ease}
.cn-row:last-child{border-bottom:none}
.cn-row:active{background:var(--surface-2)}
.cn-ic{flex:none;width:40px;height:40px;border-radius:11px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center}
.cn-v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}
.cn-v.in{color:var(--in)}
.cn-v.out{color:var(--out)}
.cn-arrow{flex:none;color:var(--ink-3);display:flex;align-items:center}
/* 总账作为首页重点：一条品牌绿顶边做小面积点缀（不放大深色块） */
.card-hero{border-top:3px solid var(--brand)}
/* 总账卡：本年利润作主视觉，下面一排关键数（收入/支出/收成），去掉解释性小字 */
.hero-profit{display:flex;flex-direction:column;gap:4px;padding:4px 2px 14px}
.hp-label{font-size:14px;color:var(--ink-3);letter-spacing:.6px}
.hp-num{font-size:36px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.hp-num.in{color:var(--in)}
.hp-num.out{color:var(--out)}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);padding-top:13px}
.hs-i{display:flex;flex-direction:column;gap:4px;min-width:0}
.hs-i span{font-size:14px;color:var(--ink-3)}
.hs-i b{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.hs-i b.in{color:var(--in)}
.hs-i b.out{color:var(--out)}
/* 子页返回 */
.ph-back{flex:none;width:48px;height:48px;margin-right:2px;border-radius:12px;background:var(--surface-2);color:var(--ink-2);display:flex;align-items:center;justify-content:center}
.ph-back:active{background:var(--line)}
.sh-t{font-size:16px;font-weight:700;letter-spacing:.4px;display:inline-flex;align-items:center;gap:8px}
.sh-t::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand);display:inline-block}
.sh-c{font-size:14px;color:var(--ink-2);background:var(--surface-3);border-radius:6px;
  padding:1px 8px;font-variant-numeric:tabular-nums;line-height:1.7}
.sh-sp{flex:1}
.mini-act{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:600;
  color:var(--brand);padding:0 14px;min-height:48px;border-radius:8px;background:var(--brand-soft);
  border:1px solid #C7E5D5;transition:background-color .16s ease,border-color .16s ease}
.sec-empty{font-size:15.5px;color:var(--ink-3);padding:14px 15px;line-height:1.7;
  border:1px dashed #CBD4D0;border-radius:var(--r);background:rgba(255,255,255,.6)}
.grp-h{font-size:14.5px;color:var(--ink-3);font-weight:700;letter-spacing:1px;
  margin:20px 2px 9px;display:flex;align-items:baseline;gap:10px}
.grp-s{margin-left:auto;font-weight:400;color:var(--ink-3);font-size:14.5px;font-variant-numeric:tabular-nums}

/* 卡内子标题：比 grp-h 轻，用品牌色点出是视角标签 */
.sub-h{font-size:14px;font-weight:700;color:var(--brand-2);letter-spacing:.5px;
  margin:20px 2px 10px;display:flex;align-items:center;gap:8px}
.sub-h::before{content:"";width:3px;height:12px;border-radius:2px;background:var(--brand-2);display:inline-block}
.sub-h:first-of-type{margin-top:6px}

/* ── 待办清单（旧版结构，保留以兼容） ── */
.todo-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.todo{display:flex;align-items:center;gap:13px;padding:13px 14px;border-bottom:1px solid var(--line-2)}
.todo:last-child{border-bottom:none}
.td-ic{flex:none;width:42px;height:42px;border-radius:10px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center}
.td-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.td-t{font-size:17px;font-weight:700;letter-spacing:.2px}
.td-d{font-size:15px;color:var(--ink-3);line-height:1.55}
.td-done{flex:none;min-height:48px;min-width:76px;padding:0 16px;border-radius:8px;
  background:var(--brand);color:#F2F8F4;font-size:16.5px;font-weight:700;letter-spacing:.5px;
  transition:opacity .15s ease}
.td-done:active{opacity:.85}

/* ── 今日状态行（收在农时提醒卡内）：现在在哪段 / 正在长哪茬 ── */
.ctx-card{margin:10px 0 0;padding:8px 10px;background:var(--surface-2);border-radius:var(--r-s);
  font-size:15px;color:var(--ink-2)}
.ctx-line{display:flex;align-items:baseline;gap:8px;line-height:1.6}
.ctx-line+.ctx-line{margin-top:2px}
.ctx-line+.ctx-grow{margin-top:5px;padding-top:5px;border-top:1px dashed var(--line)}
.ctx-k{font-size:14px;color:var(--ink-3);flex:0 0 auto}
.ctx-card b{color:var(--ink);font-weight:700}
.ctx-d{font-size:14px;color:var(--ink-3);font-variant-numeric:tabular-nums}
/* 今天该干：内联建议胶囊 */
.sug-list{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.sug{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;
  padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;
  transition:background-color .15s ease,border-color .15s ease;box-shadow:var(--shadow-1)}
.sug-t{font-size:15.5px;color:var(--ink);line-height:1.3}
.sug-d{font-size:14px;color:var(--ink-3);line-height:1.3}

/* ── 任务列表（白色面板 + 细分隔 + 表格数字） ── */
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow-1)}
.list-flat{margin-bottom:4px}
.row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;
  border-bottom:1px solid var(--line-2);background:none;min-height:68px;
  transition:background-color .15s ease}
.row:last-child{border-bottom:none}
.row:active{background:var(--surface-2)}
/* 当前段：左侧绿边 + 极浅绿底 */
.row-cur{background:#EDF6F0;box-shadow:inset 3px 0 0 var(--brand)}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.row-t{display:flex;align-items:center;gap:8px;font-size:17.5px;font-weight:700;letter-spacing:.3px;flex-wrap:wrap}
.row-m{font-size:15px;color:var(--ink-3);letter-spacing:.1px;font-variant-numeric:tabular-nums}
.row-go{flex:none;display:inline-flex;align-items:center;gap:2px;font-size:15px;
  font-weight:600;color:var(--brand-2)}

/* ── 标签：方角小片（状态芯片） ── */
.tag{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:600;
  padding:2px 8px;border-radius:5px;letter-spacing:.3px;white-space:nowrap;line-height:1.7}
.t-ink{background:#E8EBE7;color:#4A524B}
.t-slate{background:var(--blue-soft);color:var(--blue)}
.t-amber{background:var(--amber-soft);color:var(--amber)}
.t-plain{background:var(--surface-2);color:var(--ink-2)}
.t-live{background:var(--brand-soft);color:#0B5A3F}
.t-idle{background:var(--surface-3);color:var(--ink-3)}
.t-done{background:#ECEEEA;color:#687069}
.pip{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}

/* ── 大号下拉 ── */
.big-select{position:relative;margin-bottom:4px}
.big-select .ic{position:absolute;right:16px;top:50%;transform:translateY(-50%);
  color:var(--ink-2);pointer-events:none}
.big-select select.fcontrol{background-image:none;padding-right:50px;
  font-size:17.5px;font-weight:600;min-height:56px}

/* ── 「记一笔」动作网格：3 列操作磁贴，一屏看全 12 个动作 ── */
.qa-grp{font-size:14.5px;font-weight:700;color:var(--ink-3);letter-spacing:1px;margin:15px 2px 9px}
.qa-grp:first-of-type{margin-top:6px}
.qa-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.qa{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  width:100%;text-align:center;padding:12px 6px 10px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);min-height:92px;
  transition:background-color .15s ease,border-color .15s ease}
.qa:active{background:var(--brand-soft);border-color:var(--brand)}
.qa-ic{flex:none;width:40px;height:40px;border-radius:10px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center}
.qa-t{font-size:15.5px;font-weight:700;letter-spacing:.2px;line-height:1.3}
.qa-a{display:none}

/* ── 一段农活的明细（整页）：白面板标题条 + 数据磁贴 ── */
.d-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;padding:12px 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-1)}
.d-back{flex:none;width:48px;height:48px;min-height:48px;border-radius:10px;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);display:flex;align-items:center;justify-content:center;
  transition:background-color .15s ease}
.d-back:active{background:var(--surface-3)}
.d-head-t{flex:1;min-width:0;padding-top:1px}
.d-head-t h1{font-size:20px;font-weight:700;letter-spacing:.4px;line-height:1.3;color:var(--ink)}
.d-head-m{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}
.dhm{font-size:14.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.d-sum{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow-1)}
.ds-i{flex:1;min-width:0;padding:12px 4px;text-align:center;border-right:1px solid var(--line-2)}
.ds-i:last-child{border-right:none}
.ds-i span{display:block;font-size:14px;color:var(--ink-3);letter-spacing:.4px;margin-bottom:4px}
.ds-i b{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.3px;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.ds-i b.in{color:var(--brand-2)}
.d-note{font-size:15.5px;color:var(--ink-2);background:var(--surface-2);border-radius:7px;
  padding:12px 14px;margin-bottom:6px;line-height:1.7}
.d-ops{margin-top:22px;display:flex;flex-direction:column;gap:12px}

/* ── 明细页里一条记录：白面板卡 ── */
.rc-list{margin-bottom:2px}
.rc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:13px 14px;margin-bottom:10px;box-shadow:var(--shadow-1)}
.rc-top{display:flex;align-items:center;gap:10px}
.rc-ic{flex:none;width:36px;height:36px;border-radius:9px;background:var(--surface-3);color:var(--ink-2);
  display:flex;align-items:center;justify-content:center}
.rc-t{flex:1;min-width:0;font-size:17px;font-weight:700;letter-spacing:.3px;word-break:break-word}
.rc-d{flex:none;font-size:14.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-dl{display:grid;grid-template-columns:auto 1fr;gap:7px 16px;margin-top:10px;align-items:baseline}
.rc-k{font-size:15px;color:var(--ink-3);white-space:nowrap}
.rc-v{font-size:16.5px;font-weight:600;word-break:break-word}
.rc-foot{display:flex;align-items:center;gap:10px;margin-top:11px;padding-top:10px;
  border-top:1px solid var(--line-2)}
.rc-amt{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.rc-amt.in{color:var(--brand-2)}
.rc-amt.out{color:var(--amber)}
.rc-del{margin-left:auto;min-height:48px;padding:0 16px;border-radius:8px;font-size:15.5px;
  font-weight:600;color:var(--red);background:var(--surface);border:1px solid #E7CDC7;
  transition:background-color .15s ease}
.rc-del:active{background:var(--red-soft)}

/* ── 流水行 ── */
.recent{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow-1);margin-bottom:4px}
.rec{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:13px 15px;
  border-bottom:1px solid var(--line-2);min-height:72px;transition:background-color .15s ease}
.rec:last-child{border-bottom:none}
.rec:active{background:var(--surface-2)}
.rec-ic{flex:none;width:38px;height:38px;border-radius:9px;background:var(--surface-3);color:var(--ink-2);
  display:flex;align-items:center;justify-content:center}
.rec-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.rec-t{font-size:17px;font-weight:600;line-height:1.45;word-break:break-word}
.rec-x{font-size:15.5px;color:var(--ink-2);line-height:1.55;word-break:break-word}
.rec-n{font-size:15px;color:var(--ink-3);line-height:1.55;word-break:break-word}
.rec-d{font-size:14.5px;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums}
.rec-amt{flex:none;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);
  letter-spacing:-.2px}
.rec-amt.in{color:var(--brand-2)}
.rec-amt.out{color:var(--amber)}
.rec-arrow{flex:none;color:var(--ink-3);display:flex}
.rec-tag{display:inline-flex;align-items:center;font-size:14px;font-weight:600;line-height:1.5;
  padding:1px 7px;border-radius:5px;background:var(--brand-soft);color:#0B5A3F;border:1px solid #CDE4D8;
  white-space:nowrap;margin-left:7px;vertical-align:1px}

/* ── 键值详情表 ── */
.card .dl{display:grid;grid-template-columns:auto 1fr;gap:11px 18px;align-items:baseline}
.dt{font-size:15.5px;color:var(--ink-3);white-space:nowrap}
.dd{font-size:17px;font-weight:600;word-break:break-word}

/* ── 生长页 ── */
.g-filter{display:grid;grid-template-columns:.82fr 1.18fr;gap:12px;align-items:end;margin-bottom:2px}
.gf-i{min-width:0}
.gf-k{display:block;font-size:14px;color:var(--ink-3);font-weight:700;
  letter-spacing:.8px;margin-bottom:6px}
.g-filter .big-select{margin-bottom:0}

/* 概览条：数据磁贴面板 */
.g-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:15px 0 13px;box-shadow:var(--shadow-1)}
.g-strip.three{grid-template-columns:repeat(3,1fr)}
.gs-i{padding:12px 4px;text-align:center;border-right:1px solid var(--line-2);min-width:0}
.gs-i:last-child{border-right:none}
.gs-i span{display:block;font-size:14px;color:var(--ink-3);letter-spacing:.5px;margin-bottom:4px}
.gs-i b{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.spark{position:relative;display:flex;align-items:flex-end;gap:8px;height:112px;padding:0 3px 26px;margin:2px 2px 18px}
.spark::after{content:"";position:absolute;left:3px;right:3px;bottom:26px;height:1px;background:var(--line)}
.sp-col{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}
.sp-col i{position:relative;display:block;width:100%;max-width:32px;min-height:8px;
  border-radius:3px 3px 0 0;background:var(--brand);opacity:.3}
.sp-col:last-child i{opacity:1}
.sp-col i b{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:5px;
  font-size:14px;font-weight:700;color:var(--brand-2);white-space:nowrap;font-style:normal}
.sp-col>span{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);
  font-size:14px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}

.g-card{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:14px 15px;margin-bottom:11px;box-shadow:var(--shadow-1);
  transition:background-color .15s ease}
.g-card:active{background:var(--surface-2)}
.g-harvest{border-color:#E4D9B4;background:#FFFDF5}
.g-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.g-date{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.g-day{font-size:15px;color:var(--ink-3)}
.g-sp{flex:1}
.g-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:8px;overflow:hidden;margin-top:12px}
.g-cell{background:#F7F9F8;padding:11px 4px;text-align:center}
.g-cell span{display:block;font-size:14px;color:var(--ink-3);margin-bottom:3px}
.g-cell b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.g-cell b small{font-size:14px;font-weight:400;color:var(--ink-3);margin-left:2px}
.g-cell.off b{color:#ACB5AF}
.g-avg{display:flex;justify-content:space-between;align-items:center;margin-top:12px;
  padding:11px 14px;border-radius:8px;background:var(--brand-soft);border:1px solid #CDE6D9;
  font-size:16px;color:var(--ink-2)}
.g-avg b{font-size:19px;font-weight:700;color:var(--brand-2);font-variant-numeric:tabular-nums}
.g-foot{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:10px;font-size:15px;color:var(--ink-3)}
.g-foot .rm{color:var(--ink-2)}
.g-harv{display:flex;align-items:center;gap:13px;margin-top:11px;color:var(--amber)}
.g-harv b{display:block;font-size:17px;color:#6E4A0C}
.g-harv span{font-size:15px;color:#946F38}

/* 表单里的地块输入 */
.plot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.plot-grid .pi label{display:block;font-size:15px;color:var(--ink-3);margin-bottom:6px;font-weight:600}
.plot-grid .pi .fcontrol{min-height:56px;text-align:center;padding:10px 4px;font-weight:700;font-size:19px}

/* ── 我的账 ── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);
  padding:16px 16px;margin-bottom:13px;box-shadow:var(--shadow-1)}
.card-h{display:flex;align-items:baseline;gap:8px;padding-bottom:11px;margin-bottom:14px;
  border-bottom:1px solid var(--line-2)}
.ch-t{font-size:16.5px;font-weight:700;letter-spacing:.4px;display:inline-flex;align-items:center;gap:8px}
.ch-t::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand);display:inline-block}
.ch-s{font-size:14px;color:var(--ink-2);background:var(--surface-3);border-radius:6px;
  padding:1px 8px;margin-left:auto;line-height:1.7}
/* 三大数：独立数据磁贴（浅灰底小面板，各带边框） */
.tip{font-size:14.5px;color:var(--ink-3);line-height:1.7;margin-top:13px}

.stack{display:flex;height:16px;border-radius:3px;overflow:hidden;background:var(--surface-3)}
.stack i{display:block;height:100%}
.stack .s-l{background:var(--brand)}
.stack .s-m{background:var(--blue)}
.stack .s-o{background:#C29A4E}
.legend{display:flex;flex-direction:column;gap:10px;margin-top:15px}
.legend + .grp-h{margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2)}
.lg{display:flex;align-items:center;gap:10px;font-size:16px}
.dot{width:10px;height:10px;border-radius:3px;flex:none}
.dot.l{background:var(--brand)}.dot.m{background:var(--blue)}.dot.o{background:#C29A4E}
.lg-k{color:var(--ink-2)}
.lg b{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700}
.lg-p{width:52px;text-align:right;color:var(--ink-3);font-size:15px;font-variant-numeric:tabular-nums}

.cost-row{padding:12px 0;border-bottom:1px solid var(--line-2)}
.cost-row:last-child{border-bottom:none;padding-bottom:2px}
.cr-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cr-n{font-size:17px;font-weight:700;letter-spacing:.3px}
.cr-tag{font-size:14.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-2);
  border-radius:6px;padding:1px 8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cr-sp{flex:1}
.cr-v{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.cr-bar{height:5px;border-radius:2px;background:var(--surface-3);overflow:hidden;margin-top:8px}
.cr-bar i{display:block;height:100%;border-radius:2px;background:var(--brand);opacity:.75}

/* ── 亩数行 ── */
.area-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;
  margin-top:12px;padding:12px 14px;text-align:left;min-height:54px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .15s ease}
.area-row.empty{background:#FBF6EA;border-color:#E5DAC0}
.ar-h{font-size:16.5px;font-weight:700;letter-spacing:.3px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.area-row.empty .ar-h{color:#5E4310}
.ar-i{font-size:14.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.ar-a{margin-left:auto;font-size:15px;font-weight:700;color:var(--brand-2);white-space:nowrap}

/* ── 财务口径成本表 ── */
.card-fin{background:#F8FAF9}
.fin-rev{padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.fr-l{display:flex;align-items:baseline;font-size:15.5px;color:var(--ink-2);padding:4px 0}
.fr-l b{margin-left:auto;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.fr-l.sum{margin-top:5px;padding-top:9px;border-top:1px dashed var(--line)}
.fr-l.sum span{font-weight:700;color:var(--ink)}
.fr-l.sum b{font-size:18px;color:var(--brand-2)}
.fin-list{padding:5px 0 2px}
.fin-row{padding:9px 0;border-bottom:1px solid var(--line-2)}
.fin-row:last-child{border-bottom:none}
.fr-top{display:flex;align-items:baseline;gap:10px}
.fr-n{font-size:16px;color:var(--ink-2);letter-spacing:.3px}
.fr-v{margin-left:auto;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.fr-v.zero{color:var(--ink-3);font-weight:400}
.fr-sub{font-size:14px;color:var(--ink-3);margin-top:5px;line-height:1.65;
  font-variant-numeric:tabular-nums}
.fin-total{display:flex;align-items:baseline;margin-top:11px;padding-top:12px;
  border-top:2px solid var(--line);font-size:16px;font-weight:700}
.fin-total b{margin-left:auto;font-size:21px;font-variant-numeric:tabular-nums}
.fin-profit{display:flex;align-items:baseline;margin-top:9px;font-size:16px;font-weight:700}
.fin-profit b{margin-left:auto;font-size:21px;font-variant-numeric:tabular-nums}
.fin-profit b.in{color:var(--brand-2)}
.fin-profit b.out{color:var(--amber)}

/* 财务核算表头：录入入口靠右 */
.ch-sp{flex:1}
.card-h .mini-act{align-self:center;margin-left:10px}

/* 效益分析（模板末段） */
.fin-benefit{margin-top:12px;padding-top:12px;border-top:2px solid var(--line)}
.fb-row{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.fb-row:last-child{border-bottom:none;padding-bottom:2px}
.fb-k{font-size:15.5px;color:var(--ink-2)}
.fb-v{margin-left:auto;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.fb-v.in{color:var(--brand-2)}
.fb-v.out{color:var(--amber)}
.fr-l.note{display:block;padding:6px 0 2px}
.fr-note{display:block;font-size:14px;color:var(--ink-3);margin-top:3px;line-height:1.55}

/* ── 收支流水（子页） ── */
.card-flow{background:#F8FAF9}
.card-compose{background:#F8FAF9}
.flow-list{padding:4px 0 2px}
.flow-seg{margin:-2px 0 12px}
.seg.compact .seg-i{min-height:44px;font-size:15px;flex-direction:row;gap:0}
.flow-sum{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;
  border-radius:9px;background:var(--surface);border:1px solid var(--line)}
.fs-k{font-size:14px;color:var(--ink-3);white-space:nowrap}
.fs-v{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.fs-v.in{color:var(--in)}
.fs-v.out{color:var(--out)}
.flow-row{padding:11px 0;border-bottom:1px solid var(--line-2)}
.flow-row:last-child{border-bottom:none}
.fl-top{display:flex;align-items:baseline;gap:9px}
.fl-cat{font-size:15.5px;color:var(--ink-2);letter-spacing:.2px}
.fl-tag{flex:none;font-size:14px;color:var(--ink-3);
  border:1px solid var(--line);border-radius:999px;padding:1px 9px;line-height:1.5;white-space:nowrap}
.fl-sp{flex:1}
.fl-v{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.fl-v.in{color:var(--in)}
.fl-v.out{color:var(--out)}
.fl-sub{font-size:14px;color:var(--ink-3);margin-top:4px;line-height:1.6;
  font-variant-numeric:tabular-nums;word-break:break-word}

/* ── 可视化分析：图表 ── */
.card-viz{background:#F8FAF9}
.donut-wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.donut{flex:none}
.donut-legend{flex:1;min-width:168px;display:flex;flex-direction:column;gap:9px}
.dl-i{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:15px}
.dl-dot{width:10px;height:10px;border-radius:3px;flex:none}
.dl-k{color:var(--ink-2);white-space:nowrap}
.dl-v{font-weight:700;font-variant-numeric:tabular-nums;margin-left:2px}
.dl-p{width:46px;text-align:right;color:var(--ink-3);font-size:14px;font-variant-numeric:tabular-nums}
.dc-t{font-size:14px;fill:var(--ink-3);font-family:inherit}
.dc-b{font-size:17px;font-weight:700;fill:var(--ink);font-family:inherit}

/* 收支趋势：按月分组柱图（纯 CSS，复用 .dot 图例色） */
.bars{display:flex;align-items:flex-end;gap:5px;height:168px;margin-top:4px;overflow:hidden}
.bar-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;height:100%}
.bar-stack{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.bar{display:block;width:46%;max-width:14px;min-height:2px;border-radius:3px 3px 0 0}
.bar-in{background:var(--brand);opacity:.9}
.bar-out{background:var(--amber)}
.bar-m{font-size:14px;color:var(--ink-3);margin-top:7px;font-variant-numeric:tabular-nums;white-space:nowrap}
.bars-empty{font-size:15.5px;color:var(--ink-3);line-height:1.7;padding:18px 15px;text-align:center;
  border:1px dashed #CBD4D0;border-radius:var(--r);background:rgba(255,255,255,.6)}
.bars-legend{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-3);margin-top:10px}
.bars-legend .dot{margin-left:10px}
.bars-legend span{margin-left:4px}

/* 效益分析 KPI 条 */
.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:8px;overflow:hidden;margin-top:2px}
.kpi{background:var(--surface);padding:12px 4px;text-align:center;min-width:0}
.kpi span{display:block;font-size:14px;color:var(--ink-3);letter-spacing:.3px;margin-bottom:5px}
.kpi b{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.kpi b.in{color:var(--brand-2)}
.kpi b.out{color:var(--amber)}

/* 排行下面的一句口径说明 */
.grp-note{font-size:14px;color:var(--ink-3);margin-top:13px;padding-top:12px;
  border-top:1px dashed var(--line);line-height:1.65}

/* ── 今年目标 ── */
.card-target{background:#F4F8F5}
.tg-empty{font-size:15.5px;color:var(--ink-3);line-height:1.7;margin-bottom:13px}
.tg-row{margin-bottom:13px}
.tg-row:last-of-type{margin-bottom:4px}
.tg-top{display:flex;align-items:baseline;gap:10px;margin-bottom:7px}
.tg-k{font-size:16px;font-weight:700;color:var(--ink-2);letter-spacing:.3px}
.tg-sp{flex:1}
.tg-n{font-size:16.5px;font-variant-numeric:tabular-nums;color:var(--ink)}
.tg-p{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--brand-2);white-space:nowrap}
.tg-p.over{color:var(--red)}
.tg-bar{height:7px;border-radius:2px;background:#E1E8E4;overflow:hidden}
.tg-bar i{display:block;height:100%;border-radius:2px;background:var(--brand);opacity:.85}
.tg-bar i.over{background:var(--red);opacity:.9}

/* ── 每茬盈亏 ── */
.hp-row{padding:12px 0;border-bottom:1px solid var(--line-2)}
.hp-row:last-of-type{border-bottom:none;padding-bottom:2px}
.hp-top{display:flex;align-items:baseline;gap:10px}
.hp-n{font-size:17px;font-weight:700;letter-spacing:.3px}
.hp-sp{flex:1}
.hp-v{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.hp-v.in{color:var(--brand-2)}
.hp-v.out{color:var(--amber)}
.hp-sub{font-size:15px;color:var(--ink-3);margin-top:5px;font-variant-numeric:tabular-nums}
.hp-open{display:flex;align-items:baseline;gap:10px}
.hp-w{font-size:15px;color:var(--ink-3)}

/* ── 年度对比 ── */
.yc-head{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.1fr;gap:6px;
  font-size:14px;color:var(--ink-3);padding-bottom:9px;margin-bottom:6px;
  border-bottom:1px solid var(--line-2);font-variant-numeric:tabular-nums}
.yc-head span:not(:first-child){text-align:right}
.yc-row{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.1fr;gap:6px;align-items:baseline;
  padding:10px 0;border-bottom:1px solid var(--line-2);font-variant-numeric:tabular-nums}
.yc-row:last-child{border-bottom:none;padding-bottom:2px}
.yc-k{font-size:16px;font-weight:700;color:var(--ink-2)}
.yc-this,.yc-prev{font-size:15.5px;text-align:right;color:var(--ink)}
.yc-prev{color:var(--ink-3)}
.yc-delta{font-size:15.5px;font-weight:700;text-align:right;white-space:nowrap}
.up{color:var(--brand-2)}
.down{color:var(--red)}

/* ── 空状态 ── */
.empty{text-align:center;padding:34px 22px;color:var(--ink-3);
  border:1px dashed #CBD4D0;border-radius:var(--r);background:rgba(255,255,255,.6)}
.empty .e-ico{color:#A9B6AE;margin-bottom:12px;display:flex;justify-content:center}
.empty .e-t{font-size:18px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.empty .e-d{font-size:15.5px;line-height:1.75;max-width:310px;margin:0 auto}
.empty .btn{margin-top:18px}

/* ── 按钮 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;
  padding:11px 20px;border-radius:10px;font-size:17px;font-weight:600;letter-spacing:.4px;
  transition:background-color .16s ease,border-color .16s ease,transform .12s ease,opacity .16s ease;
  user-select:none;border:1px solid transparent}
.btn:active{transform:scale(.985)}
.btn.primary{background:var(--brand);color:#F4FAF7;box-shadow:0 2px 6px rgba(15,122,84,.26)}
.btn.ghost{background:var(--surface);color:var(--brand-2);border-color:#BFDACD}
.btn.gray{background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}
.btn.danger{background:var(--red-soft);color:var(--red);border-color:#EBD2CD}
.btn.block{width:100%}
.btn.ghost.block{margin-top:12px}
.btn.big{min-height:62px;font-size:19px;font-weight:700;letter-spacing:.8px;margin:16px 0 0;
  border-radius:12px;box-shadow:0 3px 8px rgba(15,122,84,.22)}
.btn.sm{min-height:48px;padding:9px 15px;font-size:16px;border-radius:8px}
.btn + .btn.block{margin-top:12px}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ── 底部导航：白色工具栏 + 激活软色药丸 ── */
.navbar{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-top:1px solid var(--line);display:flex;z-index:50;
  padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -1px 4px rgba(18,26,22,.04)}
.nitem{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  padding:9px 0 9px;color:var(--ink-3);font-size:14px;letter-spacing:.6px;min-height:68px;
  position:relative;transition:color .16s ease}
.nitem .nico,.nitem .nt{position:relative}
.nitem .nico{height:26px;display:flex;align-items:center}
.nitem.on{color:var(--brand)}
.nitem.on .nt{font-weight:700}
.nitem.on::before{content:"";position:absolute;top:7px;bottom:7px;left:50%;
  transform:translateX(-50%);width:64px;border-radius:10px;background:var(--brand-soft)}

/* ── 底部弹层 ── */
.sheet-mask{position:fixed;inset:0;background:rgba(18,26,22,.42);z-index:90;opacity:0;
  pointer-events:none;transition:opacity .24s ease}
.sheet{position:fixed;left:0;right:0;bottom:0;background:#F5F7F6;
  border-radius:14px 14px 0 0;z-index:100;transform:translateY(105%);
  transition:transform .3s var(--ease);display:flex;flex-direction:column;max-height:92vh;
  box-shadow:var(--shadow-3)}
.sheet.open{transform:translateY(0)}
.sheet-mask.open{opacity:1;pointer-events:auto}
.sheet-grab{width:40px;height:5px;border-radius:3px;background:#C6CFCB;margin:10px auto 4px;flex:none}
.sheet-head{display:flex;align-items:center;gap:10px;padding:6px 16px 12px;border-bottom:1px solid var(--line);flex:none}
.sheet-head h3{font-size:19px;font-weight:700;letter-spacing:.4px;flex:1;min-width:0}
.sheet-close{width:48px;height:48px;border-radius:50%;background:var(--surface-3);color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;flex:none;transition:background-color .15s ease}
.sheet-close:active{background:#DFE5E1}
.sheet-body{padding:16px 17px calc(26px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}
.sheet-note{font-size:15.5px;color:var(--ink-2);background:var(--brand-soft);border:1px solid #CDE4D8;
  border-radius:8px;padding:11px 13px;line-height:1.65;margin-bottom:15px}
.sheet-note b{color:var(--brand-deep)}
.confirm-msg{font-size:17px;color:var(--ink-2);line-height:1.8;padding:2px 2px 0}

/* ── 表单 ── */
.fgroup{margin-bottom:16px}
.flabel{display:flex;align-items:baseline;font-size:15.5px;font-weight:600;color:var(--ink-2);margin-bottom:8px;letter-spacing:.3px}
.flabel .req{color:var(--red);margin-left:4px;font-style:normal}
.fhint{font-size:14.5px;color:var(--ink-3);font-weight:400;margin-left:auto}
.fcontrol{width:100%;min-height:52px;border:1px solid #CBD4D0;border-radius:9px;padding:11px 13px;
  background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease;color:var(--ink);font-size:17px}
.fcontrol:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(15,122,84,.13)}
.fcontrol[disabled]{background:var(--surface-2);color:var(--ink-2);-webkit-text-fill-color:var(--ink-2)}
/* 天气获取：输入框内右侧内嵌按钮 */
.wx-box{position:relative}
.wx-box .fcontrol{padding-right:96px}
.wx-btn{position:absolute;right:7px;top:50%;transform:translateY(-50%);min-height:48px;
  padding:0 14px;border-radius:8px;background:var(--brand-soft);color:var(--brand-2);
  border:1px solid #CDE4D8;display:inline-flex;align-items:center;gap:5px;
  font-size:15px;font-weight:600;letter-spacing:.4px;transition:background-color .15s ease}
.wx-btn:active{background:#D8ECE1}
.wx-btn[disabled]{opacity:.55;pointer-events:none}
textarea.fcontrol{min-height:92px;resize:vertical;line-height:1.65}
select.fcontrol{appearance:none;-webkit-appearance:none;padding-right:44px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='none' stroke='%236E7C75' stroke-width='1.8' stroke-linecap='round' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center}
.numbox{position:relative}
.numbox .fcontrol{padding-right:74px}
.numbox .nu{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;
  color:var(--ink-3);pointer-events:none}
.ferror{font-size:14.5px;color:var(--red);margin-top:7px;display:none;align-items:center;gap:6px}
.ferror::before{content:"!";width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;
  font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.fgroup.err .fcontrol{border-color:#C9786F}
.fgroup.err .ferror{display:flex}
.frow{display:flex;gap:12px}
.frow .fgroup{flex:1;min-width:0}
.form-actions{display:flex;gap:12px;margin-top:22px}
.form-actions .btn{flex:1}
.calc-line{display:flex;align-items:center;gap:10px;margin:-4px 0 16px;padding:13px 15px;
  border-radius:9px;background:var(--surface);border:1px solid var(--line);
  font-size:16.5px;color:var(--ink-2)}
.calc-line b{margin-left:auto;font-size:21px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}

/* 分段选择器：连体分段控件 */
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line);
  border-radius:9px;overflow:hidden;background:var(--surface)}
.seg-i{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-height:62px;border-right:1px solid var(--line-2);background:var(--surface);
  font-size:16px;color:var(--ink-2);padding:8px 4px;transition:background-color .15s ease,color .15s ease}
.seg-i:last-child{border-right:none}
.seg-i.on{background:var(--brand);color:#F4FAF7;font-weight:700}
.seg-i span{white-space:nowrap}

/* ── 病害表单：地块多选 ── */
.plot-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.pb-i{min-height:52px;border:1px solid #CBD4D0;border-radius:9px;background:var(--surface);
  font-size:17px;color:var(--ink-2);font-weight:600;transition:border-color .15s ease,background-color .15s ease}
.pb-i.on{background:var(--amber-soft);border-color:var(--amber);color:var(--amber);font-weight:700}
.pb-i.on::after{content:"✓";margin-left:6px;font-size:15px}

/* ── 农时提醒卡（今日状态一卡收齐：现在在哪 + 节气窗口 + 天气 + 该干/先别急） ──
   左边条 = 当前季节色：今天处于哪季，这卡就与那一季头卡同色呼应 */
.remind-card{margin:14px 0 14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--brand);border-radius:var(--r);box-shadow:var(--shadow-1)}
.remind-card.rm-spring{border-left-color:var(--brand)}
.remind-card.rm-summer{border-left-color:var(--blue)}
.remind-card.rm-autumn{border-left-color:var(--amber)}
.remind-card.rm-winter{border-left-color:#46607A}
.rm-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.rm-date{min-width:0;flex:1}
.rm-date b{display:block;font-size:17px;font-weight:700;color:var(--ink);line-height:1.35}
.rm-date span{display:block;font-size:14px;color:var(--brand-2);font-weight:600;letter-spacing:.3px;line-height:1.5}
.rm-wx{margin-left:auto;flex:none;display:flex;align-items:center;gap:9px}
.rm-wx:empty{display:none}
.rm-wx-ic{flex:none;width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--blue);
  display:flex;align-items:center;justify-content:center}
.rm-wx-t{display:flex;flex-direction:column;gap:1px;min-width:0}
.rm-wx-t b{font-size:16px;font-weight:700;color:var(--ink);line-height:1.3;white-space:nowrap}
.rm-wx-t span{font-size:14px;color:var(--ink-3);line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap}
.rm-rows{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.rm-row{border:1px solid var(--line-2);border-radius:var(--r-s);padding:10px 12px;background:var(--surface-2)}
.rm-row.suit{background:var(--brand-soft);border-color:#C7E5D5}
.rm-row.avoid{background:var(--amber-soft);border-color:#E8DCC0}
.rm-k{font-size:14px;font-weight:700;letter-spacing:.5px;line-height:1.4}
.rm-row.suit .rm-k{color:var(--brand-deep)}
.rm-row.avoid .rm-k{color:var(--amber)}
.rm-li{display:flex;gap:8px;padding:3px 0 0;font-size:15px;line-height:1.55}
.rm-li b{flex:none;color:var(--ink);font-weight:600}
.rm-li b::after{content:"：";font-weight:400;color:var(--ink-3)}
.rm-li span{color:var(--ink-2);font-size:14.5px}

/* ── 四季板块：季相头卡 + 磁贴开关 ──
   头卡用季节代表色做底（纯色浅底），当前季加左边条；
   正文交给磁贴开关 + 概览面板 + 段行（无小标题） */
.season{margin:18px 0 0}
.season-head{padding:12px 14px;border-radius:var(--r);box-shadow:var(--shadow-1)}
.se-row{display:flex;align-items:center;gap:12px;width:100%}
.se-ic{flex:none;width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:19px;font-weight:800;color:#FFFFFF}
.se-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.se-meta b{font-size:17.5px;font-weight:700;line-height:1.3}
.se-meta i{font-style:normal;font-size:14px;color:var(--ink-2);line-height:1.4}
.se-now{flex:none;font-size:14px;font-weight:700;border-radius:7px;padding:5px 10px;line-height:1.3;
  background:var(--surface)}
/* 气候说明收进季节头卡内（虚线分隔），不再浮在两张卡片中间 */
.se-climate{margin-top:9px;padding-top:9px;border-top:1px dashed;
  font-size:14.5px;color:var(--ink-2);line-height:1.65}
/* 春 · 嫩绿（返青） */
.season.spring .season-head{background:#E3F2EA;border:1px solid #C7E5D5}
.season.spring .se-ic{background:var(--brand)}
.season.spring .se-meta b{color:var(--brand-deep)}
.season.spring .se-now{color:var(--brand-deep);border:1px solid #C7E5D5}
.season.spring .se-climate{border-top-color:#BFDCCB}
.season.spring.se-cur .season-head{border-left:3px solid var(--brand)}
/* 夏 · 青蓝（炎热雨季） */
.season.summer .season-head{background:#E8EEF4;border:1px solid #D3DFEA}
.season.summer .se-ic{background:var(--blue)}
.season.summer .se-meta b{color:var(--blue)}
.season.summer .se-now{color:var(--blue);border:1px solid #C3D3E3}
.season.summer .se-climate{border-top-color:#C3D3E3}
.season.summer.se-cur .season-head{border-left:3px solid var(--blue)}
/* 秋 · 橙黄（秋发养根） */
.season.autumn .season-head{background:#F5EEDD;border:1px solid #E3D5B3}
.season.autumn .se-ic{background:var(--amber)}
.season.autumn .se-meta b{color:var(--amber)}
.season.autumn .se-now{color:var(--amber);border:1px solid #E0D2B0}
.season.autumn .se-climate{border-top-color:#E0D2B0}
.season.autumn.se-cur .season-head{border-left:3px solid var(--amber)}
/* 冬 · 冷灰蓝（休眠越冬） */
.season.winter .season-head{background:#EAEFF3;border:1px solid #D5DEE6}
.season.winter .se-ic{background:#46607A}
.season.winter .se-meta b{color:#35506B}
.season.winter .se-now{color:#35506B;border:1px solid #C9D6E1}
.season.winter .se-climate{border-top-color:#C9D6E1}
.season.winter.se-cur .season-head{border-left:3px solid #46607A}
/* 本季小结磁贴（可点开关）：随从层级无阴影；选中态只用字重与下划线标记
   （页面色彩已够多，选中不再换底色加描边），没数的格（—）置灰不可点 */
.season .g-strip{margin:14px 0 14px;box-shadow:none}
.gs-btn{cursor:pointer;text-align:center;transition:background-color .15s ease}
.gs-btn:disabled{cursor:default}
.gs-btn:disabled span,.gs-btn:disabled b{color:var(--ink-3);opacity:.55}
.gs-btn:active{background:var(--surface-2)}
.gs-btn.on span{color:var(--ink-2)}
.gs-btn.on b{font-weight:800;padding-bottom:4px;margin:-1px 14% 0;
  border-bottom:2.5px solid var(--brand);border-radius:0 0 2px 2px}
/* 概览面板：点开磁贴后摊出的几条概览（白卡轻边框，与磁贴同级） */
.ov-panel{margin:-4px 0 14px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-1)}
.ov-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:10px 14px;border-bottom:1px solid var(--line-2);min-height:52px}
.ov-row:last-child{border-bottom:none}
.ov-row:active{background:var(--surface-2)}
button.ov-row{background:var(--surface);transition:background-color .15s ease}
.ov-row b{font-size:16px;font-weight:700;color:var(--ink);flex:none}
.ov-cnt{font-size:14px;color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}
.ov-m{margin-left:auto;font-size:14px;color:var(--ink-3);flex:none}
.ov-row i{margin-left:auto;font-style:normal;font-size:15.5px;font-weight:700;
  color:var(--ink-2);font-variant-numeric:tabular-nums;flex:none;white-space:nowrap}
/* 段行收尾：不设小标题，面板直接跟概览留一点空档 */
.season .list{margin-top:14px}

/* ── 收割概览行（「割了」点开后的每茬一行）：日期 + 茬名 + 斤数 + 卖钱，可点进茬明细 ── */
.tl{display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface);
  min-height:50px;transition:background-color .15s ease}
.tl:last-child{border-bottom:none}
.tl:active{background:var(--surface-2)}
.tl-date{flex:none;font-size:14.5px;color:var(--ink-3);font-weight:600;
  font-variant-numeric:tabular-nums;white-space:nowrap;min-width:44px}
.tl-ic{flex:none;width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);
  display:flex;align-items:center;justify-content:center}
.tl-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.tl-main b{font-size:16px;font-weight:700;color:var(--ink);line-height:1.3;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.tl-main span{font-size:14px;color:var(--ink-3);line-height:1.4;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.tl-num{flex:none;font-size:15px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.tl-num.in{color:var(--in)}

/* ── 撤销条 ── */
.undo-bar{position:fixed;left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:12px;background:#24302A;color:#F2F5F2;
  border-radius:10px;padding:12px 14px 12px 18px;z-index:150;
  box-shadow:0 10px 26px rgba(18,24,20,.28);
  transform:translateY(140%);opacity:0;transition:transform .26s var(--ease),opacity .26s ease;pointer-events:none}
.undo-bar.open{transform:translateY(0);opacity:1;pointer-events:auto}
.ub-msg{flex:1;font-size:16px;line-height:1.5}
.ub-btn{flex:none;min-height:48px;min-width:84px;padding:0 18px;border-radius:8px;
  background:#F2F5F2;color:#24302A;font-size:17px;font-weight:700}

/* ── 吐司 ── */
.toast-wrap{position:fixed;top:16px;left:0;right:0;display:flex;flex-direction:column;align-items:center;
  gap:9px;z-index:200;pointer-events:none;padding:0 18px}
.toast{max-width:360px;background:rgba(28,36,32,.96);color:#F2F5F2;font-size:16px;
  padding:12px 18px;border-radius:9px;line-height:1.6;box-shadow:0 8px 22px rgba(18,24,20,.26);
  animation:toastIn .25s ease}
.toast.ok{border-left:3px solid #4CBF87}
.toast.warn{border-left:3px solid #E3A85C}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ── 悬停态：只在有鼠标的设备上生效 ── */
@media (hover:hover){
  .btn.primary:hover{background:var(--brand-2)}
  .btn.ghost:hover{background:var(--brand-soft)}
  .btn.gray:hover{background:var(--surface-3)}
  .btn.danger:hover{background:#F4DEDA}
  .row:hover{background:var(--surface-2)}
  .row-cur:hover{background:#E4F1E9}
  .rec:hover{background:var(--surface-2)}
  .qa:hover{border-color:#AFCEBC}
  .g-card:hover{background:#FAFBFA}
  .sug:hover{border-color:var(--brand);background:#F2F8F4}
  .mini-act:hover{background:#D8EEDF;border-color:#B4DCC6}
  .d-back:hover{background:var(--surface-3)}
  .sheet-close:hover{background:#DFE5E1}
  .pb-i:hover{border-color:var(--brand)}
  .seg-i:hover{background:var(--surface-2)}
  .area-row:hover{border-color:#BAC5BE}
  .rc-del:hover{background:var(--red-soft)}
  .nitem:hover{color:var(--ink-2)}
  .tl:hover{background:var(--surface-2)}
}

/* ── 屏幕适配 ── */
@media (min-width:520px){
  #app{padding-top:24px}
  .page-head h1{font-size:21px}
}
@media (min-width:620px){
  #app{padding-left:22px;padding-right:22px}
  .card{padding:17px}
}
@media (max-width:369px){
  #app{padding:15px 13px 24px}
  .g-filter{gap:9px}
  .frow{gap:9px}
  .plot-grid{gap:9px}
  .qa-list{gap:7px}
}
/* 动效敏感用户：关掉一切动画，只保留状态变化 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important}
}
