/* ═══════════════════════════════════════════════════
   Dairy Cash Flow Analyzer — wizard.css v2.0
   Login-gated | Dark input text guaranteed
═══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Lato:wght@300;400;700&display=swap');

/* ── CSS VARIABLES ── */
.dcf-wrap, .dcf-gate {
  --forest:       #1b3a2d;
  --forest-mid:   #2d6a4f;
  --forest-light: #52b788;
  --forest-pale:  #d8f3dc;
  --straw:        #f5f0e8;
  --straw-dark:   #e8e0d0;
  --straw-border: #d4c9b0;
  --amber:        #c68d00;
  --amber-bg:     #fff8e6;
  --amber-border: #f0d060;
  --red:          #b83232;
  --red-bg:       #fdf0f0;
  --blue:         #1a5f8a;
  --blue-bg:      #e8f4fb;
  --ink:          #1a1a1a;
  --muted:        #6b7060;
  --white:        #ffffff;
  --radius:       10px;
  --shadow:       0 2px 16px rgba(27,58,45,.10);
  font-family: 'Lato', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--straw);
}

/* ── RESET ── */
.dcf-wrap *, .dcf-gate * { box-sizing: border-box; }
.dcf-wrap h1,.dcf-wrap h2,.dcf-wrap h3 { margin: 0; }

/* ══════════════════════════════════════════════════
   LOGIN GATE
══════════════════════════════════════════════════ */
.dcf-gate {
  display: flex; align-items: center; justify-content: center;
  min-height: 560px; padding: 40px 16px;
  background: linear-gradient(135deg, #1b3a2d 0%, #2d6a4f 60%, #3a7a5a 100%);
}
.dcf-gate-card {
  background: #fff; border-radius: 20px; padding: 44px 48px;
  max-width: 580px; width: 100%; box-shadow: 0 24px 60px rgba(0,0,0,.25);
  text-align: center;
}
.dcf-gate-logo { font-size: 56px; margin-bottom: 10px; }
.dcf-gate-card h2 { font-family: 'Playfair Display', serif; font-size: 26px; color: #1b3a2d; margin-bottom: 6px; }
.dcf-gate-sub  { font-size: 13px; color: #6b7060; margin: 0 0 28px; }
.dcf-gate-features { text-align: left; display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.dcf-gf { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: #2d3a2d; }
.dcf-gf span { font-size: 16px; flex-shrink: 0; }
.dcf-gate-divider { border: none; border-top: 1px dashed #d4c9b0; margin: 20px 0; }
.dcf-gate-cta { font-size: 14px; color: #1b3a2d; margin-bottom: 20px; }
.dcf-gate-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 16px; }
.dcf-gate-btn {
  display: inline-flex; align-items: center; gap: 7px; padding: 13px 28px;
  border-radius: 10px; font-family: 'Lato', sans-serif; font-size: 15px;
  font-weight: 700; text-decoration: none; transition: all .2s;
}
.dcf-gate-btn.primary   { background: #2d6a4f; color: #fff; box-shadow: 0 4px 14px rgba(45,106,79,.3); }
.dcf-gate-btn.primary:hover { background: #1b3a2d; transform: translateY(-2px); color: #fff; }
.dcf-gate-btn.secondary { background: #f5f0e8; color: #1b3a2d; border: 1.5px solid #d4c9b0; }
.dcf-gate-btn.secondary:hover { background: #e8e0d0; color: #1b3a2d; }
.dcf-gate-note { font-size: 11px; color: #9a9a8a; margin: 0; }
@media(max-width:500px){ .dcf-gate-card { padding: 28px 18px; } }

/* ══════════════════════════════════════════════════
   TOP BAR
══════════════════════════════════════════════════ */
.dcf-topbar {
  background: var(--forest); color: #fff;
  padding: 10px 20px; display: flex; align-items: center;
  justify-content: space-between; flex-wrap: wrap; gap: 10px;
  position: sticky; top: 0; z-index: 200;
  box-shadow: 0 2px 12px rgba(0,0,0,.25);
}
.dcf-brand { display: flex; align-items: center; gap: 10px; }
.dcf-logo  { font-size: 26px; }
.dcf-title { font-family: 'Playfair Display', serif; font-size: 16px; line-height: 1.2; }
.dcf-sub   { font-size: 11px; opacity: .6; }
.dcf-topbar-right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dcf-topbar-right select,
.dcf-topbar-right input[type="text"] {
  padding: 7px 10px; border: 1.5px solid rgba(255,255,255,.25); border-radius: 7px;
  font-family: 'Lato', sans-serif; font-size: 13px; font-weight: 600;
  background: rgba(255,255,255,.12); color: #fff;
}
.dcf-topbar-right select option { background: var(--forest); color: #fff; }
.dcf-topbar-right input[type="text"]::placeholder { color: rgba(255,255,255,.5); }
.dcf-topbar-right input[type="text"]:focus { outline: none; background: rgba(255,255,255,.2); }
.dcf-tbtn {
  padding: 7px 14px; border-radius: 7px; border: none; cursor: pointer;
  font-family: 'Lato', sans-serif; font-size: 12px; font-weight: 700;
  transition: all .15s;
}
.dcf-tbtn.save  { background: var(--forest-light); color: var(--forest); }
.dcf-tbtn.save:hover { background: #3fa06e; }
.dcf-tbtn.del   { background: rgba(180,50,50,.3); color: #ffaaaa; }
.dcf-tbtn.del:hover { background: var(--red); color: #fff; }
.dcf-tbtn.print { background: rgba(255,255,255,.15); color: #fff; }
.dcf-save-msg { text-align: center; padding: 4px 20px; font-size: 12px; font-weight: 700;
  color: var(--forest-light); background: var(--forest); min-height: 20px; }

/* ══════════════════════════════════════════════════
   STEPPER
══════════════════════════════════════════════════ */
.dcf-stepper {
  display: flex; align-items: center; background: var(--white);
  border-bottom: 2px solid var(--straw-border); padding: 0 16px;
  overflow-x: auto; scrollbar-width: none; position: sticky; top: 56px; z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.dcf-stepper::-webkit-scrollbar { display: none; }
.dcf-step {
  display: flex; align-items: center; gap: 7px; padding: 13px 14px;
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: var(--muted); cursor: pointer; white-space: nowrap;
  border-bottom: 3px solid transparent; margin-bottom: -2px;
  transition: all .2s; flex-shrink: 0;
}
.dcf-step:hover { color: var(--forest-mid); }
.dcf-step.active { color: var(--forest); border-bottom-color: var(--forest-light); }
.dcf-step.done   { color: var(--forest-mid); }
.sn {
  width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-size: 11px; background: var(--straw-dark); color: var(--muted);
  flex-shrink: 0;
}
.dcf-step.active .sn { background: var(--forest-light); color: #fff; }
.dcf-step.done   .sn { background: var(--forest-mid);   color: #fff; }
.dcf-step-line { flex: 1; height: 1px; background: var(--straw-border); min-width: 12px; flex-shrink: 0; }

/* ══════════════════════════════════════════════════
   MAIN CONTENT
══════════════════════════════════════════════════ */
.dcf-main { max-width: 1140px; margin: 0 auto; padding: 24px 18px 80px; }
.dcf-panel { display: none; }
.dcf-panel.active { display: block; }
.dcf-panel-header { margin-bottom: 20px; }
.dcf-panel-header h2 { font-family: 'Playfair Display', serif; font-size: 22px; color: var(--forest); margin-bottom: 6px; }
.dcf-panel-header p  { color: var(--muted); font-size: 13px; }

/* ══════════════════════════════════════════════════
   CARDS
══════════════════════════════════════════════════ */
.dcf-card { background: var(--white); border-radius: var(--radius); border: 1px solid var(--straw-border);
  box-shadow: var(--shadow); margin-bottom: 18px; overflow: hidden; }
.dcf-ch   { background: var(--straw); border-bottom: 1px solid var(--straw-border);
  padding: 11px 18px; display: flex; align-items: center; gap: 8px; }
.dcf-ch h3 { font-family: 'Playfair Display', serif; font-size: 15px; color: var(--forest); }
.dcf-ch span:first-child { font-size: 16px; }
.dct { margin-left: auto; font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; color: var(--muted); background: var(--straw-dark);
  padding: 3px 9px; border-radius: 20px; border: 1px solid var(--straw-border); white-space: nowrap; }
.dcf-cb { padding: 18px; }

/* ══════════════════════════════════════════════════
   GRIDS
══════════════════════════════════════════════════ */
.dcf-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dcf-g3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }
.dcf-g4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
@media(max-width:900px){ .dcf-g4 { grid-template-columns: repeat(2,1fr); } }
@media(max-width:640px){ .dcf-g2,.dcf-g3,.dcf-g4 { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════
   FORM FIELDS — ALL INPUTS DARK TEXT
══════════════════════════════════════════════════ */
.dcf-field { display: flex; flex-direction: column; gap: 4px; }
.dcf-field label { font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; color: var(--muted); }
.dcf-hint { font-size: 10px; color: var(--muted); font-style: italic; margin-top: 2px; }

/* Master rule — every input in the plugin gets dark text */
.dcf-wrap input,
.dcf-wrap select,
.dcf-wrap textarea {
  color: var(--ink) !important;
  background: var(--straw) !important;
  font-family: 'Lato', sans-serif !important;
  font-weight: 700 !important;
}
.dcf-field input, .dcf-field select {
  width: 100%; padding: 10px 12px;
  border: 1.5px solid var(--straw-border); border-radius: 8px;
  font-size: 14px; transition: border .15s, box-shadow .15s;
}
.dcf-field input:focus, .dcf-field select:focus {
  outline: none; border-color: var(--forest-light);
  background: #fff !important; box-shadow: 0 0 0 3px rgba(82,183,136,.12);
}

/* ══════════════════════════════════════════════════
   AUTO-CALC DISPLAY
══════════════════════════════════════════════════ */
.dcf-auto {
  background: var(--forest-pale); border: 1px solid #a8d5c2; border-radius: 8px;
  padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; position: relative;
}
.av-lbl   { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--forest-mid); }
.av-val   { font-family: 'Playfair Display', serif; font-size: 16px; color: var(--forest); }
.av-badge { position: absolute; top: 6px; right: 8px; font-size: 9px; font-weight: 700;
  text-transform: uppercase; background: var(--forest-light); color: #fff;
  padding: 2px 5px; border-radius: 4px; }

/* ══════════════════════════════════════════════════
   INFO BOXES
══════════════════════════════════════════════════ */
.dcf-infobox { border-radius: 0 8px 8px 0; padding: 11px 14px; font-size: 13px;
  line-height: 1.6; margin-bottom: 18px; border-left: 4px solid; }
.dcf-infobox.green { background: var(--forest-pale); border-color: var(--forest-light); color: var(--forest); }
.dcf-infobox.amber { background: var(--amber-bg);    border-color: var(--amber);        color: #7a5000; }
.dcf-infobox.red   { background: var(--red-bg);      border-color: var(--red);          color: var(--red); }
.dcf-infobox.blue  { background: var(--blue-bg);     border-color: var(--blue);         color: var(--blue); }

/* ══════════════════════════════════════════════════
   MILK TABLE (Step 2 — DFO Monthly)
══════════════════════════════════════════════════ */
.dcf-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dcf-milk-table { width: 100%; border-collapse: collapse; min-width: 780px; font-size: 13px; }
.dcf-milk-table th {
  background: var(--forest); color: #fff; padding: 9px 10px;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; text-align: left;
}
.dcf-milk-table td { padding: 6px 8px; border-bottom: 1px solid var(--straw-border); }
.dcf-milk-table tr:hover td { background: var(--straw); }
.month-label { font-weight: 700; color: var(--forest); white-space: nowrap; font-size: 12px; }
.net-cell { font-weight: 700; color: var(--forest-mid); font-size: 13px; }
.milk-totals-row td { background: var(--forest-pale) !important; font-weight: 700; padding: 9px 8px; }
/* Milk table inputs — must be white bg with dark text */
.dcf-milk-table input {
  width: 100%; min-width: 80px; padding: 6px 8px;
  border: 1.5px solid var(--straw-border); border-radius: 6px;
  font-size: 13px; font-weight: 700 !important;
  color: var(--ink) !important; background: #fff !important;
  font-family: 'Lato', sans-serif !important; text-align: right;
}
.dcf-milk-table input:focus { outline: none; border-color: var(--forest-light); box-shadow: 0 0 0 2px rgba(82,183,136,.15); }

/* ══════════════════════════════════════════════════
   SNF TIER BLOCK
══════════════════════════════════════════════════ */
.dcf-snf-block { background: var(--straw); border-radius: 10px; padding: 14px 16px;
  margin-top: 8px; border: 1px solid var(--straw-border); }
.dcf-snf-row   { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 12px; font-weight: 700; color: var(--forest); }
.dcf-tier-badge{ font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px;
  background: var(--forest-pale); color: var(--forest); }
.dcf-snf-track { height: 10px; background: var(--straw-dark); border-radius: 20px; position: relative; overflow: hidden; }
.dcf-snf-fill  { height: 10px; border-radius: 20px; width: 0%; background: var(--forest-light); transition: width .4s, background .4s; }
.dcf-snf-mark  { position: absolute; top: 0; width: 2px; height: 10px; background: rgba(0,0,0,.25); }
.dcf-snf-labels{ display: flex; justify-content: space-between; font-size: 9px; color: var(--muted); font-weight: 700; margin-top: 4px; }
.dcf-tier-fracs{ display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-top: 12px; text-align: center; }
.tf     { font-weight: 700; font-size: 15px; }
.tf.green { color: var(--forest-mid); }
.tf.amber { color: var(--amber); }
.tf.red   { color: var(--red); }
.tf-l   { font-size: 10px; color: var(--muted); margin-top: 2px; }

/* ══════════════════════════════════════════════════
   EXPENSE ROWS WITH ALLOCATION (Step 3)
══════════════════════════════════════════════════ */
.dcf-exp-row {
  border: 1px solid var(--straw-border); border-radius: 8px;
  margin-bottom: 12px; overflow: hidden;
}
.exp-label {
  background: var(--straw-dark); padding: 9px 14px;
  font-weight: 700; font-size: 13px; color: var(--forest);
  border-bottom: 1px solid var(--straw-border);
}
.exp-amount { padding: 10px 14px 0; display: flex; align-items: center; gap: 10px; }
.exp-amount label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--muted); min-width: 70px; }
.exp-amount input { width: 160px !important; }
.exp-alloc { display: grid; grid-template-columns: repeat(5,1fr) auto; gap: 0; border-top: 1px dashed var(--straw-border); margin-top: 10px; }
.alloc-col { padding: 8px 10px; border-right: 1px solid var(--straw-border); }
.alloc-col:last-of-type { border-right: none; }
.alloc-col label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; display: block; margin-bottom: 4px; }
.alloc-col.cows   label { color: #1b6e44; }
.alloc-col.repl   label { color: #6e4a1b; }
.alloc-col.forage label { color: #1b6e6e; }
.alloc-col.grain  label { color: #6e6e1b; }
.alloc-col.other  label { color: var(--muted); }
.alloc-col input {
  width: 60px !important; padding: 5px 6px !important;
  border: 1.5px solid var(--straw-border); border-radius: 6px;
  font-size: 13px; text-align: center; display: block;
  color: var(--ink) !important; background: var(--white) !important;
}
.alloc-dollar { font-size: 11px; color: var(--forest-mid); font-weight: 700; margin-top: 4px; }
.alloc-total { padding: 8px 12px; display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 70px; }
.at-label { font-size: 9px; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.at-val   { font-family: 'Playfair Display', serif; font-size: 18px; color: var(--forest); }
.at-val.warn { color: var(--red); }
@media(max-width:800px){
  .exp-alloc { grid-template-columns: repeat(3,1fr); }
}

/* Allocation summary bars */
.dcf-alloc-bars { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.alloc-bar-col { text-align: center; }
.alloc-bar-label { font-size: 11px; font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.alloc-bar-track { height: 120px; background: var(--straw-dark); border-radius: 6px;
  display: flex; align-items: flex-end; overflow: hidden; }
.alloc-bar-fill  { width: 100%; border-radius: 6px 6px 0 0; transition: height .4s; }
.alloc-bar-val   { font-family: 'Playfair Display', serif; font-size: 15px; color: var(--forest); margin-top: 4px; }
.alloc-bar-pct   { font-size: 11px; color: var(--muted); }

/* ══════════════════════════════════════════════════
   LABOUR TABLES (Step 4) — inputs MUST show dark text
══════════════════════════════════════════════════ */
.dcf-lab-table { width: 100%; border-collapse: collapse; min-width: 640px; font-size: 13px; }
.dcf-lab-table th {
  background: var(--forest); color: #fff;
  padding: 9px 10px; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .3px; text-align: left;
}
.dcf-lab-table td { padding: 7px 8px; border-bottom: 1px solid var(--straw-border); color: var(--ink); }
.dcf-lab-table tr:hover td { background: var(--straw); }
.dcf-lab-table .lab-total-row td { background: var(--forest-pale); font-weight: 700; color: var(--forest); }
.dcf-lab-table .lab-section td { background: var(--straw-dark); font-weight: 700; color: var(--forest);
  font-size: 11px; text-transform: uppercase; padding: 6px 10px; }
/* Labour inputs — explicit dark text and white background */
.dcf-lab-table input[type="number"],
.dcf-lab-table input[type="text"] {
  width: 64px; padding: 5px 7px;
  border: 1.5px solid var(--straw-border); border-radius: 6px;
  font-size: 13px; font-weight: 700 !important;
  color: #1a1a1a !important;        /* dark text */
  background: #ffffff !important;   /* white bg */
  font-family: 'Lato', sans-serif !important;
  text-align: center;
}
.dcf-lab-table input:focus {
  outline: none; border-color: var(--forest-light);
  box-shadow: 0 0 0 2px rgba(82,183,136,.15);
}
.dcf-lab-table .desc-input { width: 140px !important; text-align: left !important; }
.lab-hrs-out { font-family: 'Playfair Display', serif; font-size: 14px; color: var(--forest); font-weight: 700; }
.lab-freq    { font-size: 11px; color: var(--muted); white-space: nowrap; }

/* ══════════════════════════════════════════════════
   BALANCE SHEET (Step 5)
══════════════════════════════════════════════════ */
.dcf-bs-header { display: grid; grid-template-columns: 1fr 150px 150px; gap: 8px;
  padding: 8px 0 6px; border-bottom: 2px solid var(--straw-border); margin-bottom: 6px; }
.dcf-bs-header span { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--muted); }
.dcf-bs-row { display: grid; grid-template-columns: 1fr 150px 150px; gap: 8px; align-items: center;
  padding: 7px 0; border-bottom: 1px solid var(--straw-border); }
.dcf-bs-row span { font-size: 13px; font-weight: 600; color: var(--ink); }
.dcf-bs-row input {
  padding: 8px 10px; border: 1.5px solid var(--straw-border); border-radius: 7px;
  font-size: 13px; font-weight: 700; width: 100%;
  color: var(--ink) !important; background: var(--straw) !important;
  font-family: 'Lato', sans-serif;
}
.dcf-bs-row input:focus { outline: none; border-color: var(--forest-light); background: #fff !important; }
.dcf-bs-total-row { display: grid; grid-template-columns: 1fr 150px 150px; gap: 8px;
  padding: 10px 12px; background: var(--forest-pale); border-radius: 8px; margin-top: 6px; }
.dcf-bs-total-row span { font-size: 14px; }

/* ══════════════════════════════════════════════════
   NAVIGATION BUTTONS
══════════════════════════════════════════════════ */
.dcf-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 24px; flex-wrap: wrap; gap: 10px; }
.dcf-btn-next, .dcf-btn-back, .dcf-calc-btn, .dcf-print-btn, .dcf-btn-back-sm {
  padding: 12px 28px; border: none; border-radius: 9px; font-family: 'Lato', sans-serif;
  font-size: 14px; font-weight: 700; cursor: pointer; transition: all .2s; display: inline-flex; align-items: center; gap: 7px;
}
.dcf-btn-next   { background: var(--forest-mid); color: #fff; box-shadow: 0 4px 12px rgba(45,106,79,.3); }
.dcf-btn-next:hover { background: var(--forest); transform: translateY(-1px); }
.dcf-btn-back   { background: var(--straw-dark); color: var(--forest); border: 1px solid var(--straw-border); }
.dcf-btn-back:hover { background: var(--straw-border); }
.dcf-calc-btn   { background: var(--forest); color: #fff; font-size: 15px; padding: 14px 32px; box-shadow: 0 6px 18px rgba(27,58,45,.3); }
.dcf-calc-btn:hover { background: #0f2218; transform: translateY(-2px); }
.dcf-print-btn  { background: var(--straw-dark); color: var(--forest); border: 1px solid var(--straw-border); }
.dcf-btn-back-sm{ background: transparent; color: var(--muted); border: 1px solid var(--straw-border); padding: 10px 18px; font-size: 13px; }
.dcf-btn-row    { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; }

/* ══════════════════════════════════════════════════
   ANALYSIS OUTPUT (Step 6)
══════════════════════════════════════════════════ */
.dcf-analysis-kpis { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 12px; margin-bottom: 20px; }
.dcf-kpi-card { border-radius: 12px; padding: 16px; }
.dcf-kpi-card.forest { background: var(--forest); }
.dcf-kpi-card.forest .kpi-lbl,.dcf-kpi-card.forest .kpi-v,.dcf-kpi-card.forest .kpi-sub { color: #fff; }
.dcf-kpi-card.pale   { background: var(--straw-dark); border: 1px solid var(--straw-border); }
.dcf-kpi-card.amber  { background: var(--amber-bg); border: 1px solid var(--amber-border); }
.dcf-kpi-card.red-c  { background: var(--red-bg); border: 1px solid #f0b0b0; }
.kpi-lbl { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; opacity: .7; margin-bottom: 5px; }
.kpi-v   { font-family: 'Playfair Display', serif; font-size: 24px; line-height: 1.1; color: var(--ink); }
.kpi-sub { font-size: 11px; opacity: .6; margin-top: 4px; }

/* Enterprise table */
.dcf-ent-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.dcf-ent-table th { background: var(--forest); color: #fff; padding: 10px 12px; font-size: 11px; text-transform: uppercase; text-align: right; }
.dcf-ent-table th:first-child { text-align: left; }
.dcf-ent-table td { padding: 9px 12px; border-bottom: 1px solid var(--straw-border); text-align: right; }
.dcf-ent-table td:first-child { text-align: left; font-weight: 600; }
.dcf-ent-table tr:hover td { background: var(--straw); }
.dcf-ent-table .subtotal td { background: var(--straw-dark); font-weight: 700; }
.dcf-ent-table .net-row   td { background: var(--forest-pale); font-family: 'Playfair Display', serif; font-size: 15px; color: var(--forest); font-weight: 700; }
.dcf-ent-table .rev-row   td { color: var(--forest-mid); font-weight: 700; }
.dcf-ent-table .cost-row  td { color: var(--red); }
.pos { color: var(--forest-mid) !important; }
.neg { color: var(--red) !important; }

/* Benchmark rows */
.dcf-bench-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 80px; gap: 8px;
  padding: 9px 0; border-bottom: 1px solid var(--straw-border); align-items: center; font-size: 13px; }
.dcf-bench-grid:last-child { border-bottom: none; }
.bench-h { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--muted); }
.bench-pill { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 20px; text-align: center; }
.bench-pill.good { background: var(--forest-pale); color: var(--forest-mid); }
.bench-pill.warn { background: var(--amber-bg); color: var(--amber); }
.bench-pill.bad  { background: var(--red-bg); color: var(--red); }
.bench-pill.info { background: var(--straw-dark); color: var(--muted); }

/* Waterfall */
.dcf-wf-row   { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.wf-lbl       { min-width: 200px; font-size: 13px; font-weight: 600; color: var(--muted); }
.wf-track     { flex: 1; height: 9px; background: var(--straw-dark); border-radius: 5px; overflow: hidden; }
.wf-fill      { height: 9px; border-radius: 5px; transition: width .5s; }
.wf-val       { min-width: 100px; text-align: right; font-weight: 700; font-size: 13px; }

/* ══════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════ */
@media(max-width:700px){
  .dcf-main        { padding: 14px 10px 50px; }
  .dcf-topbar      { padding: 8px 10px; }
  .dcf-topbar-right{ gap: 5px; }
  .wf-lbl          { min-width: 130px; }
  .dcf-bench-grid  { grid-template-columns: 1fr 1fr; }
  .dcf-bs-header,.dcf-bs-row,.dcf-bs-total-row { grid-template-columns: 1fr; }
  .exp-alloc       { grid-template-columns: repeat(2,1fr); }
}

/* ══════════════════════════════════════════════════
   PRINT
══════════════════════════════════════════════════ */
@media print {
  .dcf-topbar,.dcf-stepper,.dcf-nav,.dcf-btn-row { display: none !important; }
  .dcf-panel { display: block !important; }
  .dcf-card  { box-shadow: none; break-inside: avoid; }
  .dcf-wrap  { background: #fff; }
}

/* ═══════════════════════════════════════════════════
   MISC BREAKDOWN SUB-ROWS (Step 2 DFO detail)
═══════════════════════════════════════════════════ */

/* Expand button */
.dcf-expand-btn {
  width: 24px; height: 24px; border-radius: 5px; border: 1.5px solid var(--straw-border);
  background: var(--straw-dark); color: var(--forest); font-size: 10px;
  cursor: pointer; padding: 0; display: flex; align-items: center; justify-content: center;
  transition: all .15s; font-weight: 700;
}
.dcf-expand-btn:hover { background: var(--forest-pale); border-color: var(--forest-light); }

/* Misc block container */
.dcf-misc-block {
  background: var(--straw); border: 1px solid var(--straw-border);
  border-radius: 10px; margin: 4px 0 8px; overflow: hidden;
}
.dcf-misc-label {
  background: var(--forest); color: #fff; padding: 8px 16px;
  font-size: 12px; font-weight: 700; letter-spacing: .3px;
}

/* Three-column grid */
.dcf-misc-grid {
  display: grid; grid-template-columns: 1fr 1fr 220px; gap: 0;
}
@media(max-width:900px){ .dcf-misc-grid { grid-template-columns: 1fr 1fr; } }
@media(max-width:640px){ .dcf-misc-grid { grid-template-columns: 1fr; } }

.dcf-misc-section {
  padding: 14px 16px; border-right: 1px solid var(--straw-border);
}
.dcf-misc-section:last-child { border-right: none; }

/* Section title strips */
.dcf-misc-section-title {
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  padding: 5px 10px; border-radius: 6px; margin-bottom: 10px; display: inline-block;
}
.dcf-misc-section-title.ops   { background: var(--blue-bg);    color: var(--blue); }
.dcf-misc-section-title.misc  { background: var(--amber-bg);   color: var(--amber); }
.dcf-misc-section-title.valid { background: var(--forest-pale);color: var(--forest-mid); }

/* Individual field */
.dcf-misc-field { margin-bottom: 8px; }
.dcf-misc-field label {
  display: block; font-size: 11px; font-weight: 700; color: var(--muted);
  text-transform: uppercase; letter-spacing: .3px; margin-bottom: 3px;
}
.dcf-misc-field input {
  width: 140px !important; padding: 6px 9px !important;
  border: 1.5px solid var(--straw-border); border-radius: 7px;
  font-size: 13px; font-weight: 700 !important;
  color: var(--ink) !important; background: var(--white) !important;
  font-family: 'Lato', sans-serif !important;
}
.dcf-misc-field input:focus { outline: none; border-color: var(--forest-light); }
.misc-hint   { display: block; font-size: 10px; color: var(--amber); font-style: italic; margin-top: 2px; }

/* Credit / debit tags */
.credit-tag { background: var(--forest-pale); color: var(--forest-mid); font-size: 9px;
  font-weight: 700; padding: 1px 5px; border-radius: 4px; margin-left: 4px; text-transform: uppercase; }
.debit-tag  { background: var(--red-bg); color: var(--red); font-size: 9px;
  font-weight: 700; padding: 1px 5px; border-radius: 4px; margin-left: 4px; text-transform: uppercase; }

/* Subtotals */
.dcf-misc-subtotal {
  display: flex; justify-content: space-between; align-items: center;
  padding: 7px 10px; border-radius: 7px; margin-top: 8px;
  font-weight: 700; font-size: 13px;
}
.dcf-misc-subtotal.ops  { background: var(--blue-bg);    color: var(--blue); }
.dcf-misc-subtotal.misc { background: var(--amber-bg);   color: var(--amber); }

/* Validation panel */
.dcf-misc-check { display: flex; flex-direction: column; gap: 6px; }
.mc-row { display: flex; justify-content: space-between; font-size: 12px; padding: 4px 0;
  border-bottom: 1px dashed var(--straw-border); }
.mc-row:last-of-type { border-bottom: none; }
.mc-diff span:last-child { font-family: 'Playfair Display', serif; font-size: 15px; }
.mc-match {
  margin-top: 10px; padding: 7px 10px; border-radius: 7px;
  font-size: 11px; font-weight: 700; text-align: center;
  background: var(--straw-dark); color: var(--muted);
  transition: background .3s, color .3s;
}

/* Milk main row hover highlight */
.milk-main-row:hover td { background: var(--forest-pale) !important; cursor: pointer; }
.milk-misc-row td { background: var(--straw) !important; padding: 0 !important; }
.milk-misc-row:hover td { background: var(--straw) !important; }

/* ═══════════════════════════════════════════════════
   TOOLTIP SYSTEM
═══════════════════════════════════════════════════ */
.dcf-tip-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--forest-light); color: #fff;
  font-size: 10px; font-weight: 900; border: none;
  cursor: pointer; margin-left: 5px; flex-shrink: 0;
  vertical-align: middle; transition: background .15s; line-height: 1;
}
.dcf-tip-btn:hover { background: var(--forest); }
.dcf-tooltip-popup {
  position: absolute; z-index: 9999; max-width: 300px;
  background: var(--forest); color: #fff;
  padding: 12px 36px 12px 14px; border-radius: 10px;
  font-size: 12px; line-height: 1.6; box-shadow: 0 8px 28px rgba(0,0,0,.3);
  font-family: 'Lato', sans-serif; font-weight: 400;
}
.dcf-tip-close {
  position: absolute; top: 7px; right: 8px;
  background: rgba(255,255,255,.2); border: none; color: #fff;
  width: 20px; height: 20px; border-radius: 50%; cursor: pointer;
  font-size: 11px; display: flex; align-items: center; justify-content: center;
}
.dcf-tip-close:hover { background: rgba(255,255,255,.4); }

/* ═══════════════════════════════════════════════════
   PDF UPLOAD CARD (Step 2)
═══════════════════════════════════════════════════ */
.dcf-pdf-card { border: 2px dashed var(--forest-light) !important; }

/* Step rows */
.dcf-pdf-step {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 12px 0; border-bottom: 1px dashed var(--straw-border);
}
.dcf-pdf-step:last-of-type { border-bottom: none; }
.dcf-pdf-step-num {
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
  background: var(--forest-mid); color: #fff;
  font-weight: 900; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  margin-top: 2px;
}
.dcf-pdf-step-body { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.dcf-pdf-step-lbl  { font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .4px; color: var(--muted); }

/* Month select */
.dcf-pdf-sel {
  width: 200px; padding: 9px 12px;
  border: 1.5px solid var(--straw-border); border-radius: 8px;
  font-size: 14px; font-weight: 700;
  color: var(--ink) !important; background: var(--straw) !important;
  font-family: 'Lato', sans-serif;
}
.dcf-pdf-sel:focus { outline: none; border-color: var(--forest-light); }

/* Upload button */
.dcf-pdf-upload-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 24px; background: var(--forest-mid); color: #fff;
  border-radius: 9px; font-size: 14px; font-weight: 700;
  cursor: pointer; transition: all .2s; width: fit-content;
  font-family: 'Lato', sans-serif; border: none;
}
.dcf-pdf-upload-btn:hover { background: var(--forest); transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(27,58,45,.3); }

/* Status */
.dcf-pdf-status { font-size: 13px; font-weight: 700; padding: 9px 14px;
  border-radius: 8px; min-height: 0; }
.dcf-pdf-status.loading { background: var(--straw-dark); color: var(--muted); }
.dcf-pdf-status.success { background: var(--forest-pale); color: var(--forest-mid); border: 1px solid #a8d5c2; }
.dcf-pdf-status.error   { background: var(--red-bg); color: var(--red); border: 1px solid #f0b0b0; }

/* Reference map */
.dcf-pdf-refmap {
  margin-top: 14px; background: var(--forest); border-radius: 10px; padding: 14px 18px;
}
.dcf-pdf-refmap-title {
  color: var(--forest-light); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .5px; margin-bottom: 12px;
}
.dcf-pdf-refmap-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px;
}
@media(max-width:600px){ .dcf-pdf-refmap-grid { grid-template-columns: 1fr; } }
.ann-row   { display: flex; align-items: center; gap: 7px; font-size: 11px; }
.ann-key   { padding: 3px 8px; border-radius: 5px; font-weight: 700;
  font-size: 10px; flex-shrink: 0; line-height: 1.5; white-space: nowrap; }
.ann-key.rev   { background: rgba(82,183,136,.25);  color: #7effc0; }
.ann-key.ded   { background: rgba(184,50,50,.25);   color: #ffaaaa; }
.ann-key.hl    { background: rgba(26,95,138,.25);   color: #90ccff; }
.ann-key.fat   { background: rgba(198,141,0,.25);   color: #ffe070; }
.ann-key.prot  { background: rgba(45,106,79,.25);   color: #a0eec0; }
.ann-key.os    { background: rgba(107,112,96,.25);  color: #c8ccba; }
.ann-key.quota { background: rgba(255,255,255,.12); color: #fff; }
.ann-arrow { color: var(--forest-light); font-weight: 700; flex-shrink: 0; }
.ann-val   { color: rgba(255,255,255,.7); font-size: 11px; font-style: italic; }

/* PDF-filled row highlight animation */
.milk-main-row.pdf-filled td { background: #d8f3dc !important; }
@keyframes fadeGreen { 0%{background:#d8f3dc} 100%{background:transparent} }

/* ═══════════════════════════════════════════════════
   HOMEGROWN FEED SECTION
═══════════════════════════════════════════════════ */
@media(max-width:700px){
  .dcf-wrap > * > div[style*="grid-template-columns:1fr 1fr"] { display: block; }
}
