:root,
[data-theme="flowya"]{
  /* FlowYa default theme tokens.
     Future tenant theming can override this same contract via [data-theme] or inline CSS variables. */
  --fy-color-primary:#24553E;
  --fy-color-primary-strong:#163829;
  --fy-color-primary-soft:#E4F1EA;

  --fy-color-accent:#F07B2D;
  --fy-color-accent-strong:#D9641F;
  --fy-color-accent-soft:#FFF1E7;

  --fy-color-success:#1F9D63;
  --fy-color-warning:#D97706;
  --fy-color-danger:#DC2626;

  --fy-color-bg:#F6F1E8;
  --fy-color-surface:#FFFFFF;
  --fy-color-surface-muted:#F3EDE2;

  --fy-color-border:#D9D4C7;
  --fy-color-border-strong:#9FB8A9;

  --fy-color-text:#0F172A;
  --fy-color-text-muted:#64748B;
  --fy-color-text-soft:#8A94A6;

  --fy-shadow-sm:0 8px 24px rgba(15,23,42,.08);
  --fy-shadow-md:0 12px 30px rgba(15,23,42,.10);
  --fy-shadow-soft:0 6px 18px rgba(15,23,42,.06);

  --fy-radius-sm:12px;
  --fy-radius:18px;
  --fy-radius-lg:22px;

  /* Backward-compatible aliases used by existing cockpit/front styles. */
  --fy-green:var(--fy-color-primary);
  --fy-green-700:var(--fy-color-primary-strong);
  --fy-orange:var(--fy-color-accent);
  --fy-orange-700:var(--fy-color-accent-strong);
  --fy-ink:var(--fy-color-text);
  --fy-muted:var(--fy-color-text-muted);
  --fy-line:var(--fy-color-border);
  --fy-surface:var(--fy-color-surface);
  --fy-bg:var(--fy-color-bg);
  --fy-bg-2:var(--fy-color-surface-muted);

  --fy-font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial;
  --fy-h1:clamp(32px,4vw,48px);--fy-h2:clamp(22px,2.4vw,30px);--fy-h3:18px;
  --fy-body:16px;--fy-small:14px;--fy-bold:700;--fy-semi:600;--fy-lh-tight:1.1;--fy-lh:1.5;
  --fy-4:4px;--fy-8:8px;--fy-12:12px;--fy-16:16px;--fy-20:20px;--fy-24:24px;--fy-32:32px;--fy-40:40px;--fy-48:48px;--fy-64:64px;
  --fy-shadow:var(--fy-shadow-sm);--fy-shadow-hover:var(--fy-shadow-md);
}
body{font-family:var(--fy-font);background:var(--fy-bg);color:var(--fy-ink)}
.fy-container{max-width:1180px;margin:0 auto;padding:0 var(--fy-20)}
.fy-section{padding:var(--fy-48) 0}.fy-grid{display:grid;gap:var(--fy-20)}.fy-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fy-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1024px){.fy-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.fy-container{padding:0 var(--fy-16)}.fy-section{padding:var(--fy-32) 0}.fy-grid-3,.fy-grid-2{grid-template-columns:1fr}}
.fy-card{background:var(--fy-surface);border:1px solid var(--fy-line);border-radius:var(--fy-radius-lg);box-shadow:var(--fy-shadow-soft);padding:var(--fy-20)}
.fy-card-title{font-size:var(--fy-h3);font-weight:var(--fy-semi);color:var(--fy-green);margin:0 0 var(--fy-8)}
.fy-card-text{font-size:var(--fy-body);line-height:var(--fy-lh);color:var(--fy-ink);margin:0}
.fy-card-muted{color:var(--fy-muted);font-size:var(--fy-small)}
.fy-card-click{transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.fy-card-click:hover{transform:translateY(-2px);box-shadow:var(--fy-shadow-hover)}
.fy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fy-8);padding:12px 18px;border-radius:999px;font-weight:var(--fy-semi);text-decoration:none;border:1px solid transparent;transition:transform .12s ease,filter .12s ease}.fy-btn:active{transform:translateY(1px)}
.fy-btn-primary{background:var(--fy-orange);color:#fff}.fy-btn-primary:hover,.fy-btn-primary:focus-visible{background:#e66c17;color:#fff;filter:none}
.fy-btn-secondary{background:transparent;border-color:var(--fy-green);color:var(--fy-green)}.fy-btn-secondary:hover{filter:brightness(.98)}
.fy-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:var(--fy-semi);background:rgba(240,123,45,.12);color:var(--fy-orange-700);border:1px solid rgba(240,123,45,.25)}
.fy-accordion{border:1px solid var(--fy-line);border-radius:var(--fy-radius);overflow:hidden;background:var(--fy-surface)}
.fy-accordion-item + .fy-accordion-item{border-top:1px solid var(--fy-line)}
.fy-accordion-btn{width:100%;text-align:left;padding:14px 16px;font-weight:var(--fy-semi);color:var(--fy-ink);background:transparent;border:none;cursor:pointer}
.fy-accordion-panel{padding:0 16px 14px;color:var(--fy-muted);line-height:var(--fy-lh)}

.fy-theme-card{background:linear-gradient(180deg,var(--fy-color-surface) 0%, color-mix(in srgb, var(--fy-color-surface) 78%, var(--fy-color-surface-muted)) 100%);border:1px solid var(--fy-color-border);border-radius:var(--fy-radius-lg);box-shadow:var(--fy-shadow-soft);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.fy-theme-card:hover{transform:translateY(-1px);box-shadow:var(--fy-shadow-md)}
.fy-theme-card-accent{background:linear-gradient(180deg,var(--fy-color-surface) 0%, color-mix(in srgb, var(--fy-color-primary-soft) 88%, white) 100%);border:2px solid var(--fy-color-primary);box-shadow:0 14px 32px rgba(36,85,62,.12), inset 0 1px 0 rgba(255,255,255,.75)}
.fy-theme-card-action{background:linear-gradient(180deg,var(--fy-color-surface) 0%, color-mix(in srgb, var(--fy-color-accent-soft) 84%, white) 100%);border:2px solid var(--fy-color-accent);box-shadow:0 14px 32px rgba(240,123,45,.14), inset 0 1px 0 rgba(255,255,255,.8)}
.fy-theme-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;border:1px solid var(--fy-color-border-strong);background:linear-gradient(180deg,var(--fy-color-surface) 0%, color-mix(in srgb, var(--fy-color-surface) 70%, var(--fy-color-primary-soft)) 100%);color:var(--fy-color-primary-strong);box-shadow:var(--fy-shadow-soft);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.fy-theme-chip:hover,.fy-theme-chip:focus-visible{transform:translateY(-1px);border-color:var(--fy-color-primary);box-shadow:var(--fy-shadow-sm)}
.fy-theme-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:999px;border:2px solid var(--fy-color-accent-strong);background:linear-gradient(180deg,var(--fy-color-accent) 0%, var(--fy-color-accent-strong) 100%);color:#fff;box-shadow:0 12px 28px rgba(240,123,45,.28);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease,border-color .12s ease}
.fy-theme-cta:hover,.fy-theme-cta:focus-visible{transform:translateY(-1px);background:linear-gradient(180deg,var(--fy-color-accent-strong) 0%, #c9571b 100%);border-color:#c9571b;color:#fff;box-shadow:0 16px 34px rgba(217,100,31,.34)}

/* Hover readability fix for orange CTAs */
.fy-btn-primary,
.fy-cta-top,
.contact-submit{
  color:#fff !important;
  text-shadow:0 1px 1px rgba(0,0,0,.24);
}
.fy-btn-primary:hover,
.fy-btn-primary:focus-visible,
.fy-cta-top:hover,
.fy-cta-top:focus-visible,
.contact-submit:hover,
.contact-submit:focus-visible{
  color:#fff !important;
  text-decoration:none !important;
  filter:none !important;
  background:#e66c17 !important;
  box-shadow:0 10px 24px rgba(230,108,23,.34) !important;
}

/* Ensure orange buttons remain readable on hover/visited/focus */
a.fy-btn-primary,
a.fy-cta-top,
a.contact-cta,
button.contact-submit{
  color:#fff !important;
}
a.fy-btn-primary:visited,
a.fy-cta-top:visited,
a.contact-cta:visited{
  color:#fff !important;
}
a.fy-btn-primary:hover,
a.fy-btn-primary:focus-visible,
a.fy-cta-top:hover,
a.fy-cta-top:focus-visible,
a.contact-cta:hover,
a.contact-cta:focus-visible,
button.contact-submit:hover,
button.contact-submit:focus-visible{
  color:#fff !important;
  text-decoration:none !important;
  background:#e66c17 !important;
  border-color:#e66c17 !important;
  box-shadow:0 10px 24px rgba(230,108,23,.34) !important;
}

/* FlowYa — pastille de sélection cochée bien remplie */
.fi-ta-table input.fi-checkbox-input[type="checkbox"],
.fi-ta-table input.fi-checkbox-input[type="radio"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  border-radius: 9999px !important;
  width: 1.15rem !important;
  height: 1.15rem !important;
  min-width: 1.15rem !important;
  min-height: 1.15rem !important;
  border: 2px solid #efb08a !important;
  background: #fff !important;
  box-shadow: none !important;
  position: relative !important;
}

.fi-ta-table input.fi-checkbox-input[type="checkbox"]:checked,
.fi-ta-table input.fi-checkbox-input[type="radio"]:checked {
  background: #f97316 !important;
  border-color: #f97316 !important;
  box-shadow: inset 0 0 0 9999px #f97316 !important;
}

.fi-ta-table input.fi-checkbox-input[type="checkbox"]:checked::after,
.fi-ta-table input.fi-checkbox-input[type="radio"]:checked::after {
  content: "" !important;
  position: absolute !important;
  inset: 2px !important;
  border-radius: 9999px !important;
  background: #f97316 !important;
}

.fi-ta-table tr.fi-ta-record-selected td:first-child,
.fi-ta-table tr[data-selected="true"] td:first-child {
  position: relative;
}

.fi-ta-table tr.fi-ta-record-selected td:first-child::before,
.fi-ta-table tr[data-selected="true"] td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #f97316;
  border-radius: 9999px;
}
