/* Site intelligence modules: daily report, people & work, livestock sound, multi-frame call check,
   ask your cameras, site health, live video, detection filmstrip, Telugu switch.
   Self-contained so it does not depend on classes missing from the pre-built Tailwind file. */

.ff-panel{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);border-radius:1.5rem;padding:1.5rem}
.ff-panel-tight{padding:1rem}
.ff-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.ff-note{display:block;margin-top:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.ff-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.82);background:rgba(255,255,255,.05)}
.ff-badge-included{border-color:rgba(74,222,128,.35);color:#bbf7d0;background:rgba(74,222,128,.08)}
.ff-badge-beta{border-color:rgba(251,191,36,.4);color:#fde68a;background:rgba(251,191,36,.08)}
.ff-module{display:grid;gap:2.5rem;align-items:center;padding:3.5rem 0;border-top:1px solid rgba(255,255,255,.06)}
@media (min-width:1024px){.ff-module{grid-template-columns:5fr 7fr;gap:4rem}.ff-module.ff-flip>:first-child{order:2}}
.ff-module h3{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;color:#fff;font-weight:600;margin:.75rem 0 1rem}
.ff-module p{color:rgba(255,255,255,.7);line-height:1.7;font-size:.95rem}
.ff-list{margin-top:1.25rem;display:grid;gap:.6rem}
.ff-list li{display:flex;gap:.65rem;align-items:flex-start;color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.55}
.ff-list li::before{content:"";flex:none;width:.4rem;height:.4rem;margin-top:.55rem;border-radius:999px;background:rgba(255,255,255,.55)}
.ff-quote{margin-top:1.25rem;padding-left:1rem;border-left:2px solid rgba(255,255,255,.25);color:#fff;font-style:italic}

/* Daily report preview: three real (anonymised) report pages fanned out */
.ff-report{position:relative;aspect-ratio:4/3;max-width:560px;margin:0 auto;width:100%}
.ff-report img{position:absolute;width:46%;aspect-ratio:909/1287;object-fit:cover;border-radius:.6rem;box-shadow:0 30px 60px -20px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08);background:#f2efe6;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ff-report img:nth-child(1){left:27%;top:2%;z-index:3}
.ff-report img:nth-child(2){left:4%;top:9%;transform:rotate(-7deg);z-index:2}
.ff-report img:nth-child(3){right:4%;top:9%;transform:rotate(7deg);z-index:1}
.ff-report:hover img:nth-child(2){transform:rotate(-10deg) translateX(-4%)}
.ff-report:hover img:nth-child(3){transform:rotate(10deg) translateX(4%)}
.ff-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;font-size:.875rem;font-weight:500;transition:background .2s,border-color .2s}
.ff-btn-primary{background:#fff;color:#000}.ff-btn-primary:hover{background:#e5e5e5}
.ff-btn-ghost{border:1px solid rgba(255,255,255,.18);color:#fff}.ff-btn-ghost:hover{background:rgba(255,255,255,.06)}
.ff-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* People & work timeline */
.ff-tl{display:grid;gap:.7rem}
.ff-tl-row{display:grid;grid-template-columns:6.5rem 1fr;gap:.75rem;align-items:center;font-size:.8rem;color:rgba(255,255,255,.85)}
.ff-tl-track{position:relative;height:.75rem;border-radius:999px;background:rgba(255,255,255,.06)}
.ff-tl-bar{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--c,#60a5fa)}
.ff-tl-axis{display:grid;grid-template-columns:6.5rem 1fr;gap:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:rgba(255,255,255,.6)}
.ff-tl-axis div:last-child{display:flex;justify-content:space-between}
.ff-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:999px;background:var(--c,#60a5fa);margin-right:.4rem;vertical-align:middle}
.ff-jobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.6rem;margin-top:1.25rem}
.ff-job{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:.8rem;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.35);font-size:.8rem;color:#fff}
.ff-state{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .5rem;border-radius:999px}
.ff-state-done{color:#bbf7d0;background:rgba(74,222,128,.12)}
.ff-state-late{color:#fde68a;background:rgba(251,191,36,.12)}
.ff-state-unseen{color:rgba(255,255,255,.75);background:rgba(255,255,255,.08)}

/* Chat bubbles (Telegram-style illustrations) */
.ff-chat{display:grid;gap:.6rem}
.ff-bubble{max-width:85%;padding:.65rem .9rem;border-radius:1rem;font-size:.85rem;line-height:1.5;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);border-bottom-left-radius:.3rem}
.ff-bubble.ff-me{justify-self:end;background:rgba(59,130,246,.22);border-color:rgba(96,165,250,.25);border-bottom-left-radius:1rem;border-bottom-right-radius:.3rem}
.ff-bubble small{display:block;margin-top:.25rem;font-size:10px;color:rgba(255,255,255,.6);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ff-thumb{display:flex;gap:.4rem;margin-top:.5rem}
.ff-thumb span{flex:1;aspect-ratio:16/10;border-radius:.45rem;background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.08)}
.ff-chat-te{font-family:"Noto Sans Telugu",system-ui,sans-serif}

/* Livestock sound: tonight vs normal band */
.ff-wave svg{display:block;width:100%;height:auto}
.ff-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.6rem;font-size:11px;color:rgba(255,255,255,.7)}
.ff-legend i{display:inline-block;width:1.2rem;height:.5rem;border-radius:2px;margin-right:.35rem;vertical-align:middle}
.ff-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin-top:1rem}
.ff-area{padding:.85rem;border-radius:1rem;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.35)}
.ff-area b{display:block;color:#fff;font-size:.9rem;font-weight:600}
.ff-area span{display:block;margin-top:.15rem;font-size:11px;color:rgba(255,255,255,.65)}
.ff-verdict{display:inline-block;margin-top:.6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px}
.ff-v-normal{color:#bbf7d0;background:rgba(74,222,128,.12)}
.ff-v-watch{color:#fde68a;background:rgba(251,191,36,.12)}
.ff-v-check{color:#fecaca;background:rgba(248,113,113,.14)}

/* Multi-frame call check */
.ff-frames{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}
.ff-frame{position:relative;aspect-ratio:4/3;border-radius:.45rem;border:1px solid rgba(255,255,255,.1);background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02))}
.ff-frame::after{content:"–";position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;color:rgba(255,255,255,.55)}
.ff-frame.ff-ok{border-color:rgba(74,222,128,.55);background:linear-gradient(160deg,rgba(74,222,128,.22),rgba(74,222,128,.05))}
.ff-frame.ff-ok::after{content:"✓";color:#bbf7d0;font-weight:700}
.ff-call{display:flex;align-items:center;gap:.6rem;margin-top:.8rem;font-size:.8rem;color:rgba(255,255,255,.85)}
.ff-ring{width:2rem;height:2rem;border-radius:999px;display:grid;place-items:center;background:rgba(74,222,128,.16);color:#bbf7d0;box-shadow:0 0 0 0 rgba(74,222,128,.5);animation:ff-ring 1.8s ease-out infinite}
@keyframes ff-ring{0%{box-shadow:0 0 0 0 rgba(74,222,128,.45)}80%,100%{box-shadow:0 0 0 .7rem rgba(74,222,128,0)}}

/* Site health uptime strip */
.ff-uptime{position:relative;display:flex;height:1.6rem;border-radius:.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.ff-up{background:rgba(74,222,128,.32)}
.ff-gap{background:repeating-linear-gradient(135deg,rgba(248,113,113,.45) 0 6px,rgba(248,113,113,.2) 6px 12px)}
.ff-uptime-labels{display:flex;justify-content:space-between;margin-top:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:rgba(255,255,255,.6)}
.ff-gap-label{margin-top:.5rem;font-size:11px;color:#fecaca}

/* Live camera grid */
.ff-camgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}
.ff-cam{position:relative;aspect-ratio:16/10;border-radius:.5rem;border:1px solid rgba(255,255,255,.08);background:radial-gradient(ellipse at 30% 30%,rgba(255,255,255,.1),rgba(255,255,255,.02) 70%)}
.ff-cam span{position:absolute;left:.45rem;bottom:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;color:rgba(255,255,255,.75)}
.ff-cam::before{content:"LIVE";position:absolute;right:.4rem;top:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;letter-spacing:.08em;color:#fecaca;padding:.05rem .3rem;border-radius:999px;background:rgba(248,113,113,.18)}

/* Detection filmstrip */
.ff-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}
.ff-filter{font-size:11px;padding:.25rem .6rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.8)}
.ff-filter.ff-on{background:#fff;color:#000;border-color:#fff}
.ff-film{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.4rem}
.ff-shot{border-radius:.45rem;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.35)}
.ff-shot i{display:block;aspect-ratio:4/3;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.02))}
.ff-shot span{display:block;padding:.25rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;color:rgba(255,255,255,.75)}
.ff-shot.ff-alert{border-color:rgba(248,113,113,.5)}

/* Daytime loop (workflow) */
.ff-loop{display:grid;gap:.75rem;counter-reset:ff}
@media (min-width:768px){.ff-loop{grid-template-columns:repeat(4,1fr)}}
.ff-step{position:relative;padding:1.25rem;border-radius:1.25rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.ff-step::before{counter-increment:ff;content:"0" counter(ff);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.6)}
.ff-step h4{margin-top:.6rem;color:#fff;font-weight:600}
.ff-step p{margin-top:.35rem;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.7)}
.ff-step small{display:block;margin-top:.6rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:rgba(255,255,255,.6)}

/* Telugu: the switch and Telugu copy stay hidden until the site owner approves the translation
   (set data-te-approved on <html> or TRL_TELUGU_APPROVED = true in site-i18n.js). */
html:not([data-te-approved]) .te-pending{display:none!important}
.ff-lang{display:inline-flex;border:1px solid rgba(255,255,255,.15);border-radius:999px;overflow:hidden;font-size:12px}
.ff-lang button{padding:.3rem .7rem;color:rgba(255,255,255,.75)}
.ff-lang button[aria-pressed="true"]{background:#fff;color:#000}
html[lang="te"] body{font-family:"Noto Sans Telugu","Inter",system-ui,sans-serif}

@media (prefers-reduced-motion:reduce){.ff-ring{animation:none}.ff-report img{transition:none}}

/* Container that never runs under the fixed desktop rail navigation (left: 24-96px). */
.ff-wrap{max-width:72rem;margin-inline:auto}
@media (min-width:1024px){.ff-wrap{padding-left:max(0px,calc(7rem - (100vw - 72rem) / 2))}}
.ff-span-all{grid-column:1/-1}
.ff-loop{list-style:none;margin:0;padding:0}
html[lang="te"] .font-serif,html[lang="te"] .font-display{font-family:"Noto Sans Telugu",system-ui,sans-serif;font-style:normal}
.ff-thumb span{flex:none;width:4.5rem}
.ff-area .ff-verdict{display:inline-block}
