/* beta-fx.css — FancyFlow (fancyshop.celonix.in). Built on beta.css's tokens
   (--background, --foreground, --primary, --border …) so dark mode just works.
   Only pages marked <html data-fx> take FancyFlow's rose brand colour. Class
   names are fx-* (semantic), plus a few utilities beta.css's build lacks. */
html[data-fx]{--primary:#be185d;--ring:#be185d;--primary-foreground:#fff;--sidebar-primary:#be185d}
html[data-fx].dark{--primary:#f472b6;--ring:#f472b6;--primary-foreground:#1a0610}
html[data-fx] body{background:var(--background);color:var(--foreground)}

/* ---------- brand + layout ---------- */
.fx-mark{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;border-radius:.45rem;background:var(--primary);color:var(--primary-foreground)}
.fx-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:-.01em}
.fx-wrap{width:100%;max-width:74rem;margin-inline:auto;padding-inline:1rem}
@media (min-width:48rem){.fx-wrap{padding-inline:1.5rem}}
.fx-has-bottom{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}
@media (min-width:48rem){.fx-has-bottom{padding-bottom:1.5rem}}

/* ---------- public header / footer ---------- */
.fx-pub-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--background) 88%,transparent);backdrop-filter:blur(8px)}
.fx-pub-header-in{display:flex;align-items:center;gap:1rem;height:3.75rem}
.fx-pub-nav{display:none;gap:1.25rem;margin-left:1rem;font-size:.9rem;color:var(--muted-foreground)}
.fx-pub-nav a:hover{color:var(--foreground)}
@media (min-width:48rem){.fx-pub-nav{display:flex}}
.fx-pub-header-in>div:last-child{margin-left:auto}
.fx-pub-footer{border-top:1px solid var(--border);padding-block:2.5rem;margin-top:3rem;background:color-mix(in oklab,var(--muted) 45%,var(--background))}
.fx-footer-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:48rem){.fx-footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.fx-footer-grid h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin-bottom:.6rem}
.fx-footer-grid li{margin-block:.35rem;font-size:.9rem}
.fx-footer-grid a:hover{color:var(--primary)}

/* ---------- landing ---------- */
.fx-hero{padding-block:4rem 3rem;text-align:center}
.fx-hero h1{font-size:2.25rem;line-height:1.1;font-weight:800;letter-spacing:-.03em;max-width:46rem;margin-inline:auto}
@media (min-width:48rem){.fx-hero h1{font-size:3.1rem}}
.fx-hero p{margin:1rem auto 0;max-width:40rem;color:var(--muted-foreground);font-size:1.08rem;line-height:1.6}
.fx-hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.75rem}
.fx-section{padding-block:3.5rem}
.fx-section-alt{background:color-mix(in oklab,var(--muted) 55%,var(--background));border-block:1px solid var(--border)}
.fx-section-head{max-width:42rem;margin:0 auto 2rem;text-align:center}
.fx-section-head h2{font-size:1.75rem;line-height:1.2;font-weight:700;letter-spacing:-.02em}
.fx-section-head p{margin-top:.6rem;color:var(--muted-foreground);line-height:1.6}
.fx-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:40rem){.fx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:64rem){.fx-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fx-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.fx-feature{border:1px solid var(--border);border-radius:.9rem;padding:1.25rem;background:var(--card)}
.fx-feature h3{font-weight:600;margin-top:.6rem}
.fx-feature p{margin-top:.35rem;font-size:.92rem;color:var(--muted-foreground);line-height:1.55}
.fx-feature-icon{display:inline-flex;width:2.4rem;height:2.4rem;align-items:center;justify-content:center;border-radius:.6rem;background:color-mix(in oklab,var(--primary) 12%,transparent);color:var(--primary)}
.fx-price{border:1px solid var(--border);border-radius:1rem;padding:1.4rem;background:var(--card);display:flex;flex-direction:column;gap:.75rem}
.fx-price.featured{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.fx-price .amt-big{font-size:2rem;font-weight:800;letter-spacing:-.02em}
.fx-price ul{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}
.fx-price li{display:flex;gap:.45rem;align-items:flex-start}
.fx-faq details{border-bottom:1px solid var(--border);padding-block:.9rem}
.fx-faq summary{cursor:pointer;font-weight:600;list-style:none}
.fx-faq summary::-webkit-details-marker{display:none}
.fx-faq details p{margin-top:.5rem;color:var(--muted-foreground);line-height:1.6}
.fx-prose{max-width:46rem;margin-inline:auto;line-height:1.7}
.fx-prose h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.5rem}
.fx-prose h2{font-size:1.25rem;font-weight:700;margin-top:1.75rem;margin-bottom:.4rem}
.fx-prose p,.fx-prose li{color:var(--muted-foreground)}
.fx-prose ul{list-style:disc;padding-left:1.25rem}

/* ---------- status chips ---------- */
.fx-chip{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.12rem .55rem;font-size:.72rem;font-weight:600;line-height:1.3;white-space:nowrap;border:1px solid transparent}
.fx-chip-good{background:color-mix(in oklab,#16a34a 14%,transparent);color:#15803d;border-color:color-mix(in oklab,#16a34a 30%,transparent)}
.fx-chip-warn{background:color-mix(in oklab,#d97706 14%,transparent);color:#b45309;border-color:color-mix(in oklab,#d97706 30%,transparent)}
.fx-chip-bad{background:color-mix(in oklab,#dc2626 13%,transparent);color:#b91c1c;border-color:color-mix(in oklab,#dc2626 30%,transparent)}
.fx-chip-info{background:color-mix(in oklab,#2563eb 13%,transparent);color:#1d4ed8;border-color:color-mix(in oklab,#2563eb 30%,transparent)}
.fx-chip-dim{background:var(--muted);color:var(--muted-foreground);border-color:var(--border)}
.dark .fx-chip-good{color:#4ade80}.dark .fx-chip-warn{color:#fbbf24}.dark .fx-chip-bad{color:#f87171}.dark .fx-chip-info{color:#60a5fa}

/* ---------- money + numbers ---------- */
.fx-pos{color:#15803d}.fx-neg{color:#b91c1c}
.dark .fx-pos{color:#4ade80}.dark .fx-neg{color:#f87171}
.fx-num{font-variant-numeric:tabular-nums;text-align:right}

/* ---------- forms ---------- */
.fx-form-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:40rem){.fx-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fx-form-grid .fx-span-2{grid-column:1/-1}
.fx-money-in{padding-left:1.75rem}
.fx-check{width:1rem;height:1rem;accent-color:var(--primary)}

/* ---------- tables ---------- */
.fx-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:.75rem;background:var(--card)}
.fx-table-wrap table{width:100%;font-size:.875rem}
.fx-table-wrap th{height:2.5rem;padding:0 .75rem;text-align:left;font-weight:500;white-space:nowrap;border-bottom:1px solid var(--border);color:var(--muted-foreground)}
.fx-table-wrap td{padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}
.fx-table-wrap tr:last-child td{border-bottom:0}
.fx-table-wrap tbody tr:hover{background:color-mix(in oklab,var(--muted) 50%,transparent)}
.fx-table-wrap .fx-num{white-space:nowrap}

/* ---------- KPI strip ---------- */
.fx-kpis{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:64rem){.fx-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.fx-kpi{border:1px solid var(--border);border-radius:.85rem;padding:1rem;background:var(--card)}
.fx-kpi .lbl{font-size:.8rem;color:var(--muted-foreground)}
.fx-kpi .val{margin-top:.25rem;font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fx-kpi .sub{margin-top:.15rem;font-size:.75rem;color:var(--muted-foreground)}

/* ---------- POS ---------- */
.fx-pos-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:64rem){.fx-pos-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}
.fx-pos-results{max-height:60vh;overflow-y:auto;border:1px solid var(--border);border-radius:.75rem}
.fx-pos-result{display:flex;width:100%;align-items:center;gap:.75rem;padding:.65rem .8rem;border-bottom:1px solid var(--border);text-align:left}
.fx-pos-result:hover,.fx-pos-result:focus{background:var(--accent);outline:none}
.fx-pos-result[disabled]{opacity:.5;cursor:not-allowed}
.fx-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem .75rem;padding:.6rem 0;border-bottom:1px dashed var(--border)}
.fx-qty{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:.5rem;overflow:hidden}
.fx-qty button{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center}
.fx-qty input{width:3.25rem;height:2rem;text-align:center;border-inline:1px solid var(--border);background:transparent;font-variant-numeric:tabular-nums}
.fx-total-row{display:flex;justify-content:space-between;align-items:baseline;font-variant-numeric:tabular-nums}
.fx-total-row.big{font-size:1.25rem;font-weight:700}

/* ---------- print ---------- */
@media print{.fx-noprint{display:none!important}}

/* ---------- misc ---------- */
.fx-code{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums}
.spark{width:100%;height:auto;display:block}
