/* 82-production.css — Production timeline, product mix, tier pricing
   Part of the ordered set linked from index.html. The parts concatenate to the
   original stylesheet byte for byte; link order IS the cascade order, so never
   reorder the <link> tags and never move a rule between files. */

#productionSection { display:block; margin-top:28px; }
.prod-wrap { max-width:1100px; margin:0 auto; padding:0 4px 40px; }
.prod-head { padding:8px 0 4px; }
.prod-head h2 { margin:2px 0; font-size:1.35rem; color:#fff; }
.prod-head-sub, .prod-body { color:#9aa39a; font-size:.875rem; margin:2px 0; }
.prod-empty { color:#8b948b; padding:18px; text-align:center; background:#141814; border:1px solid #232b23; border-radius:12px; }
.prod-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 8px; padding:6px; border:1px solid var(--line); border-radius:16px; background:var(--panel); }
.prod-tab { display:inline-flex; flex:1 1 auto; align-items:center; justify-content:center; gap:7px; min-height:52px; padding:8px 14px; border:0; border-radius:12px; background:transparent; color:var(--muted); cursor:pointer; font-size:1.02rem; font-weight:800; white-space:nowrap; }
.prod-tab:hover { color:var(--text); }
.prod-tab.active { background:rgba(52,212,106,.16); color:var(--text); }
.prod-panel { padding-top:8px; }
.prod-work-queue { margin:14px 0 20px; padding:15px; border:1px solid #2d3929; border-radius:15px; background:#111710; }
.prod-work-queue > header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:18px; }
.prod-work-queue > header h2 { margin:1px 0 2px; color:#fff; font-size:1.2rem; }
.prod-work-queue > header p:not(.section-label) { max-width:620px; margin:0; color:#7f8a7f; font-size:.875rem; line-height:1.35; }
.prod-work-counts { display:flex; gap:7px; }
.prod-work-counts b { display:flex; flex-direction:column; min-width:52px; padding:7px 9px; border:1px solid #2a3527; border-radius:10px; background:#0c110b; color:#c7efaa; font-size:1rem; text-align:center; }
.prod-work-counts small { color:#6f7a6d; font-size:.875rem; font-weight:500; letter-spacing:.05em; text-transform:uppercase; }
.prod-work-form { display:grid; grid-template-columns:1.2fr 1.2fr .65fr .8fr .9fr; gap:8px; align-items:end; margin:14px 0 12px; padding:10px; border:1px solid #253023; border-radius:11px; background:#0d120c; }
.prod-work-form label { display:flex; flex-direction:column; gap:4px; min-width:0; color:#9aa794; font-size:.875rem; font-weight:700; }
.prod-work-form label i { color:#657063; font-size:.875rem; font-style:normal; font-weight:400; }
.prod-work-form input, .prod-work-form select { width:100%; min-width:0; min-height:38px; box-sizing:border-box; border:1px solid #2c372a; border-radius:8px; background:#090d09; color:#fff; padding:7px 8px; font-size:.875rem; }
.prod-work-form input:focus, .prod-work-form select:focus { outline:none; border-color:#568149; }
.prod-work-notes { grid-column:1 / 5; }
.prod-work-form > .prod-action { grid-column:5; min-height:38px; }
.prod-work-list { display:flex; flex-direction:column; gap:6px; }
.prod-work-card { display:grid; grid-template-columns:82px minmax(150px,1fr) 82px 110px auto; gap:10px; align-items:center; min-height:52px; padding:8px 10px; border:1px solid #252e24; border-radius:10px; background:#0d120c; }
.prod-work-card.in-progress { border-color:#5b5426; background:#17160c; }
.prod-work-card.packaging-running { border-color:#4d8a64; background:#0f1c14; box-shadow:inset 3px 0 #63c987; }
.prod-work-card.packaging-paused { border-color:#4c4a2d; }
.prod-work-status { color:#83907e; font-size:.875rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.prod-work-card.in-progress .prod-work-status { color:#e2c861; }
.prod-work-main { display:flex; flex-direction:column; min-width:0; }
.prod-work-main strong { overflow:hidden; color:#e2eadf; font-size:.875rem; text-overflow:ellipsis; white-space:nowrap; }
.prod-work-main span { color:#90a087; font-size:.875rem; }
.prod-work-main small { overflow:hidden; color:#687266; font-size:.875rem; text-overflow:ellipsis; white-space:nowrap; }
.prod-work-main .prod-work-reason, .prod-work-main .prod-work-blocker { width:max-content; max-width:100%; margin-top:2px; padding:2px 6px; border-radius:999px; color:#b9c7b3; font-weight:700; }
.prod-work-main .prod-work-reason.drop { background:#372b15; color:#f2cf78; }
.prod-work-main .prod-work-reason.par { background:#1b2b18; color:#abd590; }
.prod-work-main .prod-work-blocker.trim { background:#382b14; color:#f0c96f; }
.prod-work-main .prod-work-blocker.bulk { background:#30231e; color:#dfaa93; }
.prod-work-card.blocked-trim { border-color:#635027; }
.prod-work-card.blocked-bulk { border-color:#593c31; }
.prod-work-qty { display:flex; flex-direction:column; color:#d7ffbb; font-size:1rem; text-align:right; }
.prod-work-qty small { color:#687266; font-size:.875rem; font-weight:500; text-transform:uppercase; }
.prod-work-card > time { color:#7b8679; font-size:.875rem; }
.prod-work-actions { display:flex; justify-content:flex-end; gap:5px; }
.prod-work-action-lock { color:#687266; font-size:.875rem; text-align:right; }
.prod-pack-progress { display:grid; grid-template-columns:minmax(130px,1fr) auto; align-items:center; gap:3px 10px; margin-top:7px; }
.prod-pack-progress > span { color:#aab8a4; font-size:.875rem; }
.prod-pack-progress > span b { color:#d7ffbb; font-size:.875rem; }
.prod-pack-progress > i { grid-column:1 / -1; height:5px; overflow:hidden; border-radius:999px; background:#222b20; }
.prod-pack-progress > i > span { display:block; height:100%; border-radius:inherit; background:#63c987; }
.prod-pack-progress > small { color:#71806d; font-size:.875rem; }
.prod-pack-progress > time { color:#9bd7ad; font-size:.875rem; font-variant-numeric:tabular-nums; text-align:right; }
.prod-pack-timers { display:flex; flex-direction:column; grid-column:1 / -1; gap:4px; margin:4px 0 0; padding:0; list-style:none; }
.prod-pack-timers li { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:6px; align-items:center; padding:4px 6px; border-radius:7px; background:#132218; }
.prod-pack-timers li span { overflow:hidden; color:#aab8a4; font-size:.875rem; text-overflow:ellipsis; white-space:nowrap; }
.prod-pack-timers li b { color:#d7ffbb; }
.prod-pack-timers li time { color:#9bd7ad; font-size:.875rem; font-variant-numeric:tabular-nums; }
.prod-work-empty { margin:0; padding:15px; border:1px dashed #293227; border-radius:10px; color:#778175; font-size:.875rem; text-align:center; }
.prod-work-history { margin-top:10px; border-top:1px solid #252e24; }
.prod-work-history > summary { cursor:pointer; padding:10px 2px 3px; color:#879482; font-size:.875rem; list-style:none; }
.prod-work-history > summary span { display:inline-block; margin-left:5px; padding:1px 6px; border-radius:10px; background:#20281e; color:#a9b7a3; }
.prod-work-history-row { display:grid; grid-template-columns:70px minmax(130px,1fr) minmax(110px,1fr) 70px minmax(180px,auto); gap:8px; align-items:center; padding:7px 3px; border-bottom:1px solid #1e251d; font-size:.875rem; }
.prod-work-history-row span { color:#84a774; text-transform:uppercase; }
.prod-work-history-row.cancelled span { color:#a77d74; }
.prod-work-history-row strong { color:#cbd5c7; }
.prod-work-history-row b { color:#8e9a8a; font-weight:500; }
.prod-work-history-row em { color:#d4decf; font-style:normal; text-align:right; }
.prod-work-history-row small { color:#6e786c; text-align:right; }
.prod-bulk-ready { margin:14px 0; border:1px solid #2d3929; border-radius:12px; background:#0d120c; overflow:hidden; }
.prod-bulk-ready > header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; border-bottom:1px solid #252e24; }
.prod-bulk-ready > header > div { display:flex; flex-direction:column; gap:2px; }
.prod-bulk-ready > header strong { color:#d9e8d3; font-size:.875rem; }
.prod-bulk-ready > header span { color:#748071; font-size:.875rem; }
.prod-bulk-ready > header > b { min-width:28px; padding:3px 8px; border-radius:999px; background:#1e291c; color:#bfe6a2; text-align:center; }
.prod-bulk-list { display:flex; flex-direction:column; max-height:360px; overflow:auto; }
.prod-bulk-row { display:grid; grid-template-columns:minmax(180px,1fr) minmax(140px,.65fr) auto; gap:12px; align-items:center; padding:9px 12px; border-bottom:1px solid #1e251d; }
.prod-bulk-row:last-child { border-bottom:0; }
.prod-bulk-row.needs-trim { background:#17140c; box-shadow:inset 3px 0 #b48b34; }
.prod-mini.warn { border-color:#715b2d; color:#edca79; }
.prod-bulk-row > div:first-child { display:flex; flex-direction:column; min-width:0; }
.prod-bulk-row > div:first-child strong { color:#dce6d8; font-size:.875rem; }
.prod-bulk-row > div:first-child span { overflow:hidden; color:#7d897a; font-size:.875rem; text-overflow:ellipsis; white-space:nowrap; }
.prod-bulk-row > b { display:flex; flex-direction:column; color:#d7ffbb; font-size:.9rem; }
.prod-bulk-row > b small { color:#6d786a; font-size:.875rem; font-weight:500; }
.prod-bulk-row > div:last-child { display:flex; justify-content:flex-end; gap:5px; flex-wrap:wrap; }
.prod-routing-guide { margin-top:8px; padding:20px; border:1px solid #2d3929; border-radius:16px; background:#111710; }
.prod-routing-guide header h2 { margin:2px 0 5px; color:#fff; font-size:1.35rem; }
.prod-routing-guide header > p:last-child { margin:0; color:#8c9789; font-size:.875rem; }
.prod-guide-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0 12px; }
.prod-guide-grid article { display:flex; flex-direction:column; gap:3px; min-height:96px; padding:13px; border:1px solid #2a3527; border-radius:12px; background:#0d120c; }
.prod-guide-grid b { color:#9ed37c; font-size:.875rem; text-transform:uppercase; letter-spacing:.06em; }
.prod-guide-grid strong { color:#e3ecdf; font-size:.9rem; }
.prod-guide-grid span { color:#7e8b79; font-size:.875rem; line-height:1.4; }
.prod-guide-note { margin:0; padding:11px 12px; border-left:3px solid #6fae56; background:#121b10; color:#a9b7a3; font-size:.875rem; line-height:1.45; }
.prod-stage-group { margin-top:22px; }
.prod-group-head { display:flex; align-items:center; gap:10px; font-size:.875rem; letter-spacing:.08em; text-transform:uppercase; color:#7fae5f; margin:0 0 10px; }
.prod-group-count { background:#1f291f; color:#bfe6a2; border-radius:20px; padding:1px 9px; font-size:.875rem; }
.prod-cards { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }

.prod-card { background:#141814; border:1px solid #232b23; border-radius:14px; padding:14px 15px; }
.prod-card.done { opacity:.85; }
.prod-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.prod-strain { margin:0; font-size:1.05rem; color:#fff; }
.prod-sub { margin:2px 0 0; font-size:.875rem; color:#8b948b; }
.prod-stage-tag { font-size:.875rem; text-transform:uppercase; letter-spacing:.06em; padding:3px 9px; border-radius:20px; white-space:nowrap; }
.prod-stage-tag.cure { background:#20261c; color:#cbe6a4; }
.prod-stage-tag.chuck { background:#26221c; color:#e6c79a; }
.prod-stage-tag.burp { background:#1c2226; color:#9ac6e6; }
.prod-stage-tag.sort { background:#241c26; color:#cfa2e6; }
.prod-stage-tag.done { background:#1e241e; color:#8fbf7a; }

.prod-meter { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.prod-chip { font-size:.875rem; padding:3px 9px; border-radius:20px; background:#1c221c; color:#b9c4b3; border:1px solid #283028; }
.prod-chip.ok { background:#17240f; color:#a7e07a; border-color:#2c4a1b; }
.prod-chip.warn { background:#2a2410; color:#e6c86a; border-color:#4a411b; }
.prod-chip.bad { background:#2a1414; color:#e68a8a; border-color:#4a1f1f; }
.prod-chip.due { background:#2a2410; color:#e6c86a; }

.prod-checks { display:flex; flex-direction:column; gap:5px; margin:4px 0 10px; }
.prod-check-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.875rem; padding:6px 8px; border-radius:8px; background:#11150f; border:1px solid #1e261e; }
.prod-check-row.due { border-color:#4a411b; background:#1c1810; }
.prod-check-row.ok { border-color:#2c4a1b; }
.prod-check-row.bad { border-color:#4a1f1f; }
.prod-check-day { font-weight:600; color:#cfe0c2; min-width:44px; }
.prod-check-date { color:#8b948b; min-width:72px; }
.prod-check-status { color:#b9c4b3; flex:1; }
.prod-check-actions { display:flex; gap:4px; }

.prod-mini { font-size:.875rem; padding:3px 8px; border-radius:7px; border:1px solid #2c3a2c; background:#1a221a; color:#cfe0c2; cursor:pointer; }
.prod-mini.ok:hover { background:#20340f; border-color:#3a5a1f; }
.prod-mini.warn:hover { background:#34290f; }
.prod-mini.bad:hover { background:#341414; }
.prod-mini:disabled { opacity:.4; cursor:not-allowed; }

.prod-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.prod-action { font-size:.875rem; padding:8px 14px; border-radius:9px; border:1px solid #2c3a2c; background:#1a221a; color:#dce7d4; cursor:pointer; }
.prod-action.accent { background:#2e7d32; border-color:#357a37; color:#fff; }
.prod-action.accent:hover { background:#357f39; }
.prod-action:disabled { opacity:.45; cursor:not-allowed; }
.prod-lock { font-size:.875rem; color:#7f8a7f; margin:8px 0 0; }

.prod-grades { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:10px; margin:8px 0 4px; }
.prod-grade { display:flex; flex-direction:column; gap:4px; font-size:.875rem; color:#cfe0c2; }
.prod-grade span { display:flex; flex-direction:column; }
.prod-grade em { font-style:normal; font-size:.875rem; color:#7f8a7f; }
.prod-grade input { background:#0f130d; border:1px solid #2a332a; border-radius:8px; padding:8px; color:#fff; font-size:.9rem; }
.prod-grade input:focus { outline:none; border-color:#3a5a1f; }
.prod-lot-card { grid-column:span 2; }
.prod-allocations { margin:12px 0 8px; border:1px solid #273027; border-radius:10px; background:#10140f; }
.prod-allocations > summary { cursor:pointer; list-style:none; padding:9px 10px; color:#cfe0c2; font-size:.875rem; }
.prod-allocations > summary::-webkit-details-marker { display:none; }
.prod-allocations > summary::before { content:"▸"; color:#7fae5f; margin-right:7px; }
.prod-allocations[open] > summary::before { content:"▾"; }
.prod-allocations > summary span { margin-left:5px; color:#6f786f; font-size:.875rem; }
.prod-allocation-grid { display:flex; flex-direction:column; gap:6px; padding:0 8px 9px; }
.prod-allocation-row { display:grid; grid-template-columns:44px repeat(3,minmax(58px,1fr)) minmax(84px,auto); gap:6px; align-items:end; }
.prod-allocation-row > strong { align-self:center; color:#bfe6a2; font-size:.875rem; }
.prod-allocation-row label { display:flex; flex-direction:column; gap:2px; color:#758075; font-size:.875rem; }
.prod-allocation-row input { width:100%; min-width:0; box-sizing:border-box; background:#0b0f0a; border:1px solid #2a332a; border-radius:7px; padding:6px; color:#fff; font-size:.875rem; }
.prod-allocation-row output { align-self:center; color:#9aa39a; font-size:.875rem; text-align:right; }
.prod-allocation-row output.bad { color:#e68a8a; font-weight:700; }

.prod-history { margin-top:28px; border:1px solid #273027; border-radius:13px; background:#121612; }
.prod-history > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; padding:13px 15px; }
.prod-history > summary::-webkit-details-marker { display:none; }
.prod-history > summary span { display:flex; flex-direction:column; color:#dce7d4; font-size:.875rem; }
.prod-history > summary small { color:#7f8a7f; font-size:.875rem; font-weight:400; }
.prod-history > summary i { color:#8fbf7a; font-size:.875rem; font-style:normal; }
.prod-history-list { max-height:520px; overflow:auto; border-top:1px solid #232b23; }
.prod-history-row { display:grid; grid-template-columns:100px minmax(130px,1fr) 82px 66px 60px; gap:10px; align-items:center; padding:8px 14px; border-bottom:1px solid #1e241e; font-size:.875rem; }
.prod-history-row time, .prod-history-row span { color:#7f8a7f; }
.prod-history-row strong { color:#d5dfd0; }
.prod-history-row b { color:#fff; text-align:right; }
.prod-history-row em { color:#8fbf7a; font-style:normal; text-align:right; }
@media (max-width:700px){
  .prod-wrap .prod-work-queue > header { align-items:center; }
  .prod-work-queue .prod-work-form { grid-template-columns:1fr 1fr; }
  .prod-work-queue .prod-work-notes { grid-column:1 / -1; }
  .prod-work-queue .prod-work-form > .prod-action { grid-column:1 / -1; }
  .prod-work-queue .prod-work-card { grid-template-columns:70px minmax(110px,1fr) 64px; }
  .prod-work-queue .prod-work-card > time { grid-column:2 / -1; }
  .prod-work-queue .prod-work-actions { grid-column:1 / -1; justify-content:flex-start; }
  .prod-work-queue .prod-work-action-lock { grid-column:1 / -1; text-align:left; }
  .prod-work-queue .prod-work-history-row { grid-template-columns:62px minmax(110px,1fr) 55px; }
  .prod-work-queue .prod-work-history-row b, .prod-work-queue .prod-work-history-row small { display:none; }
  .prod-wrap .prod-lot-card { grid-column:span 1; }
  .prod-allocation-grid .prod-allocation-row { grid-template-columns:38px repeat(3,minmax(54px,1fr)); }
  .prod-allocation-grid .prod-allocation-row output { grid-column:2 / -1; text-align:left; }
  .prod-history-list .prod-history-row { grid-template-columns:84px minmax(100px,1fr) 58px; }
  .prod-history-list .prod-history-row span, .prod-history-list .prod-history-row em { display:none; }
  .prod-wrap .prod-guide-grid { grid-template-columns:1fr 1fr; }
  .prod-wrap .prod-bulk-row { grid-template-columns:minmax(150px,1fr) auto; }
  .prod-wrap .prod-bulk-row > div:last-child { grid-column:1 / -1; justify-content:flex-start; }
}
@media (max-width:480px){
  .prod-wrap .prod-tabs { overflow:auto; }
  .prod-wrap .prod-tab { white-space:nowrap; }
  #productionSection .prod-guide-grid { grid-template-columns:1fr; }
}
/* ── Harvest complete card (arcade scoreboard style) ─────────────────────── */
.prod-harvest-card { background:#0a0a0a; border-color:#2a5a1a; }
.prod-card.done.prod-harvest-card { opacity:1; }
.prod-harvest-banner { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:14px 16px; margin-bottom:12px; background:linear-gradient(135deg,#0d1f0d 0%,#142014 100%); border-radius:10px; border:1px solid #2a5a1a; }
.prod-harvest-banner-left { display:flex; flex-direction:column; min-width:0; }
.prod-harvest-label { font-size:.875rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; color:#6fae4f; }
.prod-harvest-strain { margin:3px 0 2px; font-size:1.25rem; color:#fff; }
.prod-harvest-meta { margin:0; font-size:.875rem; color:#8faf7a; }
.prod-harvest-banner-right { display:flex; flex-direction:column; align-items:flex-end; flex-shrink:0; }
.prod-harvest-total-label { font-size:.875rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#6fae4f; }
.prod-harvest-total-num { font-size:2rem; font-weight:900; color:#d7ffbb; line-height:1.05; font-variant-numeric:tabular-nums; }
.prod-harvest-plants { font-size:.875rem; font-weight:700; color:#8faf7a; margin-top:3px; letter-spacing:.04em; }
.prod-harvest-board { border:1px solid #1e2e1e; border-radius:10px; overflow:hidden; margin-bottom:12px; }
.prod-harvest-head { display:grid; padding:6px 13px; background:#0f160e; font-size:.875rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#567050; border-bottom:1px solid #1e2e1e; }
.prod-harvest-board[data-cols="3"] .prod-harvest-head,
.prod-harvest-board[data-cols="3"] .prod-harvest-row { grid-template-columns:minmax(80px,1fr) 1fr 1fr; }
.prod-harvest-board[data-cols="2"] .prod-harvest-head,
.prod-harvest-board[data-cols="2"] .prod-harvest-row { grid-template-columns:minmax(80px,1fr) 1fr; }
.prod-harvest-head span:not(:first-child) { text-align:right; }
.prod-harvest-row { display:grid; padding:9px 13px; border-top:1px solid #182018; background:#0b100a; align-items:center; }
.prod-harvest-row[data-grade="a"] { background:#000000; }
.prod-harvest-row[data-grade="b"] { background:#000000; }
.prod-harvest-row[data-grade="c"] { background:#000000; }
.prod-harvest-row[data-grade="shake"] { background:#000000; }
.prod-harvest-grade { display:flex; flex-direction:column; font-size:.875rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#a8d880; }
.prod-harvest-row[data-grade="a"] .prod-harvest-grade { color:#f5c842; }
.prod-harvest-row[data-grade="a"] .prod-harvest-post { color:#f5c842; }
.prod-harvest-row[data-grade="b"] .prod-harvest-grade { color:#42d4f4; }
.prod-harvest-row[data-grade="b"] .prod-harvest-post { color:#42d4f4; }
.prod-harvest-row[data-grade="c"] .prod-harvest-grade { color:#f09040; }
.prod-harvest-row[data-grade="c"] .prod-harvest-post { color:#f09040; }
.prod-harvest-row[data-grade="shake"] .prod-harvest-grade { color:#b070f0; }
.prod-harvest-row[data-grade="shake"] .prod-harvest-post { color:#b070f0; }
.prod-harvest-grade em { font-style:normal; font-size:.875rem; font-weight:400; color:#4e6e46; letter-spacing:.03em; }
.prod-harvest-pre { text-align:right; color:#607a58; font-size:.875rem; font-weight:500; font-variant-numeric:tabular-nums; }
.prod-harvest-post { text-align:right; color:#d7ffbb; font-size:.88rem; font-weight:700; font-variant-numeric:tabular-nums; }
/* The trim card: what a strain made, and the moment it becomes stock. Held
   weight is not inventory yet, so the card reads as a statement of record
   rather than as another row of the harvest board. */
.prod-trim-card { margin:10px 0 0; padding:12px; border:1px solid #2a5a1a; border-radius:10px; background:#0b1408; }
.prod-trim-head { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.prod-trim-head strong { color:#d7ffbb; font-size:.9rem; letter-spacing:.02em; }
.prod-trim-state { font-size:.875rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:999px; }
.prod-trim-state.ready { color:#0b1408; background:#8fd96a; }
.prod-trim-state.waiting { color:#d9c26a; background:#2a2410; }
.prod-trim-state.accepted { color:#8a9e84; background:#16220f; }
.prod-trim-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(88px,1fr)); gap:8px; }
.prod-trim-stats div { text-align:center; padding:8px 4px; border-radius:8px; background:#000; }
.prod-trim-stats b { display:block; color:#d7ffbb; font-size:1rem; font-weight:800; font-variant-numeric:tabular-nums; }
.prod-trim-stats span { display:block; margin-top:2px; color:#607a58; font-size:.875rem; letter-spacing:.04em; }
.prod-trim-meta { margin:8px 0 0; color:#8a9e84; font-size:.875rem; line-height:1.45; }

/* C and shake grow from trimming A and B, so before the one end-of-strain
   byproduct weigh their after-trim cell is waiting on a number rather than
   reporting one. Muted and italic so it never reads as a weight, and the
   per-grade colour above is overridden for the same reason. */
.prod-harvest-post.pending { color:#7a8f74; font-weight:500; font-style:italic; font-size:.875rem; letter-spacing:.04em; }
.prod-harvest-row[data-grade="c"] .prod-harvest-post.pending,
.prod-harvest-row[data-grade="shake"] .prod-harvest-post.pending { color:#7a8f74; }
.prod-harvest-total { background:#000000 !important; border-top:2px solid #2a5a1a !important; }
.prod-harvest-total .prod-harvest-grade { color:#fff; font-size:.875rem; letter-spacing:.1em; }
.prod-harvest-total .prod-harvest-pre { color:#8a9e84; }
.prod-harvest-total .prod-harvest-post { color:#d7ffbb; font-size:1rem; font-weight:900; }
@media (max-width:480px){
  .prod-harvest-total-num { font-size:1.5rem; }
  .prod-harvest-banner { flex-direction:column; gap:8px; }
  .prod-harvest-banner-right { align-items:flex-start; flex-direction:row; align-items:center; gap:10px; flex-wrap:wrap; flex-shrink:1; min-width:0; }
  .prod-grand-total-card .prod-gt-grades { grid-template-columns:repeat(2,1fr); }
  .prod-grand-total-card .prod-gt-weight-num { font-size:1.6rem; }
  .prod-grand-total-card .prod-gt-header { flex-direction:column; align-items:flex-start; }
}

/* ── Grand total harvest card ─────────────────────────────────────────────── */
.prod-grand-total-card { grid-column:1 / -1; background:#0a0a0a; border-color:#3a7a2a; border-width:2px; }
.prod-gt-header { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:12px; }
.prod-gt-title-group { display:flex; flex-direction:column; }
.prod-gt-eyebrow { font-size:.875rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; color:#8fd870; }
.prod-gt-title { margin:3px 0 0; font-size:1.4rem; color:#fff; }
.prod-gt-stats { display:flex; gap:10px; }
.prod-gt-stat { display:flex; flex-direction:column; align-items:center; min-width:44px; padding:6px 10px; border:1px solid #2a5a1a; border-radius:10px; background:#0f1f0f; }
.prod-gt-stat b { font-size:1.1rem; color:#d7ffbb; font-variant-numeric:tabular-nums; }
.prod-gt-stat span { font-size:.875rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#5f8f4f; }
.prod-gt-weight { display:flex; align-items:baseline; gap:10px; margin:10px 0; padding:10px 14px; background:linear-gradient(135deg,#0d1f0d 0%,#142014 100%); border:1px solid #2a5a1a; border-radius:10px; }
.prod-gt-weight-label { font-size:.875rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#6fae4f; margin-right:4px; }
.prod-gt-weight-num { font-size:2.2rem; font-weight:900; color:#d7ffbb; font-variant-numeric:tabular-nums; line-height:1; }
.prod-gt-weight-lbs { font-size:.9rem; font-weight:600; color:#8faf7a; }
.prod-gt-grades { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:10px; }
.prod-gt-grade { display:flex; flex-direction:column; align-items:center; padding:8px 6px; border:1px solid #1e2e1e; border-radius:9px; background:#0b100a; }
.prod-gt-grade-label { font-size:.875rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#a8d880; }
.prod-gt-grade-label[data-grade="a"] { color:#f5c842; }
.prod-gt-grade-label[data-grade="b"] { color:#42d4f4; }
.prod-gt-grade-label[data-grade="c"] { color:#f09040; }
.prod-gt-grade-label[data-grade="shake"] { color:#b070f0; }
.prod-gt-grade-val { font-size:.88rem; font-weight:700; color:#d7ffbb; font-variant-numeric:tabular-nums; margin-top:3px; }
.prod-gt-grade-val[data-grade="a"] { color:#f5c842; }
.prod-gt-grade-val[data-grade="b"] { color:#42d4f4; }
.prod-gt-grade-val[data-grade="c"] { color:#f09040; }
.prod-gt-grade-val[data-grade="shake"] { color:#b070f0; }
/* gf:eof production styles */

/* ── Product mix + prices (productmix.js) ────────────────────────────────── */
.mix-prices { background:#12160f; border:1px solid #232b23; border-radius:12px; margin:6px 0 4px; padding:4px 12px; }
.mix-prices > summary { cursor:pointer; font-size:.875rem; color:#cfe0c2; padding:8px 2px; list-style:none; }
.mix-prices > summary::-webkit-details-marker { display:none; }
.mix-prices > summary::before { content:"▸"; margin-right:8px; color:#6f8a5f; }
.mix-prices[open] > summary::before { content:"▾"; }
.mix-prices-note { color:#7f8a7f; font-size:.875rem; margin-left:6px; }
.mix-price-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; padding:8px 0; }
.mix-price { display:flex; flex-direction:column; gap:4px; font-size:.875rem; color:#cfe0c2; }
.mix-price span { display:flex; flex-direction:column; }
.mix-price em { font-style:normal; font-size:.875rem; color:#7f8a7f; }
.mix-price-in { display:flex; align-items:center; background:#0f130d; border:1px solid #2a332a; border-radius:8px; padding:0 8px; }
.mix-price-in i { color:#7f8a7f; font-style:normal; font-size:.875rem; }
.mix-price-in input { flex:1; background:transparent; border:0; padding:8px 4px; color:#fff; font-size:.9rem; }
.mix-price-in input:focus { outline:none; }
.mix-price-actions { display:flex; align-items:center; gap:10px; padding:4px 0 10px; }

.mix-wrap { margin-top:10px; border-top:1px solid #1e261e; padding-top:10px; display:flex; flex-direction:column; gap:12px; }
.mix-h { font-size:.875rem; font-weight:600; color:#bfe6a2; margin:0 0 2px; display:flex; align-items:center; gap:8px; }
.mix-rev { margin-left:auto; color:#8fe07a; font-size:.95rem; font-weight:700; }
.mix-note { font-size:.875rem; color:#7f8a7f; margin:0 0 8px; }
.mix-lines { display:grid; grid-template-columns:1fr 1fr; gap:6px 14px; }
.mix-line { display:flex; align-items:baseline; gap:8px; font-size:.875rem; }
.mix-ct { min-width:38px; text-align:right; font-weight:700; color:#fff; font-size:.95rem; }
.mix-lbl { color:#b9c4b3; display:flex; flex-direction:column; line-height:1.15; }
.mix-lbl em { font-style:normal; font-size:.875rem; color:#7f8a7f; }
.mix-left { font-size:.875rem; color:#6f786f; margin:8px 0 0; }
@media (max-width:560px){ .mix-lines { grid-template-columns:1fr; } }
/* gf:eof productmix styles */

/* Focused room detail overlays */

/* Rey's Make list and the Store Orders section (migration 212). */
.make-list, .store-orders { margin:14px 0 20px; padding:15px; border:1px solid #2d3929; border-radius:15px; background:#111710; }
.make-list > header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px 18px; margin-bottom:10px; }
.make-list > header h2, .store-orders > header h2 { margin:1px 0 2px; color:#fff; font-size:1.2rem; }
.make-list > header p:not(.section-label), .store-orders > header p:not(.section-label) { max-width:620px; margin:0; color:#7f8a7f; font-size:.875rem; line-height:1.35; }
.make-rows { display:flex; flex-direction:column; border:1px solid #1e251d; border-radius:11px; overflow:hidden; }
.make-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:10px 12px; border-bottom:1px solid #1e251d; border-left:4px solid #2b4a26; }
.make-row:last-child { border-bottom:0; }
.make-row.short { border-left-color:#d8584b; background:#1a1110; }
.make-row.low { border-left-color:#d6a93f; }
.make-name { display:flex; flex-direction:column; gap:3px; min-width:0; }
.make-name strong { color:#eef5e8; font-size:.9rem; }
.make-name strong i { color:#8fa089; font-size:.875rem; font-style:normal; text-transform:uppercase; letter-spacing:.04em; }
.make-name small, .make-batch small { color:#7f8a7f; font-size:.875rem; }
.make-flag { align-self:flex-start; padding:2px 7px; border-radius:6px; background:#3a2d12; color:#f2c46b; font-size:.875rem; font-style:normal; font-weight:600; }
.make-flag.behind { background:#4a1c18; color:#ff9d8f; }
.make-qty { display:flex; flex-direction:column; align-items:flex-end; color:#c7efaa; font-size:1.35rem; line-height:1; }
.make-qty small { color:#6f7a6d; font-size:.875rem; font-weight:500; letter-spacing:.05em; text-transform:uppercase; }
.make-batch { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; color:#dfe9d8; font-size:.875rem; }
.make-batch:empty { display:none; }
.make-stock { grid-column:1 / -1; display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:12px; margin:4px 0; }
.make-stock dt { color:#a3afa1; font-size:.8rem; }
.make-stock dd { margin:3px 0 0; color:#edf5e8; font-size:1.2rem; font-weight:700; }
.pack-readiness { margin:20px 0; }
.pack-readiness header p, .pack-target p { color:#b1bcae; }
.pack-target-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:14px; }
.pack-target { padding:18px; border:1px solid #42563b; border-radius:14px; background:#10180f; min-width:0; }
.pack-target.short { border-color:#cc9a42; }
.pack-target h3 { margin:0 0 12px; font-size:1.1rem; }
.pack-target .pack-target-number { font-size:2.5rem; font-weight:800; color:#f1f8eb; margin:6px 0; }
.pack-target-number small { display:block; font-size:1rem; font-weight:500; color:#bac8b5; }
.pack-target progress { display:block; width:100%; height:16px; accent-color:#a7d978; margin:12px 0; }
.pack-target .pack-target-build { font-size:1.6rem; font-weight:750; color:#d4efb7; margin:12px 0 4px; }
.pack-target details { border-top:1px solid #36422f; padding-top:12px; }
.pack-target summary, .pack-job summary, .pack-tools summary { cursor:pointer; padding:10px 0; font-weight:650; }
.pack-next > div { display:flex; flex-direction:column; gap:6px; border-top:1px solid #36422f; padding:12px 0; }
.pack-next span { color:#b1bcae; }
.pack-job, .pack-tools { border:1px solid #36422f; padding:10px 14px; border-radius:10px; margin:10px 0; }
.pack-job summary b { color:#ccebad; margin-left:8px; }
.make-covered { margin-top:10px; }
.make-covered summary { cursor:pointer; color:#9aa696; font-size:.875rem; }
.make-covered summary span { margin-left:6px; color:#6f7a6d; }
.make-covered .make-rows { margin-top:8px; }
.store-orders > header { margin-bottom:10px; }
.store-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.store-card { display:flex; flex-direction:column; border:1px solid #26301f; border-radius:12px; background:#0c110b; overflow:hidden; }
.store-card > header { display:flex; justify-content:space-between; gap:8px; padding:9px 11px; border-bottom:1px solid #1e251d; }
.store-card > header strong { color:#fff; font-size:.95rem; }
.store-card > header span { color:#9aa696; font-size:.875rem; }
.store-card.ready > header span { color:#9fdc7c; }
.store-card.behind { border-color:#7a2e26; }
.store-card.behind > header span { color:#ff9d8f; font-weight:600; }
.store-line { display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:7px 11px; border-bottom:1px solid #182017; }
.store-line span { color:#dfe9d8; font-size:.875rem; }
.store-line b { color:#c7efaa; font-size:.9rem; text-align:right; }
.store-line b small { margin-left:4px; color:#6f7a6d; font-size:.875rem; font-weight:500; text-transform:uppercase; }
.store-line > small { grid-column:1 / -1; color:#7f8a7f; font-size:.875rem; }
.store-line.short > small { color:#f2c46b; }
.store-card > footer { margin-top:auto; display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:8px 11px; color:#6f7a6d; font-size:.875rem; }
.prod-work-hidden { margin:8px 0; color:#7f8a7f; font-size:.875rem; }

/* Crew reports (migration 214). */
#reportsSection { max-width:1100px; margin:0 auto; padding:14px 16px 90px; }
.rep-head { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px 18px; margin-bottom:14px; }
.rep-head h2 { margin:1px 0 2px; color:#fff; font-size:1.25rem; }
.rep-head p:not(.section-label) { max-width:560px; margin:0; color:#7f8a7f; font-size:.875rem; line-height:1.35; }
.rep-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.rep-tab { min-height:46px; padding:8px 16px; border:1px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--text); font-size:1rem; font-weight:700; cursor:pointer; }
.rep-tab.active { border-color:var(--accent); background:rgba(52,212,106,.16); color:var(--text); }
.rep-team { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px; margin-bottom:12px; }
.rep-team > div { padding:10px; border:1px solid #26301f; border-radius:11px; background:#0c110b; }
.rep-team b { display:block; color:#c7efaa; font-size:1.3rem; }
.rep-team b small { margin-left:4px; color:#6f7a6d; font-size:.875rem; font-weight:500; }
.rep-team span { color:#7f8a7f; font-size:.875rem; }
.rep-team > div.bad b { color:#ff9d8f; }
.rep-quiet { display:flex; flex-wrap:wrap; gap:6px 8px; align-items:center; margin-bottom:14px; padding:11px 12px; border:1px solid #7a2e26; border-radius:12px; background:#1a1110; }
.rep-quiet strong { color:#ff9d8f; font-size:.875rem; margin-right:4px; }
.rep-quiet span { padding:3px 8px; border-radius:7px; background:#4a1c18; color:#ffd2cb; font-size:.875rem; }
.rep-quiet p { flex-basis:100%; margin:4px 0 0; color:#b99a93; font-size:.875rem; }
.rep-h { margin:6px 0 8px; color:#dfe9d8; font-size:.9rem; }
.rep-people { display:flex; flex-direction:column; border:1px solid #1e251d; border-radius:12px; overflow:hidden; }
.rep-person { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:4px 12px; align-items:center; padding:10px 12px; border-bottom:1px solid #1e251d; border-left:4px solid #2b4a26; background:#111710; }
.rep-person:last-child { border-bottom:0; }
.rep-person.none { border-left-color:#d8584b; background:#1a1110; }
.rep-person.stale { border-left-color:#d6a93f; }
.rep-rank { color:#c7efaa; font-size:1.1rem; }
.rep-who { display:flex; flex-direction:column; gap:2px; min-width:0; }
.rep-who strong { color:#eef5e8; font-size:.9rem; }
.rep-who small, .rep-days small { color:#7f8a7f; font-size:.875rem; }
.rep-flag { align-self:flex-start; padding:2px 7px; border-radius:6px; background:#4a1c18; color:#ff9d8f; font-size:.875rem; font-style:normal; font-weight:600; }
.rep-person.stale .rep-flag { background:#3a2d12; color:#f2c46b; }
.rep-days { display:flex; flex-direction:column; align-items:flex-end; }
.rep-days b { color:#dff5cf; font-size:1.1rem; }
.rep-up { margin-left:3px; color:#8fdc6a; font-size:.875rem; font-style:normal; }
.rep-down { margin-left:3px; color:#ff9d8f; font-size:.875rem; font-style:normal; }
.rep-work { grid-column:2 / -1; display:flex; flex-wrap:wrap; gap:5px; }
.rep-work span { padding:3px 8px; border:1px solid #26301f; border-radius:7px; background:#0c110b; color:#cfe0c6; font-size:.875rem; }
.rep-work span.rep-empty { border-style:dashed; color:#6f7a6d; }
.rep-work.self { margin-top:10px; }
.rep-speeds { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin-top:14px; }
.rep-speed { padding:11px 12px; border:1px solid #26301f; border-radius:12px; background:#0c110b; }
.rep-speed h3 { margin:0 0 6px; color:#dfe9d8; font-size:.875rem; }
.rep-speed div { display:flex; justify-content:space-between; gap:8px; padding:3px 0; color:#cfe0c6; font-size:.875rem; }
.rep-speed b { color:#c7efaa; }
.rep-me { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; }
.rep-me > div { padding:12px; border:1px solid #26301f; border-radius:12px; background:#0c110b; }
.rep-me b { display:block; color:#c7efaa; font-size:1.5rem; }
.rep-me span { color:#7f8a7f; font-size:.875rem; }
.rep-me.none .rep-me-rank b { color:#ff9d8f; }
.rep-quiet-me { margin:10px 0 0; padding:10px 12px; border:1px solid #7a2e26; border-radius:11px; background:#1a1110; color:#ffd2cb; font-size:.875rem; }

/* ── The final weight (migration 233) ─────────────────────────────────────
   One panel per strain and one obvious next step, in the Retail tab's style:
   large type, a 50px button that fills a phone. "Next" is green and asks for
   the weigh; "Final" is quiet and says how the number came to be. */
.prod-final { margin:12px 0 0; padding:14px 16px; border:1px solid var(--line-strong); border-radius:14px; background:var(--panel); }
.prod-final.ready { border-color:rgba(52,212,106,.55); background:rgba(52,212,106,.08); }
.prod-final.done { border-color:#2a5a1a; background:#0b1408; }
.prod-final-head { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; }
.prod-final-head strong { color:var(--text); font-size:1.1rem; line-height:1.3; }
.prod-final-badge { padding:3px 10px; border-radius:999px; background:var(--accent); color:var(--accent-text); font-size:.875rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.prod-final.done .prod-final-badge { background:#16220f; color:#8fd96a; }
.prod-final-line { margin:8px 0 0; color:var(--muted); font-size:1rem; line-height:1.45; font-variant-numeric:tabular-nums; }
.prod-final-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.prod-final-actions .rt-btn { flex:1 1 220px; max-width:420px; }

/* Packaging uses one compact work list; detailed controls open only on request. */
.pack-next-group { border:1px solid #36422f; border-radius:10px; overflow:hidden; margin:14px 0; }
.pack-next-group h3 { margin:0; padding:12px; background:#1b261b; font-size:1rem; }
.pack-next-group h3 small { color:#a4b49e; margin-left:8px; font-weight:400; }
:is(.pack-next-heading, .pack-next-job > summary) { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(54px,.45fr) minmax(0,1fr); gap:12px; padding:12px; }
.pack-next-heading { color:#a4b49e; font-size:.875rem; }
.pack-next-job { border-top:1px solid #2b3628; }
.pack-next-job > summary { cursor:pointer; list-style:none; align-items:center; }
.pack-next-job > summary small { display:block; color:#a4b49e; font-size:.875rem; margin-top:4px; overflow-wrap:anywhere; }
.pack-next-job > summary strong::before { content:"▸ "; color:#a4b49e; }
.pack-next-job[open] > summary strong::before { content:"▾ "; }
.pack-next-job > summary:hover { background:#202b1e; }
.pack-job-controls { padding:0 12px 12px; }

.pack-group-stock { margin:0; padding:8px 12px; color:#a4b49e; font-size:.875rem; }

.prod-work-queue > header > div:first-child { flex:1 1 260px; }

.pack-job-controls .prod-work-card { display:flex; flex-direction:column; align-items:stretch; min-width:0; }
.pack-job-controls .prod-work-actions { flex-wrap:wrap; justify-content:flex-start; }
.pack-job-controls .prod-work-main small { white-space:normal; overflow-wrap:anywhere; }
.pack-job-controls .prod-work-qty { text-align:left; }

.pack-next-job > summary > span { min-width:0; overflow-wrap:anywhere; }


.pack-store-requests { border-top:1px solid #2b3628; padding:12px; }
.pack-store-requests > summary { cursor:pointer; font-weight:650; }
.pack-store-requests p { display:flex; justify-content:space-between; gap:12px; margin:12px 0; }
