/* Farm Flow v0.9.0 · Gamification */
.ff90-farm-level{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;margin:18px 0;padding:22px;border:1px solid #b9d4c4;border-radius:22px;background:linear-gradient(135deg,#0f5a43,#173f35);color:#fff;box-shadow:0 16px 38px rgba(21,72,55,.18)}
.ff90-farm-level-icon{display:grid;place-items:center;width:76px;height:76px;border-radius:22px;background:rgba(255,255,255,.14);font-size:38px}.ff90-farm-level-copy h3{margin:2px 0 4px;font-size:24px}.ff90-farm-level-copy>strong{display:block;font-size:16px;color:#dff3e8}.ff90-farm-level-copy p{margin:5px 0 12px;color:#e8f4ed}.ff90-farm-level-copy small{display:block;margin-top:8px;color:#dff3e8}
.ff90-progress{height:12px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}.ff90-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f3d067,#8fd274);transition:width .4s ease}.ff90-progress.small{height:7px;background:#dfe9e1;margin:7px 0}.ff90-progress.small i{background:linear-gradient(90deg,#5d9f62,#d7b84e)}
.ff90-mission{margin:18px 0;padding:22px;border:1px solid #d8dfd7;border-radius:22px;background:#fffdf8;box-shadow:0 10px 28px rgba(29,58,45,.08)}.ff90-mission.empty{display:flex;justify-content:space-between;align-items:center;gap:16px}.ff90-mission.is-complete{border-color:#bda35b;background:linear-gradient(135deg,#fff8dc,#fffdf8)}.ff90-mission-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.ff90-mission-head h3{margin:2px 0 6px;font-size:24px}.ff90-mission-head p{margin:0;color:var(--muted)}.ff90-mission-value{text-align:right;min-width:145px}.ff90-mission-value strong{display:block;font-size:24px}.ff90-mission-value small{color:var(--muted)}.ff90-mission .ff90-progress{margin-top:16px;background:#e7ece6}.ff90-mission-meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:12px;font-size:12px;font-weight:750;color:#456254}.ff90-mission-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.ff90-section{scroll-margin-top:90px}.ff90-specialty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ff90-specialty{display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;padding:16px;border:1px solid #dce4dd;border-radius:18px;background:linear-gradient(135deg,#fff,#f6faf6)}.ff90-specialty>span{font-size:30px}.ff90-specialty strong{display:block;font-size:15px}.ff90-specialty small{display:block;color:var(--muted);font-weight:750}.ff90-specialty p{margin:5px 0 0;color:var(--muted);font-size:12px}
.ff90-badge-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.ff90-badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;min-height:120px;padding:14px 8px;border:1px solid #dce4dd;border-radius:16px;background:#fff}.ff90-badge>span{font-size:31px}.ff90-badge strong{font-size:12px;line-height:1.25}.ff90-badge small{font-size:10px;color:var(--muted)}.ff90-badge.is-unlocked{border-color:#d5b657;background:linear-gradient(145deg,#fff9dd,#fff);box-shadow:0 7px 18px rgba(125,94,21,.12)}.ff90-badge.is-locked{filter:grayscale(1);opacity:.46}.ff90-badge.is-locked>span{filter:blur(.5px)}
.ff90-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ff90-team-grid article{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #dce4dd;border-radius:16px;background:#fff}.ff90-team-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#edf5ef;font-size:24px}.ff90-team-grid strong,.ff90-team-grid small,.ff90-team-grid span{display:block}.ff90-team-grid small{color:var(--muted);margin:2px 0}.ff90-team-grid span{font-size:10px;font-weight:800;color:#4b6c5a}
.ff90-task-specialty-field small{display:block;margin-top:4px;color:var(--muted)}.ff90-sidebar-farm-level{color:#bfe3ce!important}
.ff90-celebration{position:relative;overflow:hidden;text-align:center;padding:22px 8px 8px}.ff90-celebration-icon{font-size:72px;animation:ff90-pop .55s cubic-bezier(.2,1.5,.4,1)}.ff90-celebration h2{font-size:30px;margin:8px 0}.ff90-celebration p{color:var(--muted);margin:0 0 22px}.ff90-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ff90-confetti i{position:absolute;left:calc(var(--x) * 1%);top:-12px;width:7px;height:14px;border-radius:3px;background:hsl(calc(var(--i)*43),75%,55%);animation:ff90-fall 2.4s calc(var(--i)*-.07s) linear infinite;transform:rotate(calc(var(--i)*19deg))}
@keyframes ff90-pop{0%{transform:scale(.25) rotate(-18deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}@keyframes ff90-fall{to{transform:translateY(560px) rotate(680deg)}}
@media(max-width:980px){.ff90-badge-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ff90-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ff90-farm-level{grid-template-columns:1fr}.ff90-farm-level-icon{width:58px;height:58px}.ff90-mission.empty,.ff90-mission-head{align-items:stretch;flex-direction:column}.ff90-mission-value{text-align:left}.ff90-specialty-grid,.ff90-team-grid{grid-template-columns:1fr}.ff90-badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ff90-mission-actions{justify-content:stretch}.ff90-mission-actions .btn{flex:1}}
@media(max-width:420px){.ff90-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
