/* صفحات هماهنگ‌کننده: داشبورد، پروفایل مزرعه، قیمت‌گذاری */

/* ---------- داشبورد ---------- */
.db-pulse { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--s5); align-items: center; background: var(--brand-deep); color: var(--ink-inverse); border-radius: var(--r-card); padding: var(--s5) var(--s6); position: relative; overflow: hidden; }
.db-pulse::after { content: ''; position: absolute; left: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; border: 36px solid rgba(255, 255, 255, .04); }
.db-pulse-label { font-size: var(--fs-sm); opacity: .78; display: flex; align-items: center; gap: 6px; }
.db-pulse-num { font-size: 52px; font-weight: 800; letter-spacing: -1.5px; line-height: 1.1; font-variant-numeric: tabular-nums; margin: 4px 0; }
.db-pulse-num span { font-size: 16px; font-weight: 600; opacity: .7; margin-inline-start: 8px; letter-spacing: 0; }
.db-pulse-sub { font-size: var(--fs-sm); opacity: .85; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.db-pulse-sub .src { color: rgba(255, 255, 255, .7); }
.db-pulse-bars { display: flex; flex-direction: column; gap: 10px; position: relative; z-index: 1; }
.db-st { display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto 6px; column-gap: 12px; align-items: center; }
.db-st b { grid-row: span 2; font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; text-align: center; }
.db-st span { font-size: var(--fs-sm); opacity: .85; }
.db-st i { display: block; height: 6px; border-radius: var(--r-pill); background: var(--ok); }
.db-st-cleaning i { background: var(--sc-roof-idle); }
.db-st-planned i { background: var(--warn); }
@media (max-width: 900px) { .db-pulse { grid-template-columns: 1fr; padding: var(--s4); } .db-pulse-num { font-size: 40px; } }

.db-wf { display: flex; flex-direction: column; margin-bottom: var(--s3); }
.db-wf-r { display: flex; justify-content: space-between; padding: 5px 0; font-size: var(--fs-sm); border-bottom: 1px dashed var(--line); font-variant-numeric: tabular-nums; }
.db-wf-r.pos b { color: var(--ok-ink); }
.db-wf-r.sum { border-bottom: 1px solid var(--line-strong); border-top: 1px solid var(--line-strong); font-weight: 700; background: var(--bg-sunken); padding-inline: 8px; margin-inline: -8px; }
.db-econ .card-b { padding-top: var(--s3); }

.db-alerts { max-height: 470px; overflow-y: auto; }
.db-al { display: flex; gap: 10px; align-items: flex-start; }
.db-al-ic { width: 32px; height: 32px; border-radius: var(--r-ctl); display: grid; place-items: center; flex: none; background: var(--bg-sunken); color: var(--ink-2); }
.db-al-critical .db-al-ic { background: var(--critical-soft); color: var(--critical-ink); }
.db-al-serious .db-al-ic { background: var(--serious-soft); color: var(--serious-ink); }
.db-al-warning .db-al-ic { background: var(--warn-soft); color: var(--warn-ink); }
.db-al-info .db-al-ic { background: var(--info-soft); color: var(--bank); }
.db-al-b { flex: 1; min-width: 0; }
.db-al-b a { font-weight: 700; font-size: var(--fs-sm); }

.db-cal { display: grid; gap: 3px; overflow-x: auto; }
.db-cal-h, .db-cal-r { display: grid; grid-template-columns: 118px repeat(14, minmax(26px, 1fr)); gap: 3px; align-items: center; }
.db-cal-h span { text-align: center; font-size: 12px; font-weight: 700; color: var(--ink-2); line-height: 1.2; padding: 4px 0; border-radius: 6px; }
.db-cal-h span small { display: block; font-weight: 500; color: var(--ink-3); font-size: 10px; }
.db-cal-h span.today { background: var(--brand); color: var(--brand-ink); }
.db-cal-h span.today small { color: var(--brand-soft); }
.db-cal-h span.fri { color: var(--critical-ink); }
.db-cal-l { font-size: 12px; color: var(--ink-2); display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.db-cal-c { height: 30px; border: 0; border-radius: 6px; background: var(--bg-sunken); font-size: 12px; font-weight: 700; color: var(--ink); padding: 0; }
.db-cal-c.has.t-place { background: var(--seq-150); }
.db-cal-c.has.t-feed { background: var(--brand-soft); }
.db-cal-c.has.t-vet { background: var(--bank-soft); }
.db-cal-c.has.t-harvest { background: var(--warn-soft); }
.db-cal-c.sel { outline: 2px solid var(--ink); outline-offset: 1px; }
.db-cal-list ul { max-height: 160px; overflow-y: auto; }
.db-cal-list li { padding: 5px 0; }
.db-story h3 { display: flex; gap: 6px; align-items: center; }

/* ---------- پروفایل مزرعه ---------- */
.fp-head { display: flex; gap: var(--s5); align-items: center; flex-wrap: wrap; margin-bottom: var(--s4); }
.fp-id { flex: 1 1 380px; min-width: 0; }
.fp-id h1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fp-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--ink-2); font-size: var(--fs-sm); margin-top: 6px; }
.fp-meta span { display: inline-flex; align-items: center; gap: 5px; }
.fp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fp-score { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--bg-panel); }
.fp-score .fp-rank { font-size: var(--fs-sm); color: var(--ink-2); line-height: 1.6; }
.fp-score .fp-rank b { font-size: 20px; color: var(--ink); }
.fp-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.fp-stage { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--s4); align-items: start; }
.fp-today { background: var(--bg-panel); border: 1px solid var(--line); border-radius: var(--r-card); padding: var(--s4); display: flex; flex-direction: column; gap: var(--s3); }
.fp-today h3 { display: flex; align-items: center; gap: 6px; }
.fp-today .fp-cyc { display: flex; justify-content: space-between; align-items: baseline; }
.fp-today .fp-cyc b { font-size: 22px; font-weight: 800; }
.fp-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fp-mini div { background: var(--bg-sunken); border-radius: var(--r-ctl); padding: 8px 10px; }
.fp-mini small { display: block; color: var(--ink-2); font-size: 11px; }
.fp-mini b { font-size: 17px; font-variant-numeric: tabular-nums; }
.fp-silo { display: grid; grid-template-columns: 64px 1fr 66px; gap: 8px; align-items: center; font-size: 12px; }
@media (max-width: 1180px) { .fp-stage { grid-template-columns: minmax(0, 1fr); } }
.fp-reco { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s3); }
.fp-reco .card { padding: var(--s3) var(--s4); display: flex; flex-direction: column; gap: 6px; }
.fp-reco .fp-tier { font-size: 11px; font-weight: 700; color: var(--brand-strong); }
.fp-reco h4 { font-size: var(--fs-sm); }
.fp-impact { display: flex; flex-wrap: wrap; gap: 4px; }
.fp-house-t td:first-child { font-weight: 700; }
.fp-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
@media (max-width: 900px) { .fp-split { grid-template-columns: 1fr; } }

/* ---------- قیمت‌گذاری و سناریو ---------- */
.pr-layout { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: var(--s5); align-items: start; }
.pr-side { position: sticky; top: calc(var(--topbar-h) + 12px); max-height: calc(100vh - var(--topbar-h) - 24px); overflow-y: auto; padding-inline-end: 4px; }
.pr-side .pp-sec { margin-bottom: var(--s3); }
@media (max-width: 1100px) { .pr-layout { grid-template-columns: minmax(0, 1fr); } .pr-side { position: static; max-height: none; } }
.pr-hero { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.pr-hero .pr-h { background: var(--bg-panel); border: 1px solid var(--line); border-radius: var(--r-card); padding: var(--s4); }
.pr-hero .pr-h.pr-main { background: var(--brand-deep); color: var(--ink-inverse); border-color: transparent; }
.pr-hero .pr-h.pr-main .muted, .pr-hero .pr-h.pr-main .faint { color: rgba(255, 255, 255, .75); }
.pr-hero .pr-h.neg { border-color: var(--critical); }
.pr-hero .pr-l { font-size: var(--fs-sm); color: var(--ink-2); }
.pr-hero .pr-h.pr-main .pr-l { color: rgba(255, 255, 255, .8); }
.pr-hero .pr-v { font-size: 34px; font-weight: 800; letter-spacing: -1px; font-variant-numeric: tabular-nums; line-height: 1.2; margin-top: 4px; }
.pr-hero .pr-v small { font-size: 13px; font-weight: 600; opacity: .7; margin-inline-start: 4px; letter-spacing: 0; }
@media (max-width: 900px) { .pr-hero { grid-template-columns: 1fr; } }
.pr-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
@media (max-width: 900px) { .pr-split { grid-template-columns: 1fr; } }
.pr-share { display: flex; height: 38px; border-radius: var(--r-ctl); overflow: hidden; font-size: 12px; font-weight: 700; }
.pr-share > div { display: grid; place-items: center; color: var(--ink-inverse); white-space: nowrap; overflow: hidden; min-width: 0; }
.pr-share .s-feed { background: var(--series-4); color: var(--ink); }
.pr-share .s-chick { background: var(--series-5); color: var(--ink); }
.pr-share .s-fee { background: var(--series-1); }
.pr-share .s-other { background: var(--ink-3); }
.pr-share .s-margin { background: var(--series-3); }
.pr-share .s-loss { background: var(--div-neg); }
.pr-share-lg { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--ink-2); margin-top: 8px; }
.pr-share-lg i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; margin-inline-end: 4px; vertical-align: -1px; }
.pr-cal tr.cur td { background: var(--brand-soft); font-weight: 700; }
.pr-cal td.neg { color: var(--critical-ink); }
