/* ============================================================================
   AllureOS Pulse — pulse-9.css — BUYING › FORECASTER (2026-09-02)
   ----------------------------------------------------------------------------
   The replenishment surface (Buying-FORECASTER spec §5.5). Every value here is
   lifted from the v4 mockup Peter ruled on 2026-08-31
   (allure-hub-docs/AllureOS/mockups/2026-08-31-forecaster-v4-eveden.html) —
   the mockup IS the build reference, so the voice is copied, not re-derived.

   ⛔ DESIGN §9, money lists: ONE fixed-px grid shared by every card (.fc-fg),
   one baseline / two sizes (12.5/18 · 10/14), one line per cell, no repeated
   money columns, plain worded buttons.

   Wide desktop by ruling (Lindsey: "we have lots of room for Desktop"): the
   subview widens to 1600px while it is open (body.fc-wide) — the rest of Pulse
   keeps its 1100/1280 canvas. Below ~1660px the money grid scrolls INSIDE the
   card; the page never scrolls sideways.
   ========================================================================== */

body.fc-wide #panel-buying { max-width: 1648px; }
#sv-forecaster { max-width: 1600px; }   /* 1218 + 7 × 44 + the card's padding: every store column on a wide desktop (9-08) */
#sv-forecaster .num { font-family: 'Inter', sans-serif; font-variant-numeric: lining-nums tabular-nums; }

/* ── controls ─────────────────────────────────────────────────────────── */
.fc-ctl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 14px 0 4px; }
.fc-sel { appearance: none; -webkit-appearance: none; font-family: 'Jost', sans-serif; font-size: 12.5px; font-weight: 600; color: #4a2c17;
  background: #fffcf8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238a6940' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 10px center;
  border: 1px solid #d4bfa8; border-radius: 8px; padding: 7px 28px 7px 12px; outline: none; cursor: pointer; max-width: 320px; }
.fc-sel:focus { border-color: #c5a572; }
.fc-win { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8a6940; border: 1px solid #e8ddd0; border-radius: 999px; padding: 6px 12px; background: transparent; }
.fc-grow { flex: 1; }
/* THE TWO BOXES + THE BRANDS (89th): Tags · Categories in the find box's row (the store pill's voice); the vendor's
   brands as a pill row under the controls, highlighted = narrows the read. */
.fc-fwrap { position: relative; display: inline-block; }
.fc-fbtn { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8a6940; background: transparent; border: 1px solid #e8ddd0; border-radius: 999px; padding: 6px 12px; cursor: pointer; white-space: nowrap; }
.fc-fbtn:hover { border-color: #c5a572; }
.fc-fbtn.on { background: #4a2c17; border-color: #4a2c17; color: #fffcf8; }
.fc-fbtn b { font-weight: 700; color: #c0392b; }
.fc-fbtn.on b { color: #f1c9c2; }
.fc-fpop { left: auto; right: 0; width: 340px; }
.fc-fp-row { grid-template-columns: 18px 1fr; }
.fc-fp-cat { font-family: 'Jost', sans-serif; font-size: 12px; color: #3a2e24; line-height: 1.3; }
.fc-brands { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 8px 0 0; }
.fc-brands::before { content: "Brands"; font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: #9a7b5a; margin-right: 4px; }
.fc-bpill { font-family: 'Jost', sans-serif; font-size: 12px; font-weight: 600; color: #6e5a47; background: transparent; border: 1px solid #e8ddd0; border-radius: 999px; padding: 4px 12px; cursor: pointer; }
.fc-bpill:hover { border-color: #c5a572; }
.fc-bpill.on { background: #4a2c17; border-color: #4a2c17; color: #fffcf8; }
.fc-find { font-family: 'Jost', sans-serif; font-size: 12.5px; color: #3a2e24; background: #fffaf3; border: 1px solid #e8ddd0; border-radius: 8px; padding: 7px 12px; width: 220px; outline: none; }
.fc-find::placeholder { color: #b8a898; }
.fc-find:focus { border-color: #c5a572; }

.fc-stores { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 10px 0 0; }
.fc-spill { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8a6940; background: transparent; border: 1px solid #e8ddd0; border-radius: 999px; padding: 6px 11px; cursor: pointer; }
.fc-spill:hover { border-color: #c5a572; }
.fc-spill.on { background: #4a2c17; border-color: #4a2c17; color: #fffcf8; }
.fc-spill b { font-weight: 700; font-size: 10px; color: #c0392b; }
.fc-spill.on b { color: #f1c9c2; }
.fc-spill.zero { opacity: .45; }
.fc-fpills { display: flex; gap: 6px; margin: 10px 0 0; flex-wrap: wrap; }
.fc-fpill { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8a6940; border: 1px solid #e8ddd0; border-radius: 999px; padding: 6px 12px; background: transparent; cursor: pointer; }
.fc-fpill:hover { border-color: #c5a572; }
.fc-fpill.on { background: #3d2417; border-color: #3d2417; color: #fdf8f3; }

/* ── stat tiles ───────────────────────────────────────────────────────── */
.fc-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0 18px; }
.fc-stat { background: #fffcf8; border: 1px solid #e8ddd0; border-radius: 10px; padding: 12px 14px 11px; text-align: left; cursor: pointer; font: inherit; color: inherit; width: 100%; }
.fc-stat:hover { border-color: #c5a572; }
/* The tile IS the filter (9-04): the chosen one wears the dark pill's voice. */
.fc-stat.on { background: #3d2417; border-color: #3d2417; }
.fc-stat.on .n, .fc-stat.on.bad .n, .fc-stat.on.warn .n { color: #fdf8f3; }
.fc-stat.on .l { color: #d9c3a0; }
.fc-stat.on .s { color: #c9b393; }
/* The zero rule (9-04): a resting row fades; the rail under the stores says who sleeps and when each wakes. */
.fc-row.fc-resting .fc-cell { opacity: .45; }
.fc-row.fc-resting .fc-item, .fc-row.fc-resting .fc-ordcell { opacity: 1; }
.fc-rest-note { color: #9a7b5a !important; }
/* In flight (9-09): units already on a transfer slip toward this store — the need already subtracts them. */
.fc-transit-note { color: #1f5a32 !important; }
.fc-rail { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 8px 0 0; font-family: 'Jost', sans-serif; font-size: 11px; color: #9a7b5a; }
.fc-rail-lbl { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: #b8a898; }
.fc-rail-item b { color: #6e5a3f; font-weight: 600; }
.fc-rail-wake { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; color: #8a6940; background: transparent; border: 1px solid #e8ddd0; border-radius: 999px; padding: 2px 7px; cursor: pointer; margin-left: 2px; }
.fc-rail-wake:hover { border-color: #c5a572; color: #4a2c17; }
.fc-lead { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8a6940; padding: 6px 4px; }
.fc-stat .n { font-family: 'Inter', sans-serif; font-size: 24px; font-weight: 600; color: #3a2e24; line-height: 1.1; font-variant-numeric: lining-nums tabular-nums; }
.fc-stat .n small { font-size: 13px; font-weight: 600; }
.fc-stat.bad .n { color: #c0392b; }
.fc-stat.warn .n { color: #b8862e; }
.fc-stat .l { font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color: #8a6940; margin-top: 5px; }
.fc-stat .s { font-family: 'Jost', sans-serif; font-size: 10px; line-height: 14px; color: #9a7b5a; margin-top: 2px; }

/* ── the card ─────────────────────────────────────────────────────────── */
.fc-card { background: #fffcf8; border: 1px solid #e8ddd0; border-radius: 10px; padding: 16px 16px 14px; margin: 0 0 14px; }
.fc-card-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.fc-card-head .store { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 400; color: #4a2c17; line-height: 1.1; }
.fc-card-head .sub { font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color: #8a6940; margin-top: 4px; }
.fc-card-head .right { margin-left: auto; text-align: right; }
.fc-exp { display: inline-block; white-space: nowrap; background: #fff5e8; border: 1px solid #e8ddd0; border-radius: 999px; padding: 5px 12px; font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #4a2c17; }
.fc-exp-sub { font-family: 'Jost', sans-serif; font-size: 10px; line-height: 14px; color: #9a7b5a; margin-top: 4px; }

/* the one money grid — fixed px, shared by every card; scrolls inside the card when the canvas is narrower */
.fc-scroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
/* the column template is set inline per card (fcGridStyle: the fixed money columns + one 44px per other store) — a fixed count here chopped the seventh store (9-08) */
.fc-fg { display: grid; align-items: start; }
/* Tags (9-04): the second column — chips on the style; the cell is the door to the popup. */
.fc-tags { position: relative; display: flex; flex-wrap: wrap; gap: 3px; align-items: center; cursor: pointer; min-height: 22px; padding-left: 6px; }
.fc-tag { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: #6e5a3f; border: 1px solid #d4bfa8; border-radius: 999px; padding: 2px 6px; line-height: 1; white-space: nowrap; }
.fc-tag.ab { color: #1f7a45; border-color: rgba(46,158,91,.45); }
.fc-tag.disc { color: #b3261e; border-color: rgba(179,38,30,.4); }
.fc-tag.none { color: #b8a898; border-color: transparent; padding-left: 0; }
.fc-tag.more { color: #9a7b5a; border-style: dashed; }
.fc-tags:hover .fc-tag { border-color: #c5a572; }
.fc-tagpop { position: absolute; top: 100%; left: 0; z-index: 40; width: 380px; max-width: calc(100vw - 32px); background: #fffdf9; border: 1px solid #e8d9c2; border-radius: 10px; box-shadow: 0 8px 24px rgba(58,46,36,.18); padding: 10px 12px 10px; cursor: default; text-align: left; }
.fc-tp-head { margin-bottom: 8px; }
.itm-acts { display: flex; gap: 4px; flex-wrap: wrap; }
.itm-color-btn { white-space: nowrap; }
.fc-tp-all { display: flex; align-items: center; gap: 6px; font-family: 'Jost', sans-serif; font-size: 11px; color: #6e5a3f; margin: 4px 0 2px; cursor: pointer; }
.fc-tp-all input { accent-color: #3d2417; margin: 0; }
.fc-tp-title { font-family: 'Jost', sans-serif; font-size: 13px; color: #3a2e24; display: block; }
.fc-tp-sub { font-family: 'Jost', sans-serif; font-size: 10px; color: #9a7b5a; display: block; }
.fc-tp-list { max-height: 260px; overflow-y: auto; border-top: 1px solid #efe6d8; border-bottom: 1px solid #efe6d8; padding: 4px 0; }
.fc-tp-row { display: grid; grid-template-columns: 18px 52px 1fr; gap: 8px; align-items: start; padding: 6px 4px; border-radius: 6px; cursor: pointer; }
.fc-tp-row:hover, .fc-tp-row.on { background: #f8f1e6; }
.fc-tp-row input { margin: 2px 0 0; accent-color: #3d2417; }
.fc-tp-lbl { font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: #3a2e24; padding-top: 2px; }
.fc-tp-def { font-family: 'Jost', sans-serif; font-size: 11px; line-height: 1.35; color: #6e5a3f; }
.fc-tp-def.dim { color: #b8a898; }
.fc-tp-more { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: #9a7b5a; padding: 8px 4px 2px; }
.fc-tp-create { display: block; width: 100%; text-align: left; background: transparent; border: none; color: #8a6940; font-family: 'Jost', sans-serif; font-size: 12px; padding: 8px 4px 2px; cursor: pointer; }
.fc-tp-create:hover { color: #4a2c17; }
.fc-tp-new { display: grid; gap: 6px; padding: 8px 0 4px; }
.fc-tp-in { font-family: 'Jost', sans-serif; font-size: 12.5px; color: #3a2e24; background: #fffaf3; border: 1px solid #d4bfa8; border-radius: 6px; padding: 6px 8px; outline: none; width: 100%; box-sizing: border-box; }
.fc-tp-in:focus { border-color: #c5a572; }
.fc-tp-newbtns, .fc-tp-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding-top: 8px; }
.fc-tp-status { margin-right: auto; font-family: 'Jost', sans-serif; font-size: 11px; color: #8a6940; }
.fc-btn-ghost { font-family: 'Inter', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #8a6940; background: transparent; border: 1px solid #e8ddd0; border-radius: 999px; padding: 6px 12px; cursor: pointer; }
.fc-btn-primary.sm { padding: 6px 14px; font-size: 10px; }
.fc-fg-head { border-bottom: 1px solid #e8ddd0; padding: 0 0 6px; }
.fc-fg-head span { font-family: 'Inter', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #8a6940; white-space: nowrap; padding-left: 6px; }
.fc-fg-head span.r { text-align: right; }
.fc-fg-head span.oth { color: #b8a898; }
.fc-row { border-bottom: 1px solid #f3e9dc; padding: 9px 0 8px; }
.fc-row:last-of-type { border-bottom: 1px solid #e8ddd0; }
.fc-row.saving { opacity: .6; }
.fc-cell { font-size: 12.5px; line-height: 18px; color: #3a2e24; vertical-align: top; }
.fc-cell.r { text-align: right; }
.fc-cell .sub { display: block; font-size: 10px; line-height: 14px; color: #9a7b5a; font-weight: 400; }
.fc-item .nm { font-weight: 600; color: #3a2e24; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.fc-item .sub.alert { color: #b8862e; }
.fc-item .sub.out { color: #c0392b; }
.fc-zero { color: #c0392b; font-weight: 600; }
.fc-dim { color: #9a7b5a; }
.fc-oth { color: #9a7b5a; }
.fc-oth.has { color: #3a2e24; }
.fc-sugg { color: #8a6940; font-weight: 600; border-bottom: 1px dashed #d4bfa8; cursor: pointer; }
.fc-sugg:hover { color: #4a2c17; border-bottom-color: #c5a572; }
.fc-sugg.same { color: #9a7b5a; font-weight: 400; border-bottom-color: transparent; cursor: default; }
.fc-rop-src { display: block; font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: #9a7b5a; line-height: 12px; margin-top: 2px; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-rop-src.buyer { color: #8a6940; }
.fc-rop-src.ls-miss { color: #c0392b; }   /* the point is saved here; Lightspeed refused it (89th) */
.fc-tin { width: 46px; text-align: right; font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 600; color: #3a2e24; font-variant-numeric: lining-nums tabular-nums; background: #fffaf3; border: 1px solid #d4bfa8; border-radius: 6px; padding: 4px 7px; outline: none; }
.fc-tin:focus { border-color: #c5a572; }
.fc-tin.cost { width: 62px; }
.fc-tin.z { color: #9a7b5a; font-weight: 400; }
/* THE DRAFT (9-09): Add puts a line in the store's order; a line in the order wears the tag. The pill and the
   tag reuse the dusty tag's voice (mono 8px caps) — green, the transit note's colour. */
.fc-add { font-family: 'Jost', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #6e5a47; background: transparent; border: 1px solid #d4bfa8; border-radius: 999px; padding: 4px 10px; cursor: pointer; line-height: 14px; }
.fc-add:hover { color: #3d2417; border-color: #c5a572; background: #fffaf3; }
.fc-row.fc-inorder .fc-item .nm::after { content: "In Order"; font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; color: #1f5a32; border: 1px solid rgba(31,90,50,.4); border-radius: 999px; padding: 1px 6px; margin-left: 6px; vertical-align: middle; }

.fc-card-foot { display: flex; align-items: center; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.fc-btn-ghost { font-family: 'Jost', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #6e5a47; background: transparent; border: 1px solid #d4bfa8; border-radius: 8px; padding: 9px 16px; cursor: pointer; }
.fc-btn-ghost:hover { border-color: #c5a572; }
.fc-btn-primary { font-family: 'Jost', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #fdf8f3; background: #3d2417; border: 1px solid #3d2417; border-radius: 8px; padding: 9px 18px; cursor: pointer; margin-left: auto; }
.fc-btn-primary:hover { background: #2a1a10; }
.fc-btn-primary:disabled, .fc-btn-ghost:disabled { opacity: .5; cursor: default; }
.fc-foot-total { font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 600; color: #3a2e24; margin-left: auto; }
.fc-foot-total .fc-dim { font-weight: 400; }

/* ── the other stores, as rows ────────────────────────────────────────── */
.fc-more-label { font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color: #8a6940; margin: 20px 0 4px; }
.fc-mrow { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #f3e9dc; padding: 11px 2px; }
.fc-mav { width: 32px; height: 32px; border-radius: 6px; background: #fff5e8; border: 1px solid #e8ddd0; display: flex; align-items: center; justify-content: center; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 600; color: #8a6940; flex: 0 0 32px; }
.fc-mrow .nm { font-size: 14.5px; font-weight: 600; color: #3a2e24; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-mrow .meta { margin-left: auto; font-family: 'Inter', sans-serif; font-size: 10px; color: #9a7b5a; white-space: nowrap; }
.fc-mrow .meta b { color: #c0392b; font-weight: 600; }
.fc-mrow .go { font-family: 'Jost', sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #6e5a47; border: 1px solid #d4bfa8; border-radius: 8px; background: transparent; padding: 6px 12px; cursor: pointer; flex: 0 0 auto; }
.fc-mrow .go:hover { border-color: #c5a572; }

/* ── states ───────────────────────────────────────────────────────────── */
.fc-loading, .fc-empty, .fc-err { font-family: 'Jost', sans-serif; font-size: 12.5px; line-height: 18px; color: #6e5a47; padding: 18px 2px; }
.fc-err { color: #a85842; }
.fc-empty .t { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: #4a2c17; margin-bottom: 4px; }
.fc-note { font-family: 'Jost', sans-serif; font-size: 10px; line-height: 14px; color: #9a7b5a; margin: 6px 0 0; }

/* ── the order sheet (DESIGN §11 modal voice) ─────────────────────────── */
.fc-scrim { position: fixed; inset: 0; background: rgba(20, 15, 12, .55); z-index: 80; overflow: auto; }
.fc-sheet { background: #fffcf8; border: 1px solid #d4bfa8; border-radius: 20px; margin: calc(76px + env(safe-area-inset-top, 0px)) auto 40px; padding: 18px 20px 16px; position: relative; width: min(760px, 100vw - 24px); }
.fc-sheet-lbl { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .24em; text-transform: uppercase; color: #8a6940; }
.fc-sheet-title { font-family: 'Cormorant Garamond', serif; font-size: 24px; color: #4a2c17; margin-top: 2px; }
.fc-sheet-title .arrow { color: #c5a572; }
.fc-sheet-x { position: absolute; top: 14px; right: 14px; width: 26px; height: 26px; border: 1px solid #e8ddd0; border-radius: 50%; background: transparent; color: #8a6940; font-family: 'Jost', sans-serif; font-size: 13px; line-height: 1; cursor: pointer; }
.fc-sheet-x:hover { border-color: #c5a572; }
.fc-po-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.fc-po-meta .k { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: #8a6940; }
.fc-po-meta .v { font-size: 12.5px; line-height: 18px; color: #3a2e24; font-weight: 600; margin-top: 3px; }
.fc-po-meta .v .sub { display: block; font-size: 10px; line-height: 14px; color: #9a7b5a; font-weight: 400; }
.fc-po-meta input[type=date] { font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 600; color: #3a2e24; background: #fffaf3; border: 1px solid #d4bfa8; border-radius: 6px; padding: 3px 7px; outline: none; }
.fc-po-meta input[type=date]:focus { border-color: #c5a572; }
.fc-pg { display: grid; grid-template-columns: 1fr 76px 84px 92px; align-items: start; }
.fc-pg-head { border-bottom: 1px solid #e8ddd0; padding: 0 0 6px; }
.fc-pg-head span { font-family: 'Inter', sans-serif; font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #8a6940; white-space: nowrap; }
.fc-pg-head span.r, .fc-pg .r { text-align: right; }
.fc-pg.row { border-bottom: 1px solid #f3e9dc; padding: 8px 0 7px; }
.fc-po-sec { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .24em; text-transform: uppercase; color: #8a6940; margin: 14px 0 6px; }
.fc-po-totals { display: flex; justify-content: flex-end; gap: 26px; border-top: 1px solid #e8ddd0; margin-top: 0; padding-top: 10px; }
.fc-po-totals .k { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: #8a6940; display: block; text-align: right; }
.fc-po-totals .v { font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: #3a2e24; text-align: right; margin-top: 3px; }
.fc-sheet-foot { display: flex; align-items: center; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.fc-sheet-foot .note { font-family: 'Jost', sans-serif; font-size: 10px; color: #9a7b5a; }
.fc-sheet-msg { font-family: 'Jost', sans-serif; font-size: 12px; color: #6e5a47; margin-top: 10px; min-height: 16px; }
.fc-sheet-msg.ok { color: #2d9a4a; }
.fc-sheet-msg.err { color: #a85842; }

@media (max-width: 900px) {
  .fc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fc-po-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fc-find { width: 100%; }
}
@media (max-width: 720px) {
  .fc-card-head { flex-wrap: wrap; }
  .fc-card-head .right { margin-left: 0; text-align: left; }
  .fc-tin, .fc-find, .fc-sel, .fc-po-meta input[type=date] { font-size: 16px; }   /* iOS zoom rule */
  .fc-card { padding: 12px 10px 12px; }
}
/* ── Tag colours (Peter, 9-04 after the merge): one swatch per tag, AB · VB · F · DISC fixed ── */
.fc-tag.sw-green { color: #1f7a45; border-color: rgba(46,158,91,.5); background: rgba(46,158,91,.08); }
.fc-tag.sw-blue { color: #1d4ed8; border-color: rgba(59,130,246,.5); background: rgba(59,130,246,.08); }
.fc-tag.sw-purple { color: #6b21a8; border-color: rgba(147,51,234,.45); background: rgba(147,51,234,.08); }
.fc-tag.sw-red { color: #b3261e; border-color: rgba(179,38,30,.45); background: rgba(179,38,30,.07); }
.fc-tag.sw-amber { color: #92400e; border-color: rgba(217,119,6,.5); background: rgba(217,119,6,.09); }
.fc-tag.sw-teal { color: #0f766e; border-color: rgba(20,184,166,.5); background: rgba(20,184,166,.08); }
.fc-tag.sw-rose { color: #9f1239; border-color: rgba(225,29,72,.4); background: rgba(225,29,72,.07); }
.fc-tag.sw-indigo { color: #3730a3; border-color: rgba(99,102,241,.45); background: rgba(99,102,241,.08); }
.fc-tag.sw-olive { color: #4d5f1c; border-color: rgba(101,133,29,.5); background: rgba(101,133,29,.09); }
.fc-tag.sw-brown { color: #6e4a2a; border-color: rgba(120,80,40,.45); background: rgba(120,80,40,.07); }
/* the popup, reworked: create at the top, a search box, retire (×) on every row, retired rows greyed */
.fc-tp-title { display: flex; align-items: center; gap: 10px; }
.fc-tp-title .fc-tp-create { display: inline-block; width: auto; margin: 0 0 0 auto; padding: 4px 10px; font-size: 10px; font-family: "Inter", sans-serif; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border: 1px solid #e0d2c0; border-radius: 999px; }
.fc-tp-search { width: 100%; margin: 6px 0; box-sizing: border-box; }
.fc-tp-row { grid-template-columns: 18px 64px 1fr 26px; }
.fc-tp-row.retired { opacity: .55; }
.fc-tp-row.retired .fc-tp-x { font-family: 'Inter', sans-serif; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; width: auto; padding: 0 4px; }
.fc-tp-lbl { padding-top: 0; }
.fc-tp-x { background: none; border: 1px solid transparent; border-radius: 6px; color: #b8a898; font-size: 14px; line-height: 1; cursor: pointer; width: 22px; height: 22px; padding: 0; }
.fc-tp-x:hover { color: #b3261e; border-color: rgba(179,38,30,.4); }
.fc-tp-none { font-family: 'Jost', sans-serif; font-size: 11.5px; color: #9a7b5a; padding: 10px 4px; }
.fc-tp-showret { background: none; border: none; color: #9a7b5a; font-family: 'Jost', sans-serif; font-size: 11px; text-decoration: underline; cursor: pointer; padding: 6px 0 0; }

/* ── THE TRANSFER CHIP + CONFIRM POPUP (spec §5.5; 2026-09-04) ─────────────────────────────
   Born YELLOW Pending; the buyer opens it, edits every take, Approve → GREEN. A source store's
   on-hand cell turns green when it feeds a transfer. */
.fc-trchip { font-family: 'Inter', sans-serif; font-size: 10.5px; font-weight: 600; letter-spacing: .02em; border-radius: 999px; padding: 3px 9px; cursor: pointer; white-space: nowrap; border: 1px solid transparent; }
.fc-trchip.pending { color: #7a5a00; background: #fff3c4; border-color: #f1d77a; }
.fc-trchip.pending:hover { background: #ffeaa0; }
.fc-trchip.approved { color: #1f5a32; background: #dff3e4; border-color: #9fd3b0; }
.fc-trchip.approved:hover { background: #cdeed6; }
.fc-trchip.off { color: #9a7b5a; background: transparent; border-color: #e8ddd0; font-weight: 500; }
.fc-trchip.sm { font-size: 9px; padding: 2px 7px; cursor: default; }
.fc-oth.feeds { color: #1f5a32; font-weight: 700; background: #e8f6ec; border-radius: 6px; }
/* Dusty (Lindsey, 9-08): stock at that store with no sale there in 9 months — the Items tile's red, carried into the Forecaster */
.fc-oth.dusty { color: #c0392b; font-weight: 700; }
.fc-oth.dusty.feeds { color: #1f5a32; }
.fc-dusty-note { color: #c0392b; }
.fc-dusty-tag { font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; color: #c0392b; border: 1px solid rgba(192,57,43,.45); border-radius: 999px; padding: 1px 6px; margin-left: 6px; vertical-align: middle; }
.fc-trp { width: min(680px, 100vw - 24px); }
.fc-trp-need { font-family: 'Jost', sans-serif; font-size: 12.5px; color: #6e5a3f; margin: 6px 0 12px; }
.fc-trp-need b, .fc-trp-sum b { color: #3a2e24; }
.fc-trp-row { display: grid; grid-template-columns: 1fr 72px 84px 72px 72px 72px; align-items: center; gap: 6px; padding: 7px 4px; border-bottom: 1px solid #f0e6da; font-family: 'Inter', sans-serif; font-size: 12.5px; color: #3a2e24; }
.fc-trp-row.head { font-size: 9px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #8a6940; border-bottom: 1px solid #e8ddd0; padding-bottom: 6px; }
.fc-trp-row .r { text-align: right; }
.fc-trp-row .st { font-family: 'Jost', sans-serif; font-size: 13px; }
.fc-trp-row .can { font-weight: 700; color: #1f5a32; }
.fc-trp-row.dim { color: #b8a898; }
.fc-trp-row.dim .can { color: #b8a898; font-weight: 500; }
.fc-trp-row .fc-tin { width: 52px; }
.fc-trp-row .fc-tin.over { border-color: #c0392b; color: #c0392b; }
.fc-trp-empty { font-family: 'Jost', sans-serif; font-size: 12.5px; color: #9a7b5a; padding: 12px 4px; }
.fc-trp-sum { font-family: 'Jost', sans-serif; font-size: 13px; color: #6e5a3f; padding: 10px 4px 2px; }
.fc-trp-over, .fc-trp-pending { color: #7a5a00; }
.fc-trp-note { font-family: 'Jost', sans-serif; font-size: 11px; color: #9a7b5a; padding: 2px 4px 8px; }
.fc-po-none { font-family: 'Jost', sans-serif; font-size: 12.5px; color: #9a7b5a; padding: 6px 0 4px; }
.fc-tr-box { border: 1px solid #e8ddd0; border-radius: 12px; padding: 8px 12px 4px; margin: 6px 0 8px; background: #fffaf3; }
.fc-tr-box-head { font-family: 'Jost', sans-serif; font-size: 13px; color: #3a2e24; padding-bottom: 4px; }
.fc-tr-box-head .sub { display: block; font-size: 10.5px; color: #9a7b5a; }
.fc-tr-box-head .arrow { color: #c5a572; }
/* Items (9-10): the item opens its matrix — the row's item cell is the door */
.itm-row .fc-item.itm-open { cursor: pointer; }
.itm-row .fc-item.itm-open:hover b { color: var(--gold-bright, #a07219); text-decoration: underline; text-decoration-color: rgba(160,114,25,.45); text-underline-offset: 3px; }
