/* fminter.net — theme on top of Bootstrap 5 */

@font-face { font-family: "Manrope"; font-style: normal; font-display: swap; font-weight: 200 800;
  src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-display: swap; font-weight: 200 800;
  src: url("../fonts/manrope-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Sora"; font-style: normal; font-display: swap; font-weight: 100 800;
  src: url("../fonts/sora-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Sora"; font-style: normal; font-display: swap; font-weight: 100 800;
  src: url("../fonts/sora-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --fm-background: #fdfaf6;
  --fm-foreground: #221812;
  --fm-card: #ffffff;
  --fm-primary: #f3680f;
  --fm-primary-dark: #d84b00;
  --fm-primary-soft: #ffe9d4;
  --fm-ink: #291c15;
  --fm-ink-foreground: #f9f4ee;
  --fm-secondary: #f5ede4;
  --fm-muted: #f4ede6;
  --fm-muted-foreground: #6d6059;
  --fm-accent: #fae8d7;
  --fm-accent-foreground: #462312;
  --fm-success: #319751;
  --fm-destructive: #de2024;
  --fm-border: #e5dcd4;
  --fm-input: #ded6cd;
  --fm-technical: #096058;
  --fm-technical-soft: #e1f3f0;
  --fm-map-france: #a0dfd6;
  --fm-map-belgium: #f3ad66;
  --fm-map-switzerland: #e3928b;
  --fm-gradient-warm: linear-gradient(135deg, #fe7802, #e5481e);
  --fm-shadow-warm: 0 20px 40px -18px rgba(243, 104, 15, .45);
  --fm-radius: .75rem;
  --fm-font-display: "Sora", ui-sans-serif, system-ui, sans-serif;
  --fm-font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;

  /* Bootstrap mapping */
  --bs-body-bg: var(--fm-background);
  --bs-body-color: var(--fm-foreground);
  --bs-body-font-family: var(--fm-font-sans);
  --bs-font-sans-serif: var(--fm-font-sans);
  --bs-primary: #f3680f;
  --bs-primary-rgb: 243, 104, 15;
  --bs-success: #319751;
  --bs-success-rgb: 49, 151, 81;
  --bs-danger: #de2024;
  --bs-danger-rgb: 222, 32, 36;
  --bs-warning-rgb: 243, 173, 102;
  --bs-secondary-color: var(--fm-muted-foreground);
  --bs-secondary-bg: var(--fm-secondary);
  --bs-tertiary-bg: var(--fm-muted);
  --bs-border-color: var(--fm-border);
  --bs-border-radius: var(--fm-radius);
  --bs-border-radius-sm: calc(var(--fm-radius) - 4px);
  --bs-border-radius-lg: calc(var(--fm-radius) + 4px);
  --bs-link-color: var(--fm-primary);
  --bs-link-color-rgb: 243, 104, 15;
  --bs-link-hover-color: var(--fm-primary-dark);
  --bs-link-hover-color-rgb: 216, 75, 0;
  --bs-focus-ring-color: rgba(243, 104, 15, .25);
  --bs-emphasis-color: var(--fm-foreground);
  --bs-heading-color: var(--fm-foreground);
}

body { font-family: var(--fm-font-sans); background: var(--fm-background); color: var(--fm-foreground); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .font-display { font-family: var(--fm-font-display); letter-spacing: -.02em; }
.page-home h1, .page-home h2, .page-home h3 { letter-spacing: 0; }
a { text-underline-offset: 3px; }
::selection { background: var(--fm-primary-soft); }

/* Layout */
.container-fm { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1.25rem; }
.container-narrow { max-width: 48rem; }
.section { padding-block: 4rem; }
.border-fm { border-color: var(--fm-border) !important; }

/* Colour helpers */
.text-technical { color: var(--fm-technical) !important; }
.text-technical-40 { color: rgba(9, 96, 88, .4) !important; }
.text-muted-fm { color: var(--fm-muted-foreground) !important; }
.text-ink-70 { color: rgba(249, 244, 238, .7) !important; }
.text-ink-60 { color: rgba(249, 244, 238, .6) !important; }
.bg-technical-soft { background-color: var(--fm-technical-soft) !important; }
.bg-ink { background-color: var(--fm-ink) !important; color: var(--fm-ink-foreground); }
.bg-warm { background-image: var(--fm-gradient-warm); color: #fff; }
.bg-secondary-fm { background-color: rgba(245, 237, 228, .6) !important; }
.bg-primary-soft { background-color: var(--fm-primary-soft) !important; }
.bg-card { background-color: var(--fm-card) !important; }
.shadow-warm { box-shadow: var(--fm-shadow-warm); }

.eyebrow { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 0; }
.eyebrow-line { display: inline-block; width: 2rem; height: 1px; background: currentColor; }
.lead-fm { font-size: 1rem; line-height: 1.625; color: var(--fm-muted-foreground); }
.small-relaxed { font-size: .875rem; line-height: 1.625; }

/* Typography scale (mobile → md) */
.title-hero { font-size: 1.875rem; font-weight: 800; line-height: 1.25; }
.subtitle-hero { font-size: 1.5rem; font-weight: 600; line-height: 1.25; }
.title-section { font-size: 1.875rem; font-weight: 700; line-height: 1.2; }
.title-page { font-size: 2.25rem; font-weight: 800; line-height: 1.1; }
@media (min-width: 768px) {
  .title-hero { font-size: 3rem; }
  .subtitle-hero { font-size: 2.25rem; }
  .title-section { font-size: 2.25rem; }
  .title-page { font-size: 3rem; }
}

/* Header */
.site-header { position: sticky; top: 0; z-index: 1030; background: rgba(253, 250, 246, .85); border-bottom: 1px solid rgba(229, 220, 212, .6);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.site-header .inner { height: 4rem; }
.brand { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--fm-font-display); font-weight: 700; font-size: 1.125rem; color: var(--fm-foreground); text-decoration: none; }
.brand:hover { color: var(--fm-foreground); }
.brand-mark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: var(--fm-radius); background-image: var(--fm-gradient-warm); color: #fff; font-size: 1rem; }
.brand .tld { color: var(--fm-primary); }
.nav-fm a { color: var(--fm-muted-foreground); text-decoration: none; font-size: .875rem; font-weight: 500; }
.nav-fm a:hover, .nav-fm a.active { color: var(--fm-foreground); }
.lang-switch { display: inline-flex; border: 1px solid var(--fm-border); border-radius: 999px; padding: 2px; background: var(--fm-card); }
.lang-switch a { font-size: .75rem; font-weight: 700; padding: .2rem .55rem; border-radius: 999px; color: var(--fm-muted-foreground); text-decoration: none; line-height: 1.2; }
.lang-switch a.active { background: var(--fm-ink); color: var(--fm-ink-foreground); }
.mobile-menu { border-top: 1px solid var(--fm-border); background: var(--fm-background); }
.mobile-menu a.mobile-link { display: block; padding: .75rem 0; color: var(--fm-foreground); text-decoration: none; font-weight: 600; border-bottom: 1px solid var(--fm-border); }

/* Buttons */
.btn { --bs-btn-font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; white-space: nowrap; }
.btn-hero { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; --bs-btn-border-width: 0;
  background-image: var(--fm-gradient-warm); box-shadow: var(--fm-shadow-warm); border-radius: 999px; padding: .5rem 1rem; transition: filter .15s; }
.btn-hero:hover, .btn-hero:focus-visible { filter: brightness(1.05); }
.btn-hero:disabled { opacity: .6; }
.btn-xl { height: 3rem; padding-inline: 1.75rem; font-size: 1rem; }
.btn-ink { --bs-btn-bg: var(--fm-ink); --bs-btn-color: var(--fm-ink-foreground); --bs-btn-hover-bg: #3a2a21; --bs-btn-hover-color: var(--fm-ink-foreground);
  --bs-btn-active-bg: #3a2a21; --bs-btn-active-color: var(--fm-ink-foreground); --bs-btn-border-width: 0; }
.btn-ink.btn-sm { height: 2rem; font-size: .75rem; padding-inline: 1rem; border-radius: calc(var(--fm-radius) - 2px); }
.btn-soft { --bs-btn-bg: var(--fm-background); --bs-btn-color: var(--fm-foreground); --bs-btn-border-color: var(--fm-input);
  --bs-btn-hover-bg: var(--fm-accent); --bs-btn-hover-color: var(--fm-accent-foreground); --bs-btn-hover-border-color: var(--fm-input);
  --bs-btn-active-bg: var(--fm-accent); --bs-btn-active-border-color: var(--fm-input); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.btn-ghost { --bs-btn-color: var(--fm-foreground); --bs-btn-hover-bg: var(--fm-accent); --bs-btn-hover-color: var(--fm-accent-foreground); --bs-btn-border-width: 0; }
.btn-primary { --bs-btn-bg: var(--fm-primary); --bs-btn-border-color: var(--fm-primary); --bs-btn-hover-bg: var(--fm-primary-dark);
  --bs-btn-hover-border-color: var(--fm-primary-dark); --bs-btn-active-bg: var(--fm-primary-dark); --bs-btn-active-border-color: var(--fm-primary-dark);
  --bs-btn-disabled-bg: var(--fm-primary); --bs-btn-disabled-border-color: var(--fm-primary); }
.btn-outline-primary { --bs-btn-color: var(--fm-primary); --bs-btn-border-color: var(--fm-primary); --bs-btn-hover-bg: var(--fm-primary); --bs-btn-hover-border-color: var(--fm-primary); --bs-btn-active-bg: var(--fm-primary-dark); }
.btn .bi-arrow-right { transition: transform .15s; }
.btn:hover .bi-arrow-right, .entry-card:hover .bi-arrow-right { transform: translateX(3px); }

/* Hero */
.fm-hero { background-color: var(--fm-technical-soft); border-bottom: 1px solid var(--fm-border); position: relative; overflow: hidden; }
.fm-hero .hero-inner { position: relative; padding-block: 2rem; }
.fm-hero .hero-copy { position: relative; z-index: 2; max-width: 36rem; }
.fm-hero .hero-map { height: 220px; margin-top: .75rem; }
.fm-hero .hero-map-caption { margin-top: .75rem; text-align: center; font-size: .875rem; font-weight: 600; color: var(--fm-technical); }
@media (min-width: 768px) {
  .fm-hero .hero-inner { padding-block: 4rem; }
  .fm-hero .hero-map { position: absolute; top: 1.25rem; bottom: 1.25rem; right: 0; width: 48%; height: auto; margin: 0; }
  .fm-hero .hero-map-caption { position: absolute; bottom: 1.75rem; right: 0; width: 48%; margin: 0; }
}
.territory-map { width: 100%; height: 100%; filter: drop-shadow(0 12px 16px rgba(9, 96, 88, .1)); }

/* Entry cards */
.entry-card { display: flex; flex-direction: column; justify-content: space-between; height: 100%; border-radius: var(--fm-radius); padding: 1.5rem;
  text-decoration: none; transition: transform .15s; color: inherit; }
.entry-card:hover { transform: translateY(-4px); color: inherit; }
.entry-card.dark { background: var(--fm-ink); color: var(--fm-ink-foreground); }
.entry-card.dark h2, .bg-ink h2 { color: var(--fm-ink-foreground); }
.entry-card.light { background: var(--fm-card); border: 1px solid var(--fm-border); }
.entry-card .icon-box { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: var(--fm-radius); background-image: var(--fm-gradient-warm); color: #fff; font-size: 1.15rem; }
.entry-card .cta { margin-top: 2rem; display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--fm-primary); }
@media (min-width: 768px) { .entry-card { padding: 1.75rem; } }

/* Feature columns */
.feature-col { border-top: 2px solid rgba(9, 96, 88, .3); padding-top: 1.25rem; }
.feature-col .bi { font-size: 1.5rem; color: var(--fm-technical); }
.trade { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--fm-muted-foreground); }
.trade .bi { color: var(--fm-technical); }

/* Preventive / curative */
.approach { border-top: 2px solid var(--fm-technical); padding-top: 1.5rem; }
.approach.curative { border-top-color: var(--fm-primary); }
.approach .approach-icon { font-size: 1.75rem; }
.check-list { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .75rem; }
.check-list li { display: flex; align-items: flex-start; gap: .75rem; font-size: .875rem; }
.check-list li .bi { margin-top: .1rem; flex-shrink: 0; }

/* CRM mock */
.crm-card { overflow: hidden; border-radius: var(--fm-radius); border: 1px solid var(--fm-border); background: var(--fm-card); color: var(--fm-foreground);
  box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.crm-card .crm-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid var(--fm-border); padding: 1rem 1.25rem; }
.crm-card .crm-body { padding: 1.25rem; }
@media (min-width: 576px) { .crm-card .crm-body { padding: 1.5rem; } }
.crm-tags { display: flex; flex-wrap: wrap; gap: 1rem; border-block: 1px solid var(--fm-border); padding-block: .75rem; font-size: .75rem; margin-top: 1rem; }
.ai-suggestion { border-left: 2px solid var(--fm-technical); padding-left: 1rem; margin-top: 1.25rem; }

/* Steps */
.step-num { font-family: var(--fm-font-display); font-size: 1.875rem; font-weight: 700; color: rgba(9, 96, 88, .4); }

/* Cards, forms */
.card-fm { background: var(--fm-card); border: 1px solid var(--fm-border); border-radius: calc(var(--fm-radius) + 12px); }
.card-fm.pad { padding: 1.5rem; }
@media (min-width: 768px) { .card-fm.pad { padding: 2rem; } }
.card-flat { background: var(--fm-card); border: 1px solid var(--fm-border); border-radius: var(--fm-radius); }

.form-label { font-size: .875rem; font-weight: 500; margin-bottom: .375rem; }
.form-control, .form-select { border-color: var(--fm-input); border-radius: calc(var(--fm-radius) - 2px); background-color: transparent; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
.form-control:focus, .form-select:focus { border-color: var(--fm-primary); box-shadow: 0 0 0 .2rem rgba(243, 104, 15, .18); background-color: #fff; }
.form-check-input:checked { background-color: var(--fm-primary); border-color: var(--fm-primary); }
.form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(243, 104, 15, .18); border-color: var(--fm-primary); }
/* Validation: red border only, message in a reserved slot under the field (no layout jump) */
.form-field, .form-check { position: relative; }
.form-field .invalid-feedback, .form-check .invalid-feedback {
  position: absolute; left: 0; top: 100%; margin-top: .25rem; max-width: 100%;
  font-size: .75rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: var(--fm-destructive); animation: field-msg-in .15s ease-out; }
.form-check .invalid-feedback { left: 1.5rem; max-width: calc(100% - 1.5rem); }
.invalid-feedback:empty { display: none !important; }
.form-control.is-invalid, .form-select.is-invalid, .was-validated .form-control:invalid {
  border-color: var(--fm-destructive); background-image: none; padding-right: .75rem; }
.form-control.is-invalid:focus, .form-select.is-invalid:focus { border-color: var(--fm-destructive); box-shadow: 0 0 0 .2rem rgba(222, 32, 36, .12); }
.form-control.is-valid, .was-validated .form-control:valid { border-color: var(--fm-input); background-image: none; padding-right: .75rem; }
.form-check-input.is-invalid { border-color: var(--fm-destructive); }
.form-check-input.is-invalid ~ .form-check-label { color: var(--fm-muted-foreground); }
.form-text.field-msg { font-size: .75rem; margin-top: .25rem; min-height: 1.2em; transition: color .15s; }
.form-text.field-msg.is-error { color: var(--fm-destructive); }
@keyframes field-msg-in { from { opacity: 0; transform: translateY(-2px); } to { opacity: 1; transform: none; } }
.divider-or { display: flex; align-items: center; gap: .75rem; font-size: .75rem; color: var(--fm-muted-foreground); margin-block: 1.25rem; }
.divider-or::before, .divider-or::after { content: ""; height: 1px; flex: 1; background: var(--fm-border); }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Tabs (segmented) */
.fm-tabs { display: inline-flex; gap: .25rem; padding: .25rem; border-radius: var(--fm-radius); background: var(--fm-muted); flex-wrap: wrap; }
.fm-tabs a { padding: .4rem .9rem; border-radius: calc(var(--fm-radius) - 2px); font-size: .875rem; font-weight: 500; color: var(--fm-muted-foreground); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.fm-tabs a.active { background: var(--fm-card); color: var(--fm-foreground); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.fm-tabs .count { font-size: .7rem; background: var(--fm-primary); color: #fff; border-radius: 999px; padding: 0 .4rem; line-height: 1.3rem; min-width: 1.3rem; text-align: center; }

/* Badges */
.badge { font-weight: 600; border-radius: 999px; padding: .35em .7em; }
.badge-soft { background: var(--fm-secondary); color: var(--fm-foreground); }
.badge-technical { background: var(--fm-technical-soft); color: var(--fm-technical); }
.badge-primary-soft { background: var(--fm-primary-soft); color: var(--fm-accent-foreground); }

/* Account: documents */
.doc-tile { border: 1px solid var(--fm-border); border-radius: var(--fm-radius); padding: 1rem; background: var(--fm-card); height: 100%; display: flex; flex-direction: column; }
.doc-tile.done { border-color: rgba(49, 151, 81, .5); background: rgba(49, 151, 81, .05); }
.doc-file { display: flex; align-items: center; gap: .5rem; font-size: .75rem; padding: .35rem .5rem; border-radius: calc(var(--fm-radius) - 4px); background: var(--fm-muted); margin-bottom: .35rem; }
.doc-file .name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-file button, .doc-file a { border: 0; background: none; padding: 0 .15rem; color: var(--fm-muted-foreground); }
.doc-file button:hover, .doc-file a:hover { color: var(--fm-foreground); }
.upload-label { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 600; color: var(--fm-primary); cursor: pointer; padding-top: .5rem; }
.upload-label input { display: none; }
.company-result { width: 100%; text-align: left; display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid var(--fm-border); border-radius: var(--fm-radius); background: var(--fm-card); }
.company-result:hover { border-color: var(--fm-primary); background: var(--fm-primary-soft); }
.company-verified { display: flex; gap: .75rem; padding: 1rem; border-radius: var(--fm-radius); background: rgba(49, 151, 81, .07); border: 1px solid rgba(49, 151, 81, .35); }
.intervention-col { background: var(--fm-muted); border-radius: var(--fm-radius); padding: 1rem; height: 100%; }
.intervention-item { background: var(--fm-card); border: 1px solid var(--fm-border); border-radius: calc(var(--fm-radius) - 2px); padding: .85rem; margin-top: .75rem; font-size: .875rem; }

/* Admin */
.admin-row { background: var(--fm-card); border: 1px solid var(--fm-border); border-radius: var(--fm-radius); padding: 1rem 1.25rem; }
.admin-row.handled { opacity: .65; }
.admin-row + .admin-row { margin-top: .75rem; }
.table-fm { --bs-table-bg: transparent; font-size: .875rem; }
.reply-item { margin-top: .6rem; font-size: .8rem; }
.reply-item summary { cursor: pointer; color: var(--fm-foreground); list-style: none; }
.reply-item summary::-webkit-details-marker { display: none; }
.reply-item .reply-body { white-space: pre-line; margin-top: .4rem; padding: .6rem .8rem; border-radius: calc(var(--fm-radius) - 4px); background: var(--fm-muted); }
.reply-quote { border-left: 3px solid var(--fm-border); padding: .25rem 0 .25rem .9rem; color: var(--fm-muted-foreground); }
.reply-quote [data-reply-original] { white-space: pre-line; }

/* Modal */
.modal-content { border: 1px solid var(--fm-border); border-radius: calc(var(--fm-radius) + 8px); background: var(--fm-card); box-shadow: 0 25px 50px -12px rgba(41, 28, 21, .25); }
.modal-header, .modal-footer { border-color: var(--fm-border); padding-inline: 1.5rem; }
.modal-body { padding: 1.5rem; }
.modal-backdrop.show { opacity: .35; }

/* Legal pages */
.prose-fm { max-width: 48rem; }
.prose-fm h2 { font-size: 1.25rem; font-weight: 700; margin-top: 2.25rem; margin-bottom: .75rem; }
.prose-fm h3 { font-size: 1rem; font-weight: 700; margin-top: 1.5rem; }
.prose-fm p, .prose-fm li { color: #3d302a; line-height: 1.7; font-size: .95rem; }
.prose-fm dl { display: grid; grid-template-columns: minmax(9rem, max-content) 1fr; gap: .4rem 1.25rem; font-size: .95rem; }
.prose-fm dt { font-weight: 600; }
.prose-fm dd { margin: 0; color: #3d302a; }
@media (max-width: 575px) { .prose-fm dl { grid-template-columns: 1fr; } .prose-fm dd { margin-bottom: .5rem; } }

/* Footer */
.site-footer { border-top: 1px solid var(--fm-border); background: rgba(245, 237, 228, .5); font-size: .875rem; color: var(--fm-muted-foreground); }
.site-footer a { color: var(--fm-muted-foreground); text-decoration: none; }
.site-footer a:hover { color: var(--fm-foreground); }

/* Toasts */
.toast-stack { position: fixed; bottom: 1rem; right: 1rem; z-index: 1090; display: grid; gap: .5rem; max-width: min(24rem, calc(100vw - 2rem)); }
.toast-fm { display: flex; gap: .65rem; align-items: flex-start; background: var(--fm-card); border: 1px solid var(--fm-border); border-radius: var(--fm-radius);
  padding: .85rem 1rem; box-shadow: 0 10px 25px -10px rgba(0,0,0,.25); font-size: .875rem; animation: toast-in .2s ease-out; }
.toast-fm .bi { font-size: 1.05rem; margin-top: .05rem; }
.toast-fm.success .bi { color: var(--fm-success); }
.toast-fm.danger .bi { color: var(--fm-destructive); }
.toast-fm.warning .bi { color: var(--fm-primary); }
.toast-fm.info .bi { color: var(--fm-technical); }
.toast-fm .btn-close { margin-left: auto; font-size: .65rem; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
