/* 농장 성적 전용. 공통 테마의 색상과 글씨 배율을 그대로 사용한다. */
.fp { line-height:1.65; min-width:0; --fp-breed:var(--t-blue); --fp-farrow:#f0883e; --fp-wean:var(--t-green); --fp-watch:var(--t-amber); --fp-loss:var(--bad); }
/* 분만은 종부(파랑)와 적록색약에서 거의 같아 보이던 보라 대신 주황을 쓴다 (색 차이 0.7 → 8.2).
   태극은 「청색=생산, 적색=분만」 규칙을 지켜 붉은색을 그대로 쓴다. */
html:is([data-theme="light"],[data-theme="hanul"]) .fp { --fp-farrow:#b45309; }
html[data-theme="taegeuk"] .fp { --fp-farrow:#b8444e; }
.fp [hidden] { display:none !important; }
.fp button,.fp select,.fp input,.fp-dialog button { font:inherit; font-size:.875rem; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:8px 11px; min-height:42px; max-width:100%; }
.fp button,.fp select,.fp-dialog button { cursor:pointer; }
.fp button:hover,.fp-categories a:hover { border-color:var(--accent); }
.fp :focus-visible,.fp-dialog :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.fp button:disabled { opacity:.55; cursor:wait; }
.fp label { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size:.875rem; color:var(--ink-soft); }
.fp h2 { font-size:var(--fs-h2,1.125rem); margin:0; }
.fp h3 { font-size:1rem; margin:0; font-weight:800; }
.fp p { overflow-wrap:anywhere; }
.fp-categories { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 20px; }
.fp-categories a { color:var(--ink-soft); border:1px solid var(--line); border-radius:11px; padding:9px 15px; font-size:.9375rem; text-decoration:none; font-weight:700; background:var(--surface); }
.fp-categories a[aria-current="page"],.fp .fp-segment button[aria-pressed="true"] { background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.fp-heading { margin-bottom:18px; }
.fp-heading p,.fp-note,.fp-caption { color:var(--ink-soft); font-size:.8125rem; }
.fp-note { margin:5px 0 12px; line-height:1.7; }
.fp-panel { padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--surface); margin-bottom:15px; min-width:0; }
.fp-panel>h3 { margin-bottom:5px; }
.fp-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.fp-between,.fp-section-title { justify-content:space-between; }
.fp-controls>.fp-row,.fp-controls>form { margin-top:12px; }
.fp-controls>.fp-row:first-child { margin-top:0; align-items:flex-start; }
.fp-segment { display:flex; flex-wrap:wrap; gap:4px; }
.fp .fp-segment button { font-weight:700; }
.fp-section-title { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:25px 0 8px; }
.fp-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0 16px; }
.fp .fp-metric { text-align:left; padding:14px; border-radius:12px; background:var(--surface); min-width:0; border:1px solid var(--line); }
.fp-metric span { display:block; }
.fp-metric .fp-k { font-size:.8125rem; color:var(--ink-soft); font-weight:700; }
.fp-metric .fp-v { font-size:1.6rem; line-height:1.4; font-weight:900; color:var(--ink); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.fp-metric .fp-v small { font-size:.8125rem; margin-left:3px; font-weight:600; }
.fp-metric .fp-s { font-size:.8125rem; color:var(--ink-soft); margin-top:3px; }
.fp-grid2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.fp-table { width:100%; overflow:auto; border-radius:8px; }
.fp table { width:100%; border-collapse:collapse; font-size:.875rem; }
.fp th,.fp td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fp th { font-weight:700; color:var(--ink-soft); font-size:.8125rem; background:var(--surface-2,var(--surface)); }
.fp th:first-child,.fp td:first-child { text-align:left; }
.fp caption { text-align:left; color:var(--ink-soft); font-size:.8125rem; padding:0 0 8px; }
.fp-empty { padding:23px 15px; color:var(--ink-soft); background:var(--surface); border:1px solid var(--line); border-radius:12px; text-align:center; margin-bottom:15px; }
.fp-empty button { margin:10px; }
.fp-error { border-color:var(--bad); }
.fp-bar { display:grid; grid-template-columns:minmax(70px,1fr) 2fr minmax(90px,1fr); gap:10px; align-items:center; margin:8px 0; font-size:.875rem; }
.fp-bar>span:last-child { text-align:right; font-variant-numeric:tabular-nums; }
.fp-track { height:9px; background:var(--surface-3); border-radius:9px; overflow:hidden; }
.fp-track i { display:block; height:100%; background:var(--accent); border-radius:9px; }
.fp-month { margin:22px 0 10px; font-weight:800; font-size:1rem; }
.fp-timeline { max-width:960px; margin:auto; }
.fp-timeline .fp-cohort { margin-left:13px; position:relative; }
.fp-timeline .fp-cohort:before { content:""; position:absolute; left:-14px; top:0; bottom:-17px; width:2px; background:var(--line); }
.fp-timeline .fp-cohort:after { content:""; position:absolute; left:-18px; top:22px; width:10px; height:10px; border-radius:50%; background:var(--accent); border:2px solid var(--bg); }
.fp-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.fp-cohort { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:17px; margin-bottom:14px; min-width:0; }
.fp-cards .fp-cohort { margin-bottom:0; }
.fp-cohort[data-status="active"] { border-color:var(--accent); box-shadow:inset 0 3px var(--accent); }
.fp-cohort-head { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; flex-wrap:wrap; }
.fp-badge { padding:2px 8px; background:var(--surface-3); color:var(--ink-soft); border-radius:7px; font-size:.8125rem; font-weight:700; }
.fp-cohort[data-status="active"] .fp-badge { color:var(--fp-state); }
.fp-cohort .fp-rate { font-size:1.95rem; font-weight:900; margin:7px 0 3px; line-height:1.5; font-variant-numeric:tabular-nums; }
.fp-rate small { font-size:.9375rem; font-weight:600; margin-left:4px; color:var(--ink-soft); }
.fp-cohort dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:10px 0; }
.fp-cohort dt { font-size:.8125rem; color:var(--ink-soft); }
.fp-cohort dd { font-size:1.15rem; font-weight:800; font-variant-numeric:tabular-nums; }
.fp-cohort .fp-diary { border-top:1px solid var(--line); margin-top:12px; padding-top:10px; }
.fp-details { margin-top:10px; }
.fp details>summary { cursor:pointer; color:var(--accent-text,var(--accent)); padding:5px 0; font-size:.875rem; font-weight:700; }
.fp details[open]>summary { margin-bottom:8px; }
.fp-details p { margin:8px 0; font-size:.8125rem; color:var(--ink-soft); }
.fp-sows { margin-top:10px; }
.fp-sows summary { font-weight:500!important; }
.fp-compare-picks { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0; }
.fp-compare-picks button[aria-pressed="true"] { border-color:var(--accent); background:var(--surface-2); color:var(--accent-text,var(--accent)); }
.fp-compare-result { padding:15px; background:var(--surface); border:1px solid var(--line); border-radius:12px; margin:12px 0; }
.fp-delta { font-size:1.5rem; font-weight:900; }
.fp-chart { width:100%; min-width:440px; display:block; height:auto; touch-action:pan-y; cursor:crosshair; }
.fp-chart text { fill:var(--ink-soft); font:11px 'Noto Sans KR',sans-serif; }
.fp-chart text.fp-end { font-weight:800; }
.fp-chart-wrap { overflow-x:auto; margin:0 0 10px; }
.fp-chart-card { margin:10px 0; }
/* 올린 주를 짚는 세로선과 점 — 점은 바탕색 테두리로 선과 떼어 놓는다 */
.fp-chart [data-fp-cross] { pointer-events:none; }
.fp-cross { stroke:var(--ink-soft); stroke-width:1; stroke-dasharray:3 3; opacity:.75; }
.fp-halo { fill:var(--surface); }
/* 그래프 위 값줄 — 말풍선 대신 여기 적는다 (폰에서 손가락에 안 가린다) */
.fp-read { display:flex; flex-wrap:wrap; align-items:center; gap:5px 14px; min-height:38px;
  padding:7px 10px; margin-bottom:8px; background:var(--surface-3,var(--surface)); border:1px solid var(--line);
  border-radius:10px; font-size:.8125rem; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.fp-read-k { font-weight:800; color:var(--ink-strong,var(--ink)); }
.fp-read-i { display:inline-flex; align-items:center; gap:6px; }
.fp-read-i i { width:9px; height:9px; border-radius:2px; flex:none; }
.fp-read-i b { color:var(--ink-strong,var(--ink)); font-weight:800; }
.fp-d { font-size:.75rem; color:var(--ink-soft); }
.fp-d.up { color:var(--t-green,var(--ink-soft)); } .fp-d.down { color:var(--bad,var(--ink-soft)); }
@media (max-width:600px) { .fp-read { font-size:.78rem; gap:4px 10px; } }
.fp-legend { display:flex; flex-wrap:wrap; gap:13px; color:var(--ink-soft); font-size:.8125rem; }
.fp-legend i { display:inline-block; height:9px; width:12px; margin-right:5px; border-radius:2px; }
.fp-checks { padding-left:20px; font-size:.875rem; }
.fp-checks li { margin:6px 0; }
.fp-footer { margin-top:24px; }
.fp-dialog { color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px; width:min(640px,calc(100% - 24px)); max-height:85dvh; margin:auto; line-height:1.8; }
.fp-dialog::backdrop { background:var(--scrim-70,rgba(0,0,0,.65)); }
.fp-dialog-head { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-bottom:12px; }
.fp-dialog h2 { font-size:1.125rem; }
.fp-dialog .fp-formula { border:1px solid var(--line); border-radius:10px; background:var(--surface-2); padding:12px; margin:12px 0; }
.fp-dialog ul { padding-left:20px; font-size:.875rem; }
.fp-dialog .fp-note { margin-top:12px; }
html[data-design="calm"] .fp-categories a { border-radius:8px; }
@media(max-width:1050px) { .fp-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) { .fp-grid2 { grid-template-columns:1fr; gap:0; } .fp-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .fp-panel,.fp-cohort { padding:14px; } .fp-cards { grid-template-columns:1fr; } .fp-categories a { flex:1 1 auto; text-align:center; padding:9px 11px; } .fp-controls .fp-segment { width:100%; } .fp-controls .fp-segment button { flex:1 1 auto; } }
@media(max-width:390px) { .fp-bar { grid-template-columns:1fr 1fr; } .fp-bar .fp-track { display:none; } .fp-dates label { width:100%; justify-content:space-between; } .fp .fp-metric { padding:11px; } .fp .fp-v { font-size:1.3rem; } .fp-cohort dl { gap:4px; } }
@media(prefers-reduced-motion:reduce) { .fp * { scroll-behavior:auto!important; } }

/* 대시보드와 같은 항목별 색. 상태 이름·숫자·부호를 남겨 색만으로 판단하지 않는다. */
.fp [data-tone="breed"] { --fp-tone:var(--fp-breed); }
.fp [data-tone="farrow"] { --fp-tone:var(--fp-farrow); }
.fp [data-tone="wean"] { --fp-tone:var(--fp-wean); }
.fp [data-tone="watch"] { --fp-tone:var(--fp-watch); }
.fp [data-tone="loss"] { --fp-tone:var(--fp-loss); }
.fp [data-tone="neutral"] { --fp-tone:var(--ink-soft); }
.fp [data-tone="good"] { --fp-tone:var(--good); }
/* 지난달 대비 칩 · 작은 추세선 (모양은 shared/chart-touch.js) — 위 span 블록 규칙을 되돌린다 */
.fp-metric .hd-trend { display:flex; margin:4px 0 0; }
.fp-metric .hd-delta { display:inline-flex; }
.fp .fp-metric { border-top:3px solid var(--fp-tone,var(--line)); }
.fp .fp-metric:not([data-tone="neutral"]) { background:color-mix(in srgb,var(--fp-tone) 5%,var(--surface)); }
.fp-metric .fp-k:before { content:""; display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:2px; background:var(--fp-tone,var(--ink-soft)); vertical-align:1px; }
.fp-metric:not([data-tone="neutral"]) .fp-v { color:var(--fp-tone); }
.fp-bar .fp-track i { background:var(--fp-tone,var(--accent)); }
.fp-bar:not([data-tone="neutral"])>span:last-child { color:var(--fp-tone); font-weight:700; }
.fp .fp-emphasis { color:var(--fp-tone); }
.fp-checks[data-tone="watch"] { border-left:3px solid var(--fp-watch); padding-left:26px; }
.fp-checks[data-tone="watch"] li::marker { color:var(--fp-watch); }
.fp-cohort { --fp-state:var(--ink-soft); border-top:3px solid var(--fp-state); }
.fp-cohort[data-status="active"] { --fp-state:var(--fp-farrow); border-color:var(--fp-farrow); box-shadow:none; background:color-mix(in srgb,var(--fp-farrow) 5%,var(--surface)); }
.fp-cohort[data-status="upcoming"] { --fp-state:var(--fp-breed); }
.fp-cohort[data-status="check"] { --fp-state:var(--fp-watch); }
.fp-cohort[data-status="empty"] { --fp-state:var(--line); }
.fp-cohort .fp-badge { color:var(--fp-state); background:color-mix(in srgb,var(--fp-state) 10%,var(--surface)); }
.fp-cohort[data-status="empty"] .fp-badge { color:var(--ink-soft); background:var(--surface-3); }
.fp-cohort .fp-rate { color:var(--fp-farrow); }
.fp-cohort[data-status="upcoming"] .fp-rate { color:var(--fp-breed); }
.fp-cohort[data-status="empty"] .fp-rate { color:var(--ink-soft); }
.fp-cohort dl>div:nth-child(1) dd { color:var(--fp-breed); }
.fp-cohort dl>div:nth-child(2) dd { color:var(--fp-wean); }
.fp-cohort dl>div:nth-child(3) dd,.fp-cohort .fp-diary strong { color:var(--fp-farrow); }
.fp .fp-cohort[data-status="empty"] dd { color:var(--ink-soft); }
.fp-cohort .fp-track i { background:var(--fp-farrow); }
.fp-timeline .fp-cohort:after { background:var(--fp-state); }
.fp-compare-result { border-left:3px solid var(--fp-tone,var(--line)); }
.fp-compare-result .fp-delta { color:var(--fp-tone,var(--ink)); }
