/* ===== /assets/css/ds/dativo-design-tokens.css ===== */
:root {
    --emerald-900: #193828;
    --emerald-800: #264C38;   
    --emerald-700: #37664D;   
    --emerald-600: #44755B;
    --emerald-500: #4E7F65;   
    --emerald-400: #659E80;
    --emerald-300: #84BD9F;
    --emerald-200: #A7D6BD;   
    --emerald-100: #CAEBD9;
    --emerald-50:  #E4F7ED;
    --emerald:  #4E7F65;   
    --primary:        var(--emerald);       
    --primary-hover:  var(--emerald-700);   
    --primary-active: var(--emerald-800);   
    --forest:   #1F3D33;   
    --mint:     #B7DDD2;   
    --tender:   #157F77;   
    --dew:      #DCF1E0;   
    --cream:    #FFF8F0;   
    --terra:    #E37222;   
    --white:    #FFFFFF;   
    --gray-50:  #F9FAFB;
    --gray-100: #F3F4F6;
    --gray-200: #E5E7EB;
    --gray-300: #D1D5DB;
    --gray-400: #9CA3AF;
    --gray-500: #6B7280;
    --gray-600: #4B5563;
    --gray-700: #374151;
    --gray-800: #1F2937;
    --gray-900: #111827;
    --success:  #059669;
    --error:    #B91C1C;
    --warning:  #D97706;
    --info:     #2563EB;
    --success-soft: #D1FAE5;
    --error-soft:   #FEE2E2;
    --warning-soft: #FED7AA;
    --info-soft:    #DBEAFE;
    --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
    --font-body:    'DM Sans', system-ui, sans-serif;
    --font-accent:  'Fraunces', Georgia, serif;
    --font-mono:    'JetBrains Mono', 'Fira Code', monospace;
    --text-xs:   0.75rem;   
    --text-sm:   0.875rem;  
    --text-base: 1rem;      
    --text-lg:   1.125rem;  
    --text-xl:   1.25rem;   
    --text-2xl:  1.5rem;    
    --text-3xl:  1.875rem;  
    --text-4xl:  2.25rem;   
    --text-5xl:  3rem;      
    --space-1:  0.25rem;    
    --space-2:  0.5rem;     
    --space-3:  0.75rem;    
    --space-4:  1rem;       
    --space-6:  1.5rem;     
    --space-8:  2rem;       
    --space-12: 3rem;       
    --space-16: 4rem;       
    --space-24: 6rem;       
    --radius-sm:   6px;     
    --radius-md:   10px;    
    --radius-lg:   16px;    
    --radius-xl:   24px;    
    --radius-full: 9999px;  
    --shadow-sm: 0 1px 2px  rgba(26, 60, 52, 0.05);
    --shadow-md: 0 4px 12px rgba(26, 60, 52, 0.08);
    --shadow-lg: 0 8px 30px rgba(26, 60, 52, 0.12);
    --shadow-xl: 0 16px 48px rgba(26, 60, 52, 0.16);
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 400ms ease;
    --max-width:   1200px;  
    --max-text:    65ch;    
    --nav-height:  64px;
    --header-height: 80px;
}

/* ===== /assets/css/ds/dativo.css ===== */
:root {
  --color-forest: #1F3D33;   
  --color-emerald: #4E7F65;  
  --color-tender: #157F77;
  --color-dew: #DCF1E0;
  --color-mint: #B7DDD2;
  --color-cream: #FFF8F0;
  --color-terra: #E37222;
  --color-emerald-900: #193828;
  --color-emerald-800: #264C38;  
  --color-emerald-700: #37664D;  
  --color-emerald-600: #44755B;
  --color-emerald-500: #4E7F65;  
  --color-emerald-400: #659E80;
  --color-emerald-300: #84BD9F;
  --color-emerald-200: #A7D6BD;  
  --color-emerald-100: #CAEBD9;
  --color-emerald-50:  #E4F7ED;
  --color-primary:        var(--color-emerald-500);
  --color-primary-hover:  var(--color-emerald-700);
  --color-primary-active: var(--color-emerald-800);
  --color-success: #059669;
  --color-warning: #D97706;
  --color-error: #B91C1C;
  --color-info: #2563EB;
  --color-gray-900: #111827;
  --color-gray-800: #1F2937;
  --color-gray-700: #374151;
  --color-gray-600: #4B5563;
  --color-gray-500: #6B7280;
  --color-gray-400: #9CA3AF;
  --color-gray-300: #D1D5DB;
  --color-gray-200: #E5E7EB;
  --color-gray-100: #F3F4F6;
  --color-gray-50: #F9FAFB;
  --color-white: #FFFFFF;
  --bg-primary: var(--color-white);
  --bg-card: var(--color-white);
  --bg-section-alt: var(--color-gray-50);
  --bg-badge: var(--color-dew);
  --text-primary: var(--color-forest);
  --text-secondary: var(--color-gray-700);
  --text-muted: var(--color-gray-500);
  --btn-primary: var(--color-primary);
  --btn-primary-hover: var(--color-primary-hover);
  --btn-secondary: var(--color-terra);
  --border-default: var(--color-gray-300);
  --border-light: #ECE3D8;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 100px;
  --shadow-sm: 0 1px 2px rgba(26, 60, 52, 0.05);
  --shadow-card: 0 1px 3px rgba(26, 60, 52, 0.06), 0 4px 12px rgba(26, 60, 52, 0.04);
  --shadow-card-hover: 0 4px 16px rgba(26, 60, 52, 0.08), 0 8px 24px rgba(26, 60, 52, 0.06);
  --shadow-md: 0 4px 12px rgba(26, 60, 52, 0.08);
  --shadow-lg: 0 8px 30px rgba(26, 60, 52, 0.12);
  --shadow-xl: 0 16px 48px rgba(26, 60, 52, 0.16);
  --shadow-glow-emerald: 0 0 20px rgba(45, 122, 95, 0.35), 0 0 40px rgba(45, 122, 95, 0.15);
  --shadow-glow-terra: 0 0 20px rgba(232, 136, 79, 0.35), 0 0 40px rgba(232, 136, 79, 0.15);
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-30: 120px;
  --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --font-accent:  'Fraunces', Georgia, serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  1.875rem;
  --text-4xl:  2.25rem;
  --text-5xl:  3rem;
  --container-max: 1200px;
  --grid-gutter: 24px;
  --nav-height: 64px;
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease;
  --transition-spring: 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
  --forest:    var(--color-forest);
  --emerald:   var(--color-emerald);
  --primary:        var(--color-primary);
  --emerald-hover:  var(--color-emerald-700);
  --emerald-active: var(--color-emerald-800);
  --emerald-900: var(--color-emerald-900);
  --emerald-800: var(--color-emerald-800);
  --emerald-700: var(--color-emerald-700);
  --emerald-600: var(--color-emerald-600);
  --emerald-500: var(--color-emerald-500);
  --emerald-400: var(--color-emerald-400);
  --emerald-300: var(--color-emerald-300);
  --emerald-200: var(--color-emerald-200);
  --emerald-100: var(--color-emerald-100);
  --emerald-50:  var(--color-emerald-50);
  --mint:      var(--color-mint);
  --tender:    var(--color-tender);
  --dew:       var(--color-dew);
  --terra:     var(--color-terra);
  --white:     var(--color-white);
  --gray-50:   var(--color-gray-50);
  --gray-100:  var(--color-gray-100);
  --gray-200:  var(--color-gray-200);
  --gray-300:  var(--color-gray-300);
  --gray-400:  var(--color-gray-400);
  --gray-500:  var(--color-gray-500);
  --gray-600:  var(--color-gray-600);
  --gray-700:  var(--color-gray-700);
  --gray-800:  var(--color-gray-800);
  --gray-900:  var(--color-gray-900);
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}
body {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--color-forest);
  background-color: var(--bg-primary);
  min-height: 100vh;
}
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: var(--color-emerald);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  font-weight: 500;
  transition: color 0.15s, text-decoration-thickness 0.15s;
}
a:hover {
  color: var(--color-forest);
  text-decoration-thickness: 2px;
}
a:visited { color: var(--color-tender); }
a:focus-visible {
  outline: 3px solid var(--color-forest);
  outline-offset: 2px;
  border-radius: 2px;
}
ul,
ol {
  list-style: none;
}
button {
  cursor: pointer;
  font-family: inherit;
  border: none;
  background: none;
}
input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
}
table {
  border-collapse: collapse;
  width: 100%;
}
hr {
  border: none;
  border-top: 1px solid var(--border-light);
  margin: var(--space-8) 0;
}
::selection {
  background-color: var(--color-dew);
  color: var(--color-forest);
}
:focus-visible {
  outline: 3px solid var(--color-forest);
  outline-offset: 2px;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Bricolage Grotesque', 'DM Sans', sans-serif;
  color: var(--color-forest);
  margin-bottom: 0.5em;
  letter-spacing: -0.01em;
}
h1, .h1 {
  font-size: 3rem;        
  font-weight: 800;
  line-height: 1.1;
}
h2, .h2 {
  font-size: 2.25rem;     
  font-weight: 700;
  line-height: 1.2;
}
h3, .h3 {
  font-size: 1.5rem;      
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-forest);
}
h4, .h4 {
  font-size: 1.25rem;     
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-emerald);
}
h5, .h5 {
  font-size: 1.125rem;    
  font-weight: 600;
  line-height: 1.4;
}
h6, .h6 {
  font-size: 1rem;        
  font-weight: 600;
  line-height: 1.5;
}
p {
  margin-bottom: 1em;
}
.text-body {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--color-forest);
}
.text-small {
  font-size: 0.875rem;    
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-gray-700);
}
.text-caption {
  font-size: 0.75rem;     
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-gray-500);
}
.text-lead {
  font-size: 1.25rem;     
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-secondary);
}
.text-accent,
blockquote {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.25rem;     
  font-weight: 400;
  font-style: italic;
  color: var(--color-terra);
  line-height: 1.6;
}
blockquote {
  padding-left: var(--space-6);
  border-left: 3px solid var(--color-terra);
  margin: var(--space-8) 0;
}
code,
pre,
.text-code {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
}
code {
  font-size: 0.875em;
  font-weight: 400;
  background-color: var(--color-dew);
  color: var(--color-emerald);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
}
pre {
  background-color: var(--color-forest);
  color: var(--color-dew);
  padding: var(--space-6);
  border-radius: var(--radius-md);
  overflow-x: auto;
  margin: var(--space-6) 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
}
pre code {
  background: none;
  color: inherit;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
}
.list-styled {
  padding-left: var(--space-6);
  margin-bottom: 1em;
}
.list-styled li {
  position: relative;
  padding-left: var(--space-6);
  margin-bottom: var(--space-2);
}
.list-styled li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-emerald);
}
.divider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-10) 0;
}
.divider::before,
.divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background-color: var(--border-light);
}
strong, b {
  font-weight: 600;
}
em, i {
  font-style: italic;
}
mark {
  background-color: var(--color-dew);
  color: var(--color-forest);
  padding: 1px 4px;
  border-radius: 3px;
}
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-6);
  padding-right: var(--space-6);
}
.container-sm {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-6);
  padding-right: var(--space-6);
}
.container-lg {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-6);
  padding-right: var(--space-6);
}
.container-fluid {
  width: 100%;
  padding-left: var(--space-6);
  padding-right: var(--space-6);
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: calc(var(--grid-gutter) / -2);
  margin-right: calc(var(--grid-gutter) / -2);
}
.row > * {
  padding-left: calc(var(--grid-gutter) / 2);
  padding-right: calc(var(--grid-gutter) / 2);
}
.col    { flex: 1 0 0%; }
.col-auto { flex: 0 0 auto; width: auto; }
.col-1  { flex: 0 0 auto; width: 8.333333%; }
.col-2  { flex: 0 0 auto; width: 16.666667%; }
.col-3  { flex: 0 0 auto; width: 25%; }
.col-4  { flex: 0 0 auto; width: 33.333333%; }
.col-5  { flex: 0 0 auto; width: 41.666667%; }
.col-6  { flex: 0 0 auto; width: 50%; }
.col-7  { flex: 0 0 auto; width: 58.333333%; }
.col-8  { flex: 0 0 auto; width: 66.666667%; }
.col-9  { flex: 0 0 auto; width: 75%; }
.col-10 { flex: 0 0 auto; width: 83.333333%; }
.col-11 { flex: 0 0 auto; width: 91.666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }
.section {
  padding-top: var(--space-20);
  padding-bottom: var(--space-20);
}
.section--cream {
  background-color: var(--color-gray-50);
}
.section--dew {
  background-color: var(--color-dew);
}
.section-sm {
  padding-top: var(--space-12);
  padding-bottom: var(--space-12);
}
.section-lg {
  padding-top: var(--space-30);
  padding-bottom: var(--space-30);
}
.d-none          { display: none !important; }
.d-block         { display: block !important; }
.d-inline        { display: inline !important; }
.d-inline-block  { display: inline-block !important; }
.d-flex          { display: flex !important; }
.d-inline-flex   { display: inline-flex !important; }
.d-grid          { display: grid !important; }
.flex-row         { flex-direction: row; }
.flex-column      { flex-direction: column; }
.flex-wrap        { flex-wrap: wrap; }
.flex-nowrap      { flex-wrap: nowrap; }
.flex-1           { flex: 1; }
.flex-shrink-0    { flex-shrink: 0; }
.flex-grow-1      { flex-grow: 1; }
.justify-start    { justify-content: flex-start; }
.justify-center,
.justify-content-center { justify-content: center; }
.justify-end      { justify-content: flex-end; }
.justify-between  { justify-content: space-between; }
.justify-around   { justify-content: space-around; }
.justify-evenly   { justify-content: space-evenly; }
.align-start      { align-items: flex-start; }
.align-center     { align-items: center; }
.align-end        { align-items: flex-end; }
.align-stretch    { align-items: stretch; }
.align-baseline   { align-items: baseline; }
.align-self-start   { align-self: flex-start; }
.align-self-center  { align-self: center; }
.align-self-end     { align-self: flex-end; }
.gap-1  { gap: var(--space-1); }
.gap-2  { gap: var(--space-2); }
.gap-3  { gap: var(--space-3); }
.gap-4  { gap: var(--space-4); }
.gap-5  { gap: var(--space-5); }
.gap-6  { gap: var(--space-6); }
.gap-8  { gap: var(--space-8); }
.gap-10 { gap: var(--space-10); }
.gap-12 { gap: var(--space-12); }
.text-left    { text-align: left; }
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-decoration-none { text-decoration: none !important; }
.text-forest   { color: var(--color-forest) !important; }
.text-emerald  { color: var(--color-emerald) !important; }
.text-tender   { color: var(--color-tender) !important; }
.text-terra    { color: var(--color-terra) !important; }
.text-white    { color: var(--color-white) !important; }
.text-muted    { color: var(--text-muted) !important; }
.text-success  { color: var(--color-success) !important; }
.text-warning  { color: var(--color-warning) !important; }
.text-error    { color: var(--color-error) !important; }
.text-info     { color: var(--color-info) !important; }
.text-mint     { color: var(--color-mint) !important; }
.bg-cream    { background-color: var(--color-cream) !important; color: var(--color-forest) !important; }
.bg-white    { background-color: var(--color-white) !important; color: var(--color-forest) !important; }
.bg-forest   { background-color: var(--color-forest) !important; color: var(--color-white) !important; }
.bg-emerald  { background-color: var(--color-emerald) !important; color: var(--color-white) !important; }
.bg-tender   { background-color: var(--color-tender) !important; color: var(--color-white) !important; }
.bg-dew      { background-color: var(--color-dew) !important; color: var(--color-forest) !important; }
.bg-terra    { background-color: var(--color-terra) !important; color: var(--color-white) !important; }
.bg-mint     { background-color: var(--color-mint) !important; color: var(--color-forest) !important; }
.bg-gray-100 { background-color: var(--color-gray-100) !important; color: var(--color-forest) !important; }
.m-0  { margin: 0 !important; }
.m-1  { margin: var(--space-1) !important; }
.m-2  { margin: var(--space-2) !important; }
.m-3  { margin: var(--space-3) !important; }
.m-4  { margin: var(--space-4) !important; }
.m-5  { margin: var(--space-5) !important; }
.m-6  { margin: var(--space-6) !important; }
.m-8  { margin: var(--space-8) !important; }
.mt-0  { margin-top: 0 !important; }
.mt-1  { margin-top: var(--space-1) !important; }
.mt-2  { margin-top: var(--space-2) !important; }
.mt-3  { margin-top: var(--space-3) !important; }
.mt-4  { margin-top: var(--space-4) !important; }
.mt-5  { margin-top: var(--space-5) !important; }
.mt-6  { margin-top: var(--space-6) !important; }
.mt-8  { margin-top: var(--space-8) !important; }
.mt-10 { margin-top: var(--space-10) !important; }
.mt-12 { margin-top: var(--space-12) !important; }
.mt-16 { margin-top: var(--space-16) !important; }
.mb-0  { margin-bottom: 0 !important; }
.mb-1  { margin-bottom: var(--space-1) !important; }
.mb-2  { margin-bottom: var(--space-2) !important; }
.mb-3  { margin-bottom: var(--space-3) !important; }
.mb-4  { margin-bottom: var(--space-4) !important; }
.mb-5  { margin-bottom: var(--space-5) !important; }
.mb-6  { margin-bottom: var(--space-6) !important; }
.mb-8  { margin-bottom: var(--space-8) !important; }
.mb-10 { margin-bottom: var(--space-10) !important; }
.mb-12 { margin-bottom: var(--space-12) !important; }
.mb-16 { margin-bottom: var(--space-16) !important; }
.ml-0  { margin-left: 0 !important; }
.ml-1  { margin-left: var(--space-1) !important; }
.ml-2  { margin-left: var(--space-2) !important; }
.ml-3  { margin-left: var(--space-3) !important; }
.ml-4  { margin-left: var(--space-4) !important; }
.ml-auto { margin-left: auto !important; }
.mr-0  { margin-right: 0 !important; }
.mr-1  { margin-right: var(--space-1) !important; }
.mr-2  { margin-right: var(--space-2) !important; }
.mr-3  { margin-right: var(--space-3) !important; }
.mr-4  { margin-right: var(--space-4) !important; }
.mr-auto { margin-right: auto !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.p-0  { padding: 0 !important; }
.p-1  { padding: var(--space-1) !important; }
.p-2  { padding: var(--space-2) !important; }
.p-3  { padding: var(--space-3) !important; }
.p-4  { padding: var(--space-4) !important; }
.p-5  { padding: var(--space-5) !important; }
.p-6  { padding: var(--space-6) !important; }
.p-8  { padding: var(--space-8) !important; }
.p-10 { padding: var(--space-10) !important; }
.p-12 { padding: var(--space-12) !important; }
.pt-0  { padding-top: 0 !important; }
.pt-2  { padding-top: var(--space-2) !important; }
.pt-4  { padding-top: var(--space-4) !important; }
.pt-6  { padding-top: var(--space-6) !important; }
.pt-8  { padding-top: var(--space-8) !important; }
.pt-10 { padding-top: var(--space-10) !important; }
.pt-12 { padding-top: var(--space-12) !important; }
.pb-0  { padding-bottom: 0 !important; }
.pb-2  { padding-bottom: var(--space-2) !important; }
.pb-4  { padding-bottom: var(--space-4) !important; }
.pb-6  { padding-bottom: var(--space-6) !important; }
.pb-8  { padding-bottom: var(--space-8) !important; }
.pb-10 { padding-bottom: var(--space-10) !important; }
.pb-12 { padding-bottom: var(--space-12) !important; }
.pl-0  { padding-left: 0 !important; }
.pl-4  { padding-left: var(--space-4) !important; }
.pl-6  { padding-left: var(--space-6) !important; }
.pr-0  { padding-right: 0 !important; }
.pr-4  { padding-right: var(--space-4) !important; }
.pr-6  { padding-right: var(--space-6) !important; }
.px-4  { padding-left: var(--space-4) !important; padding-right: var(--space-4) !important; }
.px-6  { padding-left: var(--space-6) !important; padding-right: var(--space-6) !important; }
.px-8  { padding-left: var(--space-8) !important; padding-right: var(--space-8) !important; }
.py-4  { padding-top: var(--space-4) !important; padding-bottom: var(--space-4) !important; }
.py-6  { padding-top: var(--space-6) !important; padding-bottom: var(--space-6) !important; }
.py-8  { padding-top: var(--space-8) !important; padding-bottom: var(--space-8) !important; }
.py-10 { padding-top: var(--space-10) !important; padding-bottom: var(--space-10) !important; }
.py-12 { padding-top: var(--space-12) !important; padding-bottom: var(--space-12) !important; }
.w-100  { width: 100% !important; }
.w-auto { width: auto !important; }
.h-100  { height: 100% !important; }
.h-auto { height: auto !important; }
.min-h-screen { min-height: 100vh; }
.overflow-hidden  { overflow: hidden !important; }
.overflow-auto    { overflow: auto !important; }
.overflow-x-auto  { overflow-x: auto !important; }
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.position-sticky   { position: sticky; top: 0; }
.position-fixed    { position: fixed; }
.border        { border: 1px solid var(--border-default); }
.border-light  { border: 1px solid var(--border-light); }
.border-top    { border-top: 1px solid var(--border-light); }
.border-bottom { border-bottom: 1px solid var(--border-light); }
.border-0      { border: none !important; }
.rounded-sm { border-radius: var(--radius-sm); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-xl { border-radius: var(--radius-xl); }
.rounded-full { border-radius: var(--radius-full); }
.shadow-sm   { box-shadow: var(--shadow-sm); }
.shadow      { box-shadow: var(--shadow-card); }
.shadow-lg   { box-shadow: var(--shadow-lg); }
.shadow-none { box-shadow: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cursor-pointer { cursor: pointer; }
.user-select-none { user-select: none; }
.opacity-0 { opacity: 0; }
.opacity-50 { opacity: 0.5; }
.opacity-100 { opacity: 1; }
.text-nowrap { white-space: nowrap; }
.text-break  { word-break: break-word; }
.text-uppercase { text-transform: uppercase; letter-spacing: 0.05em; }
.nav {
  display: block; 
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  height: var(--nav-height);
  border-bottom: 1px solid var(--color-gray-200);
  transition: box-shadow var(--transition-base), background-color var(--transition-base);
}
.nav.nav--scrolled {
  background-color: rgba(255, 255, 255, 0.95);
}
.nav.nav--scrolled {
  box-shadow: 0 4px 20px rgba(26, 60, 52, 0.08);
}
.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 var(--space-6);
}
.nav__logo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  flex-shrink: 0;
}
.nav__logo-icon {
  width: 32px;
  height: 32px;
}
.nav__logo-text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-forest);
  line-height: 1;
}
.nav__links {
  display: flex;
  align-items: center;
  gap: var(--space-8);
}
.nav__link {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9375rem;   
  font-weight: 500;
  color: var(--color-forest);
  text-decoration: none;
  position: relative;
  padding: var(--space-2) 0;
  transition: color var(--transition-base);
}
.nav__link:visited { color: var(--color-forest); }
.nav__link:hover {
  color: var(--color-emerald);
  text-decoration: underline;
  text-underline-offset: 8px;
  text-decoration-thickness: 2px;
}
.nav__link--active {
  color: var(--color-emerald);
}
.nav__link--active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--color-emerald);
  border-radius: 1px;
}
.nav__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-white);
  background-color: var(--color-primary);
  padding: 8px 20px;
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background-color var(--transition-base), transform var(--transition-fast);
}
.nav__cta:visited { color: var(--color-white); }
.nav__cta:hover {
  background-color: var(--color-primary-hover);
  color: var(--color-white);
}
.nav__cta:active {
  background-color: var(--color-primary-active);
  transform: translateY(1px);
}
.nav__auth {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.nav__signin {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-forest);
  text-decoration: none;
  padding: 6px 12px;
  border-radius: 8px;
  transition: background var(--transition-base);
}
.nav__signin:visited { color: var(--color-forest); }
.nav__signin:hover {
  background: var(--color-dew);
}
.nav__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-shrink: 0;
}
.nav__hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--color-forest);
  border-radius: 2px;
  transition: transform var(--transition-base), opacity var(--transition-base);
}
.nav__hamburger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.nav__hamburger.is-open span:nth-child(2) {
  opacity: 0;
}
.nav__hamburger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.nav__mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  top: var(--nav-height);
  z-index: 9999;
  background-color: var(--color-white);
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  padding: var(--space-6) var(--space-8);
  overflow-y: auto;
}
.nav__mobile-menu.is-open {
  display: flex;
}
.nav__mobile-link {
  font-family: 'DM Sans', sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--color-forest);
  text-decoration: none;
  padding: var(--space-3) 0;
  display: block;
  transition: color var(--transition-base);
}
.nav__mobile-link:visited { color: var(--color-forest); }
.nav__mobile-link:hover {
  color: var(--color-emerald);
}
.nav__mobile-link--signin {
  font-weight: 600;
  color: var(--color-emerald);
}
.nav__mobile-menu .btn--primary {
  margin-top: var(--space-4);
}
.nav__logo-icon { display: inline-block; vertical-align: middle; }
.solutions-crosslinks-section { padding: var(--space-12) 0; background: var(--color-gray-50); }
.solutions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-4); }
.solution-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-white);
  border: 1px solid var(--color-dew);
  border-radius: 8px;
  text-decoration: none;
  color: var(--color-forest);
  transition: transform 0.2s, box-shadow 0.2s;
}
.solution-card:visited { color: var(--color-forest); }
.solution-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(45,122,95,0.10); }
.solution-card__icon { width: 22px; height: 22px; color: var(--color-emerald); flex-shrink: 0; margin-top: 2px; }
.solution-card__title { font-size: 0.95rem; }
.solution-card__desc { margin: var(--space-1) 0 0; font-size: 0.85rem; color: #5a6c63; line-height: 1.4; }
.nav__icon { width: 18px; height: 18px; display: inline-block; vertical-align: middle; }
.nav__icon--small { width: 16px; height: 16px; }
.nav__mobile-submenu .nav__icon { width: 16px; height: 16px; }
.blog-latest-section { padding: 4rem 0 5rem; border-top: 1px solid #e5e7eb; margin-top: 2rem; }
.blog-latest-inner { max-width: 900px; margin: 0 auto; padding: 0 1.5rem; }
.blog-latest-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.blog-latest-title { font-size: 1.25rem; font-weight: 700; color: #1f2937; margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.blog-latest-icon { width: 22px; height: 22px; color: #4E7F65; }
.blog-latest-viewall { font-size: 0.85rem; color: #4E7F65; text-decoration: none; font-weight: 500; }
.blog-latest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.blog-latest-card { display: block; padding: 1.25rem; background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; text-decoration: none; color: inherit; transition: all 0.2s ease; }
.blog-latest-card:visited { color: inherit; }
.blog-latest-date { font-size: 0.75rem; color: #9ca3af; margin-bottom: 0.5rem; }
.blog-latest-title-card { font-size: 0.925rem; font-weight: 600; color: #1f2937; line-height: 1.4; }
.footer__link svg { vertical-align: -1px; margin-left: 2px; }
.nav__item {
  position: relative;
}
.nav__item::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: var(--space-2); 
}
.nav__link--dropdown {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}
.nav__link--dropdown::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.2s ease;
}
.nav__item:hover .nav__link--dropdown::after,
.nav__item.is-open .nav__link--dropdown::after {
  transform: rotate(180deg);
}
.nav__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 240px;
  background: var(--color-white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
  padding: var(--space-2) 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
  z-index: 100;
  margin-top: var(--space-2);
}
.nav__item:hover .nav__dropdown,
.nav__item.is-open .nav__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.nav__dropdown--wide {
  min-width: 300px;
}
.nav__dropdown-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-5);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-forest);
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.nav__dropdown-link:visited { color: var(--color-forest); }
.nav__dropdown-link:hover {
  background-color: var(--color-dew);
  color: var(--color-emerald);
}
.nav__dropdown-link svg,
.nav__dropdown-link i {
  width: 18px;
  height: 18px;
  color: var(--color-emerald);
  flex-shrink: 0;
}
.nav__dropdown-divider {
  height: 1px;
  background-color: var(--border-light);
  margin: var(--space-2) var(--space-5);
}
.nav__dropdown-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted, #6b7280);
  padding: var(--space-2) var(--space-5) 0;
  pointer-events: none;
}
.nav__mobile-group {
  border-bottom: 1px solid var(--border-light);
}
.nav__mobile-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--space-4) 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-forest);
  background: none;
  border: none;
  cursor: pointer;
}
.nav__mobile-group-title::after {
  content: '+';
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--color-emerald);
  transition: transform 0.2s ease;
}
.nav__mobile-group.is-open .nav__mobile-group-title::after {
  content: '\2212';
}
.nav__mobile-submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.nav__mobile-group.is-open .nav__mobile-submenu {
  max-height: 600px;
}
.nav__mobile-submenu a {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  font-size: 0.9375rem;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s ease;
}
.nav__mobile-submenu a:hover {
  color: var(--color-emerald);
}
.nav__mobile-submenu a svg {
  width: 16px;
  height: 16px;
  color: var(--color-emerald);
}
@media (max-width: 1024px) {
  .nav__links {
    display: none !important;
  }
}
@media (min-width: 1025px) {
  .nav__mobile-menu {
    display: none !important;
  }
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.btn:focus-visible {
  outline: 3px solid var(--color-forest);
  outline-offset: 2px;
}
.btn-primary           { background: var(--color-primary); color: var(--color-white); }
.btn-primary:visited   { color: var(--color-white); }
.btn-primary:hover     { background: var(--color-primary-hover); color: var(--color-white); }
.btn-primary:active    { background: var(--color-primary-active); transform: translateY(1px); }
.btn-primary:disabled  { background: var(--color-gray-300); color: var(--color-gray-600); cursor: not-allowed; }
.btn-secondary           { background: transparent; color: var(--color-forest); border: 2px solid var(--color-forest); padding: calc(0.75rem - 2px) calc(1.5rem - 2px); }
.btn-secondary:visited   { color: var(--color-forest); }
.btn-secondary:hover     { background: var(--color-forest); color: var(--color-white); }
.btn-secondary:active    { background: #0F2820; color: var(--color-white); transform: translateY(1px); }
.btn-secondary:disabled  { border-color: var(--color-gray-300); color: var(--color-gray-400); background: transparent; cursor: not-allowed; }
.btn-accent           { background: var(--color-terra); color: var(--color-white); }
.btn-accent:visited   { color: var(--color-white); }
.btn-accent:hover     { background: #C9620E; color: var(--color-white); }
.btn-accent:active    { background: #A85209; transform: translateY(1px); }
.btn-accent:disabled  { background: var(--color-gray-200); color: var(--color-gray-600); cursor: not-allowed; }
.btn-ghost           { background: transparent; color: var(--color-forest); }
.btn-ghost:visited   { color: var(--color-forest); }
.btn-ghost:hover     { background: var(--color-dew); color: var(--color-forest); }
.btn-ghost:active    { background: var(--color-mint); }
.btn-ghost:disabled  { color: var(--color-gray-400); cursor: not-allowed; }
.btn-sm  { padding: 0.5rem 1rem;  font-size: 0.85rem; }
.btn-lg  { padding: 1rem 1.75rem; font-size: 1.05rem; }
.btn-block {
  display: flex;
  width: 100%;
}
.btn-icon {
  padding: 10px;
  border-radius: var(--radius-sm);
}
.btn-icon svg {
  width: 20px;
  height: 20px;
}
.card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow var(--transition-slow), transform var(--transition-slow);
}
.card:hover {
  box-shadow: var(--shadow-card-hover);
}
.card--interactive:hover {
  transform: translateY(-4px);
}
.card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.card__body {
  padding: var(--space-6);
}
.card__header {
  padding: var(--space-6);
  border-bottom: 1px solid var(--border-light);
}
.card__footer {
  padding: var(--space-6);
  border-top: 1px solid var(--border-light);
}
.card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-forest);
  margin-bottom: var(--space-2);
}
.card__text {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background-color: var(--color-dew);
  color: var(--color-emerald);
  margin-bottom: var(--space-4);
  flex-shrink: 0;
}
.card__icon svg {
  width: 24px;
  height: 24px;
}
.card--highlight {
  border-color: var(--color-emerald);
  border-width: 2px;
}
.card--horizontal {
  display: flex;
  flex-direction: row;
}
.card--horizontal .card__image {
  width: 280px;
  aspect-ratio: auto;
  flex-shrink: 0;
}
.card--horizontal .card__body {
  flex: 1;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.8125rem;    
  font-weight: 600;
  line-height: 1;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  background-color: var(--bg-badge);
  color: var(--color-emerald);
  white-space: nowrap;
}
.badge--alert {
  background-color: #FED7AA;
  color: #78350F;
}
.badge--success {
  background-color: #D1FAE5;
  color: #064E3B;
}
.badge--error {
  background-color: #FEE2E2;
  color: #7F1D1D;
}
.badge--info {
  background-color: #DBEAFE;
  color: #1E3A8A;
}
.badge--forest {
  background-color: var(--color-forest);
  color: var(--color-white);
}
.badge--terra {
  background-color: var(--color-terra);
  color: var(--color-white);
}
.badge-sm {
  font-size: 0.6875rem;
  padding: 4px 10px;
}
.badge-lg {
  font-size: 0.875rem;
  padding: 8px 18px;
}
.form-group {
  margin-bottom: var(--space-5);
}
.form-label {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-gray-700);
  margin-bottom: 6px;
}
.form-label--required::after {
  content: ' *';
  color: var(--color-error);
}
.form-input,
.form-textarea,
.form-select {
  display: block;
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-gray-900);
  background-color: var(--color-white);
  border: 1.5px solid var(--color-gray-300);
  border-radius: 10px;
  padding: 12px 16px;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
.form-input::placeholder,
.form-textarea::placeholder {
  color: var(--color-gray-500);
}
.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--color-emerald);
  box-shadow: 0 0 0 3px var(--color-dew);
}
.form-input:disabled,
.form-textarea:disabled,
.form-select:disabled {
  background-color: var(--color-gray-100);
  cursor: not-allowed;
  opacity: 0.7;
}
.form-input--error,
.form-textarea--error,
.form-select--error {
  border-color: var(--color-error);
}
.form-input--error:focus,
.form-textarea--error:focus {
  box-shadow: 0 0 0 3px #FEE2E2;
}
.form-error {
  display: block;
  font-size: 0.8125rem;
  color: var(--color-error);
  margin-top: 4px;
}
.form-input--success {
  border-color: var(--color-success);
}
.form-input--success:focus {
  box-shadow: 0 0 0 3px #D1FAE5;
}
.form-textarea {
  min-height: 120px;
  resize: vertical;
}
.form-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236B7280' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: 40px;
}
.form-check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  cursor: pointer;
}
.form-check-input {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  border: 1.5px solid var(--color-gray-300);
  border-radius: 4px;
  appearance: none;
  background-color: var(--color-white);
  cursor: pointer;
  transition: background-color var(--transition-base), border-color var(--transition-base);
}
.form-check-input:checked {
  background-color: var(--color-emerald);
  border-color: var(--color-emerald);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px;
}
.form-check-input[type="radio"] {
  border-radius: 50%;
}
.form-check-input[type="radio"]:checked {
  background-image: none;
  box-shadow: inset 0 0 0 4px var(--color-white);
}
.form-check-input:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--color-dew);
}
.form-check-label {
  font-size: 0.9375rem;
  color: var(--color-gray-700);
  line-height: 1.5;
}
.form-toggle {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}
.form-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}
.form-toggle__slider {
  position: absolute;
  inset: 0;
  background-color: var(--color-gray-300);
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: background-color var(--transition-base);
}
.form-toggle__slider::before {
  content: '';
  position: absolute;
  left: 3px;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: var(--color-white);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  transition: transform var(--transition-base);
}
.form-toggle input:checked + .form-toggle__slider {
  background-color: var(--color-emerald);
}
.form-toggle input:checked + .form-toggle__slider::before {
  transform: translateX(20px);
}
.form-toggle input:focus + .form-toggle__slider {
  box-shadow: 0 0 0 3px var(--color-dew);
}
.form-help {
  font-size: 0.8125rem;
  color: var(--color-gray-500);
  margin-top: 4px;
}
.input-group {
  display: flex;
}
.input-group .form-input {
  border-radius: 10px 0 0 10px;
}
.input-group .btn {
  border-radius: 0 10px 10px 0;
  flex-shrink: 0;
}
.hero {
  position: relative;
  padding: var(--space-30) 0 var(--space-20);
  overflow: hidden;
}
.hero__inner {
  display: flex;
  align-items: center;
  gap: var(--space-16);
}
.hero__content {
  flex: 1;
  max-width: 600px;
}
.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-forest);
  background-color: var(--color-dew);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-6);
}
.hero__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-forest);
  margin-bottom: var(--space-6);
}
.hero__title em {
  font-style: normal;
  color: var(--color-emerald);
}
.hero__description {
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--text-secondary);
  margin-bottom: var(--space-8);
}
.hero__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.hero__actions .btn {
  font-size: 1.0625rem;
  padding: 16px 36px;
  border-radius: var(--radius-md);
}
.hero__visual {
  flex: 1;
  position: relative;
}
.hero__visual img {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
.hero--centered {
  text-align: center;
}
.hero--centered .hero__inner {
  flex-direction: column;
}
.hero--centered .hero__content {
  max-width: 720px;
  margin: 0 auto;
}
.hero--centered .hero__actions {
  justify-content: center;
}
.hero__bg-shape {
  position: absolute;
  top: -120px;
  right: -80px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--color-dew) 0%, transparent 70%);
  opacity: 0.5;
  pointer-events: none;
  z-index: -1;
}
.hero__trust {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  margin-top: var(--space-10);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border-light);
}
.hero__trust-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
}
.hero__trust-item svg {
  width: 18px;
  height: 18px;
  color: var(--color-emerald);
}
.features {
  padding: var(--space-20) 0;
}
.features__header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto var(--space-16);
}
.features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}
.feature-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-slow), transform var(--transition-slow);
}
.feature-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}
.feature-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md);
  background-color: var(--color-dew);
  color: var(--color-emerald);
  margin-bottom: var(--space-5);
}
.feature-card__icon svg {
  width: 26px;
  height: 26px;
}
.feature-card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-forest);
  margin-bottom: var(--space-3);
}
.feature-card__text {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.features__grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
.features__grid--4 {
  grid-template-columns: repeat(4, 1fr);
}
.feature-row {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  padding: var(--space-16) 0;
}
.feature-row:nth-child(even) {
  flex-direction: row-reverse;
}
.feature-row__content {
  flex: 1;
}
.feature-row__visual {
  flex: 1;
}
.feature-row__visual img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}
.pricing {
  padding: var(--space-20) 0;
}
.pricing__header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto var(--space-16);
}
.pricing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
  align-items: start;
}
.pricing-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: var(--shadow-card);
  text-align: center;
  position: relative;
  transition: box-shadow var(--transition-slow), transform var(--transition-slow);
}
.pricing-card:hover {
  box-shadow: var(--shadow-card-hover);
}
.pricing-card--popular {
  border: 2px solid var(--color-emerald);
  transform: scale(1.03);
}
.pricing-card--popular:hover {
  transform: scale(1.05);
}
.pricing-card__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--color-emerald);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 16px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}
.pricing-card__name {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-forest);
  margin-bottom: var(--space-2);
}
.pricing-card__description {
  font-size: 0.875rem;
  color: var(--text-muted);
  margin-bottom: var(--space-6);
}
.pricing-card__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: var(--space-1);
  margin-bottom: var(--space-6);
}
.pricing-card__amount {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--color-forest);
  line-height: 1;
}
.pricing-card__currency {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-forest);
}
.pricing-card__period {
  font-size: 0.875rem;
  color: var(--text-muted);
}
.pricing-card__features {
  text-align: left;
  margin-bottom: var(--space-8);
}
.pricing-card__feature {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-2) 0;
  font-size: 0.9375rem;
  color: var(--text-secondary);
}
.pricing-card__feature svg {
  width: 18px;
  height: 18px;
  color: var(--color-emerald);
  flex-shrink: 0;
  margin-top: 2px;
}
.pricing-card__feature--disabled {
  color: var(--text-muted);
  text-decoration: line-through;
}
.pricing-card__feature--disabled svg {
  color: var(--color-gray-300);
}
.pricing-card .btn {
  width: 100%;
}
.pricing__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-bottom: var(--space-10);
}
.pricing__toggle-label {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.pricing__toggle-label--active {
  color: var(--color-forest);
  font-weight: 600;
}
.pricing__toggle-badge {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-terra);
  background-color: #FED7AA;
  padding: 2px 8px;
  border-radius: var(--radius-full);
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}
.blog-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-slow), transform var(--transition-slow);
}
.blog-card__inner {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.blog-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}
.blog-card__image {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.blog-card__body {
  padding: var(--space-6);
}
.blog-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.blog-card__category {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-emerald);
  background-color: var(--color-dew);
  padding: 3px 10px;
  border-radius: var(--radius-full);
}
.blog-card__date {
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.blog-card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-forest);
  margin-bottom: var(--space-2);
  line-height: 1.3;
}
.blog-card__title a,
.blog-card__title {
  color: inherit;
  text-decoration: none;
}
.blog-card:hover .blog-card__title {
  color: var(--color-emerald);
}
.blog-card__excerpt {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: var(--space-4);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.blog-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-emerald);
}
.blog-card__link:hover {
  gap: var(--space-3);
  color: var(--color-tender);
}
.blog-card__link svg {
  width: 16px;
  height: 16px;
  transition: transform var(--transition-base);
}
.blog-card:hover .blog-card__link svg {
  transform: translateX(4px);
}
.blog-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.blog-list-item {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-2);
  border-bottom: 1px solid var(--border-light);
  transition: background-color var(--transition-base);
}
.blog-list-item:last-child {
  border-bottom: none;
}
.blog-list-item:hover {
  background-color: var(--bg-subtle, rgba(45, 122, 95, 0.04));
}
.blog-list-item__date {
  flex-shrink: 0;
  width: 90px;
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.blog-list-item__content {
  flex: 1;
  min-width: 0;
}
.blog-list-item__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 var(--space-1) 0;
  line-height: 1.4;
}
.blog-list-item__title a {
  color: inherit;
  text-decoration: none;
}
.blog-list-item__title a:hover {
  color: var(--color-emerald);
}
.blog-list-item__excerpt {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.blog-list-item__arrow {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: var(--color-emerald);
  transition: background-color var(--transition-base), transform var(--transition-base);
}
.blog-list-item__arrow svg {
  width: 18px;
  height: 18px;
}
.blog-list-item:hover .blog-list-item__arrow {
  background-color: rgba(45, 122, 95, 0.1);
  transform: translateX(2px);
}
.blog-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-10);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border-light);
}
.blog-pagination__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-emerald);
  text-decoration: none;
  border: 1px solid var(--color-emerald);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-base), color var(--transition-base);
}
.blog-pagination__link:hover {
  background-color: var(--color-emerald);
  color: #fff;
}
.blog-pagination__link svg {
  width: 16px;
  height: 16px;
}
.blog-pagination__link--disabled {
  color: var(--text-muted);
  border-color: var(--border-light);
  pointer-events: none;
  opacity: 0.5;
}
.blog-pagination__info {
  font-size: 0.875rem;
  color: var(--text-muted);
}
.blog-grid--featured .blog-card:first-child {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
}
.blog-grid--featured .blog-card:first-child .blog-card__image {
  width: 50%;
  aspect-ratio: auto;
  min-height: 300px;
}
.blog-grid--featured .blog-card:first-child .blog-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-8);
}
.blog-grid--featured .blog-card:first-child .blog-card__title {
  font-size: 1.5rem;
}
.blog-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: var(--space-10);
}
.blog-sidebar {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-6));
}
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-12);
}
.pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-decoration: none;
  transition: background-color var(--transition-base), color var(--transition-base);
}
.pagination__item:hover {
  background-color: var(--color-dew);
  color: var(--color-emerald);
}
.pagination__item--active {
  background-color: var(--color-emerald);
  color: var(--color-white);
}
.pagination__item--active:hover {
  background-color: var(--color-tender);
  color: var(--color-white);
}
.testimonials {
  padding: var(--space-20) 0;
}
.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}
.testimonial-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: var(--shadow-card);
}
.testimonial-card__quote {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.0625rem;
  font-style: italic;
  color: var(--color-forest);
  line-height: 1.6;
  margin-bottom: var(--space-6);
  position: relative;
  padding-left: var(--space-6);
}
.testimonial-card__quote::before {
  content: '\201C';
  position: absolute;
  left: 0;
  top: -4px;
  font-size: 2rem;
  color: var(--color-terra);
  font-family: Georgia, serif;
  line-height: 1;
}
.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.testimonial-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  background-color: var(--color-dew);
}
.testimonial-card__name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-forest);
}
.testimonial-card__role {
  font-size: 0.8125rem;
  color: var(--text-muted);
}
.testimonial-card__stars {
  display: flex;
  gap: 2px;
  margin-bottom: var(--space-4);
}
.testimonial-card__stars svg {
  width: 18px;
  height: 18px;
  color: var(--color-warning);
  fill: var(--color-warning);
}
.footer {
  background-color: var(--color-forest);
  color: rgba(255, 255, 255, 0.8);
  padding-top: var(--space-16);
  padding-bottom: var(--space-8);
}
.footer a {
  color: var(--color-white);
  text-decoration: none;
  transition: color var(--transition-base);
}
.footer a:visited { color: var(--color-white); }
.footer a:hover {
  color: var(--color-mint);
  text-decoration: underline;
}
.footer__grid {
  display: grid;
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: var(--space-10);
  margin-bottom: var(--space-12);
}
.footer__grid--5col {
  grid-template-columns: 2fr repeat(4, 1fr);
}
.footer__grid--6col {
  grid-template-columns: 2fr repeat(5, 1fr);
}
.footer__brand {
  max-width: 300px;
}
.footer__logo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.footer__logo-icon {
  width: 32px;
  height: 32px;
}
.footer__logo-text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-white);
}
.footer__tagline {
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: var(--space-6);
}
.footer__column-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-mint);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--space-5);
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.footer__link {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.7);
}
.footer__link:hover {
  color: var(--color-white);
  padding-left: 4px;
}
.footer__link svg {
  display: inline;
  vertical-align: -1px;
}
.footer__social {
  display: flex;
  gap: var(--space-3);
}
.footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.8);
  transition: background-color var(--transition-base), color var(--transition-base);
}
.footer__social-link:hover {
  background-color: var(--color-emerald);
  color: var(--color-white);
}
.footer__social-link svg {
  width: 18px;
  height: 18px;
}
.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--space-8);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.8125rem;
}
.footer__bottom p {
  margin: 0;
}
.footer__legal {
  display: flex;
  gap: var(--space-6);
}
.footer__legal a {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.6);
}
.footer__legal a:hover {
  color: var(--color-white);
}
.footer__copyright {
  margin: 0;
  opacity: 0.6;
  font-size: 0.8125rem;
  white-space: nowrap;
  flex-shrink: 0;
}
.footer__made-in {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.footer__made-in svg {
  display: inline;
  vertical-align: middle;
  flex-shrink: 0;
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-fade-in-up {
  animation: fadeInUp 0.6s ease forwards;
}
.animate-stagger > *:nth-child(1) { animation-delay: 0ms; }
.animate-stagger > *:nth-child(2) { animation-delay: 80ms; }
.animate-stagger > *:nth-child(3) { animation-delay: 160ms; }
.animate-stagger > *:nth-child(4) { animation-delay: 240ms; }
.animate-stagger > *:nth-child(5) { animation-delay: 320ms; }
.animate-stagger > *:nth-child(6) { animation-delay: 400ms; }
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.animate-fade-in {
  animation: fadeIn 0.5s ease forwards;
}
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.animate-slide-left {
  animation: slideInLeft 0.5s ease forwards;
}
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.animate-slide-right {
  animation: slideInRight 0.5s ease forwards;
}
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.animate-scale-in {
  animation: scaleIn 0.4s ease forwards;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.6; }
}
.animate-pulse {
  animation: pulse 2s ease-in-out infinite;
}
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}
.reveal-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal,
  .reveal-left,
  .reveal-right {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 1024px) {
  :root {
    --grid-gutter: 20px;
  }
  .container {
    padding-left: var(--space-8);
    padding-right: var(--space-8);
  }
  h1, .h1 {
    font-size: 2.5rem;
  }
  h2, .h2 {
    font-size: 2rem;
  }
  .hero__title {
    font-size: 2.5rem;
  }
  .hero__inner {
    gap: var(--space-10);
  }
  .features__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .features__grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .pricing__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .pricing-card--popular {
    transform: none;
  }
  .pricing-card--popular:hover {
    transform: translateY(-4px);
  }
  .testimonials__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-layout {
    grid-template-columns: 1fr;
  }
  .blog-sidebar {
    position: static;
  }
  .footer__grid,
  .footer__grid--5col,
  .footer__grid--6col {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8);
  }
  .footer__brand {
    grid-column: 1 / -1;
    max-width: 100%;
  }
  .nav__auth {
    display: none;
  }
  .nav__hamburger {
    display: flex;
  }
  .feature-row,
  .feature-row:nth-child(even) {
    flex-direction: column;
    gap: var(--space-10);
  }
  .col-lg-1  { width: 8.333333%; }
  .col-lg-2  { width: 16.666667%; }
  .col-lg-3  { width: 25%; }
  .col-lg-4  { width: 33.333333%; }
  .col-lg-5  { width: 41.666667%; }
  .col-lg-6  { width: 50%; }
  .col-lg-7  { width: 58.333333%; }
  .col-lg-8  { width: 66.666667%; }
  .col-lg-9  { width: 75%; }
  .col-lg-10 { width: 83.333333%; }
  .col-lg-11 { width: 91.666667%; }
  .col-lg-12 { width: 100%; }
}
@media (max-width: 768px) {
  :root {
    --grid-gutter: 16px;
  }
  .container {
    padding-left: var(--space-6);
    padding-right: var(--space-6);
  }
  h1, .h1 {
    font-size: 2rem;
  }
  h2, .h2 {
    font-size: 1.75rem;
  }
  h3, .h3 {
    font-size: 1.25rem;
  }
  .section {
    padding-top: var(--space-16);
    padding-bottom: var(--space-16);
  }
  .section-lg {
    padding-top: var(--space-20);
    padding-bottom: var(--space-20);
  }
  .nav__auth {
    display: none;
  }
  .nav__hamburger {
    display: flex;
  }
  .hero {
    padding: var(--space-20) 0 var(--space-16);
  }
  .hero__inner {
    flex-direction: column;
    text-align: center;
  }
  .hero__title {
    font-size: 2rem;
  }
  .hero__description {
    font-size: 1.125rem;
  }
  .hero__actions {
    justify-content: center;
  }
  .hero__trust {
    justify-content: center;
    flex-wrap: wrap;
  }
  .pricing__grid {
    grid-template-columns: 1fr;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
  }
  .blog-grid--featured .blog-card:first-child {
    flex-direction: column;
  }
  .blog-grid--featured .blog-card:first-child .blog-card__image {
    width: 100%;
    aspect-ratio: 16 / 10;
    min-height: auto;
  }
  .card--horizontal {
    flex-direction: column;
  }
  .card--horizontal .card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
  }
  .footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
  .footer__bottom {
    flex-direction: column;
    gap: var(--space-4);
    text-align: center;
  }
  .footer__bottom p {
    white-space: normal;
  }
  .footer__legal {
    justify-content: center;
    flex-wrap: wrap;
  }
  .col-md-1  { width: 8.333333%; }
  .col-md-2  { width: 16.666667%; }
  .col-md-3  { width: 25%; }
  .col-md-4  { width: 33.333333%; }
  .col-md-5  { width: 41.666667%; }
  .col-md-6  { width: 50%; }
  .col-md-7  { width: 58.333333%; }
  .col-md-8  { width: 66.666667%; }
  .col-md-9  { width: 75%; }
  .col-md-10 { width: 83.333333%; }
  .col-md-11 { width: 91.666667%; }
  .col-md-12 { width: 100%; }
}
@media (max-width: 640px) {
  .container {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }
  h1, .h1 {
    font-size: 1.75rem;
  }
  h2, .h2 {
    font-size: 1.5rem;
  }
  .hero__title {
    font-size: 1.75rem;
  }
  .section {
    padding-top: var(--space-12);
    padding-bottom: var(--space-12);
  }
  .features__grid,
  .features__grid--2,
  .features__grid--4 {
    grid-template-columns: 1fr;
  }
  .testimonials__grid {
    grid-template-columns: 1fr;
  }
  .blog-grid {
    grid-template-columns: 1fr;
  }
  .blog-list-item {
    flex-wrap: wrap;
    gap: var(--space-2);
  }
  .blog-list-item__date {
    width: 100%;
    font-size: 0.75rem;
  }
  .blog-list-item__excerpt {
    display: none;
  }
  .blog-pagination {
    flex-direction: column;
    gap: var(--space-3);
  }
  .hero__actions {
    flex-direction: column;
    width: 100%;
  }
  .hero__actions .btn {
    width: 100%;
  }
  .row > * {
    width: 100%;
  }
  .col-sm-6  { width: 50%; }
  .col-sm-12 { width: 100%; }
  .feature-card {
    padding: var(--space-6);
  }
  .pricing-card {
    padding: var(--space-6);
  }
  .testimonial-card {
    padding: var(--space-6);
  }
}
.page-header {
  padding: var(--space-24) 0 var(--space-12);
  text-align: center;
}
.page-header__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--color-forest);
  margin-bottom: var(--space-4);
}
.page-header__subtitle {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 680px;
  margin: 0 auto;
}
.page-header__subtitle a {
  color: var(--color-emerald);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.page-header__subtitle a:hover {
  color: var(--color-tender);
}
@media (max-width: 768px) {
  .page-header {
    padding: var(--space-16) 0 var(--space-8);
  }
  .page-header__title {
    font-size: 1.75rem;
  }
}
.cta-section {
  background: linear-gradient(135deg, var(--color-forest) 0%, #1A4A3A 100%);
  color: var(--color-white);
  border-radius: var(--radius-xl);
  padding: var(--space-16) var(--space-12);
  text-align: center;
}
.cta-section__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: var(--space-4);
}
.cta-section__text {
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.8);
  max-width: 560px;
  margin: 0 auto var(--space-8);
  line-height: 1.6;
}
.cta-section .btn-accent {
  font-size: 1rem;
  padding: 14px 32px;
}
@media (max-width: 640px) {
  .cta-section {
    padding: var(--space-10) var(--space-6);
    border-radius: var(--radius-lg);
  }
  .cta-section__title {
    font-size: 1.75rem;
  }
}
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-md);
  font-size: 0.9375rem;
  line-height: 1.5;
  margin-bottom: var(--space-4);
}
.alert svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 1px;
}
.alert--success {
  background-color: #D1FAE5;
  color: #065F46;
  border: 1px solid #A7F3D0;
}
.alert--warning {
  background-color: #FED7AA;
  color: #D97706;
  border: 1px solid #FDE68A;
}
.alert--error {
  background-color: #FEE2E2;
  color: #B91C1C;
  border: 1px solid #FECACA;
}
.alert--info {
  background-color: #DBEAFE;
  color: #2563EB;
  border: 1px solid #BFDBFE;
}
.table-wrapper {
  overflow-x: auto;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
}
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.table th {
  font-weight: 600;
  text-align: left;
  padding: var(--space-3) var(--space-4);
  background-color: var(--color-gray-100);
  color: var(--color-forest);
  border-bottom: 2px solid var(--border-light);
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.table td {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-gray-100);
  color: var(--text-secondary);
}
.table tr:last-child td {
  border-bottom: none;
}
.table tr:hover td {
  background-color: var(--color-gray-50);
}
.tabs {
  display: flex;
  gap: var(--space-1);
  border-bottom: 2px solid var(--color-gray-100);
  margin-bottom: var(--space-6);
  overflow-x: auto;
}
.tab {
  padding: var(--space-3) var(--space-5);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-muted);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color var(--transition-base), border-color var(--transition-base);
  cursor: pointer;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}
.tab:hover {
  color: var(--color-emerald);
}
.tab--active {
  color: var(--color-emerald);
  border-bottom-color: var(--color-emerald);
  font-weight: 600;
}
.tab-content {
  display: none;
}
.tab-content.is-active {
  display: block;
}
.accordion {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.accordion__item {
  border: 1px solid rgba(45, 122, 95, 0.18);
  border-radius: var(--radius-lg);
  border-left: 4px solid rgba(45, 122, 95, 0.3);
  background: linear-gradient(135deg, rgba(45, 122, 95, 0.015) 0%, rgba(45, 122, 95, 0.008) 100%);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(45, 122, 95, 0.05);
  transition: border-left-color 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.accordion__item:hover {
  border-color: rgba(45, 122, 95, 0.28);
  border-left-color: rgba(45, 122, 95, 0.55);
  box-shadow: 0 4px 16px rgba(45, 122, 95, 0.1), 0 2px 4px rgba(0, 0, 0, 0.05);
  background: linear-gradient(135deg, rgba(45, 122, 95, 0.03) 0%, rgba(45, 122, 95, 0.015) 100%);
}
.accordion__item.is-open {
  border-left-color: var(--color-forest);
  border-color: rgba(45, 122, 95, 0.32);
  box-shadow: 0 6px 24px rgba(45, 122, 95, 0.12), 0 2px 6px rgba(0, 0, 0, 0.05);
  background: linear-gradient(135deg, rgba(45, 122, 95, 0.04) 0%, rgba(45, 122, 95, 0.02) 100%);
}
.accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.125rem 1.5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.975rem;
  font-weight: 600;
  color: var(--color-forest);
  background: transparent;
  border: none;
  border-radius: var(--radius-lg);
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s ease;
  gap: var(--space-4);
}
.accordion__trigger:hover {
  background-color: rgba(45, 122, 95, 0.04);
}
.accordion__item.is-open .accordion__trigger {
  background-color: transparent;
  padding-bottom: 0.5rem;
}
.accordion__trigger svg {
  width: 20px;
  height: 20px;
  color: var(--color-forest);
  opacity: 0.45;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
  flex-shrink: 0;
}
.accordion__trigger:hover svg {
  opacity: 0.7;
}
.accordion__item.is-open .accordion__trigger svg {
  transform: rotate(180deg);
  opacity: 1;
}
.accordion__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 0 1.5rem;
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.75;
}
.accordion__item.is-open .accordion__content {
  padding-bottom: 1.25rem;
}
.accordion__content p:first-child {
  margin-top: 0;
}
.accordion__content p:last-child {
  margin-bottom: 0;
}
.accordion__content ul {
  padding-left: 1.25rem;
  margin: 0.5rem 0 0;
}
.accordion__content li {
  margin-bottom: 0.4rem;
}
.accordion__content a {
  color: var(--color-forest);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.accordion__content a:hover {
  color: var(--color-forest-dark, #1e5c43);
}
.faq-hero {
  background: linear-gradient(135deg, var(--color-forest) 0%, #1a5c42 60%, #143d2e 100%);
  color: var(--color-white);
  padding: 3.5rem 0 2.5rem;
  text-align: center;
}
.faq-hero__inner {
  max-width: 640px;
  margin: 0 auto;
}
.faq-hero .hero__badge {
  background: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.9);
}
.faq-hero__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--color-white);
  margin: 0.75rem 0 0.625rem;
}
.faq-hero__desc {
  font-size: 1.1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 1.5rem;
}
.faq-search-wrap {
  position: relative;
  max-width: 480px;
  margin: 0 auto 1.75rem;
}
.faq-search-icon {
  position: absolute;
  left: 1.125rem;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: rgba(255, 255, 255, 0.5);
  pointer-events: none;
}
.faq-search {
  width: 100%;
  padding: 0.875rem 1.25rem 0.875rem 2.9rem;
  font-size: 0.9375rem;
  font-family: 'DM Sans', sans-serif;
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  color: var(--color-white);
  outline: none;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.faq-search::placeholder {
  color: rgba(255, 255, 255, 0.45);
}
.faq-search:focus {
  border-color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.15);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1);
}
.faq-hero .faq-nav {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.faq-nav__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.4rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
  white-space: nowrap;
}
.faq-nav__chip svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
.faq-nav__chip:hover,
.faq-nav__chip.is-active {
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-forest);
  border-color: transparent;
}
.faq-hero__stats {
  display: flex;
  justify-content: center;
  gap: 3rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.faq-hero__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.faq-hero__stat-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-white);
}
.faq-hero__stat-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 0.125rem;
}
.faq-body {
  padding: 3rem 0 4rem;
  background: var(--bg-page);
}
.faq-category {
  margin-bottom: 2.5rem;
  scroll-margin-top: 24px;
}
.faq-category:last-child {
  margin-bottom: 0;
}
.faq-category__header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}
.faq-category__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  flex-shrink: 0;
}
.faq-category__icon svg {
  width: 20px;
  height: 20px;
}
.faq-category__icon--blue   { background: rgba(59, 130, 246, 0.1); color: #2563eb; }
.faq-category__icon--green  { background: rgba(16, 185, 129, 0.1); color: #10b981; }
.faq-category__icon--amber  { background: rgba(245, 158, 11, 0.1); color: #d97706; }
.faq-category__icon--forest { background: rgba(45, 122, 95, 0.12); color: var(--color-forest); }
.faq-category__icon--purple { background: rgba(124, 58, 237, 0.1); color: #7c3aed; }
.faq-category__icon--red    { background: rgba(239, 68, 68, 0.1);  color: #b91c1c; }
.faq-category__header h2 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 0.1rem;
}
.faq-category__count {
  font-size: 0.75rem;
  color: var(--text-muted);
}
.faq-no-results {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 3rem 1rem;
  gap: 0.75rem;
  color: var(--text-muted);
}
.faq-no-results svg {
  width: 40px;
  height: 40px;
  opacity: 0.4;
}
.faq-no-results p {
  margin: 0;
  font-size: 1rem;
}
@media (max-width: 640px) {
  .faq-hero {
    padding: 2.5rem 0 2rem;
  }
  .faq-hero__title {
    font-size: 1.75rem;
  }
  .faq-hero__stats {
    gap: 1.5rem;
  }
  .faq-hero__stat-num {
    font-size: 1.25rem;
  }
  .faq-body {
    padding: 2rem 0 3rem;
  }
}
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background-color: rgba(26, 60, 52, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}
.modal-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}
.modal {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  overflow-y: auto;
  transform: scale(0.95) translateY(10px);
  transition: transform var(--transition-slow);
}
.modal-overlay.is-open .modal {
  transform: scale(1) translateY(0);
}
.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-6);
  border-bottom: 1px solid var(--border-light);
}
.modal__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-forest);
}
.modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  color: var(--color-gray-500);
  transition: background-color var(--transition-base);
}
.modal__close:hover {
  background-color: var(--color-gray-100);
}
.modal__body {
  padding: var(--space-6);
}
.modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-6);
  border-top: 1px solid var(--border-light);
}
.tooltip {
  position: relative;
  display: inline-block;
}
.tooltip__content {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--color-forest);
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--transition-fast);
  z-index: 100;
}
.tooltip__content::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--color-forest);
}
.tooltip:hover .tooltip__content {
  opacity: 1;
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.875rem;
  color: var(--text-muted);
  margin-bottom: var(--space-6);
}
.breadcrumb__separator {
  color: var(--color-gray-300);
}
.breadcrumb__link {
  color: var(--text-muted);
}
.breadcrumb__link:hover {
  color: var(--color-emerald);
}
.breadcrumb__current {
  color: var(--color-forest);
  font-weight: 500;
}
.progress {
  width: 100%;
  height: 8px;
  background-color: var(--color-gray-100);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.progress__bar {
  height: 100%;
  background-color: var(--color-emerald);
  border-radius: var(--radius-full);
  transition: width var(--transition-slow);
}
.progress__bar--terra {
  background-color: var(--color-terra);
}
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: var(--color-dew);
  color: var(--color-emerald);
  font-weight: 600;
  overflow: hidden;
  flex-shrink: 0;
}
.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.avatar--sm {
  width: 32px;
  height: 32px;
  font-size: 0.75rem;
}
.avatar--md {
  width: 44px;
  height: 44px;
  font-size: 0.875rem;
}
.avatar--lg {
  width: 64px;
  height: 64px;
  font-size: 1.25rem;
}
.divider-label {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-8) 0;
}
.divider-label::before,
.divider-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background-color: var(--border-light);
}
.divider-label span {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-muted);
  white-space: nowrap;
}
.skeleton {
  background: linear-gradient(90deg,
    var(--color-gray-100) 25%,
    var(--color-gray-300) 50%,
    var(--color-gray-100) 75%
  );
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: var(--radius-sm);
}
@keyframes skeleton-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.skeleton-text {
  height: 16px;
  margin-bottom: var(--space-2);
}
.skeleton-title {
  height: 24px;
  width: 60%;
  margin-bottom: var(--space-3);
}
.skeleton-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
.skeleton-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-md);
}
.btn--primary          { background: var(--color-primary); color: var(--color-white); }
.btn--primary:visited  { color: var(--color-white); }
.btn--primary:hover    { background: var(--color-primary-hover); color: var(--color-white); }
.btn--primary:active   { background: var(--color-primary-active); transform: translateY(1px); }
.btn--secondary        { background: transparent; color: var(--color-forest); border: 2px solid var(--color-forest); }
.btn--secondary:visited { color: var(--color-forest); }
.btn--secondary:hover  { background: var(--color-forest); color: var(--color-white); }
.btn--secondary:active { background: #0F2820; color: var(--color-white); transform: translateY(1px); }
.btn--accent           { background: var(--color-terra); color: var(--color-white); }
.btn--accent:visited   { color: var(--color-white); }
.btn--accent:hover     { background: #C9620E; color: var(--color-white); }
.btn--accent:active    { background: #A85209; transform: translateY(1px); }
.btn--ghost            { background: transparent; color: var(--color-forest); }
.btn--ghost:visited    { color: var(--color-forest); }
.btn--ghost:hover      { background: var(--color-dew); color: var(--color-forest); text-decoration: none; }
.btn--ghost:active     { background: var(--color-mint); }
.btn--outline          { background: transparent; color: var(--color-forest); border: 2px solid var(--color-forest); }
.btn--outline:visited  { color: var(--color-forest); }
.btn--outline:hover    { background: var(--color-forest); color: var(--color-white); }
.btn--outline:active   { background: #0F2820; color: var(--color-white); transform: translateY(1px); }
.btn--outline-emerald          { background: transparent; color: var(--color-emerald); border: 2px solid var(--color-emerald); }
.btn--outline-emerald:visited  { color: var(--color-emerald); }
.btn--outline-emerald:hover    { background: var(--color-emerald); color: var(--color-white); }
.btn--outline-emerald:active   { background: var(--color-forest); color: var(--color-white); transform: translateY(1px); }
.btn--outline-light          { background: transparent; color: var(--color-white); border: 2px solid rgba(255,255,255,0.6); }
.btn--outline-light:visited  { color: var(--color-white); }
.btn--outline-light:hover    { background: rgba(255,255,255,0.1); color: var(--color-white); border-color: var(--color-white); }
.btn--outline-light:active   { background: rgba(255,255,255,0.2); transform: translateY(1px); }
.hero__subtitle {
  font-size: 1.25rem;
  color: var(--color-forest);
  opacity: 0.85;
  max-width: 560px;
  line-height: 1.7;
  margin-bottom: var(--space-8);
}
.hero__proof {
  font-size: 0.875rem;
  color: var(--gray-500, #6B7280);
  margin-top: var(--space-6);
}
.section-header {
  text-align: center;
  margin-bottom: var(--space-12);
}
.section-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-forest);
  line-height: 1.2;
}
.section-subtitle {
  font-size: 1.125rem;
  color: var(--color-forest);
  opacity: 0.75;
  max-width: 640px;
  margin: var(--space-4) auto 0;
  line-height: 1.6;
}
.badge--sage {
  background-color: var(--color-dew);
  color: var(--color-forest);
}
.card--feature {
  background: var(--color-white);
  border: 1px solid #ECE3D8;
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: 0 1px 3px rgba(26,60,52,0.06), 0 4px 12px rgba(26,60,52,0.04);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.card--feature:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(26,60,52,0.08), 0 8px 24px rgba(26,60,52,0.06);
}
.card--feature .card__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-dew);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-5);
  color: var(--color-emerald);
}
.card--feature .card__icon svg {
  width: 24px;
  height: 24px;
}
.card--feature .card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-forest);
  margin-bottom: var(--space-3);
}
.card--feature .card__text {
  font-size: 0.9375rem;
  color: var(--color-forest);
  opacity: 0.75;
  line-height: 1.6;
}
.card--why {
  background: var(--color-white);
  border: 1px solid #ECE3D8;
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  box-shadow: 0 1px 3px rgba(26,60,52,0.06), 0 4px 12px rgba(26,60,52,0.04);
}
.card--why .card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-forest);
  margin-bottom: var(--space-3);
}
.card--why .card__text {
  font-size: 0.9375rem;
  color: var(--color-forest);
  opacity: 0.75;
  line-height: 1.6;
}
.why {
  padding: var(--space-20) 0;
}
.why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}
@media (max-width: 768px) {
  .why__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
  .section-title {
    font-size: 1.75rem;
  }
}
.cta {
  padding: var(--space-20) 0;
}
.cta--dew {
  background-color: var(--color-dew);
}
.cta__content {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}
.cta__quote {
  font-family: var(--font-accent, 'Fraunces'), Georgia, serif;
  font-style: italic;
  font-size: 1.25rem;
  color: var(--color-terra);
  border-left: 3px solid var(--color-terra);
  padding-left: var(--space-4);
  margin: var(--space-6) auto var(--space-8);
  max-width: 400px;
  text-align: left;
}
.contact {
  padding: var(--space-16) 0;
}
.contact__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--space-12);
  align-items: start;
}
.contact__form-wrapper {
  background: var(--color-white);
  border: 1px solid var(--border-light, rgba(26, 60, 52, 0.08));
  border-radius: var(--radius-lg);
  padding: var(--space-10);
}
.contact__info {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-8));
}
.contact__info-card {
  background: var(--color-white);
  border: 1px solid var(--border-light, rgba(26, 60, 52, 0.08));
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  margin-bottom: var(--space-6);
}
.contact__info-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-forest);
  margin-bottom: var(--space-6);
}
.contact__info-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-bottom: var(--space-4);
}
.contact__info-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-forest);
  opacity: 0.6;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.contact__info-value {
  font-size: 0.9375rem;
  color: var(--color-forest);
}
.contact__info-text {
  font-size: 0.9375rem;
  color: var(--color-forest);
  opacity: 0.75;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .contact__grid {
    grid-template-columns: 1fr;
  }
}
.form__honeypot {
  display: none;
}
.form__group {
  margin-bottom: var(--space-5);
}
.form__label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-forest);
  margin-bottom: var(--space-2);
}
.form__required {
  color: var(--color-terra);
  margin-left: 2px;
}
.form__input,
.form__textarea {
  width: 100%;
  padding: 10px 14px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9375rem;
  color: var(--color-forest);
  background: var(--color-white);
  border: 1.5px solid #D1D5DB;
  border-radius: var(--radius-sm);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.form__input:focus,
.form__textarea:focus {
  outline: none;
  border-color: var(--color-emerald);
  box-shadow: 0 0 0 3px rgba(45, 122, 95, 0.12);
}
.form__textarea {
  min-height: 120px;
  resize: vertical;
}
.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
}
@media (max-width: 640px) {
  .form__row {
    grid-template-columns: 1fr;
  }
}
.form__actions {
  margin-top: var(--space-6);
}
.alert__list {
  list-style: disc;
  margin: var(--space-2) 0 0 var(--space-6);
  padding: 0;
}
.alert__list li {
  font-size: 0.875rem;
  margin-bottom: var(--space-1);
}
.faq {
  margin-top: var(--space-12);
}
.faq__item {
  border-bottom: 1px solid var(--border-light, rgba(26, 60, 52, 0.08));
}
.faq__question {
  width: 100%;
  padding: var(--space-5) 0;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-forest);
  cursor: pointer;
  list-style: none;
}
.faq__question::-webkit-details-marker {
  display: none;
}
.faq__answer {
  padding: 0 0 var(--space-5);
  font-size: 0.9375rem;
  color: var(--color-forest);
  opacity: 0.75;
  line-height: 1.7;
}
.article-toc {
  max-width: 720px;
  margin: 0 auto var(--space-8);
  padding: var(--space-5) var(--space-6);
  background: var(--color-dew, #f0faf6);
  border: 1px solid #c8e6d8;
  border-radius: 10px;
}
.article-toc__header {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-forest);
  margin-bottom: var(--space-3);
}
.article-toc__list {
  list-style: none;
  counter-reset: toc;
  margin: 0;
  padding: 0;
}
.article-toc__item {
  counter-increment: toc;
  margin-bottom: var(--space-1);
}
.article-toc__item::before {
  content: counter(toc) ". ";
  font-weight: 600;
  color: var(--primary, #4E7F65);
  font-size: 0.9rem;
}
.article-toc__item a {
  color: var(--color-forest);
  text-decoration: none;
  font-size: 0.93rem;
  line-height: 1.5;
  transition: color var(--transition-fast);
}
.article-toc__item a:hover {
  color: var(--primary, #4E7F65);
  text-decoration: underline;
}
.article-toc__item--sub {
  padding-left: var(--space-5);
}
.article-toc__item--sub::before {
  font-size: 0.85rem;
  color: var(--text-muted, #6c757d);
}
html {
  scroll-behavior: smooth;
}
.article-content h2[id],
.article-content h3[id] {
  scroll-margin-top: calc(var(--nav-height, 64px) + 24px);
}
.article-content {
  max-width: 720px;
  margin: 0 auto;
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--color-forest);
}
.article-content h2 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  margin: var(--space-10) 0 var(--space-4);
}
.article-content h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: var(--space-8) 0 var(--space-3);
}
.article-content p {
  margin-bottom: var(--space-5);
}
.article-content ul,
.article-content ol {
  margin: var(--space-4) 0;
  padding-left: var(--space-6);
}
.article-content li {
  margin-bottom: var(--space-2);
}
.page-section {
  padding: var(--space-16) 0;
}
.page-section--alt {
  background-color: var(--color-dew);
}
.content-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-8);
}
.content-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 768px) {
  .content-grid,
  .content-grid--3 {
    grid-template-columns: 1fr;
  }
}
.step-list {
  counter-reset: step-counter;
  list-style: none;
  padding: 0;
}
.step-item {
  counter-increment: step-counter;
  display: flex;
  gap: var(--space-5);
  margin-bottom: var(--space-8);
}
.step-item::before {
  content: counter(step-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  background-color: var(--color-emerald);
  color: var(--color-white);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  border-radius: 50%;
}
.step-content h3 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: var(--space-2);
}
.step-content p {
  font-size: 0.9375rem;
  color: var(--color-forest);
  opacity: 0.75;
  line-height: 1.6;
}
.check-list {
  list-style: none;
  padding: 0;
}
.check-list li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  font-size: 0.9375rem;
  color: var(--color-forest);
  line-height: 1.5;
}
.check-list li::before {
  content: '';
  width: 20px;
  height: 20px;
  min-width: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234E7F65' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;
  margin-top: 2px;
}
.checklist-boxes {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3) var(--space-8);
}
.checklist-boxes li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: 0.9375rem;
  color: var(--color-forest);
  line-height: 1.5;
  cursor: pointer;
  padding: var(--space-2) 0;
}
.checklist-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  min-width: 22px;
  border: 2px solid var(--color-emerald);
  border-radius: var(--radius-sm);
  margin-top: 1px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.checklist-boxes li.is-checked .checklist-box {
  background-color: var(--color-emerald);
  border-color: var(--color-emerald);
}
.checklist-boxes li.is-checked .checklist-box::after {
  content: '';
  width: 12px;
  height: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E") no-repeat center;
  background-size: contain;
}
@media (max-width: 640px) {
  .checklist-boxes {
    grid-template-columns: 1fr;
  }
}
.comparison-table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--space-8) 0;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.comparison-table th,
.comparison-table td {
  padding: var(--space-4) var(--space-5);
  text-align: left;
  border-bottom: 1px solid var(--border-light, rgba(26, 60, 52, 0.08));
  font-size: 0.9375rem;
}
.comparison-table th {
  background-color: var(--color-forest);
  color: var(--color-white);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
}
.comparison-table tr:hover {
  background-color: var(--color-dew);
}
.comparison-table .highlight {
  background-color: rgba(45, 122, 95, 0.05);
  font-weight: 600;
}
.wave-divider {
  position: relative;
}
.wave-divider::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 60px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C360,60 1080,60 1440,0 L1440,60 L0,60 Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 2;
  pointer-events: none;
}
.wave-divider--cream::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C360,60 1080,60 1440,0 L1440,60 L0,60 Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}
.wave-divider--dew::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C360,60 1080,60 1440,0 L1440,60 L0,60 Z' fill='%23DCF1E0'/%3E%3C/svg%3E");
}
.wave-divider--top::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 60px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C360,0 1080,0 1440,60 L1440,0 L0,0 Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 2;
  pointer-events: none;
}
.wave-divider--dark::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C360,60 1080,60 1440,0 L1440,60 L0,60 Z' fill='%231F3D33'/%3E%3C/svg%3E");
}
.wave-divider--dark-top::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 60px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C360,0 1080,0 1440,60 L1440,0 L0,0 Z' fill='%231F3D33'/%3E%3C/svg%3E");
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 2;
  pointer-events: none;
}
.wave-divider {
  padding-bottom: calc(var(--space-20) + 30px);
}
.bg-dots {
  background-image: radial-gradient(circle, rgba(45, 122, 95, 0.08) 1px, transparent 1px);
  background-size: 24px 24px;
}
.bg-mesh {
  background-image:
    radial-gradient(ellipse at 20% 50%, rgba(92, 184, 138, 0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(45, 122, 95, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 60% 80%, rgba(232, 136, 79, 0.06) 0%, transparent 50%);
}
.bg-mesh-hero {
  background-image:
    radial-gradient(ellipse at 15% 30%, rgba(92, 184, 138, 0.15) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 10%, rgba(45, 122, 95, 0.10) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(232, 136, 79, 0.08) 0%, transparent 40%),
    radial-gradient(ellipse at 70% 60%, rgba(232, 245, 236, 0.20) 0%, transparent 50%);
}
.bg-grid {
  background-image:
    linear-gradient(rgba(45, 122, 95, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 122, 95, 0.04) 1px, transparent 1px);
  background-size: 40px 40px;
}
.btn-shimmer {
  position: relative;
  overflow: hidden;
}
.btn-shimmer::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.20) 50%,
    transparent 100%
  );
  animation: shimmerSweep 3s ease-in-out infinite;
}
@keyframes shimmerSweep {
  0%   { left: -100%; }
  40%  { left: 100%; }
  100% { left: 100%; }
}
.btn-glow:hover {
  box-shadow: var(--shadow-glow-emerald);
}
.btn-glow--terra:hover {
  box-shadow: var(--shadow-glow-terra);
}
@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 10px rgba(45, 122, 95, 0.20), 0 0 30px rgba(45, 122, 95, 0.10);
  }
  50% {
    box-shadow: 0 0 20px rgba(45, 122, 95, 0.35), 0 0 50px rgba(45, 122, 95, 0.15);
  }
}
.btn-pulse-glow {
  animation: pulseGlow 2.5s ease-in-out infinite;
}
.card-glow {
  box-shadow: 0 0 0 2px var(--color-emerald),
              0 0 20px rgba(45, 122, 95, 0.15),
              0 8px 32px rgba(26, 60, 52, 0.10);
}
.card-glow:hover {
  box-shadow: 0 0 0 2px var(--color-emerald),
              var(--shadow-glow-emerald),
              0 8px 32px rgba(26, 60, 52, 0.12);
}
.card:hover .card__icon,
.feature-card:hover .feature-card__icon {
  transform: rotate(5deg) scale(1.1);
}
.card__icon,
.feature-card__icon {
  transition: transform var(--transition-spring);
}
.card-gradient-border {
  position: relative;
  border: none;
  background: var(--bg-card);
}
.card-gradient-border::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(135deg, var(--color-emerald), var(--color-tender), var(--color-terra));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--transition-slow);
}
.card-gradient-border:hover::before {
  opacity: 1;
}
.animate-delay-1 { animation-delay: 100ms; }
.animate-delay-2 { animation-delay: 200ms; }
.animate-delay-3 { animation-delay: 300ms; }
.animate-delay-4 { animation-delay: 400ms; }
.animate-delay-5 { animation-delay: 500ms; }
.animate-delay-6 { animation-delay: 600ms; }
.reveal-delay-1 { transition-delay: 100ms; }
.reveal-delay-2 { transition-delay: 200ms; }
.reveal-delay-3 { transition-delay: 300ms; }
.reveal-delay-4 { transition-delay: 400ms; }
.reveal-delay-5 { transition-delay: 500ms; }
.reveal-delay-6 { transition-delay: 600ms; }
.typing-container {
  display: inline-block;
  position: relative;
}
.typing-word {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  border-right: 3px solid var(--color-emerald);
  animation: typing 2s steps(30) forwards, blinkCursor 0.7s step-end infinite;
  width: 0;
}
.typing-word.is-typed {
  width: auto;
  border-right-color: transparent;
  animation: none;
}
@keyframes typing {
  from { width: 0; }
  to   { width: 100%; }
}
@keyframes blinkCursor {
  0%, 100% { border-right-color: var(--color-emerald); }
  50%      { border-right-color: transparent; }
}
.typing-cursor {
  display: inline-block;
  width: 3px;
  height: 1.1em;
  background-color: var(--color-emerald);
  margin-left: 2px;
  vertical-align: text-bottom;
  animation: blinkCursorBg 0.7s step-end infinite;
}
@keyframes blinkCursorBg {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}
.counter {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800;
  font-size: 2.5rem;
  line-height: 1;
  color: var(--color-emerald);
  display: inline-block;
  font-variant-numeric: tabular-nums;
}
.counter--large {
  font-size: 3.5rem;
}
.counter--forest {
  color: var(--color-forest);
}
.counter--terra {
  color: var(--color-terra);
}
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50%      { transform: translateY(-12px); }
}
.animate-float {
  animation: float 4s ease-in-out infinite;
}
@keyframes floatSlow {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50%      { transform: translateY(-8px) rotate(0.5deg); }
}
.animate-float-slow {
  animation: floatSlow 6s ease-in-out infinite;
}
.text-gradient {
  background: linear-gradient(135deg, var(--color-emerald), var(--color-tender));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.text-gradient--warm {
  background: linear-gradient(135deg, var(--color-terra), #D67A42);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.section--dark {
  background-color: var(--color-forest);
  color: var(--color-white);
  position: relative;
}
.section--dark h2,
.section--dark h3,
.section--dark .h2,
.section--dark .h3 {
  color: var(--color-white);
}
.section--dark p {
  color: rgba(255, 255, 255, 0.8);
}
.section--dark .badge {
  background-color: rgba(255, 255, 255, 0.12);
  color: var(--color-tender);
}
.section--dark a:not(.btn) {
  color: var(--color-mint);
}
.section--dark a:not(.btn):hover {
  color: var(--color-white);
}
.section--dark a:not(.btn):visited {
  color: var(--color-mint);
}
.cta-section a:not(.btn) {
  color: var(--color-mint);
}
.cta-section a:not(.btn):hover {
  color: var(--color-white);
}
.bg-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}
.bg-orb--emerald {
  background: rgba(45, 122, 95, 0.12);
}
.bg-orb--terra {
  background: rgba(232, 136, 79, 0.10);
}
.bg-orb--dew {
  background: rgba(232, 245, 236, 0.25);
}
@media (max-width: 768px) {
  .wave-divider::after,
  .wave-divider--top::before,
  .wave-divider--dark::after,
  .wave-divider--dark-top::before {
    height: 30px;
  }
  .wave-divider {
    padding-bottom: calc(var(--space-16) + 15px);
  }
  .counter {
    font-size: 2rem;
  }
  .counter--large {
    font-size: 2.5rem;
  }
  .bg-dots {
    background-size: 20px 20px;
  }
}
@media (max-width: 640px) {
  .wave-divider::after,
  .wave-divider--top::before,
  .wave-divider--dark::after,
  .wave-divider--dark-top::before {
    height: 20px;
  }
}
.page-hero__visual {
  width: 100%;
  overflow: hidden;
  height: 300px;
}
.page-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
.page-hero__title-line1 {
  display: block;
  color: var(--color-forest);
}
.page-hero__title-line2 {
  display: block;
  background: linear-gradient(135deg, var(--color-emerald) 0%, var(--color-tender) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
@media (max-width: 768px) {
  .page-hero__visual {
    height: 200px;
  }
}
@media (max-width: 480px) {
  .page-hero__visual {
    height: 160px;
  }
}
.section-split {
  display: flex;
  overflow: hidden;
}
.section-split__text {
  flex: 0 0 55%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-white);
  padding: 72px 64px;
}
.section-split--dew .section-split__text {
  background: var(--color-dew);
}
.section-split__inner {
  width: 100%;
  max-width: 640px;
}
.section-split__inner h2 {
  font-size: 1.875rem;
  line-height: 1.25;
  margin-bottom: var(--space-5);
  color: var(--color-forest);
}
.section-split__inner .text-lead {
  font-size: 1.05rem;
  line-height: 1.75;
  margin-bottom: var(--space-4);
}
.section-split__inner p {
  font-size: 0.9375rem;
  line-height: 1.7;
  margin-bottom: var(--space-3);
}
.section-split__inner p:last-child {
  margin-bottom: 0;
}
.section-split__image {
  flex: 1;
  position: relative;
  min-height: 360px;
  overflow: hidden;
  background: var(--color-dew);
}
.section-split__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.section-split--img-left .section-split__image {
  order: -1;
}
@media (max-width: 960px) {
  .section-split {
    flex-direction: column;
  }
  .section-split__text {
    flex: none;
    padding: 48px 24px;
    justify-content: flex-start;
  }
  .section-split__inner {
    max-width: 100%;
  }
  .section-split__image {
    height: 260px;
    min-height: unset;
    flex: none;
    width: 100%;
  }
  .section-split--img-left .section-split__image {
    order: 0;
  }
}
@media (max-width: 480px) {
  .section-split__image {
    height: 200px;
  }
  .section-split__text {
    padding: 40px 20px;
  }
}
.hero--centered .hero__inner > .page-hero__visual {
  width: 100%;
  max-width: 100%;
  margin-top: var(--space-8);
}
[class*="fa-circle-"].fa-solid:is(.fa-circle-0,.fa-circle-1,.fa-circle-2,.fa-circle-3,.fa-circle-4,.fa-circle-5,.fa-circle-6,.fa-circle-7,.fa-circle-8,.fa-circle-9) {
    display: inline-grid; place-items: center; width: 1.35em; height: 1.35em; border-radius: 50%;
    background: currentColor; font-family: inherit; font-size: .85em; font-weight: 700; line-height: 1; vertical-align: middle;
}
.fa-solid.fa-circle-0::before { content: "0"; color: #fff; }
.fa-solid.fa-circle-1::before { content: "1"; color: #fff; }
.fa-solid.fa-circle-2::before { content: "2"; color: #fff; }
.fa-solid.fa-circle-3::before { content: "3"; color: #fff; }
.fa-solid.fa-circle-4::before { content: "4"; color: #fff; }
.fa-solid.fa-circle-5::before { content: "5"; color: #fff; }
.fa-solid.fa-circle-6::before { content: "6"; color: #fff; }
.fa-solid.fa-circle-7::before { content: "7"; color: #fff; }
.fa-solid.fa-circle-8::before { content: "8"; color: #fff; }
.fa-solid.fa-circle-9::before { content: "9"; color: #fff; }
:root {
    --accent-green: #4e7f65;  --accent-green-bg: rgba(45, 122, 95, .12);
    --accent-blue: #2563eb;   --accent-blue-bg: rgba(59, 130, 246, .12);
    --accent-purple: #7c3aed; --accent-purple-bg: rgba(139, 92, 246, .12);
    --accent-amber: #d97706;  --accent-amber-bg: rgba(245, 158, 11, .12);
    --accent-rose: #db2777;   --accent-rose-bg: rgba(236, 72, 153, .12);
    --accent-teal: #0d9488;   --accent-teal-bg: rgba(20, 184, 166, .12);
}
.feature-card:nth-child(6n+1) .feature-card__icon { background: var(--accent-green-bg);  color: var(--accent-green); }
.feature-card:nth-child(6n+2) .feature-card__icon { background: var(--accent-blue-bg);   color: var(--accent-blue); }
.feature-card:nth-child(6n+3) .feature-card__icon { background: var(--accent-purple-bg); color: var(--accent-purple); }
.feature-card:nth-child(6n+4) .feature-card__icon { background: var(--accent-amber-bg);  color: var(--accent-amber); }
.feature-card:nth-child(6n+5) .feature-card__icon { background: var(--accent-rose-bg);   color: var(--accent-rose); }
.feature-card:nth-child(6n+6) .feature-card__icon { background: var(--accent-teal-bg);   color: var(--accent-teal); }

/* ===== /assets/css/ds/app-tokens.css ===== */
:root {
    --dv-color-forest:  #1f3d33;   
    --dv-color-emerald: #4e7f65;   
    --dv-color-tender:  #157f77;   
    --dv-color-dew:     #dcf1e0;   
    --dv-color-cream:   #ffffff;   
    --dv-color-terra:   #e37222;   
    --dv-color-emerald-900: #193828;
    --dv-color-emerald-800: #264c38;
    --dv-color-emerald-700: #37664d;
    --dv-color-emerald-600: #44755b;
    --dv-color-emerald-500: #4e7f65;   
    --dv-color-emerald-400: #659e80;
    --dv-color-emerald-300: #84bd9f;
    --dv-color-emerald-200: #a7d6bd;
    --dv-color-emerald-100: #caebd9;
    --dv-color-emerald-50:  #eff7f2;   
    --dv-color-emerald-hover:  #37664d;   
    --dv-color-emerald-active: #264c38;   
    --dv-color-tender-hover:   #0f6a63;
    --dv-color-terra-hover:    #c75f12;
    --dv-color-primary:        var(--dv-color-emerald);
    --dv-color-primary-hover:  var(--dv-color-emerald-700);
    --dv-color-primary-active: var(--dv-color-emerald-800);
    --dv-btn-light-bg:       var(--dv-color-emerald-200);
    --dv-btn-light-bg-hover: var(--dv-color-emerald-100);
    --dv-btn-light-text:     var(--dv-color-forest);
    --dv-btn-disabled-bg:   #cbd5d0;
    --dv-btn-disabled-text: #3d4842;
    --dv-color-mint: #b7ddd2;
    --dv-role-admin-bg:    var(--dv-color-terra);
    --dv-role-admin-text:  #1f1206;
    --dv-role-agence-bg:   var(--dv-color-mint);
    --dv-role-agence-text: var(--dv-color-forest);
    --dv-focus-ring-color:  var(--dv-color-forest);
    --dv-focus-ring-width:  2px;
    --dv-focus-ring-offset: 2px;
    --dv-g-50:  #fafbfa;
    --dv-g-100: #f3f6f4;
    --dv-g-200: #e5ebe7;
    --dv-g-300: #cfd8d2;
    --dv-g-400: #a3b0a8;
    --dv-g-500: #5f6e65;   
    --dv-g-600: #54625a;
    --dv-g-700: #3d4842;
    --dv-g-800: #2a322d;
    --dv-g-900: #1a201d;
    --dv-bg-page:       #eef3f0;              
    --dv-bg-app:        var(--dv-bg-page);    
    --dv-bg-card:       var(--dv-color-cream);
    --dv-bg-elevated:   #fdfefd;
    --dv-bg-surface-2:  #f6f9f7;              
    --dv-bg-muted:      var(--dv-g-100);
    --dv-bg-overlay:    rgba(31, 61, 51, 0.55);
    --dv-text-primary:  var(--dv-color-forest);
    --dv-text-muted:    var(--dv-g-600);
    --dv-text-subtle:   var(--dv-g-500);
    --dv-text-inverse:  var(--dv-color-cream);
    --dv-text-link:     var(--dv-color-emerald-700);   
    --dv-text-link-hover: var(--dv-color-emerald-800);
    --dv-text-body:     var(--dv-g-700);               
    --dv-border-default: #dde5e0;             
    --dv-border-subtle:  #eaf0ec;             
    --dv-border-strong:  var(--dv-g-300);
    --dv-border-focus:   var(--dv-color-emerald);   
    --dv-color-success:        #23704a;
    --dv-color-success-bg:     #e1f2e8;
    --dv-color-success-border: #a9d6bb;
    --dv-color-warning:        #8f5200;
    --dv-color-warning-bg:     #fdf0d8;
    --dv-color-warning-border: #f0c46c;
    --dv-color-danger:         #b3261e;
    --dv-color-danger-bg:      #fde7e5;
    --dv-color-danger-border:  #f2b8b3;
    --dv-color-info:           #1d5687;
    --dv-color-info-bg:        #e3eef8;
    --dv-color-info-border:    #c5dcf0;
    --dv-color-neutral:        #4a555c;
    --dv-color-neutral-bg:     #eceff1;
    --dv-color-neutral-border: #cfd6da;
    --dv-text-danger:      var(--dv-color-danger);
    --dv-text-warning:     var(--dv-color-warning);
    --dv-text-default:     var(--dv-text-primary);
    --dv-border-color:     var(--dv-border-default);
    --dv-border:           var(--dv-border-default);
    --dv-color-border:     var(--dv-border-default);
    --dv-color-bg:         var(--dv-bg-app);
    --dv-dew:              var(--dv-color-dew);
    --dv-sidebar-text-soft: var(--dv-text-muted);
    --color-forest:        var(--dv-color-forest);
    --color-emerald:       var(--dv-color-emerald);
    --color-tender:        var(--dv-color-tender);
    --color-dew:           var(--dv-color-dew);
    --dv-font-title:  'Bricolage Grotesque', 'Segoe UI', system-ui, sans-serif;
    --dv-font-body:   'DM Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --dv-font-mono:   'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
    --dv-text-xs:   0.75rem;     
    --dv-text-sm:   0.8125rem;   
    --dv-text-md:   0.875rem;    
    --dv-text-base: 1rem;        
    --dv-text-lg:   1.125rem;    
    --dv-text-xl:   1.375rem;    
    --dv-text-2xl:  1.75rem;     
    --dv-text-3xl:  2.25rem;     
    --dv-leading-tight:  1.2;
    --dv-leading-snug:   1.35;
    --dv-leading-normal: 1.5;
    --dv-leading-relaxed: 1.65;
    --dv-weight-regular:  400;
    --dv-weight-medium:   500;
    --dv-weight-semibold: 600;
    --dv-weight-bold:     700;
    --dv-space-0:  0;
    --dv-space-1:  4px;
    --dv-space-2:  8px;
    --dv-space-3:  12px;
    --dv-space-4:  16px;
    --dv-space-5:  20px;
    --dv-space-6:  24px;
    --dv-space-8:  32px;
    --dv-space-10: 40px;
    --dv-space-12: 48px;
    --dv-space-16: 64px;
    --dv-space-20: 80px;
    --dv-space-24: 96px;
    --dv-radius-none: 0;
    --dv-radius-sm:   6px;
    --dv-radius-md:   8px;
    --dv-radius-lg:   10px;
    --dv-radius-xl:   16px;
    --dv-radius-full: 9999px;
    --dv-shadow-sm: 0 1px 2px 0 rgba(31, 61, 51, 0.06);
    --dv-shadow-card: 0 1px 2px rgba(31, 61, 51, .06), 0 2px 8px rgba(31, 61, 51, .04);   
    --dv-shadow-md: 0 4px 6px -1px rgba(31, 61, 51, 0.10),
                    0 2px 4px -2px rgba(31, 61, 51, 0.08);
    --dv-shadow-lg: 0 10px 15px -3px rgba(31, 61, 51, 0.12),
                    0 4px 6px -4px rgba(31, 61, 51, 0.08);
    --dv-shadow-xl: 0 20px 25px -5px rgba(31, 61, 51, 0.14),
                    0 8px 10px -6px rgba(31, 61, 51, 0.08);
    --dv-ease:              cubic-bezier(0.4, 0, 0.2, 1);
    --dv-transition-fast:   120ms var(--dv-ease);
    --dv-transition-normal: 200ms var(--dv-ease);
    --dv-transition-slow:   320ms var(--dv-ease);
    --dv-z-base:     1;
    --dv-z-dropdown: 100;
    --dv-z-sticky:   200;
    --dv-z-modal:    1000;
    --dv-z-toast:    1100;
    --dv-z-tooltip:  1200;
    --dv-container-max: 1280px;
    --dv-sidebar-width: 240px;
    --dv-topbar-min-height: 56px;   
    --dv-context-min-height: 44px;  
    --dv-icon-sm: 16px;
    --dv-icon-md: 20px;
    --dv-icon-lg: 24px;
    --dv-icon-xl: 32px;
    --dv-avatar-bg-1: #1f3d33;  
    --dv-avatar-bg-2: #4e7f65;  
    --dv-avatar-bg-3: #157f77;  
    --dv-avatar-bg-4: #e37222;  
    --dv-avatar-bg-5: #6b8e7f;  
    --dv-avatar-bg-6: #8c5a3c;  
    --dv-avatar-bg-7: #5c7a8a;  
    --dv-avatar-bg-8: #9a7baa;  
}

/* ===== /assets/css/ds/app-components.css ===== */
.dv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--dv-space-2);
    min-height: 40px;
    padding: 9px var(--dv-space-4);
    font-family: var(--dv-font-body);
    font-size: 0.84375rem;
    font-weight: var(--dv-weight-semibold);
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--dv-radius-md);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: background-color var(--dv-transition-normal),
                border-color var(--dv-transition-normal),
                color var(--dv-transition-normal),
                box-shadow var(--dv-transition-normal),
                transform var(--dv-transition-fast);
}
.dv-btn:focus-visible {
    outline: var(--dv-focus-ring-width) solid var(--dv-focus-ring-color);
    outline-offset: var(--dv-focus-ring-offset);
}
.dv-btn:hover { text-decoration: none; }
.dv-btn:disabled,
.dv-btn.is-disabled {
    background: var(--dv-btn-disabled-bg);
    border-color: var(--dv-btn-disabled-bg);
    color: var(--dv-btn-disabled-text);
    cursor: not-allowed;
    pointer-events: none;
}
.dv-btn--primary,
.dv-btn--primary:visited {
    background: var(--dv-color-primary);
    color: var(--dv-text-inverse);
    border-color: var(--dv-color-primary);
}
.dv-btn--primary:hover:not(:disabled) {
    background: var(--dv-color-primary-hover);
    border-color: var(--dv-color-primary-hover);
    color: var(--dv-text-inverse);
}
.dv-btn--primary:active:not(:disabled) {
    background: var(--dv-color-primary-active);
    border-color: var(--dv-color-primary-active);
}
.dv-btn--light,
.dv-btn--light:visited {
    background: var(--dv-btn-light-bg);
    color: var(--dv-btn-light-text);
    border-color: var(--dv-btn-light-bg);
}
.dv-btn--light:hover:not(:disabled) {
    background: var(--dv-btn-light-bg-hover);
    border-color: var(--dv-btn-light-bg-hover);
    color: var(--dv-btn-light-text);
}
.dv-btn--secondary,
.dv-btn--secondary:visited {
    background: var(--dv-bg-card);
    color: var(--dv-text-primary);
    border-color: var(--dv-border-default);
}
.dv-btn--secondary:hover:not(:disabled) {
    border-color: var(--dv-color-emerald);
    color: var(--dv-text-primary);
}
.dv-btn--ghost,
.dv-btn--tertiary,
.dv-btn--ghost:visited,
.dv-btn--tertiary:visited {
    background: transparent;
    color: var(--dv-text-body);
    border-color: transparent;
}
.dv-btn--ghost:hover:not(:disabled),
.dv-btn--tertiary:hover:not(:disabled) {
    background: var(--dv-bg-muted);
    color: var(--dv-text-primary);
}
.dv-btn--danger {
    background: transparent;
    color: var(--dv-color-danger);
    border-color: transparent;
}
.dv-btn--danger:hover:not(:disabled) {
    background: var(--dv-color-danger-bg);
}
.dv-btn--sm {
    min-height: 32px;
    padding: var(--dv-space-1) var(--dv-space-3);
    font-size: var(--dv-text-sm);
    border-radius: var(--dv-radius-sm);
}
.dv-btn--lg {
    padding: var(--dv-space-3) var(--dv-space-6);
    font-size: var(--dv-text-lg);
    border-radius: var(--dv-radius-lg);
}
.dv-btn--loading {
    color: transparent !important;
    pointer-events: none;
    position: relative;
}
.dv-btn--loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1em;
    height: 1em;
    margin-top: -0.5em;
    margin-left: -0.5em;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: var(--dv-radius-full);
    color: var(--dv-text-inverse);
    animation: dv-spin 700ms linear infinite;
}
.dv-btn--secondary.dv-btn--loading::after,
.dv-btn--ghost.dv-btn--loading::after,
.dv-btn--danger.dv-btn--loading::after {
    color: var(--dv-color-emerald);
}
@keyframes dv-spin {
    to { transform: rotate(360deg); }
}
.dv-card {
    display: block;
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-sm);
    padding: var(--dv-space-5) var(--dv-space-6);
    margin-bottom: var(--dv-space-5);
    min-width: 0;
    transition: box-shadow var(--dv-transition-normal),
                border-color var(--dv-transition-normal),
                transform var(--dv-transition-normal);
}
.dv-grid > .dv-card,
.dv-stack > .dv-card,
.dv-kpis > .dv-card,
.dv-fiche-grid__main > .dv-card,
.dv-fiche-grid__side > .dv-card,
.dv-side-pane > .dv-card { margin-bottom: 0; }
.dv-card h2 { font-family: var(--dv-font-title); font-size: var(--dv-text-base); margin-top: 0; color: var(--dv-text-primary); }
.dv-card h3 { font-size: var(--dv-text-md); margin: 0 0 var(--dv-space-2); color: var(--dv-text-primary); }
.dv-card p { margin: 0 0 var(--dv-space-2); }
.dv-card p:last-child { margin-bottom: 0; }
.dv-card--flush { padding: 0; }
.dv-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    padding: var(--dv-space-4) var(--dv-space-6);
    border-bottom: 1px solid var(--dv-border-default);
}
.dv-card__head h2,
.dv-card__head h3 { margin: 0; font-family: var(--dv-font-title); font-size: var(--dv-text-base); font-weight: var(--dv-weight-semibold); }
.dv-card__content { padding: var(--dv-space-6); }
.dv-card__content--tight { padding: var(--dv-space-3); }
.dv-card__header {
    margin: calc(var(--dv-space-5) * -1) calc(var(--dv-space-6) * -1) var(--dv-space-4);
    padding: var(--dv-space-4) var(--dv-space-6);
    border-bottom: 1px solid var(--dv-border-default);
    font-family: var(--dv-font-title);
    font-size: var(--dv-text-lg);
    font-weight: var(--dv-weight-semibold);
    color: var(--dv-text-primary);
}
.dv-card__body {
}
.dv-card__footer {
    margin: var(--dv-space-4) calc(var(--dv-space-6) * -1) calc(var(--dv-space-5) * -1);
    padding: var(--dv-space-4) var(--dv-space-6);
    border-top: 1px solid var(--dv-border-default);
    display: flex;
    justify-content: flex-end;
    gap: var(--dv-space-2);
    background: var(--dv-bg-muted);
    border-bottom-left-radius: var(--dv-radius-lg);
    border-bottom-right-radius: var(--dv-radius-lg);
}
.dv-card--elevated {
    box-shadow: var(--dv-shadow-md);
    border-color: transparent;
}
.dv-card--interactive {
    cursor: pointer;
}
.dv-card--interactive:hover {
    box-shadow: var(--dv-shadow-lg);
    border-color: var(--dv-color-tender);
    transform: translateY(-2px);
}
.dv-modal {
    position: fixed;
    inset: 0;
    z-index: var(--dv-z-modal);
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--dv-space-4);
}
dialog.dv-modal {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    border: none;
    padding: var(--dv-space-4);
    margin: 0;
    background: transparent;
    overflow-y: auto;  
    box-sizing: border-box;
    outline: none;
}
.dv-modal.is-open,
dialog.dv-modal[open] {
    display: flex;
    animation: dv-fade-in var(--dv-transition-normal);
}
dialog.dv-modal::backdrop {
    background: var(--dv-bg-overlay);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.dv-modal__overlay {
    position: absolute;
    inset: 0;
    background: var(--dv-bg-overlay);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.dv-modal__container {
    position: relative;
    width: 100%;
    max-width: 740px;
    max-height: calc(100vh - 40px);
    display: flex;
    flex-direction: column;
    background: var(--dv-bg-card);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-xl);
    overflow: hidden;
    animation: dv-slide-up var(--dv-transition-normal);
}
.dv-modal--sm .dv-modal__container { max-width: 480px; }
.dv-modal--lg .dv-modal__container { max-width: 960px; }
.dv-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-4);
    padding: var(--dv-space-4) var(--dv-space-6);
    background: var(--dv-color-forest);
    color: #fff;
    border-bottom: none;
}
.dv-modal__header [data-lucide] {
    color: rgba(255,255,255,0.7);
}
.dv-modal__title {
    font-family: var(--dv-font-title);
    font-size: var(--dv-text-xl);
    font-weight: var(--dv-weight-semibold);
    color: #fff;
    margin: 0;
}
.dv-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: transparent;
    border: 0;
    border-radius: var(--dv-radius-md);
    color: rgba(255,255,255,0.7);
    font-size: var(--dv-text-xl);
    line-height: 1;
    cursor: pointer;
    transition: background var(--dv-transition-fast),
                color var(--dv-transition-fast);
}
.dv-modal__close:hover {
    background: rgba(255,255,255,0.15);
    color: #fff;
}
.dv-modal__body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: var(--dv-space-6);
}
.dv-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: var(--dv-space-2);
    padding: var(--dv-space-4) var(--dv-space-6);
    border-top: 1px solid var(--dv-border-default);
    background: var(--dv-bg-muted);
}
.dv-modal__section {
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    overflow: hidden;
    margin-bottom: 14px;
}
.dv-modal__section:last-child { margin-bottom: 0; }
.dv-modal__section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--dv-bg-muted);
    border-bottom: 1px solid var(--dv-border-default);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--dv-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.dv-modal__section-header [data-lucide] {
    width: 13px;
    height: 13px;
    color: var(--dv-color-emerald);
    flex-shrink: 0;
}
.dv-modal__section-body {
    padding: 14px 16px 4px;
    background: #fff;
}
.dv-modal__text { margin: 0 0 10px; font-size: 0.88rem; }
.dv-modal__note { margin: 0; font-size: 0.82rem; color: var(--dv-text-muted); }
@keyframes dv-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes dv-slide-up {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
[data-dv-tooltip] {
    position: relative;
}
[data-dv-tooltip]::after {
    content: attr(data-dv-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    padding: var(--dv-space-1) var(--dv-space-3);
    background: var(--dv-color-forest);
    color: var(--dv-text-inverse);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-medium);
    line-height: 1.4;
    white-space: nowrap;
    border-radius: var(--dv-radius-sm);
    box-shadow: var(--dv-shadow-md);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dv-transition-normal),
                transform var(--dv-transition-normal);
    transition-delay: 0ms;
    z-index: var(--dv-z-tooltip);
}
[data-dv-tooltip]::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: var(--dv-color-forest);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dv-transition-normal);
    z-index: var(--dv-z-tooltip);
}
[data-dv-tooltip]:hover::after,
[data-dv-tooltip]:hover::before,
[data-dv-tooltip]:focus-visible::after,
[data-dv-tooltip]:focus-visible::before {
    opacity: 1;
    transition-delay: 250ms;
}
[data-dv-tooltip]:hover::after,
[data-dv-tooltip]:focus-visible::after {
    transform: translateX(-50%) translateY(0);
}
[data-dv-tooltip-pos="bottom"]::after {
    top: calc(100% + 8px);
    bottom: auto;
}
[data-dv-tooltip-pos="bottom"]::before {
    top: calc(100% + 2px);
    bottom: auto;
    border-top-color: transparent;
    border-bottom-color: var(--dv-color-forest);
}
.dv-toast-container {
    position: fixed;
    bottom: var(--dv-space-6);
    right: var(--dv-space-6);
    z-index: var(--dv-z-toast);
    display: flex;
    flex-direction: column;
    gap: var(--dv-space-3);
    max-width: 420px;
    pointer-events: none;
}
.dv-toast__item {
    display: flex;
    align-items: flex-start;
    gap: var(--dv-space-3);
    padding: var(--dv-space-3) var(--dv-space-4);
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-left: 4px solid var(--dv-color-info);
    border-radius: var(--dv-radius-md);
    box-shadow: var(--dv-shadow-lg);
    color: var(--dv-text-primary);
    font-size: var(--dv-text-md);
    line-height: var(--dv-leading-snug);
    pointer-events: auto;
    animation: dv-toast-in var(--dv-transition-normal);
    min-width: 280px;
}
.dv-toast__item.is-leaving {
    animation: dv-toast-out var(--dv-transition-normal) forwards;
}
.dv-toast__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: var(--dv-weight-bold);
    border-radius: var(--dv-radius-full);
    color: var(--dv-text-inverse);
    background: var(--dv-color-info);
    line-height: 1;
}
.dv-toast__message {
    flex: 1 1 auto;
}
.dv-toast__close {
    flex-shrink: 0;
    background: transparent;
    border: 0;
    color: var(--dv-text-muted);
    font-size: var(--dv-text-lg);
    cursor: pointer;
    padding: 0;
    line-height: 1;
    transition: color var(--dv-transition-fast);
}
.dv-toast__close:hover {
    color: var(--dv-text-primary);
}
.dv-toast__item--success {
    border-left-color: var(--dv-color-success);
    background: var(--dv-color-success-bg);
}
.dv-toast__item--success .dv-toast__icon { background: var(--dv-color-success); }
.dv-toast__item--warning {
    border-left-color: var(--dv-color-warning);
    background: var(--dv-color-warning-bg);
}
.dv-toast__item--warning .dv-toast__icon { background: var(--dv-color-warning); }
.dv-toast__item--danger {
    border-left-color: var(--dv-color-danger);
    background: var(--dv-color-danger-bg);
}
.dv-toast__item--danger .dv-toast__icon { background: var(--dv-color-danger); }
.dv-toast__item--info {
    border-left-color: var(--dv-color-info);
    background: var(--dv-color-info-bg);
}
.dv-toast__item--info .dv-toast__icon { background: var(--dv-color-info); }
@keyframes dv-toast-in {
    from { opacity: 0; transform: translateX(100%); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes dv-toast-out {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(100%); }
}
.dv-tabs {
    display: block;
}
.dv-tabs__list {
    display: flex;
    flex-direction: row;
    gap: var(--dv-space-1);
    border-bottom: 1px solid var(--dv-border-default);
    margin-bottom: var(--dv-space-4);
    overflow-x: auto;
}
.dv-tabs__tab {
    display: inline-flex;
    align-items: center;
    gap: var(--dv-space-2);
    padding: var(--dv-space-3) var(--dv-space-4);
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-family: var(--dv-font-body);
    font-size: var(--dv-text-md);
    font-weight: var(--dv-weight-medium);
    color: var(--dv-text-muted);
    cursor: pointer;
    white-space: nowrap;
    transition: color var(--dv-transition-normal),
                border-color var(--dv-transition-normal),
                background var(--dv-transition-normal);
}
.dv-tabs__tab:hover {
    color: var(--dv-text-primary);
    background: var(--dv-bg-muted);
}
.dv-tabs__tab.is-active {
    color: var(--dv-color-emerald);
    border-bottom-color: var(--dv-color-emerald);
}
.dv-tabs__tab:focus-visible {
    outline: 2px solid var(--dv-border-focus);
    outline-offset: -2px;
    border-radius: var(--dv-radius-sm);
}
.dv-tabs__panels {
}
.dv-tabs__panel {
    display: none;
    animation: dv-fade-in var(--dv-transition-normal);
}
.dv-tabs__panel.is-active {
    display: block;
}
.dv-tabs--vertical {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--dv-space-6);
}
.dv-tabs--vertical .dv-tabs__list {
    flex-direction: column;
    border-bottom: 0;
    border-right: 1px solid var(--dv-border-default);
    margin-bottom: 0;
    padding-right: var(--dv-space-2);
    overflow-x: visible;
}
.dv-tabs--vertical .dv-tabs__tab {
    white-space: normal;
    text-align: left;
    align-items: flex-start;
    width: 100%;
}
.dv-tabs--vertical .dv-tabs__tab {
    justify-content: flex-start;
    border-bottom: 0;
    border-right: 2px solid transparent;
    margin-bottom: 0;
    margin-right: -1px;
    border-radius: var(--dv-radius-sm) 0 0 var(--dv-radius-sm);
}
.dv-tabs--vertical .dv-tabs__tab.is-active {
    border-right-color: var(--dv-color-emerald);
    background: var(--dv-color-dew);
}
[data-lucide], svg.lucide {
    display: inline-block;
    vertical-align: middle;
    width: var(--dv-icon-md);
    height: var(--dv-icon-md);
    stroke: currentColor;
    stroke-width: 1.75;
    flex-shrink: 0;
}
.dv-icon-sm, [data-lucide].dv-icon-sm { width: var(--dv-icon-sm); height: var(--dv-icon-sm); }
.dv-icon-md, [data-lucide].dv-icon-md { width: var(--dv-icon-md); height: var(--dv-icon-md); }
.dv-icon-lg, [data-lucide].dv-icon-lg { width: var(--dv-icon-lg); height: var(--dv-icon-lg); }
.dv-icon-xl, [data-lucide].dv-icon-xl { width: var(--dv-icon-xl); height: var(--dv-icon-xl); }
.dv-icon-fallback { display: inline-block; }
[data-lucide] + .dv-icon-fallback { display: none; }
.dv-btn--terra {
    background: var(--dv-color-terra);
    color: var(--dv-text-inverse);
    border-color: var(--dv-color-terra);
}
.dv-btn--terra:hover:not(:disabled) {
    background: var(--dv-color-terra-hover);
    border-color: var(--dv-color-terra-hover);
}
.dv-btn--icon-only {
    padding: var(--dv-space-2);
    gap: 0;
}
.dv-btn--icon-only.dv-btn--sm { padding: 6px; }
.dv-btn--icon-only.dv-btn--lg { padding: 12px; }
.dv-btn [data-lucide] {
    width: var(--dv-icon-sm);
    height: var(--dv-icon-sm);
}
.dv-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: var(--dv-radius-full);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-medium);
    line-height: 20px;
    background: var(--dv-color-neutral-bg);
    color: var(--dv-color-neutral);
    white-space: nowrap;
}
.dv-badge--pill {  }
.dv-badge [data-lucide] { width: 13px; height: 13px; }
.dv-badge--success { background: var(--dv-color-success-bg); color: var(--dv-color-success); }
.dv-badge--warning { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); }
.dv-badge--danger  { background: var(--dv-color-danger-bg);  color: var(--dv-color-danger); }
.dv-badge--info    { background: var(--dv-color-info-bg);    color: var(--dv-color-info); }
.dv-badge--neutral,
.dv-badge--muted   { background: var(--dv-color-neutral-bg); color: var(--dv-color-neutral); }
.dv-badge--soon    { background: var(--dv-color-info-bg);    color: var(--dv-color-info); }
.dv-badge--success::before,
.dv-badge--warning::before,
.dv-badge--danger::before,
.dv-badge--info::before,
.dv-badge--neutral::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
.dv-badge:has(svg)::before,
.dv-badge:has([data-lucide])::before { content: none; }
.dv-badge--active     { background: var(--dv-color-success-bg); color: var(--dv-color-success); text-transform: capitalize; }
.dv-badge--suspended,
.dv-badge--lead_hot,
.dv-badge--qualified  { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); text-transform: capitalize; }
.dv-badge--closed     { background: var(--dv-color-danger-bg);  color: var(--dv-color-danger);  text-transform: capitalize; }
.dv-badge--trial,
.dv-badge--inscription,
.dv-badge--email_verified,
.dv-badge--organism_created { background: var(--dv-color-info-bg); color: var(--dv-color-info); text-transform: capitalize; }
.dv-badge--draft,
.dv-badge--lead_cold  { background: var(--dv-color-neutral-bg); color: var(--dv-color-neutral); text-transform: capitalize; }
.dv-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--dv-radius-full);
    font-weight: var(--dv-weight-semibold);
    font-size: var(--dv-text-sm);
    color: var(--dv-text-inverse);
    text-transform: uppercase;
    flex-shrink: 0;
    line-height: 1;
    background: var(--dv-color-emerald);
    user-select: none;
}
.dv-avatar--sm { width: 28px; height: 28px; font-size: var(--dv-text-xs); }
.dv-avatar--lg { width: 48px; height: 48px; font-size: var(--dv-text-base); }
.dv-avatar--xl { width: 64px; height: 64px; font-size: var(--dv-text-lg); }
.dv-avatar--bg-1 { background: var(--dv-avatar-bg-1); }
.dv-avatar--bg-2 { background: var(--dv-avatar-bg-2); }
.dv-avatar--bg-3 { background: var(--dv-avatar-bg-3); }
.dv-avatar--bg-4 { background: var(--dv-avatar-bg-4); }
.dv-avatar--bg-5 { background: var(--dv-avatar-bg-5); }
.dv-avatar--bg-6 { background: var(--dv-avatar-bg-6); }
.dv-avatar--bg-7 { background: var(--dv-avatar-bg-7); }
.dv-avatar--bg-8 { background: var(--dv-avatar-bg-8); }
.dv-pills {
    display: flex;
    gap: var(--dv-space-2);
    flex-wrap: wrap;
    margin-bottom: var(--dv-space-5);
}
.dv-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--dv-radius-full);
    background: var(--dv-bg-muted);
    color: var(--dv-text-muted);
    font-size: var(--dv-text-sm);
    font-weight: var(--dv-weight-medium);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--dv-transition-fast), color var(--dv-transition-fast);
    border: 0;
    line-height: 1.2;
}
.dv-pill:hover { background: var(--dv-g-200); color: var(--dv-text-primary); }
.dv-pill.is-active {
    background: var(--dv-color-emerald);
    color: var(--dv-text-inverse);
}
.dv-pill.is-active:hover {
    background: var(--dv-color-emerald-hover);
    color: var(--dv-text-inverse);
}
.dv-pill__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    padding: 1px 7px;
    border-radius: var(--dv-radius-full);
    background: var(--dv-g-300);
    color: var(--dv-g-700);
    font-size: 0.72rem;
    font-weight: var(--dv-weight-semibold);
    line-height: 1.3;
}
.dv-pill.is-active .dv-pill__count {
    background: rgba(255, 255, 255, 0.25);
    color: var(--dv-text-inverse);
}
.dv-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--dv-radius-sm);
    background: var(--dv-color-dew);
    color: var(--dv-color-forest);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-medium);
    line-height: 1.5;
}
.dv-tag--muted { background: var(--dv-g-100); color: var(--dv-text-muted); }
.dv-tag--terra { background: #fce4d0; color: #9a4a14; }
.dv-tag--info  { background: var(--dv-color-info-bg); color: var(--dv-color-info); }
.dv-sidebar {
    flex: 0 0 var(--dv-sidebar-width);
    display: flex;
    flex-direction: column;
    background: var(--dv-bg-card);
    border-right: 1px solid var(--dv-border-default);
    padding: var(--dv-space-4) var(--dv-space-3);
    min-height: calc(100vh - var(--dv-topbar-min-height) - var(--dv-context-min-height));
}
.dv-sidebar__nav { display: block; }
.dv-sidebar__group-label {
    margin: var(--dv-space-4) 10px 6px;
    font-size: 0.65625rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--dv-text-muted);
    font-weight: var(--dv-weight-semibold);
}
.dv-sidebar__nav > .dv-sidebar__group-label:first-child { margin-top: 0; }
.dv-sidebar__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dv-sidebar__item a,
.dv-sidebar__item a:visited {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: var(--dv-space-2) 10px;
    border-radius: var(--dv-radius-sm);
    color: var(--dv-text-body);
    font-size: 0.84375rem;
    text-decoration: none;
    transition: background var(--dv-transition-fast), color var(--dv-transition-fast);
}
.dv-sidebar__item a:hover { background: var(--dv-bg-surface-2); color: var(--dv-text-primary); text-decoration: none; }
.dv-sidebar__item.is-active a,
.dv-sidebar__item.is-active a:visited { background: var(--dv-color-dew); color: var(--dv-color-forest); font-weight: var(--dv-weight-semibold); }
.dv-sidebar__item a [data-lucide] { width: var(--dv-icon-sm); height: var(--dv-icon-sm); flex: none; color: currentColor; }
.dv-sidebar__label { flex: 1; min-width: 0; }
.dv-page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--dv-space-4);
    margin: 0 0 var(--dv-space-6);
    padding: 0;
    background: none;
    border: 0;
    color: var(--dv-text-primary);
}
.dv-page-header__left {
    display: flex;
    align-items: center;
    gap: var(--dv-space-4);
    min-width: 0;
}
.dv-page-header__icon { display: none; }
.dv-page-header__title-wrap {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.dv-page-header h1,
.dv-page-header__title {
    font-family: var(--dv-font-title);
    font-size: 1.625rem;
    margin: 0;
    color: var(--dv-text-primary);
    line-height: var(--dv-leading-tight);
    font-weight: var(--dv-weight-semibold);
    letter-spacing: -0.015em;
    text-wrap: balance;
}
.dv-page-header__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--dv-space-2);
    margin-bottom: 6px;
    font-size: var(--dv-text-sm);
    color: var(--dv-text-muted);
}
.dv-page-header__sub {
    font-size: var(--dv-text-md);
    margin-top: var(--dv-space-1);
    color: var(--dv-text-muted);
}
.dv-page-header__right {
    display: flex;
    gap: var(--dv-space-2);
    align-items: center;
    flex-wrap: wrap;
}
.dv-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--dv-space-6);
    margin-bottom: var(--dv-space-6);
}
.dv-kpi {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    padding: 18px 20px;
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-card);
    color: inherit;
}
a.dv-kpi,
a.dv-kpi:visited { color: inherit; text-decoration: none; }
a.dv-kpi:hover { border-color: var(--dv-color-emerald); color: inherit; text-decoration: none; }
.dv-kpi__icon { display: none; }      
.dv-kpi__body { display: contents; }
.dv-kpi__label {
    font-size: 0.6875rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--dv-text-muted);
    font-weight: var(--dv-weight-semibold);
}
.dv-kpi__value {
    font-family: var(--dv-font-title);
    font-size: 2rem;
    font-weight: var(--dv-weight-semibold);
    line-height: 1.1;
    color: var(--dv-text-primary);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.dv-kpi__value--nowrap { white-space: nowrap; overflow-wrap: normal; font-size: clamp(1.25rem, 0.9rem + 1.1vw, 2rem); }
.dv-kpi--warning .dv-kpi__value { color: var(--dv-color-warning); }
.dv-kpi--danger  .dv-kpi__value { color: var(--dv-color-danger); }
.dv-kpi__trend { font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-kpi__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--dv-space-2); }
.dv-kpi__link { color: var(--dv-text-link); font-weight: var(--dv-weight-semibold); font-size: var(--dv-text-sm); }
.dv-kpi.is-active-filter { background: var(--dv-color-dew); border-color: var(--dv-color-emerald-200); }
.dv-fiche-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 20px;
    align-items: start;
}
@media (max-width: 1100px) {
    .dv-fiche-grid { grid-template-columns: 1fr; }
}
.dv-fiche-grid.is-noside { grid-template-columns: 1fr; }
.dv-fiche-grid.is-noside .dv-fiche-grid__side { display: none; }
.dv-side-pane { display: flex; flex-direction: column; gap: 20px; }
.dv-fiche-grid__main,
.dv-fiche-grid__side {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}
.dv-fiche-grid__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 900px) {
    .dv-fiche-grid__row { grid-template-columns: 1fr; }
}
.dv-fiche-card {
    background: #fff;
    border-radius: var(--dv-radius-lg);
    box-shadow: 0 1px 3px rgba(31, 61, 51, 0.05);
    border: 1px solid var(--dv-border-default);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.dv-fiche-card__header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--dv-border-default);
    font-weight: var(--dv-weight-semibold);
    color: var(--dv-color-forest);
    font-size: 0.95rem;
    background: var(--dv-bg-muted); 
}
.dv-fiche-card__header [data-lucide] {
    width: 18px;
    height: 18px;
    color: var(--dv-color-emerald);
    flex-shrink: 0;
}
.dv-fiche-card__title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dv-fiche-card__header-badge {
    flex-shrink: 0;
}
.dv-fiche-card__header-action {
    margin-left: auto;
    flex-shrink: 0;
}
.dv-fiche-card__body {
    padding: 8px 20px 16px;
    flex: 1 1 auto;
}
.dv-fiche-card__body--tight { padding: 4px 20px 10px; }
.dv-fiche-card__footer {
    padding: 12px 20px;
    border-top: 1px solid var(--dv-border-default);
    background: var(--dv-g-50);
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.dv-fiche-row {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 12px;
    padding: 8px 0;
    align-items: center;
}
.dv-fiche-row + .dv-fiche-row {
    border-top: 1px solid var(--dv-bg-muted);
}
.dv-fiche-row__label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--dv-text-muted);
    font-weight: var(--dv-weight-medium);
}
.dv-fiche-row__label [data-lucide] {
    width: 14px;
    height: 14px;
    color: var(--dv-text-subtle);
}
.dv-fiche-row__value {
    font-size: 0.88rem;
    color: var(--dv-color-forest);
    word-break: break-word;
    line-height: 1.4;
}
.dv-fiche-row__value--right { text-align: right; }
.dv-fiche-row__value--keep { word-break: normal; overflow-wrap: normal; hyphens: none; }
.dv-info-row { display: flex; align-items: center; padding: 6px 12px; }
.dv-info-row + .dv-info-row { border-top: 1px solid var(--dv-bg-muted); }
.dv-info-row__label { width: 130px; flex-shrink: 0; display: flex; align-items: center; gap: 4px; font-size: 0.78rem; color: var(--dv-text-muted); }
.dv-info-row__label [data-lucide] { width: 10px; height: 10px; flex-shrink: 0; }
.dv-info-row__value { flex: 1; min-width: 0; font-size: 0.8rem; color: var(--dv-color-forest); word-break: normal; overflow-wrap: normal; hyphens: none; }
.dv-info-row__empty { color: var(--dv-text-muted); }
.dv-fiche-row__subtext {
    display: block;
    font-size: 0.76rem;
    color: var(--dv-text-muted);
    margin-top: 2px;
    line-height: 1.3;
}
.dv-fiche-row__value--mono,
.dv-fiche-row .dv-mono {
    display: inline-block;
    font-family: var(--dv-font-mono);
    background: var(--dv-color-dew);
    color: var(--dv-color-forest);
    padding: 2px 7px;
    border-radius: var(--dv-radius-sm);
    font-size: 0.82rem;
}
.dv-fiche-section {
    padding: 12px 0;
    border-top: 1px dashed var(--dv-border-default);
}
.dv-fiche-section:first-child { border-top: 0; padding-top: 4px; }
.dv-fiche-section__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: var(--dv-weight-semibold);
    color: var(--dv-color-forest);
    margin-bottom: 6px;
}
.dv-fiche-section__title [data-lucide] {
    width: 14px;
    height: 14px;
    color: var(--dv-color-emerald);
}
.dv-fiche-section__action {
    margin-left: auto;
}
.dv-fiche-grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
    padding: 6px 0;
}
@media (max-width: 600px) { .dv-fiche-grid2 { grid-template-columns: 1fr; } }
.dv-fiche-grid2 .dv-fiche-row {
    display: block;
    padding: 4px 0;
    border-top: 0 !important;
}
.dv-fiche-grid2 .dv-fiche-row__label { margin-bottom: 3px; }
.dv-tabs-h {
    display: flex;
    gap: var(--dv-space-1);
    margin-bottom: var(--dv-space-5);
    padding: var(--dv-space-1);
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}
.dv-tabs-h::-webkit-scrollbar { display: none; } 
.dv-tab {
    display: inline-flex;
    align-items: center;
    gap: var(--dv-space-2);
    padding: var(--dv-space-2) var(--dv-space-3);
    color: var(--dv-g-700);
    text-decoration: none;
    font-weight: var(--dv-weight-medium);
    font-size: var(--dv-text-sm);
    border: 0;
    border-radius: var(--dv-radius-md);
    background: transparent;
    transition: color var(--dv-transition-fast),
                background-color var(--dv-transition-fast);
    cursor: pointer;
    white-space: nowrap;
}
.dv-tab:hover {
    color: var(--dv-text-primary);
    background: var(--dv-bg-muted);
    text-decoration: none;
}
.dv-tab.is-active {
    color: var(--dv-color-emerald-800);
    background: var(--dv-color-emerald-50);
}
.dv-tab [data-lucide] {
    width: 16px;
    height: 16px;
}
.dv-tab__count {
    display: inline-block;
    padding: 0 7px;
    border-radius: var(--dv-radius-full);
    background: var(--dv-bg-muted);
    color: var(--dv-text-muted);
    font-size: 0.72rem;
    font-weight: var(--dv-weight-semibold);
    margin-left: 4px;
    line-height: 1.6;
}
.dv-tab.is-active .dv-tab__count {
    background: var(--dv-color-dew);
    color: var(--dv-color-emerald);
}
.dv-action-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--dv-border-default);
}
.dv-action-bar__left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px; 
}
.dv-action-bar__right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.dv-action-bar__back {
    color: var(--dv-text-muted);
}
.dv-action-bar__back:hover {
    color: var(--dv-text-primary);
    background: var(--dv-bg-muted);
}
@media (max-width: 768px) {
    .dv-action-bar {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .dv-action-bar__right {
        justify-content: stretch;
    }
    .dv-action-bar__right > * {
        flex: 1;
    }
}
.dv-data-table-wrapper {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}
.dv-data-table-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--dv-border-default);
    flex-wrap: wrap;
}
.dv-data-search {
    position: relative;
    flex: 1;
    min-width: 240px;
}
.dv-data-search input {
    width: 100%;
    padding: 9px 14px 9px 38px;
    border: 1px solid var(--dv-border-default);
    border-radius: 8px;
    font-size: 0.92rem;
    background: var(--dv-bg-muted);
    color: var(--dv-text-primary);
    transition: all 0.15s;
}
.dv-data-search input:focus {
    outline: none;
    border-color: var(--dv-color-emerald);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(45, 122, 95, 0.1);
}
.dv-data-search__icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--dv-text-muted);
    pointer-events: none;
}
.dv-data-search__icon i[data-lucide] {
    width: 16px;
    height: 16px;
}
.dv-data-search input::placeholder {
    color: var(--dv-text-muted);
}
.dv-data-table-toolbar__filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.dv-data-table-toolbar__sep {
    width: 1px;
    height: 22px;
    background: var(--dv-border-default);
}
.dv-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}
.dv-data-table thead th {
    text-align: left;
    padding: 12px 20px;
    background: var(--dv-bg-muted);
    border-bottom: 1px solid var(--dv-border-default);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--dv-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}
.dv-data-table thead th.is-sortable {
    cursor: pointer;
    user-select: none;
    transition: color 0.1s;
}
.dv-data-table thead th.is-sortable:hover {
    color: var(--dv-text-primary);
}
.dv-data-table__sort {
    display: inline-flex;
    flex-direction: column;
    line-height: 0;
    margin-left: 4px;
    vertical-align: middle;
    color: var(--dv-text-subtle);
}
.dv-data-table__sort i[data-lucide] {
    width: 10px;
    height: 10px;
    display: block;
}
.dv-data-table thead th.is-sorted-asc .dv-data-table__sort i:first-child,
.dv-data-table thead th.is-sorted-desc .dv-data-table__sort i:last-child {
    color: var(--dv-color-emerald);
}
.dv-data-table thead th.is-sorted-asc,
.dv-data-table thead th.is-sorted-desc {
    color: var(--dv-color-emerald);
}
.dv-data-table tbody tr {
    border-bottom: 1px solid var(--dv-bg-muted);
    transition: background 0.15s;
}
.dv-data-table tbody tr:hover {
    background: var(--dv-color-dew);
}
.dv-data-table tbody tr:last-child {
    border-bottom: 0;
}
.dv-data-table tbody td {
    padding: 14px 20px;
    vertical-align: middle;
    color: var(--dv-text-primary);
}
.dv-data-table__cell--user {
    display: flex;
    align-items: center;
    gap: 12px;
}
.dv-data-table__user-info {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}
.dv-data-table__user-name {
    font-weight: 600;
    color: var(--dv-text-primary);
}
.dv-data-table__user-sub {
    font-size: 0.78rem;
    color: var(--dv-text-muted);
    font-family: var(--dv-font-mono);
}
.dv-data-table__cell--actions {
    text-align: right;
    white-space: nowrap;
}
.dv-data-table__cell--actions .dv-btn {
    margin-left: 4px;
}
.dv-data-table__cell--mono {
    font-family: var(--dv-font-mono);
    font-size: 0.85rem;
}
.dv-data-table__cell--meta {
    color: var(--dv-text-muted);
    font-size: 0.82rem;
}
.dv-data-table__empty {
    padding: 60px 20px;
    text-align: center;
    color: var(--dv-text-muted);
}
.dv-data-table__empty i[data-lucide] {
    width: 48px;
    height: 48px;
    color: var(--dv-text-subtle);
    margin-bottom: 12px;
}
.dv-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px;
    border-top: 1px solid var(--dv-border-default);
    background: var(--dv-bg-muted);
    flex-wrap: wrap;
}
.dv-pagination__info {
    color: var(--dv-text-muted);
    font-size: 0.85rem;
}
.dv-pagination__info strong {
    color: var(--dv-text-primary);
    font-weight: 600;
}
.dv-pagination__pages {
    display: flex;
    align-items: center;
    gap: 4px;
}
.dv-pagination__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border-radius: 7px;
    color: var(--dv-text-primary);
    font-size: 0.88rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    border: 1px solid transparent;
    transition: all 0.15s;
}
.dv-pagination__page:hover:not(.is-disabled):not(.is-active) {
    background: #fff;
    border-color: var(--dv-border-default);
}
.dv-pagination__page.is-active {
    background: var(--dv-color-emerald);
    color: #fff;
    border-color: var(--dv-color-emerald);
}
.dv-pagination__page.is-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.dv-pagination__page i[data-lucide] {
    width: 16px;
    height: 16px;
}
.dv-pagination__per-page {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    color: var(--dv-text-muted);
}
.dv-pagination__per-page select {
    padding: 6px 28px 6px 10px;
    border: 1px solid var(--dv-border-default);
    border-radius: 6px;
    background: #fff;
    font-size: 0.85rem;
    cursor: pointer;
}
@media (max-width: 768px) {
    .dv-pagination {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .dv-pagination__pages {
        justify-content: center;
    }
}
.dv-user-badge {
    position: relative;
    display: inline-block;
}
.dv-user-badge__button {
    display: inline-flex;
    align-items: center;
    gap: var(--dv-space-2);
    padding: 4px 12px 4px 4px;
    border: 0;
    border-radius: var(--dv-radius-full);
    background: var(--dv-bg-card);
    cursor: pointer;
    font-family: inherit;
    color: var(--dv-text-primary);
    font-size: var(--dv-text-sm);
    line-height: 1;
}
.dv-user-badge__button:hover { background: var(--dv-color-emerald-50); }
.dv-user-badge__button:focus-visible {
    outline: var(--dv-focus-ring-width) solid var(--dv-color-mint);
    outline-offset: var(--dv-focus-ring-offset);
}
.dv-user-badge__info {
    display: flex;
    flex-direction: column;
    text-align: left;
    line-height: 1.2;
    gap: 2px;
}
.dv-user-badge__name {
    font-weight: var(--dv-weight-medium);
    font-size: var(--dv-text-sm);
    color: var(--dv-text-primary);
}
.dv-user-badge__role {
    font-size: 0.6875rem;
    color: var(--dv-text-muted);
}
.dv-user-badge__chevron {
    color: var(--dv-text-muted);
    margin-left: 4px;
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s;
}
.dv-user-badge__button[aria-expanded="true"] .dv-user-badge__chevron {
    transform: rotate(180deg);
}
.dv-user-badge__chevron i[data-lucide] {
    width: 18px;
    height: 18px;
}
.dv-user-badge__dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    border: 1px solid var(--dv-border-default);
    min-width: 280px;
    padding: 6px 0;
    z-index: 1000;
}
.dv-user-badge__dropdown[hidden] { display: none; }
.dv-user-badge__dropdown-header {
    padding: 12px 18px 10px;
}
.dv-user-badge__dropdown-name {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--dv-text-primary);
    display: block;
}
.dv-user-badge__dropdown-email {
    color: var(--dv-color-tender);
    font-size: 0.85rem;
    display: block;
    margin-top: 2px;
    word-break: break-all;
}
.dv-user-badge__divider {
    height: 1px;
    background: var(--dv-border-default);
    margin: 4px 14px;
}
.dv-user-badge__section-label {
    padding: 8px 18px 4px;
    font-size: 0.7rem;
    color: var(--dv-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}
.dv-user-badge__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
    color: var(--dv-text-primary);
    text-decoration: none;
    font-size: 0.92rem;
    transition: background 0.1s;
    cursor: pointer;
    background: transparent;
    border: 0;
    width: 100%;
    text-align: left;
    font-family: inherit;
}
.dv-user-badge__item:hover {
    background: var(--dv-bg-muted);
}
.dv-user-badge__item i[data-lucide] {
    width: 18px;
    height: 18px;
    color: var(--dv-text-muted);
    flex-shrink: 0;
}
.dv-user-badge__item--danger {
    color: var(--dv-color-danger);
}
.dv-user-badge__item--danger i[data-lucide] {
    color: var(--dv-color-danger);
}
.dv-user-badge__item--danger:hover {
    background: var(--dv-color-danger-bg);
}
.dv-accordion {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    border: 1px solid var(--dv-border-default);
}
.dv-accordion__item {
    border-bottom: 1px solid var(--dv-border-default);
}
.dv-accordion__item:last-child {
    border-bottom: 0;
}
.dv-accordion__header {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 16px 20px;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: background 0.15s;
}
.dv-accordion__header:hover {
    background: var(--dv-bg-muted);
}
.dv-accordion__header:focus-visible {
    outline: 2px solid var(--dv-color-emerald);
    outline-offset: -2px;
}
.dv-accordion__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--dv-color-dew);
    color: var(--dv-color-emerald);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.dv-accordion__icon i[data-lucide] {
    width: 20px;
    height: 20px;
}
.dv-accordion__title-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.dv-accordion__title {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--dv-text-primary);
    line-height: 1.3;
}
.dv-accordion__subtitle {
    font-size: 0.82rem;
    color: var(--dv-text-muted);
    line-height: 1.4;
}
.dv-accordion__subtitle code {
    background: var(--dv-bg-muted);
    padding: 1px 6px;
    border-radius: 3px;
    font-family: var(--dv-font-mono);
    font-size: 0.78rem;
    color: var(--dv-color-tender);
}
.dv-accordion__status {
    flex-shrink: 0;
}
.dv-accordion__chevron {
    color: var(--dv-text-muted);
    transition: transform 0.2s;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
}
.dv-accordion__chevron i[data-lucide] {
    width: 20px;
    height: 20px;
}
.dv-accordion__item.is-open .dv-accordion__chevron {
    transform: rotate(180deg);
    color: var(--dv-color-emerald);
}
.dv-accordion__item.is-open .dv-accordion__header {
    background: var(--dv-color-dew);
}
.dv-accordion__body {
    padding: 4px 20px 20px;
    color: var(--dv-text-primary);
    font-size: 0.9rem;
    line-height: 1.55;
    border-top: 1px solid var(--dv-border-default);
    animation: dvAccBody 0.2s ease-out;
}
.dv-accordion__item:not(.is-open) .dv-accordion__body {
    display: none;
}
@keyframes dvAccBody {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.dv-accordion__body p { margin: 12px 0; }
.dv-accordion__body p:first-child { margin-top: 8px; }
.dv-accordion__meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-top: 12px;
}
.dv-accordion__meta {
    background: var(--dv-bg-muted);
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 0.85rem;
}
.dv-accordion__meta-label {
    display: block;
    color: var(--dv-text-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 3px;
}
.dv-accordion__meta-value {
    font-weight: 600;
    color: var(--dv-text-primary);
}
.dv-accordion__actions {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
}
.dv-accordion__log {
    background: #0f172a;
    color: #e2e8f0;
    padding: 12px 14px;
    border-radius: 8px;
    font-family: var(--dv-font-mono);
    font-size: 0.78rem;
    line-height: 1.5;
    margin-top: 14px;
    max-height: 200px;
    overflow-y: auto;
}
.dv-accordion__log span.ok    { color: #6ee7b7; }
.dv-accordion__log span.warn  { color: #fcd34d; }
.dv-accordion__log span.err   { color: #fca5a5; }
.dv-accordion__log span.muted { color: var(--dv-text-muted); }
.dv-accordion--spaced {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.dv-accordion--spaced .dv-accordion__item {
    background: #fff;
    border: 1px solid rgba(45, 122, 95, 0.15);
    border-left: 3px solid var(--dv-color-emerald);
    border-radius: 12px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.04),
        0 2px 8px rgba(45, 122, 95, 0.06);
    transition: box-shadow 0.18s, transform 0.18s, border-left-color 0.18s;
}
.dv-accordion--spaced .dv-accordion__item:last-child {
    border-bottom: 1px solid rgba(45, 122, 95, 0.15);
}
.dv-accordion--spaced .dv-accordion__item:hover {
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.06),
        0 4px 14px rgba(45, 122, 95, 0.10);
    transform: translateY(-1px);
}
.dv-accordion--spaced .dv-accordion__item.is-open {
    border-left-width: 4px;
    border-left-color: var(--dv-color-tender);
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.06),
        0 6px 18px rgba(45, 122, 95, 0.14);
}
.dv-accordion--spaced .dv-accordion__header {
    background: transparent;
    color: var(--dv-color-forest);
    padding: 18px 22px;
}
.dv-accordion--spaced .dv-accordion__header:hover {
    background: rgba(220, 241, 224, 0.35);
}
.dv-accordion--spaced .dv-accordion__item.is-open .dv-accordion__header {
    background: rgba(220, 241, 224, 0.5);
}
.dv-accordion--spaced .dv-accordion__title {
    color: var(--dv-color-forest);
    font-weight: 600;
}
.dv-accordion--spaced .dv-accordion__subtitle {
    color: rgba(31, 61, 51, 0.65);
}
.dv-accordion--spaced .dv-accordion__chevron {
    color: var(--dv-color-emerald);
}
.dv-accordion--spaced .dv-accordion__body {
    border-top: 1px solid rgba(45, 122, 95, 0.15);
    background: rgba(220, 241, 224, 0.18);
    color: var(--dv-color-forest);
}
.dv-accordion__intro {
    background: var(--dv-color-info-bg);
    border: 1px solid var(--dv-color-info-border);
    border-radius: 10px;
    padding: 14px 18px;
    margin: 14px 0 20px;
    color: var(--dv-color-info);
    font-size: 0.88rem;
    line-height: 1.6;
}
.dv-accordion__intro-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: var(--dv-color-info);
    margin-bottom: 10px;
    font-size: 0.92rem;
}
.dv-accordion__intro-title i[data-lucide] { width: 18px; height: 18px; }
.dv-accordion__intro ol {
    margin: 0;
    padding-left: 22px;
    color: var(--dv-color-info);
}
.dv-accordion__intro ol li { margin: 4px 0; }
.dv-accordion__intro strong { color: var(--dv-color-info); }
.dv-accordion__intro code {
    background: rgba(30, 64, 175, 0.1);
    color: #be185d;
    padding: 1px 6px;
    border-radius: 3px;
    font-family: var(--dv-font-mono);
    font-size: 0.82rem;
}
.dv-accordion__body-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 2fr;
    gap: 28px;
    align-items: start;
}
@media (max-width: 900px) {
    .dv-accordion__body-grid { grid-template-columns: 1fr; }
}
.dv-accordion__meta-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.dv-accordion__meta-list-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.dv-accordion__meta-list-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--dv-text-muted);
    font-weight: 600;
}
.dv-accordion__meta-list-label i[data-lucide] { width: 14px; height: 14px; }
.dv-accordion__meta-list-value {
    color: var(--dv-color-forest);
    font-size: 0.92rem;
}
.dv-accordion__meta-list-value--mono {
    font-family: var(--dv-font-mono);
    color: #be185d;
    font-size: 0.85rem;
}
.dv-accordion__logs-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.dv-accordion__log-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dv-accordion__log-block-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: var(--dv-color-forest);
    font-size: 0.92rem;
}
.dv-accordion__log-block-title i[data-lucide] { width: 16px; height: 16px; }
.dv-accordion__log-path {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #be185d;
    font-family: var(--dv-font-mono);
    font-size: 0.78rem;
    margin-top: 4px;
}
.dv-accordion__log-path i[data-lucide] { width: 12px; height: 12px; color: #be185d; }
.dv-accordion__logs-stack .dv-accordion__log { margin-top: 0; min-height: 60px; }
.dv-accordion__item[class*="dv-accordion__item--"] {
    border-left: 3px solid transparent;
}
.dv-accordion__item--cyan { border-left-color: #06b6d4 !important; }
.dv-accordion__item--cyan .dv-accordion__icon { background: #cffafe !important; color: #0e7490 !important; }
.dv-accordion__item--cyan .dv-accordion__icon svg { stroke: #0e7490 !important; color: #0e7490 !important; }
.dv-accordion__item--cyan.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(6,182,212,0.18); }
.dv-accordion__item--blue { border-left-color: var(--dv-color-info) !important; }
.dv-accordion__item--blue .dv-accordion__icon { background: var(--dv-color-info-bg) !important; color: var(--dv-color-info) !important; }
.dv-accordion__item--blue .dv-accordion__icon svg { stroke: var(--dv-color-info) !important; color: var(--dv-color-info) !important; }
.dv-accordion__item--blue.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(59,130,246,0.18); }
.dv-accordion__item--orange { border-left-color: var(--dv-color-warning) !important; }
.dv-accordion__item--orange .dv-accordion__icon { background: var(--dv-color-warning-bg) !important; color: var(--dv-color-warning) !important; }
.dv-accordion__item--orange .dv-accordion__icon svg { stroke: var(--dv-color-warning) !important; color: var(--dv-color-warning) !important; }
.dv-accordion__item--orange.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(245,158,11,0.18); }
.dv-accordion__item--red { border-left-color: var(--dv-color-danger) !important; }
.dv-accordion__item--red .dv-accordion__icon { background: var(--dv-color-danger-bg) !important; color: var(--dv-color-danger) !important; }
.dv-accordion__item--red .dv-accordion__icon svg { stroke: var(--dv-color-danger) !important; color: var(--dv-color-danger) !important; }
.dv-accordion__item--red.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(220,38,38,0.18); }
.dv-accordion__item--green { border-left-color: var(--dv-color-success) !important; }
.dv-accordion__item--green .dv-accordion__icon { background: var(--dv-color-success-bg) !important; color: var(--dv-color-success) !important; }
.dv-accordion__item--green .dv-accordion__icon svg { stroke: var(--dv-color-success) !important; color: var(--dv-color-success) !important; }
.dv-accordion__item--green.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(16,185,129,0.18); }
.dv-accordion__item--violet { border-left-color: #8b5cf6 !important; }
.dv-accordion__item--violet .dv-accordion__icon { background: #ede9fe !important; color: #5b21b6 !important; }
.dv-accordion__item--violet .dv-accordion__icon svg { stroke: #5b21b6 !important; color: #5b21b6 !important; }
.dv-accordion__item--violet.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(139,92,246,0.18); }
.dv-accordion__item--pink { border-left-color: #ec4899 !important; }
.dv-accordion__item--pink .dv-accordion__icon { background: #fce7f3 !important; color: #9d174d !important; }
.dv-accordion__item--pink .dv-accordion__icon svg { stroke: #9d174d !important; color: #9d174d !important; }
.dv-accordion__item--pink.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(236,72,153,0.18); }
.dv-accordion__item--yellow { border-left-color: #eab308 !important; }
.dv-accordion__item--yellow .dv-accordion__icon { background: var(--dv-color-warning-bg) !important; color: var(--dv-color-warning) !important; }
.dv-accordion__item--yellow .dv-accordion__icon svg { stroke: var(--dv-color-warning) !important; color: var(--dv-color-warning) !important; }
.dv-accordion__item--yellow.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(234,179,8,0.18); }
.dv-accordion__item--grey { border-left-color: var(--dv-g-400) !important; }
.dv-accordion__item--grey .dv-accordion__icon { background: var(--dv-g-200) !important; color: var(--dv-text-muted) !important; }
.dv-accordion__item--grey .dv-accordion__icon svg { stroke: var(--dv-text-muted) !important; color: var(--dv-text-muted) !important; }
.dv-accordion__item--grey.is-open { box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 6px 18px rgba(148,163,184,0.18); }
.dv-form-section-title {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--dv-text-muted);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--dv-border-default);
}
.dv-form-section-title + .dv-form-row,
.dv-form-section-title + div { margin-top: 0; }
.dv-form-row + .dv-form-section-title { margin-top: 20px; }
.dv-form-row { margin-bottom: 14px; }
.dv-form-row label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 4px;
    color: var(--dv-text-primary);
}
.dv-form-row input,
.dv-form-row select,
.dv-form-row textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--dv-border-default);
    border-radius: 6px;
    font-size: 0.92rem;
    font-family: inherit;
    background: var(--dv-bg-card);
    color: var(--dv-text-primary);
    box-sizing: border-box;
}
.dv-form-row input:focus,
.dv-form-row select:focus,
.dv-form-row textarea:focus {
    outline: 2px solid var(--dv-color-emerald);
    outline-offset: -1px;
    border-color: var(--dv-color-emerald);
}
.dv-form-row input:disabled,
.dv-form-row select:disabled,
.dv-form-row textarea:disabled {
    background: var(--dv-bg-muted);
    color: var(--dv-text-muted);
    cursor: not-allowed;
}
.dv-data-table tbody tr[data-href] {
    cursor: pointer;
    transition: background var(--dv-transition-fast);
}
.dv-data-table tbody tr[data-href]:hover {
    background: var(--dv-color-dew);
}
.dv-data-table tbody tr[data-href]:hover td {
    color: var(--dv-text-primary);
}
@media (max-width: 1024px) {
    .dv-content {
        padding: var(--dv-space-4) var(--dv-space-5);
    }
    .dv-page-header {
        margin: 0 0 var(--dv-space-5);
    }
}
@media (max-width: 768px) {
    .dv-content {
        padding: var(--dv-space-4);
    }
    .dv-page-header {
        margin: 0 0 var(--dv-space-4);
        flex-direction: column;
        align-items: flex-start;
        gap: var(--dv-space-3);
    }
    .dv-page-header__right {
        width: 100%;
    }
    .dv-fiche-row {
        grid-template-columns: 1fr;
        gap: var(--dv-space-1) 0;
    }
    .dv-fiche-row__label {
        padding-bottom: 0;
    }
    .dv-fiche-grid {
        grid-template-columns: 1fr;
    }
    .dv-fiche-grid__row {
        grid-template-columns: 1fr;
    }
    .dv-kpis {
        grid-template-columns: 1fr 1fr;
    }
    .dv-tab-pane.is-active { gap: 12px; }
}
.dv-info-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid var(--dv-border-default);
    overflow: hidden;
}
.dv-info-cols > *:first-child {
    border-right: 1px solid var(--dv-border-default);
}
@media (max-width: 640px) {
    .dv-info-cols {
        grid-template-columns: 1fr;
    }
    .dv-info-cols > *:first-child {
        border-right: none;
        border-bottom: 1px solid var(--dv-border-default);
    }
}
@media (max-width: 640px) {
    #card-integrations li {
        flex-wrap: wrap;
        gap: 4px;
    }
    .dv-fiche-row {
        grid-template-columns: 1fr;
    }
}
.dv-user-badge--scope .dv-user-badge__button {
    gap: 9px;
    padding: 4px 12px 4px 4px;
    max-width: 260px;
    border-color: var(--dv-border-default);
}
.dv-user-badge--scope .dv-user-badge__button:hover {
    border-color: var(--dv-color-emerald);
    background: var(--dv-color-dew);
}
.dv-scope-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 50%;
    background: var(--dv-color-dew);
    color: var(--dv-color-forest);
}
.dv-scope-mark i[data-lucide] { width: 16px; height: 16px; }
.dv-user-badge--scope .dv-user-badge__info { min-width: 0; }
.dv-user-badge--scope .dv-user-badge__role {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
    color: var(--dv-text-muted);
}
.dv-user-badge--scope .dv-user-badge__name {
    font-size: 0.88rem;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dv-scope-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 16px;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
    font: inherit;
    font-size: 0.9rem;
    color: var(--dv-text-primary);
    transition: background 0.12s;
}
.dv-scope-item:hover { background: var(--dv-color-dew); }
.dv-scope-item i[data-lucide] {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: var(--dv-text-muted);
}
.dv-scope-item__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dv-scope-item[aria-current="true"] {
    font-weight: 600;
    color: var(--dv-color-forest);
    background: var(--dv-color-dew);
}
.dv-scope-item[aria-current="true"] i[data-lucide] { color: var(--dv-color-emerald); }
.dv-scope-form { margin: 0; }
@media (max-width: 860px) {
    .dv-user-badge--scope .dv-user-badge__info { display: none; }
    .dv-user-badge--scope .dv-user-badge__button { padding: 4px 8px 4px 4px; }
}
.dv-user-badge__item--soon {
    color: var(--dv-text-muted);
    cursor: default;
}
.dv-user-badge__item--soon:hover { background: none; }
.dv-user-badge__item--soon .dv-item-soon {
    margin-left: auto;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #e0e7ff;
    color: #3730a3;
    border-radius: 999px;
    padding: 2px 8px;
}
:root { --dv-topbar-h: 56px; }
.dv-context {
    position: sticky;
    top: var(--dv-topbar-h);
    z-index: 40;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    min-height: var(--dv-context-min-height);
    padding: 6px var(--dv-space-6);
    background: var(--dv-bg-card);
    color: var(--dv-text-body);
    font-size: var(--dv-text-sm);
    border-bottom: 1px solid var(--dv-border-default);
}
@media (max-width: 640px) { .dv-context { padding-inline: var(--dv-space-4); } }
.dv-context__nav { flex: 1 1 auto; min-width: 0; }
.dv-context__trail {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; gap: 2px; flex-wrap: wrap;
}
.dv-context__seg { display: flex; align-items: center; position: relative; }
.dv-context__sep { color: var(--dv-g-400); padding: 0 6px; }
.dv-context__btn,
.dv-context__seg:first-child > .dv-context__txt {
    font: inherit; font-size: var(--dv-text-sm); color: var(--dv-text-primary);
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 10px;
    background: var(--dv-bg-surface-2);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-md);
}
.dv-context__btn { cursor: pointer; }
.dv-context__btn:hover { border-color: var(--dv-color-emerald); }
.dv-context__btn:focus-visible { outline: var(--dv-focus-ring-width) solid var(--dv-focus-ring-color); outline-offset: var(--dv-focus-ring-offset); }
.dv-context__btn > span:first-of-type { font-weight: var(--dv-weight-semibold); }
.dv-context__btn i[data-lucide] { width: 14px; height: 14px; }
.dv-context__chevron { width: 14px; height: 14px; opacity: .7; display: inline-flex; }
.dv-context__txt {
    font-size: var(--dv-text-sm); padding: 3px 6px;
    display: inline-flex; align-items: center; gap: 6px;
}
.dv-context__txt i[data-lucide] { width: 14px; height: 14px; }
.dv-context__txt strong { color: var(--dv-text-primary); font-weight: var(--dv-weight-medium); }
.dv-context__mod,
.dv-context__mod:visited {
    font-size: var(--dv-text-sm); color: var(--dv-text-link);
    text-decoration: none; padding: 3px 6px; border-radius: var(--dv-radius-sm);
}
.dv-context__mod:hover { text-decoration: underline; color: var(--dv-text-link-hover); }
.dv-context__obj {
    font-size: var(--dv-text-sm); font-weight: var(--dv-weight-medium); color: var(--dv-text-primary); padding: 3px 6px;
    display: inline-flex; align-items: center; gap: 7px;
    max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dv-context__ref {
    font-family: var(--dv-font-mono); font-size: var(--dv-text-xs);
    color: var(--dv-text-body); background: var(--dv-bg-surface-2);
    border: 1px solid var(--dv-border-default);
    padding: 1px 7px; border-radius: var(--dv-radius-sm);
}
.dv-context__aside { margin-left: auto; font-size: var(--dv-text-xs); color: var(--dv-text-muted); white-space: nowrap; }
.dv-context .dv-user-badge__dropdown { top: calc(100% + 4px); left: 0; right: auto; min-width: 288px; max-height: 70vh; overflow-y: auto; }
.dv-context__score { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; font-size: .82rem; color: var(--dv-color-forest); }
.dv-context__alert { display: inline-flex; align-items: center; gap: 3px; margin-left: 8px; color: var(--dv-color-terra); font-size: .78rem; font-weight: 600; }
.dv-context__alert i[data-lucide] { width: 13px; height: 13px; }
.dv-context__search { padding: 8px 12px 4px; }
.dv-context__search input {
    width: 100%; box-sizing: border-box; font: inherit; font-size: .88rem;
    padding: 7px 10px; border: 1px solid var(--dv-border-default); border-radius: 8px;
}
.dv-context__search input:focus { outline: none; border-color: var(--dv-color-emerald); }
.dv-scope-item[hidden] { display: none; }
.dv-scope-item--depth-0 { padding-left: 16px; }
.dv-scope-item--depth-1 { padding-left: 30px; }
.dv-scope-item--depth-2 { padding-left: 44px; }
.dv-scope-item--depth-3 { padding-left: 58px; }
.dv-scope-item--depth-4 { padding-left: 72px; }
.dv-scope-item--depth-5 { padding-left: 86px; }
.dv-scope-item--depth-6 { padding-left: 100px; }
@media (max-width: 768px) {
    .dv-context__btn > span:not(.dv-context__chevron),
    .dv-context__txt > span { max-width: 26vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .dv-context__obj { max-width: 40vw; }
}
.dv-topbar__search {
    display: inline-flex; align-items: center; gap: var(--dv-space-2);
    min-width: 220px;
    background: rgba(255, 255, 255, .08); color: var(--dv-color-dew);
    border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--dv-radius-md);
    padding: 6px 10px; cursor: pointer; font: inherit; font-size: var(--dv-text-sm);
}
.dv-topbar__search:hover { background: rgba(255, 255, 255, .14); }
.dv-topbar__search:focus-visible { outline: var(--dv-focus-ring-width) solid var(--dv-color-mint); outline-offset: var(--dv-focus-ring-offset); }
.dv-topbar__search i[data-lucide] { width: 14px; height: 14px; }
.dv-topbar__search kbd {
    margin-left: auto;
    font-family: var(--dv-font-mono); font-size: 0.6875rem;
    background: rgba(255, 255, 255, .14); border-radius: 4px; padding: 1px 5px; line-height: 1.5;
}
@media (max-width: 860px) { .dv-topbar__search { min-width: 0; } .dv-topbar__search .dv-topbar__search-label, .dv-topbar__search kbd { display: none; } }
.dv-cmdk { position: fixed; inset: 0; z-index: 200; display: none; }
.dv-cmdk.is-open { display: block; }
.dv-cmdk__backdrop { position: absolute; inset: 0; background: rgba(15,23,22,.45); }
.dv-cmdk__panel {
    position: relative; max-width: 560px; margin: 10vh auto 0;
    background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.3); overflow: hidden;
}
.dv-cmdk__input { width: 100%; box-sizing: border-box; border: 0; border-bottom: 1px solid var(--dv-border-default); padding: 16px 18px; font: inherit; font-size: 1rem; }
.dv-cmdk__input:focus { outline: none; }
.dv-cmdk__results { max-height: 52vh; overflow-y: auto; margin: 0; padding: 6px; list-style: none; }
.dv-cmdk__item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; cursor: pointer; font-size: .92rem; }
.dv-cmdk__item.is-active, .dv-cmdk__item:hover { background: var(--dv-color-dew); }
.dv-cmdk__item i[data-lucide] { width: 16px; height: 16px; flex: 0 0 16px; color: var(--dv-text-muted); }
.dv-cmdk__item-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dv-cmdk__kind { margin-left: auto; font-size: .7rem; color: var(--dv-text-muted); text-transform: uppercase; letter-spacing: .04em; flex: 0 0 auto; }
.dv-cmdk__empty { padding: 20px; color: var(--dv-text-muted); font-size: .9rem; text-align: center; }
.dv-flash {
    padding: var(--dv-space-3) var(--dv-space-4);
    margin-bottom: var(--dv-space-5);
    border: 1px solid var(--dv-color-neutral-border);
    border-radius: var(--dv-radius-md);
    background: var(--dv-color-neutral-bg);
    color: var(--dv-color-neutral);
    font-size: var(--dv-text-md);
}
.dv-flash--success { background: var(--dv-color-success-bg); border-color: var(--dv-color-success-border); color: var(--dv-color-success); }
.dv-flash--error,
.dv-flash--danger  { background: var(--dv-color-danger-bg);  border-color: var(--dv-color-danger-border);  color: var(--dv-color-danger); }
.dv-flash--info    { background: var(--dv-color-info-bg);    border-color: var(--dv-color-info-border);    color: var(--dv-color-info); }
.dv-flash--warning,
.dv-flash--warn    { background: var(--dv-color-warning-bg); border-color: var(--dv-color-warning-border); color: var(--dv-color-warning); }
.dv-flash [data-lucide] { width: var(--dv-icon-sm); height: var(--dv-icon-sm); vertical-align: -3px; }
.dv-flash__action,
.dv-flash__action:visited { color: inherit; font-weight: 600; text-decoration: underline; }
.dv-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--dv-space-6);
}
.dv-col-3  { grid-column: span 3; }
.dv-col-4  { grid-column: span 4; }
.dv-col-5  { grid-column: span 5; }
.dv-col-6  { grid-column: span 6; }
.dv-col-7  { grid-column: span 7; }
.dv-col-8  { grid-column: span 8; }
.dv-col-9  { grid-column: span 9; }
.dv-col-12 { grid-column: span 12; }
[class*="dv-col-"] { min-width: 0; }
.dv-stack { display: grid; gap: var(--dv-space-6); align-content: start; min-width: 0; }
@media (max-width: 1100px) {
    .dv-col-3 { grid-column: span 6; }
    .dv-col-4, .dv-col-5, .dv-col-7, .dv-col-8, .dv-col-9 { grid-column: span 12; }
}
@media (max-width: 640px) {
    .dv-grid { gap: var(--dv-space-4); }
    .dv-col-3, .dv-col-6 { grid-column: span 12; }
}
.dv-fields {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--dv-space-4) var(--dv-space-6);
}
.dv-field {
    display: grid;
    gap: 6px;
    align-content: start;
    min-width: 0;
    grid-column: span 12;
}
.dv-field--s    { grid-column: span 3; }
.dv-field--m    { grid-column: span 6; }
.dv-field--l    { grid-column: span 8; }
.dv-field--full { grid-column: span 12; }
.dv-field > label,
.dv-field__label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--dv-text-sm);
    font-weight: var(--dv-weight-medium);
    color: var(--dv-text-primary);
}
.dv-field__req { color: var(--dv-color-danger); }
.dv-field__help { font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-field__error { font-size: var(--dv-text-xs); color: var(--dv-color-danger); font-weight: var(--dv-weight-medium); }
.dv-input,
.dv-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.dv-field select,
.dv-field textarea {
    width: 100%;
    min-width: 0;
    padding: 9px var(--dv-space-3);
    border: 1px solid var(--dv-border-strong);
    border-radius: var(--dv-radius-md);
    background: var(--dv-bg-card);
    color: var(--dv-text-primary);
    font: inherit;
    font-size: var(--dv-text-md);
    box-sizing: border-box;
}
.dv-field textarea { min-height: 84px; resize: vertical; }
.dv-input:hover,
.dv-field input:hover,
.dv-field select:hover,
.dv-field textarea:hover { border-color: var(--dv-g-400); }
.dv-input:focus,
.dv-field input:not([type="checkbox"]):not([type="radio"]):focus,
.dv-field select:focus,
.dv-field textarea:focus {
    outline: 2px solid var(--dv-border-focus);
    outline-offset: 1px;
    border-color: var(--dv-border-focus);
}
.dv-input:disabled,
.dv-field input:disabled,
.dv-field select:disabled,
.dv-field textarea:disabled,
.dv-field input[readonly] {
    background: var(--dv-bg-muted);
    color: var(--dv-text-muted);
    cursor: not-allowed;
}
.dv-field--error input,
.dv-field--error select,
.dv-field--error textarea,
.dv-input[aria-invalid="true"] { border-color: var(--dv-color-danger); }
.dv-input--mono { font-family: var(--dv-font-mono); font-size: var(--dv-text-sm); }
.dv-field__suffix { display: flex; align-items: stretch; }
.dv-field__suffix input { border-radius: var(--dv-radius-md) 0 0 var(--dv-radius-md) !important; }
.dv-field__suffix > span {
    display: grid;
    place-items: center;
    padding: 0 var(--dv-space-3);
    border: 1px solid var(--dv-border-strong);
    border-left: 0;
    border-radius: 0 var(--dv-radius-md) var(--dv-radius-md) 0;
    background: var(--dv-g-50);
    color: var(--dv-text-muted);
    font-size: var(--dv-text-sm);
}
.dv-fields__section {
    grid-column: span 12;
    border-top: 1px solid var(--dv-border-default);
    padding-top: var(--dv-space-5);
    margin-top: var(--dv-space-2);
}
.dv-fields__section h3 { margin: 0 0 var(--dv-space-1); font-size: var(--dv-text-md); font-weight: var(--dv-weight-semibold); }
@media (max-width: 900px) {
    .dv-field, .dv-field--s, .dv-field--m, .dv-field--l { grid-column: span 12; }
}
.dv-dl { display: grid; grid-template-columns: 200px minmax(0, 1fr); margin: 0; }
.dv-dl dt,
.dv-dl dd { padding: 10px 0; border-top: 1px solid var(--dv-border-default); margin: 0; }
.dv-dl dt:first-of-type,
.dv-dl dt:first-of-type + dd { border-top: 0; }
.dv-dl dt { color: var(--dv-text-muted); font-size: var(--dv-text-sm); padding-right: var(--dv-space-4); }
.dv-dl dd { font-weight: var(--dv-weight-medium); min-width: 0; overflow-wrap: anywhere; }
.dv-dl--compact { grid-template-columns: auto minmax(0, 1fr); gap: 0 var(--dv-space-4); }
.dv-dl--compact dt, .dv-dl--compact dd { padding: 6px 0; border-top: 0; }
@media (max-width: 640px) {
    .dv-dl { grid-template-columns: minmax(0, 1fr); }
    .dv-dl dd { border-top: 0; padding-top: 0; }
}
.dv-ref {
    font-family: var(--dv-font-mono);
    font-size: var(--dv-text-xs);
    background: var(--dv-g-50);
    border: 1px solid var(--dv-border-default);
    border-radius: 6px;
    padding: 1px 7px;
    color: var(--dv-g-700);
}
.dv-todo-tag {
    display: inline-block;
    border: 1px dashed var(--dv-color-warning-border);
    background: var(--dv-color-warning-bg);
    color: var(--dv-color-warning);
    border-radius: 6px;
    padding: 0 var(--dv-space-2);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-medium);
    line-height: 22px;
}
.dv-muted { color: var(--dv-text-muted); }
.dv-link { color: var(--dv-color-emerald-700); font-weight: var(--dv-weight-medium); font-size: var(--dv-text-sm); text-decoration: none; white-space: nowrap; }
.dv-link:hover { text-decoration: underline; color: var(--dv-color-emerald-800); }
.dv-num { font-variant-numeric: tabular-nums; }
.dv-eyebrow { font-size: 11px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--dv-text-muted); font-weight: var(--dv-weight-semibold); }
progress.dv-progress {
    appearance: none;
    -webkit-appearance: none;
    display: block;
    width: 100%;
    height: 8px;
    border: 0;
    border-radius: var(--dv-radius-full);
    background: var(--dv-g-200);
    color: var(--dv-color-emerald);
    overflow: hidden;
}
progress.dv-progress::-webkit-progress-bar { background: var(--dv-g-200); border-radius: var(--dv-radius-full); }
progress.dv-progress::-webkit-progress-value { background: var(--dv-color-emerald); border-radius: var(--dv-radius-full); }
progress.dv-progress::-moz-progress-bar { background: var(--dv-color-emerald); border-radius: var(--dv-radius-full); }
progress.dv-progress--warn::-webkit-progress-value { background: var(--dv-color-terra); }
progress.dv-progress--warn::-moz-progress-bar { background: var(--dv-color-terra); }
progress.dv-progress--danger::-webkit-progress-value { background: var(--dv-color-danger); }
progress.dv-progress--danger::-moz-progress-bar { background: var(--dv-color-danger); }
progress.dv-progress--thin { height: 6px; }
.dv-callout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    padding: var(--dv-space-3) var(--dv-space-4);
    border: 1px solid var(--dv-color-neutral-border);
    border-radius: var(--dv-radius-lg);
    background: var(--dv-g-50);
    font-size: var(--dv-text-sm);
}
.dv-callout--info { background: var(--dv-color-info-bg); border-color: var(--dv-color-info-border); color: var(--dv-color-info); }
.dv-callout--page { margin-bottom: var(--dv-space-4); } 
.dv-callout--brand { background: var(--dv-color-emerald-50); border-color: var(--dv-color-emerald-100); }
.dv-btns { display: flex; flex-wrap: wrap; gap: var(--dv-space-2); align-items: center; }
.dv-more { position: relative; }
.dv-more__menu {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: var(--dv-z-dropdown);
    display: grid;
    min-width: 220px;
    padding: 6px;
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-lg);
}
.dv-more__menu[hidden] { display: none; }
.dv-more__menu a,
.dv-more__menu button {
    display: block;
    width: 100%;
    padding: var(--dv-space-2) 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--dv-text-primary);
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.dv-more__menu a:hover,
.dv-more__menu button:hover { background: var(--dv-bg-muted); }
.dv-more__menu hr { border: 0; border-top: 1px solid var(--dv-border-default); margin: 4px 0; }
.dv-more__menu .is-danger { color: var(--dv-color-danger); }
.dv-more__menu form { margin: 0; }
.dv-form-bar {
    position: sticky;
    bottom: 0;
    z-index: var(--dv-z-base);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    margin-top: var(--dv-space-5);
    padding: var(--dv-space-3) var(--dv-space-6);
    padding-bottom: calc(var(--dv-space-3) + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    box-shadow: 0 -4px 16px rgba(31, 61, 51, 0.06);
}
.dv-score { display: flex; flex-wrap: wrap; gap: var(--dv-space-6); align-items: center; }
.dv-ring { flex: none; display: block; }
.dv-ring--lg { width: 120px; height: 120px; }
.dv-ring--md { width: 88px; height: 88px; }
.dv-ring--sm { width: 44px; height: 44px; }
.dv-ring__track { fill: none; stroke: var(--dv-border-subtle); stroke-width: 3.9; }
.dv-ring__value {
    fill: none;
    stroke: var(--dv-color-emerald);
    stroke-width: 3.9;
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
}
.dv-ring__label {
    font-family: var(--dv-font-title);
    font-size: 9px;
    font-weight: var(--dv-weight-semibold);
    fill: var(--dv-text-primary);
    text-anchor: middle;
    dominant-baseline: central;
    font-variant-numeric: tabular-nums;
}
.dv-ring--md .dv-ring__label { font-size: 8.5px; }
.dv-ring--sm .dv-ring__label { font-family: var(--dv-font-body); font-size: 9.8px; font-weight: var(--dv-weight-bold); }
.dv-steps { list-style: none; margin: 0 0 var(--dv-space-4); padding: 0; display: grid; gap: var(--dv-space-2); }
.dv-steps li { display: flex; align-items: center; gap: 10px; }
.dv-steps li form { margin: 0 0 0 auto; }
.dv-steps__title { margin: var(--dv-space-4) 0 var(--dv-space-2); }
.dv-steps__num {
    width: 22px;
    height: 22px;
    flex: none;
    display: inline-grid;
    place-items: center;
    border: 1.5px solid var(--dv-g-300);
    border-radius: 50%;
    font-size: var(--dv-text-xs);
    color: var(--dv-text-muted);
}
.dv-steps__label { color: var(--dv-text-primary); font-weight: var(--dv-weight-medium); text-decoration: none; }
.dv-steps__label:hover { text-decoration: underline; }
.dv-feed { list-style: none; margin: 0; padding: 0; }
.dv-feed li { display: grid; gap: 4px; padding: var(--dv-space-3) var(--dv-space-6); border-top: 1px solid var(--dv-border-default); }
.dv-feed li:first-child { border-top: 0; }
.dv-feed__meta { display: flex; flex-wrap: wrap; gap: var(--dv-space-2); align-items: center; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-feed__title { color: var(--dv-text-primary); font-weight: var(--dv-weight-medium); text-decoration: none; }
a.dv-feed__title:hover { text-decoration: underline; }
.dv-feed__text {
    margin: 0;
    color: var(--dv-g-700);
    font-size: var(--dv-text-sm);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dv-feed--rows li { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: var(--dv-space-3); }
.dv-stack--tight { gap: var(--dv-space-4); }
.dv-quota { display: grid; gap: 4px; margin: 0; font-size: var(--dv-text-sm); color: var(--dv-g-700); }
.dv-quota__label { display: flex; justify-content: space-between; margin: 0; }
@media (max-width: 640px) {
    .dv-feed--rows li { grid-template-columns: minmax(0, 1fr); }
}
.dv-progress-inline { display: flex; align-items: center; gap: var(--dv-space-3); min-width: 220px; }
.dv-progress-inline progress { flex: 1; }
.dv-callout--actions { margin-bottom: var(--dv-space-6); }
.dv-tags { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.dv-tag--warning { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); }
a.dv-tag { text-decoration: none; }
a.dv-tag:hover { text-decoration: underline; }
a.dv-ref { text-decoration: none; }
a.dv-ref:hover { border-color: var(--dv-color-emerald); color: var(--dv-color-emerald-800); }
.dv-plain-list { margin: var(--dv-space-1) 0 0; padding-left: var(--dv-space-5); font-weight: var(--dv-weight-regular); }
.dv-plain-list li { margin-bottom: var(--dv-space-1); }
.dv-plain-list__note { font-size: var(--dv-text-sm); }
.dv-checklist { list-style: none; margin: 0; padding: var(--dv-space-3); display: grid; gap: 2px; }
.dv-checklist li { display: flex; justify-content: space-between; align-items: center; gap: var(--dv-space-2); padding: var(--dv-space-2) 10px; border-radius: 6px; font-size: var(--dv-text-sm); }
.dv-checklist li:hover { background: var(--dv-g-50); }
.dv-checklist__item { display: flex; align-items: center; gap: 10px; min-width: 0; }
.dv-checklist__ico {
    width: 18px;
    height: 18px;
    flex: none;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    font-size: 11px;
    font-weight: var(--dv-weight-semibold);
}
.dv-checklist__ico--ok   { background: var(--dv-color-success-bg); color: var(--dv-color-success); }
.dv-checklist__ico--warn { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); }
.dv-checklist__ico--none { background: var(--dv-g-200); color: var(--dv-text-muted); }
.dv-timeline { list-style: none; margin: 0 0 var(--dv-space-4); padding: 0; display: grid; gap: var(--dv-space-3); }
.dv-timeline li { display: grid; gap: 2px; padding-left: var(--dv-space-4); border-left: 2px solid var(--dv-border-default); font-size: var(--dv-text-sm); }
.dv-timeline small { color: var(--dv-text-muted); font-size: var(--dv-text-xs); }
.dv-dl--dates { border-top: 1px solid var(--dv-border-default); padding-top: var(--dv-space-3); font-size: var(--dv-text-sm); }
details.dv-more > summary { list-style: none; }
details.dv-more > summary::-webkit-details-marker { display: none; }
details.dv-more > summary [data-lucide] { width: 14px; height: 14px; }
.dv-fiche-grid { gap: var(--dv-space-6); }
.dv-fiche-grid__main, .dv-fiche-grid__side { gap: var(--dv-space-6); }
.dv-fiche-card__header { background: var(--dv-bg-card); font-family: var(--dv-font-title); font-size: var(--dv-text-base); padding: var(--dv-space-4) var(--dv-space-6); }
.dv-fiche-card__body { padding: var(--dv-space-4) var(--dv-space-6) var(--dv-space-5); }
.dv-fiche-card__body > p:first-child { margin-top: 0; }
@media (max-width: 900px) {
    .dv-shell { flex-direction: column; min-height: 0; }
    .dv-sidebar {
        flex: none;
        width: 100%;
        min-height: 0;
        padding: var(--dv-space-2) var(--dv-space-3);
        border-right: 0;
        border-bottom: 1px solid var(--dv-border-default);
    }
    .dv-sidebar__nav {
        display: flex;
        gap: 2px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .dv-sidebar__nav::-webkit-scrollbar { display: none; }
    .dv-sidebar__list { display: flex; gap: 2px; }
    .dv-sidebar__item { flex: none; }
    .dv-sidebar__item a { white-space: nowrap; }
    .dv-sidebar__group-label { display: none; }
    .dv-content { padding: var(--dv-space-4); min-width: 0; width: 100%; box-sizing: border-box; }
    .dv-page-header { align-items: flex-start; }
    .dv-progress-inline { min-width: 0; width: 100%; }
    .dv-form-bar { padding: var(--dv-space-3) var(--dv-space-4); }
    .dv-fiche-grid { grid-template-columns: minmax(0, 1fr); }
    .dv-card { padding: var(--dv-space-4); }
    .dv-card--flush { padding: 0; }
    .dv-card__head, .dv-card__content, .dv-feed li { padding-left: var(--dv-space-4); padding-right: var(--dv-space-4); }
}
.dv-tab { position: relative; }
.dv-card,
.dv-fiche-card { border-color: var(--dv-border-default); box-shadow: var(--dv-shadow-card); }
.dv-card__head,
.dv-card__header,
.dv-card__footer,
.dv-fiche-card__header,
.dv-dl dt,
.dv-dl dd,
.dv-dl--dates,
.dv-feed li { border-color: var(--dv-border-subtle); }
.dv-axes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; flex: 1 1 220px; min-width: 0; }
.dv-axes li { display: grid; grid-template-columns: minmax(96px, 120px) minmax(0, 1fr) 40px; gap: 10px; align-items: center; font-size: 0.78125rem; color: var(--dv-text-body); }
.dv-axes li > span:first-child { overflow-wrap: anywhere; }
.dv-axes .dv-num { text-align: right; color: var(--dv-text-primary); }
.dv-todo { list-style: none; margin: 0; padding: 0; }
.dv-todo li { display: grid; grid-template-columns: 4px minmax(0, 1fr) auto; gap: var(--dv-space-4); align-items: center; padding: var(--dv-space-3) var(--dv-space-6); border-top: 1px solid var(--dv-border-subtle); }
.dv-todo li:first-child { border-top: 0; }
.dv-todo__stripe { align-self: stretch; min-height: 36px; border-radius: 4px; background: var(--dv-color-terra); }
.dv-todo__stripe--danger { background: var(--dv-color-danger); }
.dv-todo__stripe--info { background: var(--dv-color-tender); }
.dv-todo__stripe--warn { background: var(--dv-color-terra); }
.dv-todo__stripe--ok { background: var(--dv-color-success); }
.dv-table-scroll { position: relative; overflow-x: auto; }
.dv-todo__stripe--neutral { background: var(--dv-g-400); }
.dv-todo strong a, .dv-todo strong a:visited { color: var(--dv-text-primary); }
.dv-todo strong { display: block; font-weight: var(--dv-weight-semibold); color: var(--dv-text-primary); overflow-wrap: anywhere; }
.dv-todo small { color: var(--dv-text-muted); font-size: var(--dv-text-sm); }
.dv-todo__empty { margin: 0; padding: var(--dv-space-6); color: var(--dv-text-muted); }
.dv-sidebar__count {
    margin-left: auto;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    display: inline-grid;
    place-items: center;
    flex: none;
    border-radius: var(--dv-radius-full);
    background: var(--dv-color-warning-bg);
    color: var(--dv-color-warning);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-semibold);
    font-variant-numeric: tabular-nums;
}
.dv-sidebar__count--danger { background: var(--dv-color-danger-bg); color: var(--dv-color-danger); }
.dv-checklist__ico--num { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); font-size: 11px; font-weight: var(--dv-weight-semibold); font-variant-numeric: tabular-nums; }
.dv-fiche-grid--side4 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .dv-fiche-grid--side4 { grid-template-columns: minmax(0, 1fr); } }
.dv-field--third { grid-column: span 4; }
@media (max-width: 900px) {
    .dv-field--third, .dv-field--m, .dv-field--l { grid-column: span 12; }
    .dv-field--s { grid-column: span 6; }
}
@media (max-width: 640px) { .dv-field--s { grid-column: span 12; } }
details.dv-more > summary.dv-btn { border-color: transparent; background: transparent; box-shadow: none; }
details.dv-more > summary.dv-btn:hover { background: var(--dv-g-100); }
.dv-timeline li strong { font-weight: var(--dv-weight-medium); color: var(--dv-text-primary); }
.dv-callout--actions { flex-direction: column; align-items: flex-start; }
.dv-fiche-card__header .dv-muted { font-family: var(--dv-font-body); font-size: var(--dv-text-sm); font-weight: 400; }
.dv-field input.dv-input--mono { font-family: var(--dv-font-mono); font-size: var(--dv-text-sm); }
details.dv-collapse > summary { list-style: none; cursor: pointer; }
details.dv-collapse > summary::-webkit-details-marker { display: none; }
details.dv-collapse > summary::after { content: "Replier"; margin-left: var(--dv-space-4); font-size: var(--dv-text-sm); font-weight: var(--dv-weight-medium); color: var(--dv-color-emerald-700); }
details.dv-collapse:not([open]) > summary::after { content: "Déplier"; }
details.dv-collapse:not([open]) > summary { border-bottom: 0; }
details.dv-collapse > summary > :first-child { margin-right: auto; }
tr.dv-row--link { cursor: pointer; }
tr.dv-row--link:hover > td { background: var(--dv-color-emerald-50); }
tr.dv-row--link:focus-within > td { background: var(--dv-color-emerald-50); }
a.dv-row-link { color: var(--dv-text-primary); font-weight: var(--dv-weight-medium); text-decoration: none; }
a.dv-row-link:hover { text-decoration: underline; }
.dv-row-menu { position: relative; display: inline-block; }
.dv-row-menu > summary { list-style: none; cursor: pointer; width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: var(--dv-radius-md); color: var(--dv-text-muted); font-size: 18px; line-height: 1; }
.dv-row-menu > summary::-webkit-details-marker { display: none; }
.dv-row-menu > summary:hover, .dv-row-menu[open] > summary { background: var(--dv-g-100); color: var(--dv-text-primary); }
.dv-row-menu > .dv-more__menu { right: 0; left: auto; }
.dv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.dv-cell--num { text-align: right; font-variant-numeric: tabular-nums; }
.dv-list-table--wide { width: 100%; border-collapse: collapse; }
.dv-list-table--wide th, .dv-list-table--wide td { padding: 14px var(--dv-space-6); text-align: left; border-top: 1px solid var(--dv-border-subtle); vertical-align: middle; }
.dv-list-table--wide thead th { border-top: 0; font-size: var(--dv-text-xs); font-weight: var(--dv-weight-semibold); letter-spacing: .04em; text-transform: uppercase; color: var(--dv-text-muted); }
.dv-list-table--wide th.dv-cell--num, .dv-list-table--wide td.dv-cell--num { text-align: right; }
.dv-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    min-height: var(--dv-topbar-min-height);
    padding: var(--dv-space-2) var(--dv-space-6);
    background: var(--dv-color-forest);
    color: var(--dv-text-inverse);
}
.dv-topbar__brand,
.dv-topbar__brand:visited,
.dv-topbar__brand:hover { display: flex; align-items: center; gap: var(--dv-space-3); color: var(--dv-text-inverse); text-decoration: none; }
.dv-topbar__brand:focus-visible { outline-color: var(--dv-color-mint); }
.dv-topbar__logo { display: block; height: 34px; width: auto; }
.dv-topbar__space {
    padding-left: var(--dv-space-3);
    border-left: 1px solid rgba(255, 255, 255, .25);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-medium);
    color: var(--dv-color-mint);
}
.dv-topbar__end { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dv-space-3); }
.dv-role {
    padding: 3px 10px;
    border-radius: var(--dv-radius-full);
    font-size: 0.6875rem;
    font-weight: var(--dv-weight-bold);
    letter-spacing: .06em;
    text-transform: uppercase;
}
.dv-role--superadmin { background: var(--dv-role-admin-bg); color: var(--dv-role-admin-text); }
.dv-role--agence     { background: var(--dv-role-agence-bg); color: var(--dv-role-agence-text); }
.dv-topbar .dv-avatar { background: var(--dv-color-emerald); color: var(--dv-text-inverse); font-size: 0.6875rem; }
.dv-user-badge--superadmin .dv-avatar { background: var(--dv-role-admin-bg); color: var(--dv-role-admin-text); }
.dv-user-badge__chevron i[data-lucide] { width: 16px; height: 16px; }
.dv-shell { display: flex; min-height: calc(100vh - var(--dv-topbar-h) - var(--dv-context-min-height)); }
.dv-content { flex: 1 1 auto; min-width: 0; padding: var(--dv-space-8); }
@media (max-width: 1024px) { .dv-content { padding: var(--dv-space-6); } }
@media (max-width: 640px) {
    .dv-topbar { padding-inline: var(--dv-space-4); }
    .dv-content { padding: var(--dv-space-4); }
    .dv-user-badge__info { display: none; }
}
:is(.dv-table, .dv-data-table, .dv-list-table, .dv-history-table, .dv-md-table, .ctc-table) {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84375rem;
}
:is(.dv-table, .dv-data-table, .dv-list-table, .dv-history-table, .dv-md-table, .ctc-table) thead th {
    padding: 10px var(--dv-space-4);
    background: var(--dv-bg-surface-2);
    border-bottom: 1px solid var(--dv-border-default);
    color: var(--dv-text-muted);
    font-size: 0.6875rem;
    font-weight: var(--dv-weight-semibold);
    letter-spacing: .06em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}
:is(.dv-table, .dv-data-table, .dv-list-table, .dv-history-table, .dv-md-table, .ctc-table) tbody td {
    padding: 12px var(--dv-space-4);
    border-bottom: 1px solid var(--dv-border-subtle);
    vertical-align: middle;
}
:is(.dv-table, .dv-data-table, .dv-list-table, .dv-history-table, .dv-md-table, .ctc-table) tbody tr:last-child td { border-bottom: 0; }
:is(.dv-table, .dv-data-table, .dv-list-table, .dv-history-table, .dv-md-table, .ctc-table) tbody tr:hover > td { background: var(--dv-color-emerald-50); }
.dv-data-table tbody tr:hover,
.dv-data-table tbody tr[data-href]:hover { background: transparent; }
.dv-data-table thead th.is-sortable:hover { color: var(--dv-text-primary); }
.dv-data-table thead th.is-sorted-asc,
.dv-data-table thead th.is-sorted-desc { color: var(--dv-text-link); }
.dv-inline-form { display: inline; margin: 0; }
.dv-todo__clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.dv-veille-translation { display: block; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-veille-translation a,
.dv-veille-translation a:visited { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.rp-note { margin: 0; color: var(--dv-text-subtle); font-size: var(--dv-text-sm); }
.rp-ok { margin: 0; color: var(--dv-color-success); display: flex; align-items: center; gap: var(--dv-space-2); }
.rp-trend { flex: 0 0 auto; text-align: center; }
.rp-trend__label { margin: 0; font-size: var(--dv-text-xs); color: var(--dv-text-subtle); }
.rp-sparkline { overflow: visible; }
.rp-sparkline polyline { fill: none; stroke: var(--dv-color-tender); stroke-width: 2; }
.rp-alert { display: flex; align-items: center; gap: var(--dv-space-3); padding: 10px 14px; border-radius: var(--dv-radius-md); margin-bottom: var(--dv-space-2); }
.rp-alert:last-child { margin-bottom: 0; }
.rp-alert .cnt { font-weight: var(--dv-weight-bold); font-size: var(--dv-text-lg); min-width: 32px; text-align: center; }
.rp-alert a { margin-left: auto; }
.rp-alert a + a { margin-left: 0; }
.rp-alert--high { background: var(--dv-color-danger-bg); color: var(--dv-color-danger); }
.rp-alert--warn { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); }
.rp-alert--info { background: var(--dv-color-info-bg); color: var(--dv-color-info); }
.rp-alert .dv-btn--ghost { color: inherit; }
.rp-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--dv-space-5); align-items: start; margin-bottom: var(--dv-space-3); }
.rp-chart-box { position: relative; min-width: 0; }
.rp-chart-box h3 { margin: 0 0 var(--dv-space-2); font-size: var(--dv-text-md); color: var(--dv-text-body); }
.rp-chart-canvas { position: relative; height: 260px; width: 100%; }
.rp-chart-canvas > canvas { display: block; }
.rp-reco-item { border: 1px solid var(--dv-border-default); border-radius: var(--dv-radius-lg); padding: var(--dv-space-3) var(--dv-space-4); margin-bottom: var(--dv-space-2); }
.rp-reco-item .rp-reco-head { display: flex; align-items: center; gap: var(--dv-space-2); margin-bottom: var(--dv-space-1); }
.rp-reco-item .rp-reco-title { font-weight: var(--dv-weight-bold); color: var(--dv-color-forest); }
.rp-reco-item .rp-reco-axe { font-size: var(--dv-text-xs); color: var(--dv-text-muted); margin-left: auto; }
.rp-reco-item .rp-reco-detail { font-size: var(--dv-text-sm); color: var(--dv-text-muted); margin: 0; }
.rp-prio { font-size: 0.6875rem; font-weight: var(--dv-weight-bold); text-transform: uppercase; letter-spacing: .03em; padding: 2px var(--dv-space-2); border-radius: var(--dv-radius-full); }
.rp-prio--haute { background: var(--dv-color-danger-bg); color: var(--dv-color-danger); }
.rp-prio--moyenne { background: var(--dv-color-warning-bg); color: var(--dv-color-warning); }
.rp-prio--basse { background: var(--dv-color-info-bg); color: var(--dv-color-info); }
.rp-reco-status { font-size: var(--dv-text-sm); color: var(--dv-text-subtle); }
html { scroll-padding-top: calc(var(--dv-topbar-h) + var(--dv-context-min-height) + var(--dv-space-4)); }
html:has(.dv-form-bar) { scroll-padding-bottom: 96px; }
@media (max-height: 820px) {
    .dv-form-bar { position: static; box-shadow: none; }
    html:has(.dv-form-bar) { scroll-padding-bottom: var(--dv-space-4); }
}
.dv-tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--dv-space-6); }
.dv-tool-card { display: flex; flex-direction: column; gap: var(--dv-space-3); margin: 0; }
.dv-tool-card--danger { border-left: 4px solid var(--dv-color-danger); }
.dv-tool-card__head { display: flex; align-items: flex-start; gap: var(--dv-space-3); }
.dv-tool-card__icon {
    width: 40px; height: 40px; flex: none;
    display: grid; place-items: center;
    border-radius: var(--dv-radius-md);
    background: var(--dv-bg-surface-2);
    color: var(--dv-color-forest);
}
.dv-tool-card--danger .dv-tool-card__icon { background: var(--dv-color-danger-bg); color: var(--dv-color-danger); }
.dv-tool-card__icon [data-lucide] { width: 20px; height: 20px; }
.dv-tool-card__title { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dv-tool-card__title h2 { margin: 0; font-family: var(--dv-font-title); font-size: var(--dv-text-base); font-weight: var(--dv-weight-semibold); }
.dv-tool-card__title p { flex-basis: 100%; margin: 0; font-size: var(--dv-text-sm); color: var(--dv-text-muted); }
.dv-tool-card__meta {
    display: flex; flex-wrap: wrap; gap: var(--dv-space-3);
    margin: 0; padding-top: var(--dv-space-2);
    border-top: 1px solid var(--dv-border-subtle);
    font-size: var(--dv-text-xs); color: var(--dv-text-muted);
}
.dv-tool-card__actions { display: flex; gap: var(--dv-space-2); margin-top: auto; }
.dv-tool-card__open { flex: 1; }
.dv-tool-card__locked { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.dv-tool-card__locked small { color: var(--dv-text-muted); font-size: var(--dv-text-xs); }
.dv-tool-card__actions [data-lucide] { width: 14px; height: 14px; }
.dv-tab-pane[hidden] { display: none; }
.dv-status-current { margin: 0; text-align: center; }
.dv-status-summary { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--dv-space-2); padding-top: var(--dv-space-3); border-top: 1px solid var(--dv-border-subtle); }
.dv-code-sm { font-family: var(--dv-font-mono); font-size: var(--dv-text-xs); }
.dv-text-sm { font-size: var(--dv-text-sm); }
.dv-cell--wrap { white-space: normal; max-width: 200px; }
.dv-tabs-h { margin-bottom: var(--dv-space-6); box-shadow: var(--dv-shadow-card); }
.dv-tab, a.dv-tab:visited { color: var(--dv-text-body); min-height: 36px; }
.dv-tab.is-active,
a.dv-tab.is-active:visited { color: var(--dv-color-forest); background: var(--dv-color-dew); font-weight: var(--dv-weight-semibold); }
.dv-grid > .dv-stack > .dv-fiche-card,
.dv-grid > .dv-stack > .dv-card { margin-bottom: 0; }
.pub-page { background: var(--dv-bg-page); color: var(--dv-text-primary); }
.pub-wrap { display: grid; gap: var(--dv-space-6); padding: 40px var(--dv-space-8); }
.pub-card {
    background: var(--dv-bg-card);
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-card);
    padding: var(--dv-space-8);
    min-width: 0;
}
.pub-brand {
    margin-bottom: var(--dv-space-2);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-semibold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dv-text-link);
}
.pub-card h1 { margin: 0 0 var(--dv-space-2); font-family: var(--dv-font-title); font-size: 1.625rem; font-weight: var(--dv-weight-semibold); letter-spacing: -.015em; }
.pub-card h2 { margin: var(--dv-space-6) 0 6px; font-family: var(--dv-font-title); font-size: var(--dv-text-base); font-weight: var(--dv-weight-semibold); }
.pub-card p { margin: 0 0 var(--dv-space-3); color: var(--dv-text-body); }
.pub-card label { display: block; margin: var(--dv-space-4) 0 6px; font-size: var(--dv-text-sm); font-weight: var(--dv-weight-semibold); color: var(--dv-text-primary); }
.pub-card .req { color: var(--dv-color-danger); }
.pub-card input[type=text],
.pub-card input[type=email],
.pub-card textarea,
.pub-card select {
    width: 100%;
    min-height: 40px;
    padding: 9px var(--dv-space-3);
    border: 1px solid var(--dv-border-strong);
    border-radius: var(--dv-radius-md);
    background: var(--dv-bg-card);
    color: var(--dv-text-primary);
    font: inherit;
}
.pub-card input:focus,
.pub-card textarea:focus,
.pub-card select:focus { outline: none; border-color: var(--dv-color-emerald); box-shadow: 0 0 0 3px var(--dv-color-emerald-100); }
.pub-card textarea { min-height: 120px; resize: vertical; }
.pub-card input[type=radio],
.pub-card input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--dv-color-emerald); }
.pub-fieldset { margin: 0 0 var(--dv-space-4); padding: var(--dv-space-4) var(--dv-space-5); border: 1px solid var(--dv-border-default); border-radius: var(--dv-radius-lg); }
.pub-fieldset legend { padding: 0 6px; font-size: var(--dv-text-sm); font-weight: var(--dv-weight-semibold); color: var(--dv-text-primary); }
.pub-q { margin-bottom: var(--dv-space-4); padding-bottom: var(--dv-space-3); border-bottom: 1px solid var(--dv-border-subtle); }
.pub-q:last-child { border-bottom: 0; }
.pub-q .art { display: inline-block; margin-bottom: var(--dv-space-1); padding: 1px 7px; border-radius: var(--dv-radius-sm); background: var(--dv-color-emerald-50); border: 1px solid var(--dv-color-emerald-200); color: var(--dv-color-forest); font-size: var(--dv-text-xs); font-weight: var(--dv-weight-semibold); }
.pub-q__text { margin: 0 0 6px; font-size: var(--dv-text-sm); }
.pub-card .pub-q__comment { margin-top: var(--dv-space-2); min-height: 60px; }
.pub-radios { display: flex; flex-wrap: wrap; gap: var(--dv-space-4); margin-top: 6px; }
.pub-card .pub-radios label { display: inline-flex; align-items: center; gap: var(--dv-space-2); margin: 0; font-weight: var(--dv-weight-medium); }
.pub-hp { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pub-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%; min-height: 46px; margin-top: var(--dv-space-5); padding: 9px var(--dv-space-6);
    border: 1px solid var(--dv-color-primary); border-radius: var(--dv-radius-md);
    background: var(--dv-color-primary); color: var(--dv-text-inverse);
    font: inherit; font-size: 0.9375rem; font-weight: var(--dv-weight-semibold); cursor: pointer;
}
.pub-btn:hover { background: var(--dv-color-primary-hover); border-color: var(--dv-color-primary-hover); }
.pub-btn:active { background: var(--dv-color-primary-active); }
.pub-btn:focus-visible { outline: var(--dv-focus-ring-width) solid var(--dv-focus-ring-color); outline-offset: var(--dv-focus-ring-offset); }
.pub-error, .pub-ok { margin-bottom: var(--dv-space-4); padding: var(--dv-space-3) var(--dv-space-4); border: 1px solid; border-radius: var(--dv-radius-lg); font-size: var(--dv-text-sm); }
.pub-error { background: var(--dv-color-danger-bg); border-color: var(--dv-color-danger-border); color: var(--dv-color-danger); }
.pub-ok { background: var(--dv-color-success-bg); border-color: var(--dv-color-success-border); color: var(--dv-color-success); }
.pub-card .pub-help { margin: 6px 0 0; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.pub-card .pub-btn + .pub-help,
.pub-card .pub-help--spaced { margin-top: 14px; }
.pub-card .pub-help--after { margin-top: var(--dv-space-2); }
.pub-card .pub-help a, .pub-card .pub-help a:visited { text-decoration: underline; text-underline-offset: 2px; }
.pub-reference { font-family: var(--dv-font-mono); font-size: var(--dv-text-lg); font-weight: var(--dv-weight-bold); color: var(--dv-color-forest); }
.pub-card .pub-back { margin: var(--dv-space-4) 0 0; }
.pub-antirobot { margin-top: var(--dv-space-4); }
.pub-foot { margin: 0; text-align: center; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.pub-foot a,
.pub-foot a:visited { color: var(--dv-text-muted); text-decoration: underline; }
.pub-foot__logo { display: inline-block; height: 22px; width: auto; vertical-align: middle; }
@media (max-width: 640px) {
    .pub-wrap { padding: var(--dv-space-4); }
    .pub-card { padding: var(--dv-space-5); }
}
.dv-auth { display: flex; flex-wrap: wrap; min-height: 100vh; background: var(--dv-bg-page); }
.dv-auth__brand {
    flex: 1 1 440px;
    display: flex; flex-direction: column; justify-content: space-between; gap: 48px;
    padding: 56px 64px;
    background: var(--dv-color-forest); color: var(--dv-text-inverse);
}
.dv-auth__logo { display: block; align-self: flex-start; height: 40px; width: auto; }
.dv-auth__pitch { display: grid; gap: var(--dv-space-5); }
.dv-auth__eyebrow { margin: 0; font-size: var(--dv-text-xs); font-weight: var(--dv-weight-semibold); letter-spacing: .08em; text-transform: uppercase; color: var(--dv-color-mint); }
.dv-auth__title { margin: 0; font-family: var(--dv-font-title); font-size: 2.75rem; line-height: 1.1; font-weight: var(--dv-weight-semibold); letter-spacing: -.02em; color: var(--dv-text-inverse); }
.dv-auth__foot { margin: 0; font-size: 0.78125rem; color: var(--dv-color-mint); }
.dv-auth__panel { flex: 1 1 480px; display: grid; place-items: center; padding: 48px var(--dv-space-6); }
.dv-auth__card { width: 100%; max-width: 440px; padding: 40px; display: grid; gap: var(--dv-space-5); margin: 0; }
.dv-auth__card .dv-field { gap: 6px; grid-column: auto; }
.dv-auth__label-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--dv-space-3); }
.dv-auth__label-row a { font-size: var(--dv-text-sm); font-weight: var(--dv-weight-semibold); }
.dv-auth__submit { width: 100%; min-height: 46px; font-size: 0.9375rem; }
.dv-auth__error { margin: 0; }
@media (max-width: 640px) {
    .dv-auth__brand { padding: var(--dv-space-8) var(--dv-space-5); gap: var(--dv-space-6); }
    .dv-auth__title { font-size: 2rem; }
    .dv-auth__card { padding: var(--dv-space-6); }
}
.dv-error-page { display: flex; flex-direction: column; min-height: 100vh; background: var(--dv-bg-page); }
.dv-error-page > header { padding: var(--dv-space-4) var(--dv-space-6); background: var(--dv-color-forest); }
.dv-error-page > header img { display: block; height: 34px; width: auto; }
.dv-error-page > main { flex: 1; display: flex; align-items: center; justify-content: center; padding: var(--dv-space-8) var(--dv-space-4); }
.dv-error-page > footer { padding: var(--dv-space-5); text-align: center; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-error-card { width: 100%; max-width: 560px; margin: var(--dv-space-10) auto; padding: 40px; text-align: center; }
.dv-error-card__code { margin: 0 0 var(--dv-space-2); font-family: var(--dv-font-title); font-size: 3rem; font-weight: var(--dv-weight-semibold); line-height: 1; color: var(--dv-color-emerald-700); }
.dv-error-card h1 { margin: 0 0 var(--dv-space-3); font-size: 1.375rem; }
.dv-error-card p { margin: 0 0 var(--dv-space-6); color: var(--dv-text-muted); }
.dv-error-card .dv-btns { justify-content: center; }
.dv-list-card { padding: 0; }
.dv-list-card > .dv-table-scroll { overflow-x: auto; }
.dv-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--dv-space-2);
    padding: var(--dv-space-3) var(--dv-space-4);
    border-bottom: 1px solid var(--dv-border-subtle);
}
.dv-toolbar__search {
    flex: 1 1 280px;
    display: flex;
    align-items: center;
    gap: var(--dv-space-2);
    min-width: 0;
    min-height: 38px;
    margin: 0;
    padding: 7px var(--dv-space-3);
    border: 1px solid var(--dv-border-strong);
    border-radius: var(--dv-radius-md);
    background: var(--dv-bg-card);
}
.dv-toolbar__search:focus-within { border-color: var(--dv-color-emerald); box-shadow: 0 0 0 3px var(--dv-color-emerald-100); }
.dv-toolbar__search [data-lucide],
.dv-toolbar__search svg { flex: none; width: 14px; height: 14px; color: var(--dv-text-muted); }
.dv-toolbar__search input {
    flex: 1;
    min-width: 0;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--dv-text-primary);
    font: inherit;
}
.dv-toolbar__search input[type="month"] { flex: 0 0 auto; width: auto; padding-left: var(--dv-space-2); border-left: 1px solid var(--dv-border-subtle); }
.dv-toolbar__chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dv-space-2); }
.dv-toolbar__label { font-size: var(--dv-text-xs); font-weight: var(--dv-weight-semibold); color: var(--dv-text-muted); }
.dv-toolbar__end { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dv-space-2); margin-left: auto; }
.dv-chip,
.dv-chip:visited {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 5px 12px;
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-full);
    background: var(--dv-bg-card);
    color: var(--dv-text-body);
    font-size: 0.78125rem;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}
.dv-chip:hover { border-color: var(--dv-color-emerald); color: var(--dv-text-primary); text-decoration: none; }
.dv-chip.is-on,
.dv-chip.is-on:visited { background: var(--dv-color-dew); border-color: var(--dv-color-emerald-200); color: var(--dv-color-forest); font-weight: var(--dv-weight-semibold); }
.dv-chip__count { font-weight: var(--dv-weight-bold); font-variant-numeric: tabular-nums; }
.dv-filter-select {
    min-height: 38px;
    padding: 7px var(--dv-space-3);
    border: 1px solid var(--dv-border-strong);
    border-radius: var(--dv-radius-md);
    background: var(--dv-bg-card);
    color: var(--dv-text-primary);
    font: inherit;
    font-size: var(--dv-text-sm);
}
.dv-filter-select:focus { outline: 2px solid var(--dv-border-focus); outline-offset: 1px; }
.dv-list-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    padding: var(--dv-space-3) var(--dv-space-4);
    border-top: 1px solid var(--dv-border-subtle);
    font-size: var(--dv-text-sm);
    color: var(--dv-text-muted);
}
.dv-list-empty { padding: 48px var(--dv-space-4); text-align: center; }
.dv-list-empty h2 { margin: 0 0 var(--dv-space-2); font-family: var(--dv-font-title); font-size: var(--dv-text-lg); }
.dv-list-empty p { margin: 0 0 var(--dv-space-3); color: var(--dv-text-muted); }
.dv-list-empty p:last-child { margin-bottom: 0; }
.dv-cell-sub { display: block; margin-top: 2px; font-size: 0.78125rem; color: var(--dv-text-muted); }
.dv-cell-sub .dv-tag { margin-right: 4px; white-space: nowrap; }
.dv-ref { white-space: nowrap; }
.dv-cell--mono { font-family: var(--dv-font-mono); font-size: var(--dv-text-xs); color: var(--dv-g-700); white-space: nowrap; }
.dv-cell--muted { color: var(--dv-text-muted); }
.dv-cell--late { color: var(--dv-color-warning); font-weight: var(--dv-weight-semibold); }
.dv-completeness { display: flex; align-items: center; gap: var(--dv-space-2); min-width: 140px; }
.dv-completeness progress { flex: 1; }
.dv-completeness__value { width: 40px; text-align: right; font-size: 0.78125rem; font-variant-numeric: tabular-nums; color: var(--dv-text-primary); }
.dv-sort-link,
.dv-sort-link:visited { display: inline-flex; align-items: center; gap: 2px; color: inherit; text-decoration: none; white-space: nowrap; }
.dv-sort-link:hover { color: var(--dv-text-primary); text-decoration: none; }
.dv-sort-link.is-sorted,
.dv-sort-link.is-sorted:visited { color: var(--dv-text-link); }
.dv-sort-link__arrow { font-size: 0.7rem; color: var(--dv-color-emerald-700); }
.dv-callout--spaced { margin-bottom: var(--dv-space-5); }
.dv-grid,
.dv-kpis,
.dv-tool-grid { align-items: stretch; }
.dv-grid > .dv-card,
.dv-grid > .dv-kpi { height: 100%; }
.dv-kpi .dv-kpi__row { margin-top: auto; }
.dv-score__empty {
    flex: none;
    display: grid;
    place-content: center;
    gap: 2px;
    width: 120px;
    height: 120px;
    margin: 0;
    border: 3px dashed var(--dv-border-default);
    border-radius: 50%;
    text-align: center;
    font-family: var(--dv-font-title);
    font-weight: var(--dv-weight-semibold);
    color: var(--dv-text-body);
}
.dv-score__empty span { font-family: var(--dv-font-body); font-size: var(--dv-text-xs); font-weight: var(--dv-weight-regular); color: var(--dv-text-muted); }
.dv-axes li.is-not-evaluated > span:first-child { color: var(--dv-text-muted); }
.dv-axes__na { grid-column: span 2; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-score--compact { gap: var(--dv-space-4); padding: var(--dv-space-5); }
.dv-score__text { flex: 1 1 140px; margin: 0; font-size: var(--dv-text-sm); color: var(--dv-text-body); }
.dv-link-list { list-style: none; display: grid; gap: 10px; margin: 0; padding: 0; font-size: 0.84375rem; color: var(--dv-text-body); }
.dv-link-list a,
.dv-link-list a:visited { color: var(--dv-text-link); text-decoration: none; }
.dv-link-list a:hover { color: var(--dv-text-link-hover); text-decoration: underline; }
.dv-client-layout { align-items: start; }
.dv-tab-pane.dv-stack { gap: var(--dv-space-6); }
.dv-dl--split { grid-template-columns: auto minmax(0, 1fr); gap: 0 var(--dv-space-4); }
.dv-dl--split dt, .dv-dl--split dd { padding: 6px 0; border-top: 0; }
.dv-dl--split dd { text-align: right; font-weight: var(--dv-weight-semibold); }
.dv-callout--warning { background: var(--dv-color-warning-bg); border-color: var(--dv-color-warning-border); color: var(--dv-color-warning); }
p.dv-callout { margin: 0; }
.dv-text-danger { color: var(--dv-color-danger); }
.dv-text-success { color: var(--dv-color-success); }
.dv-more__label { margin: 0; padding: var(--dv-space-2) 10px 4px; font-size: var(--dv-text-xs); font-weight: var(--dv-weight-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--dv-text-muted); }
.dv-more__note { margin: 0; padding: var(--dv-space-2) 10px; max-width: 280px; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.dv-auth__lead { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: var(--dv-color-dew); }
.dv-auth__badges { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
.dv-auth__badges li { padding: 5px 12px; border: 1px solid rgba(255, 255, 255, .25); border-radius: var(--dv-radius-full); font-size: var(--dv-text-sm); color: var(--dv-text-inverse); }
.dv-auth__foot a,
.dv-auth__foot a:visited { color: var(--dv-color-mint); text-decoration: underline; text-underline-offset: 2px; }
.dv-auth__foot a:hover { color: var(--dv-text-inverse); }
.dv-auth__head h2 { margin: 0 0 6px; font-family: var(--dv-font-title); font-size: 1.625rem; font-weight: var(--dv-weight-semibold); }
.dv-auth__head p { margin: 0; }
.dv-auth__form { display: grid; gap: var(--dv-space-5); margin: 0; }
.dv-auth__card > a.dv-btn,
.dv-auth__card > a.dv-btn:visited { color: var(--dv-text-inverse); }
.dv-auth__alt { margin: 0; padding-top: var(--dv-space-4); border-top: 1px solid var(--dv-border-subtle); text-align: center; font-size: 0.84375rem; color: var(--dv-text-body); }
.dv-auth__alt a,
.dv-auth__alt a:visited { font-weight: var(--dv-weight-semibold); color: var(--dv-text-link); }
.pub-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--dv-space-3);
    padding: var(--dv-space-4) var(--dv-space-8);
    background: var(--dv-bg-card);
    border-bottom: 1px solid var(--dv-border-default);
}
.pub-head__org { display: flex; align-items: center; gap: var(--dv-space-3); min-width: 0; }
.pub-head__initials {
    flex: none;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--dv-radius-lg);
    background: var(--dv-color-forest);
    color: var(--dv-text-inverse);
    font-family: var(--dv-font-title);
    font-weight: var(--dv-weight-semibold);
}
.pub-head__name { margin: 0; font-weight: var(--dv-weight-bold); color: var(--dv-text-primary); }
.pub-head__tagline { margin: 0; font-size: 0.78125rem; color: var(--dv-text-muted); }
.pub-head__provider { display: flex; align-items: center; gap: var(--dv-space-2); margin: 0; font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.pub-head__logo { display: block; height: 22px; width: auto; }
.pub-main { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--dv-space-6); padding: 40px var(--dv-space-8); }
.pub-content { flex: 999 1 560px; min-width: 0; display: grid; gap: var(--dv-space-6); }
.pub-aside { flex: 1 1 300px; min-width: 0; display: grid; gap: var(--dv-space-6); }
.pub-page > .pub-foot { padding: 0 var(--dv-space-8) var(--dv-space-8); }
.pub-card--side { padding: var(--dv-space-6); font-size: 0.84375rem; }
.pub-card.pub-card--side h2 { margin: 0 0 var(--dv-space-4); }
.pub-card--side p { margin: 0 0 var(--dv-space-2); }
.pub-dpo__email { font-weight: var(--dv-weight-semibold); overflow-wrap: anywhere; }
.pub-steps { list-style: none; counter-reset: pub-step; display: grid; gap: var(--dv-space-4); margin: 0; padding: 0; }
.pub-steps li { counter-increment: pub-step; display: flex; align-items: flex-start; gap: var(--dv-space-3); }
.pub-steps li::before {
    content: counter(pub-step);
    flex: none;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--dv-color-dew);
    color: var(--dv-color-forest);
    font-size: var(--dv-text-xs);
    font-weight: var(--dv-weight-bold);
}
.pub-card .pub-lead { margin: 0; font-size: 0.84375rem; color: var(--dv-text-muted); }
.pub-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: var(--dv-space-6) 0 0; padding: 0; border: 0; }
.pub-choices legend { margin-bottom: 10px; padding: 0; font-size: var(--dv-text-sm); font-weight: var(--dv-weight-semibold); color: var(--dv-text-primary); }
.pub-card label.pub-choice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--dv-border-default);
    border-radius: var(--dv-radius-lg);
    background: var(--dv-bg-card);
    font-weight: var(--dv-weight-regular);
    cursor: pointer;
}
.pub-card label.pub-choice:has(input:checked) { padding: 11px 13px; border: 2px solid var(--dv-color-emerald); background: var(--dv-color-emerald-50); }
.pub-card label.pub-choice:has(input:focus-visible) { outline: var(--dv-focus-ring-width) solid var(--dv-focus-ring-color); outline-offset: 2px; }
.pub-choice input { flex: none; margin: 2px 0 0; }
.pub-choice b { display: block; font-size: 0.875rem; color: var(--dv-text-primary); }
.pub-choice b + span { display: block; font-size: 0.78125rem; color: var(--dv-text-muted); }
.pub-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dv-space-4) var(--dv-space-6); margin-top: var(--dv-space-6); }
.pub-field { min-width: 0; }
.pub-field--full { grid-column: 1 / -1; }
.pub-card .pub-field label { margin: 0 0 6px; }
.pub-card .pub-note { margin: var(--dv-space-6) 0 0; padding: var(--dv-space-3) var(--dv-space-4); border: 1px solid var(--dv-color-emerald-200); border-radius: var(--dv-radius-lg); background: var(--dv-color-emerald-50); color: var(--dv-color-forest); font-size: 0.78125rem; }
.pub-actions { display: flex; justify-content: flex-end; margin-top: var(--dv-space-6); }
.pub-btn.pub-btn--inline { width: auto; margin-top: 0; padding-inline: var(--dv-space-6); }
@media (max-width: 900px) { .pub-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .pub-head { padding: var(--dv-space-3) var(--dv-space-4); }
    .pub-main { padding: var(--dv-space-4); }
    .pub-page > .pub-foot { padding: 0 var(--dv-space-4) var(--dv-space-4); }
    .pub-choices, .pub-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .dv-toolbar__end { margin-left: 0; }
    .dv-completeness { min-width: 110px; }
}
.dv-context__managed { margin-left: auto; font-size: var(--dv-text-xs); color: var(--dv-text-muted); white-space: nowrap; }
.dv-context__managed + .dv-context__aside { margin-left: var(--dv-space-4); }
@media (max-width: 900px) { .dv-context__managed { white-space: normal; } }
.dv-dpo-card__who { display: flex; gap: var(--dv-space-3); align-items: center; }
.dv-dpo-card__name { display: block; font-weight: var(--dv-weight-semibold); color: var(--dv-text-primary); }
.dv-dpo-card__meta { display: block; font-size: var(--dv-text-sm); color: var(--dv-text-muted); }
.dv-dpo-card .dv-dl { grid-template-columns: 130px minmax(0, 1fr); }
.dv-agency-entity { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--dv-space-4) var(--dv-space-6); grid-column: span 12; }
.dv-agency-entity__rank { grid-column: span 12; margin: 0; font-size: var(--dv-text-sm); font-weight: var(--dv-weight-semibold); color: var(--dv-text-muted); }
.dv-agency-refused { margin: 0; padding-left: var(--dv-space-5); }
.dv-agency-refused li + li { margin-top: 4px; }
.dv-agency-exit-steps { margin: 0; padding-left: var(--dv-space-5); }
.dv-agency-exit-steps li + li { margin-top: 4px; }

/* ===== /assets/css/cra.css ===== */
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-display: swap;
             src: url('/assets/fonts/bricolage.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 600; font-display: swap;
             src: url('/assets/fonts/dmsans.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: italic; font-weight: 400 600; font-display: swap;
             src: url('/assets/fonts/dmsans-italic.woff2') format('woff2'); }
:root {
  --color-forest: var(--color-emerald-700);
  --forest: var(--color-emerald-700);
  --text-primary: var(--color-gray-700);
  --cra-filet: 1px;
  --cra-filet-epais: 2px;
  --cra-point: 1.1em;
  --cra-cible-tactile: 44px;
  --cra-hauteur-schema: 30rem;
  --cra-part-image: 56%;
  --cra-capture-haute: 560px;
  --cra-part-visuel: 57%;
  --cra-tiroir-obligations: 28rem;
  --cra-sous-menu-long: 200rem;
  --cra-voile: rgba(26, 60, 52, 0.5);
  --cra-btn-taille: 0.95rem;          
  --cra-agrandi-max: 800px;
  --cra-agrandi-ecran: 92vw;
  --cra-agrandi-hauteur: 85vh;
  --cra-focus: 3px;                   
  --cra-bandeau-resultat: 6px;        
  --cra-duree-attente: 1.4s;          
  --cra-hauteur-suggestions: 18rem;   
  --cra-largeur-etiquette: 5.5rem;    
  --cra-colonne-chiffre: 12rem;       
  --cra-colonne-issue: 14rem;         
  --cra-souligne: 6px;                
  --cra-forme-terra: 420px;
  --cra-section: var(--space-24);
  --cra-surtitre-taille: 0.75rem;
  --cra-surtitre-espacement: 0.1em;
  --cra-titre-haut: 3.25rem;
  --cra-titre-haut-mobile: 2.25rem;
  --cra-titre-haut-espacement: -0.02em;
  --cra-titre-section: 2.5rem;
  --cra-titre-section-mobile: 1.9rem;
  --cra-titre-section-espacement: -0.01em;
  --cra-titre-appel: 2rem;
  --cra-prix-montant: 3rem;
  --cra-titre-carte-grand: 1.375rem;
  --cra-chapeau-haut: 1.1875rem;
  --cra-texte-grand: 1.0625rem;
  --cra-texte-carte: 0.9375rem;
  --cra-texte-entete: 0.8125rem;
  --cra-entete-espacement: 0.06em;
  --cra-rayon-carte: 20px;
  --cra-rayon-detail: 14px;
  --cra-rayon-appel: 28px;
  --cra-pastille: 52px;
  --cra-pastille-icone: 26px;
  --cra-numero: 48px;
  --cra-icone-info: 22px;
  --cra-colonne-frise: 170px;
  --cra-colonne-appel: 26rem;
  --cra-illustration: 470px;
  --cra-trame-points: 22px;
  --cra-trame-grille: 44px;
  --cra-tache-haut: 460px;
  --cra-tache-bas: 320px;
  --cra-tache-appel: 300px;
  --cra-flou: 90px;
  --cra-flou-appel: 70px;
  --cra-barre: 8rem;
  --cra-trame-point: color-mix(in srgb, var(--color-emerald-700) 10%, transparent);
  --cra-trame-trait: color-mix(in srgb, var(--color-white) 5%, transparent);
  --cra-frise-trait: color-mix(in srgb, var(--color-mint) 40%, transparent);
  --cra-orange-pale: color-mix(in srgb, var(--color-terra) 40%, var(--color-white));
  --cra-surtitre-haut: color-mix(in srgb, var(--color-terra) 70%, var(--color-gray-900));
  --cra-ombre-douce: 0 10px 30px rgba(30, 58, 46, 0.08);
  --cra-ombre-visuel: 0 24px 60px rgba(30, 58, 46, 0.18);
  --cra-ombre-ecran: 0 30px 70px rgba(30, 58, 46, 0.22);
  --cra-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
body { color: var(--color-gray-700); }
.text-body, .check-list li, .article-content { color: var(--color-gray-700); }
.cta-section { background: var(--color-emerald-700); }
.cta-section .btn--primary,
.cta-section .btn--primary:visited { background: var(--white); color: var(--emerald-700); }
.cta-section .btn--primary:hover,
.cta-section .btn--primary:active { background: var(--dew); color: var(--emerald-700); }
.footer__link, .footer__link:visited, .footer__legal a, .footer__legal a:visited { color: var(--color-white); }
.footer__copyright { opacity: 1; }
.badge { color: var(--emerald-700); }
.badge.badge--error { color: var(--color-error); }
.alert--warning { color: var(--gray-800); background-color: var(--warning-soft); }
.alert--warning svg { color: var(--warning); }
.alert--info { color: var(--gray-800); }
:root { color-scheme: light; }
.evitement {
  position: absolute;
  left: var(--space-4);
  top: calc(-1 * var(--nav-height));
  z-index: 10000;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: var(--shadow-md);
}
.evitement:focus { top: var(--space-2); }
.nav__inner { gap: var(--space-8); }
.nav__auth { gap: var(--space-1); margin-left: auto; }
.nav__diagnostic, .nav__diagnostic:visited { margin-left: var(--space-3); white-space: nowrap; }
button.nav__link { background: none; border: 0; font: inherit; font-family: var(--font-body); font-size: var(--text-sm); font-weight: 500;
  color: var(--color-forest); }
.nav__link { font-size: var(--text-sm); }
.nav__dropdown--obligations { min-width: var(--cra-tiroir-obligations); }
.nav__dropdown-link--decrit { flex-direction: column; align-items: flex-start; gap: var(--space-1); }
.nav__dropdown-titre { font-weight: 600; }
.nav__dropdown-desc { font-size: var(--text-sm); font-weight: 400; line-height: 1.4; color: var(--color-gray-600); }
.nav__inner { position: relative; }
.nav__item--large { position: static; }
.nav__dropdown--large { left: 0; right: 0; transform: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-4); padding: var(--space-4); }
.nav__colonne { display: flex; flex-direction: column; min-width: 0; }
.nav__colonne .nav__dropdown-link { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); }
.nav__colonne .nav__colonne-titre { font-weight: 700; }
.nav__dropdown--logiciel { left: 0; transform: none; display: grid; grid-template-columns: repeat(2, max-content);
  gap: var(--space-2) var(--space-6); padding: var(--space-4); }
.nav__colonne .nav__colonne-label { margin: 0; padding: var(--space-2) var(--space-3); font-size: var(--cra-surtitre-taille);
  letter-spacing: var(--cra-surtitre-espacement); color: var(--color-gray-600); }
.nav__mobile-compte { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-4); }
.nav__mobile-intercalaire { font-weight: 600; }
.nav__mobile-group.is-open .nav__mobile-submenu--long { max-height: var(--cra-sous-menu-long); }
@media (max-width: 1024px) {
  .nav__diagnostic { margin-left: auto; margin-right: var(--space-3); }
}
@media (max-width: 560px) {
  .nav__inner { gap: var(--space-2); }
  .nav__diagnostic { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); }
  .nav__logo-text { font-size: var(--text-base); }
}
@media (max-width: 420px) {
  .nav__diagnostic { padding-inline: var(--space-2); font-size: var(--text-xs); }
  .nav__diagnostic { margin-right: var(--space-1); }
}
.nav__link[aria-current="page"],
.nav__link[aria-current="page"]:visited,
.nav__mobile-link[aria-current="page"],
.nav__mobile-link[aria-current="page"]:visited,
.nav__mobile-group-title[aria-current="page"],
.nav__mobile-submenu a[aria-current="page"],
.nav__mobile-submenu a[aria-current="page"]:visited {
  color: var(--color-emerald-700); font-weight: 600;
  text-decoration: underline; text-decoration-thickness: var(--cra-filet-epais);
  text-decoration-color: var(--color-emerald-600); text-underline-offset: var(--cra-souligne);
}
.nav__item:focus-within .nav__dropdown { opacity: 1; visibility: visible; pointer-events: auto; }
.nav--pilotee .nav__item:not(.is-open) .nav__dropdown { opacity: 0; visibility: hidden; pointer-events: none; }
.nav--pilotee .nav__item.is-open .nav__dropdown { transition: opacity var(--transition-base), transform var(--transition-base); }
.nav--pilotee .nav__item:not(.is-open) .nav__link--dropdown::after { transform: none; }
.nav__item--large::before { content: none; }
.nav__dropdown--large { margin-top: 0; }
.nav__item--large > .nav__link--dropdown::before { content: ""; position: absolute; top: 100%; left: 0; right: 0;
  height: calc((var(--nav-height) - 100%) / 2); }
html.nav-ouverte { overflow: hidden; }
@media (min-width: 1025px) and (max-width: 1280px) { .nav__links { gap: var(--space-4); } }
.fenetre { margin: 0; overflow: hidden; background: var(--color-white); border: var(--cra-filet) solid var(--color-gray-200);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.fenetre__barre { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3);
  background: var(--color-gray-50); border-bottom: var(--cra-filet) solid var(--color-gray-200); }
.fenetre__points { display: inline-flex; gap: var(--space-1); }
.fenetre__points > span { width: var(--space-2); height: var(--space-2); border-radius: var(--radius-full); background: var(--color-gray-300); }
.fenetre__titre { font-size: var(--text-xs); font-weight: 600; line-height: 1.2; color: var(--color-gray-700); }
.fenetre .agrandir { border-radius: 0; }
.fenetre img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
@media (min-width: 1025px) {
  .accueil-hero .hero__inner { gap: var(--space-10); }
  .accueil-hero .hero__content { flex: 1 1 0; min-width: 0; }
  .accueil-hero .hero__visual { flex: 0 0 var(--cra-part-visuel); }
}
.accueil-hero__fenetre { width: 100%; }
.hero__trust { flex-wrap: wrap; row-gap: var(--space-3); list-style: none; padding-left: 0; }
.hero__trust-item { white-space: nowrap; }
.accueil-reassurance { justify-content: center; column-gap: 0; }
.accueil-reassurance .hero__trust-item { padding-inline: var(--space-6); }
.accueil-reassurance .hero__trust-item + .hero__trust-item { border-left: var(--cra-filet) solid var(--color-gray-300); }
@media (max-width: 767px) {
  .accueil-reassurance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .accueil-reassurance .hero__trust-item { justify-content: center; padding-inline: var(--space-3); white-space: normal; text-align: center; }
  .accueil-reassurance .hero__trust-item + .hero__trust-item { border-left: 0; }
  .accueil-reassurance .hero__trust-item:nth-child(even) { border-left: var(--cra-filet) solid var(--color-gray-300); }
}
.vitrine-schema { margin-top: 0; }
.vitrine .section-header .badge, .vitrine .section-header .surtitre { margin-bottom: var(--space-4); }
.offre-accueil .feature-card__text { margin-bottom: var(--space-4); }
.accueil__ligne, .accueil__lien { margin-top: var(--space-10); }
.frise__statut { align-self: flex-start; }
.logiciel { list-style: none; padding-left: 0; }
.logiciel__carte { display: flex; flex-direction: column; }
.logiciel__numero { margin: 0 0 var(--space-3); font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 800;
  line-height: 1; color: var(--color-emerald-700); }
.logiciel__gain { margin: var(--space-4) 0 0; padding-left: var(--space-3); border-left: var(--cra-filet-epais) solid var(--color-emerald-600);
  font-weight: 600; color: var(--color-gray-800); }
.logiciel__preuve { margin: auto 0 0; padding-top: var(--space-4); color: var(--color-gray-600); }
.galerie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-8); list-style: none;
  padding-left: 0; margin: 0; }
.galerie__titre { margin: var(--space-5) 0 var(--space-1); }
.galerie__legende { margin: 0; color: var(--color-gray-700); }
@media (max-width: 767px) { .galerie { grid-template-columns: minmax(0, 1fr); } }
.demonstration { padding: var(--space-12) var(--space-8); }
.demonstration .section-header { margin-bottom: var(--space-8); }
.demonstration:hover { transform: none; }
.veille-accueil { list-style: none; padding-left: 0; margin-bottom: var(--space-12); }
.prose > :last-child { margin-bottom: 0; }
.prose > h2 { margin-top: 0; }
.prose > h3 { margin-top: var(--space-8); }
.prose > :where(.features__grid, .check-list, .accordion, .table-wrapper, figure, .alert, .card, .stats, .frise,
  .decision, .list-styled, .step-list, .en-bref, .cta-section) { margin-top: var(--space-8); margin-bottom: var(--space-8); }
.prose .badge.surtitre { margin-bottom: var(--space-4); }
.doc-intro .prose > :first-child { margin-top: 0; }
.step-content, .step-content p { color: var(--color-gray-700); }
.prose .step-item { margin-bottom: var(--space-4); }
.prose .step-content { padding-top: var(--space-2); }
.step-content > :last-child { margin-bottom: 0; }
.prose .step-content p { font-size: inherit; }
.table td, .table th { vertical-align: top; }
a.feature-card, a.feature-card:visited, a.card, a.card:visited { display: block; text-decoration: none; color: inherit; }
.cartes li.card:hover .card__icon { transform: none; }
.cartes .card__body > :last-child { margin-bottom: 0; }
.cartes--seule { grid-template-columns: minmax(0, 1fr); }
.voisins--seul { display: flex; }
.voisins--seul .feature-card { flex: 0 1 calc(50% - var(--space-4)); }
.voisins--seul .voisins__suivant { margin-left: auto; }
@media (max-width: 640px) { .voisins--seul .feature-card { flex-basis: 100%; } }
.features__grid { list-style: none; padding: 0; }
.features__grid--3 > :last-child:nth-child(3n + 1) { grid-column: 1 / -1; }
.features__grid--3 > :last-child:nth-child(3n + 2) { grid-column: span 2; }
.features__grid--4 > :last-child:nth-child(4n + 3) { grid-column: span 2; }
@media (max-width: 1024px) {
  .features__grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .features__grid--3 > :last-child:nth-child(3n + 2) { grid-column: auto; }
  .features__grid--3 > :last-child:nth-child(3n + 2):nth-child(odd) { grid-column: 1 / -1; }
  .features__grid--4 > :last-child:nth-child(4n + 3) { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .features__grid > :last-child { grid-column: auto; }
}
.feature-card .badge, .cartes .card .badge { margin-top: var(--space-4); }
.accordion__item > summary { list-style: none; }
.accordion__item > summary::-webkit-details-marker { display: none; }
.accordion__item[open] > .accordion__content { max-height: none; padding-bottom: var(--space-5); }
.accordion__item[open] > .accordion__trigger svg { transform: rotate(180deg); opacity: 1; }
.appel-final__acces {
  margin-top: var(--space-10);
  padding-top: var(--space-8);
  border-top: var(--cra-filet) solid var(--color-emerald-500);
  display: grid;
  gap: var(--space-4);
  justify-items: center;
}
.appel-final__acces p { margin: 0; color: var(--color-white); }
.appel-final__acces-titre { font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); }
.vitrine .feature-row__visual { flex: 0 0 var(--cra-part-image); min-width: 0; }
.outil__figure,
.vitrine__figure { margin: 0; padding: var(--space-2); width: fit-content; max-width: 100%; }
.outil__figure img,
.vitrine__figure img { display: block; max-width: 100%; height: auto; border-radius: var(--radius-md); box-shadow: none; }
.outil__figure figcaption,
.vitrine__figure figcaption { margin: var(--space-2) var(--space-2) var(--space-1); }
.vitrine { margin-top: var(--space-4); }
.vitrine .feature-row:first-child { padding-top: var(--space-8); }
.vitrine .feature-row:last-child { padding-bottom: var(--space-8); }
.vitrine__titre { margin: 0 0 var(--space-4); }
.vitrine__texte { margin: 0; }
.vitrine-accueil__lien { margin: 0; }
.btn__fleche { flex: none; display: inline-block; width: var(--cra-point); height: var(--cra-point); vertical-align: middle; }
.feuilles { display: flex; align-items: flex-start; padding-bottom: var(--space-8); }
.feuilles__feuille { flex: 1 1 0; min-width: 0; margin: 0; position: relative; }
.feuilles__feuille + .feuilles__feuille { margin-left: calc(-1 * var(--space-4)); }
.feuilles__feuille:nth-child(2) { top: var(--space-4); z-index: 1; }
.feuilles__feuille:nth-child(3) { top: var(--space-8); z-index: 2; }
.feuilles__feuille img { display: block; width: 100%; height: auto; border: var(--cra-filet) solid var(--border-light);
  border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); background: var(--color-white); }
.feuilles__feuille figcaption { margin-top: var(--space-2); text-align: center; }
.feuilles__action { margin: 0; text-align: center; }
.vitrine__fenetre { width: 100%; }
.fenetre__legende { margin: 0; padding: var(--space-2) var(--space-3); border-top: var(--cra-filet) solid var(--color-gray-200); }
.agrandir { display: block; cursor: zoom-in; border-radius: var(--radius-md); }
.agrandir:focus-visible { outline: var(--cra-filet-epais) solid var(--color-emerald); outline-offset: var(--space-1); }
.agrandi.modal { width: fit-content; height: fit-content; max-width: none; max-height: none; margin: auto; padding: 0; border: 0;
  transform: none; overflow: hidden; }
.agrandi[open] { display: flex; flex-direction: column; }
.agrandi::backdrop { background: var(--cra-voile); }
.agrandi .modal__header { contain: inline-size; }
.agrandi__corps { overflow: hidden; padding: 0; }
.agrandi__image { display: block; width: auto; height: auto; max-width: min(var(--cra-agrandi-max), var(--cra-agrandi-ecran));
  max-height: var(--cra-agrandi-hauteur); object-fit: contain; }
:root {
  --dv-color-forest: var(--color-emerald-700);
  --dv-text-primary: var(--color-gray-700);
  --cra-largeur-panneau: 480px;        
  --cra-hauteur-capture-acces: 14rem;
}
.dv-auth { min-height: calc(100vh - var(--nav-height)); flex-wrap: nowrap; }
.dv-auth__brand { justify-content: center; padding-left: var(--space-12); padding-right: var(--space-12); }
.dv-auth__pitch,
.dv-auth__foot { width: 100%; max-width: var(--cra-largeur-panneau); align-self: center; }
.dv-auth__pitch { margin-top: auto; margin-bottom: auto; }
.dv-auth__capture.fenetre img { max-height: calc(var(--cra-hauteur-capture-acces) - var(--space-8)); object-fit: cover; object-position: top; }
.dv-auth__legal { display: none; margin: var(--space-4) 0 0; font-size: var(--text-sm); color: var(--color-gray-600); text-align: center; }
.dv-auth__legal a,
.dv-auth__legal a:visited { color: var(--color-gray-600); }
.dv-auth__card { padding: var(--space-8); }
.dv-auth__head h1 { margin: 0 0 var(--space-2); font-family: var(--dv-font-title); font-size: var(--text-2xl); font-weight: var(--dv-weight-semibold);
  color: var(--color-emerald-700); }
.dv-auth__head .dv-muted { margin: 0; }
.dv-auth__card p { margin: 0; }
.dv-auth__label-row label { font-size: var(--dv-text-sm); font-weight: var(--dv-weight-medium); color: var(--dv-text-primary); }
.dv-auth__alt { text-align: center; font-size: var(--dv-text-sm); }
.dv-auth__label-row a, .dv-auth__alt a { font-weight: var(--dv-weight-semibold); text-decoration: none; }
.dv-auth__label-row a:hover, .dv-auth__alt a:hover { text-decoration: underline; }
.dv-auth__coches { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--dv-space-3); }
.dv-auth__coches li { display: flex; gap: var(--dv-space-3); align-items: flex-start; color: var(--dv-text-inverse); }
.dv-auth__coche { flex: none; width: var(--space-5); height: var(--space-5); margin-top: calc(var(--space-1) / 2); color: var(--dv-color-mint); }
.dv-auth__foot a + span { color: var(--dv-color-mint); }
.champs-compte { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--dv-space-4); }
.champ--majuscules { text-transform: uppercase; }
.champ--consentements { gap: var(--dv-space-3); }
.choix { display: flex; gap: var(--dv-space-2); align-items: flex-start; font-size: var(--dv-text-sm); cursor: pointer; }
.choix input { flex: none; margin: calc(var(--space-1) - var(--cra-filet)) 0 0; accent-color: var(--color-emerald); }
.choix--erreur, .choix__requis { color: var(--dv-color-danger); }
.champ__avis { color: var(--dv-color-warning); }
.dv-field input[aria-invalid="true"] { border-color: var(--dv-color-danger); }
.note-donnees { font-size: var(--dv-text-xs); color: var(--dv-text-muted); }
.champ-mdp { position: relative; display: block; }
.champ-mdp input[type] { padding-right: var(--cra-cible-tactile); }
.champ-mdp__bascule { position: absolute; top: 0; bottom: 0; right: 0; width: var(--cra-cible-tactile); display: flex; align-items: center;
  justify-content: center; background: none; border: 0; color: var(--dv-text-muted); cursor: pointer; }
.champ-mdp__bascule svg { width: var(--space-5); height: var(--space-5); }
.champ-mdp__bascule:focus-visible { outline: var(--cra-filet-epais) solid var(--color-emerald); outline-offset: calc(-1 * var(--space-1)); }
.societe { border: 0; padding: 0; margin: 0; display: grid; gap: var(--dv-space-4); min-width: 0; }
.societe > legend { padding: 0; margin-bottom: var(--dv-space-2); font-size: var(--dv-text-sm); font-weight: var(--dv-weight-medium); }
.societe__recherche { position: relative; }
.societe__liste { list-style: none; margin: var(--dv-space-1) 0 0; padding: 0; max-height: var(--cra-hauteur-suggestions); overflow-y: auto;
  border: 1px solid var(--dv-border-default); border-radius: var(--dv-radius-md); background: var(--dv-bg-card); box-shadow: var(--dv-shadow-lg); }
.societe__item, .societe__vide { display: grid; gap: calc(var(--space-1) / 2); padding: var(--dv-space-2) var(--dv-space-3); }
.societe__item { cursor: pointer; }
.societe__item:hover, .societe__item:focus { background: var(--dv-bg-muted); }
.societe__item-nom { font-weight: var(--dv-weight-semibold); }
.societe__item-meta { font-size: var(--dv-text-xs); color: var(--dv-text-muted); font-variant-numeric: tabular-nums; }
.societe__item--cessee { opacity: 0.65; }
.societe__vide { color: var(--dv-text-muted); font-size: var(--dv-text-sm); }
.societe__fiche { display: grid; gap: var(--dv-space-3); padding: var(--dv-space-4); background: var(--dv-bg-muted);
  border: 1px solid var(--dv-border-default); border-radius: var(--dv-radius-md); }
.societe__nom { margin: 0; font-weight: var(--dv-weight-semibold); }
.societe__details { margin: 0; display: grid; gap: var(--dv-space-2); }
.societe__details div { display: flex; gap: var(--dv-space-3); font-size: var(--dv-text-sm); }
.societe__details dt { flex: none; min-width: var(--cra-largeur-etiquette); color: var(--dv-text-muted); }
.societe__details dd { margin: 0; }
.societe__changer { justify-self: start; }
.societe__champs { display: grid; gap: var(--dv-space-4); }
.societe__manuel-lien { padding: 0; border: 0; background: none; font: inherit; color: var(--color-emerald-700); text-decoration: underline; cursor: pointer; }
@media (max-width: 900px) {
  .dv-auth__brand { display: none; }
  .dv-auth__panel { align-content: center; }
  .dv-auth__legal { display: block; }
}
@media (max-width: 640px) {
  .champs-compte { grid-template-columns: minmax(0, 1fr); }
}
.hero { isolation: isolate; }
.hero__bg-shape--terra {
  top: auto; right: auto; bottom: calc(-1 * var(--space-20)); left: calc(-1 * var(--space-24));
  width: var(--cra-forme-terra); height: var(--cra-forme-terra);
  background: radial-gradient(circle, color-mix(in srgb, var(--color-terra) 22%, transparent) 0%, transparent 70%);
}
.accroche__fond { position: relative; overflow: hidden; isolation: isolate; }
.doc .section { padding-top: var(--cra-section); padding-bottom: 0; }
.doc .doc-outil, .doc .doc-section--sombre { padding-block: var(--cra-section); }
.doc .section:has(+ .doc-outil, + .doc-section--sombre), .doc .doc-bande--fin { padding-bottom: var(--cra-section); }
.doc .section-sm { padding-block: var(--space-12); }
.doc .doc-intro { padding-top: var(--space-20); }
.doc h2:not(.hero__title):not(.cta-section__title):not(.h4) { font-family: var(--font-display); font-weight: 500;
  font-size: var(--cra-titre-section); line-height: 1.15; letter-spacing: var(--cra-titre-section-espacement);
  color: var(--color-emerald-700); text-align: left; scroll-margin-top: calc(var(--nav-height) + var(--cra-barre)); }
@media (max-width: 760px) {
  .doc h2:not(.hero__title):not(.cta-section__title):not(.h4) { font-size: var(--cra-titre-section-mobile); }
}
.doc .surtitre:not(.hero__badge), .outil__surtitre { display: block; width: auto; margin: 0 0 var(--space-4); padding: 0;
  border-radius: 0; background: none; white-space: normal; font-family: var(--font-body); font-size: var(--cra-surtitre-taille);
  font-weight: 600; line-height: 1.4; letter-spacing: var(--cra-surtitre-espacement); text-transform: uppercase;
  color: var(--color-emerald-600); }
.doc-hero { position: relative; overflow: hidden; isolation: isolate; background-color: var(--color-cream);
  padding: var(--space-16) 0 var(--space-20); text-align: left; }
.doc-hero__trame, .doc-hero__tache { position: absolute; z-index: -1; pointer-events: none; }
.doc-hero__trame { inset: 0; background-image: radial-gradient(circle, var(--cra-trame-point) 1px, transparent 1px);
  background-size: var(--cra-trame-points) var(--cra-trame-points); }
.doc-hero__tache { border-radius: var(--radius-full); filter: blur(var(--cra-flou)); }
.doc-hero__tache--haut { width: var(--cra-tache-haut); height: var(--cra-tache-haut); top: calc(-1 * (var(--space-30) + var(--space-10)));
  right: calc(-1 * var(--space-30)); background: var(--color-emerald-100); opacity: 0.75; }
.doc-hero__tache--bas { width: var(--cra-tache-bas); height: var(--cra-tache-bas); bottom: calc(-1 * (var(--space-30) + var(--space-10)));
  left: calc(-1 * var(--space-30)); background: var(--cra-orange-pale); opacity: 0.55; }
.doc-hero__grille { display: grid; gap: var(--space-12); align-items: center; }
.doc-hero .hero__content { max-width: none; margin: 0; text-align: left; }
.doc-hero .hero__content > :last-child { margin-bottom: 0; }
.doc-hero__surtitre, .doc-hero .hero__badge { display: block; margin: 0 0 var(--space-4); padding: 0; border-radius: 0; background: none;
  font-family: var(--font-body); font-size: var(--cra-surtitre-taille); font-weight: 600; line-height: 1.4;
  letter-spacing: var(--cra-surtitre-espacement); text-transform: uppercase; color: var(--cra-surtitre-haut); }
.doc-hero__titre { margin: 0 0 var(--space-5); font-family: var(--font-display); font-weight: 600; font-size: var(--cra-titre-haut);
  line-height: 1.08; letter-spacing: var(--cra-titre-haut-espacement); color: var(--color-emerald-700); text-align: left; }
.doc-hero .hero__description { margin: 0 0 var(--space-8); font-size: var(--cra-chapeau-haut); color: var(--color-gray-700); }
.doc-hero__actions { justify-content: flex-start; flex-wrap: wrap; gap: var(--space-3); }
.doc-hero__visuel { display: none; }
@media (min-width: 1025px) {
  .doc-hero--visuel .doc-hero__grille { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .doc-hero__visuel { display: flex; justify-content: center; }
}
@media (max-width: 760px) {
  .doc-hero__titre { font-size: var(--cra-titre-haut-mobile); }
}
.doc-hero__visuel .illu-ouverture { width: 100%; max-width: var(--cra-illustration); padding: var(--space-8); background: var(--color-white);
  border: var(--cra-filet) solid var(--color-gray-200); border-radius: var(--cra-rayon-carte); box-shadow: var(--cra-ombre-visuel); }
.illu-ouverture svg { display: block; width: 100%; height: auto; }
.illu-ouverture :where(.i-t, .i-l, .i-p, .i-b, .i-a) { vector-effect: non-scaling-stroke; stroke-width: var(--cra-filet-epais);
  stroke-linecap: round; stroke-linejoin: round; }
.illu-ouverture .i-t  { fill: none; stroke: var(--color-emerald-700); }
.illu-ouverture .i-l  { fill: var(--color-emerald-100); stroke: var(--color-emerald-700); }
.illu-ouverture .i-p  { fill: var(--cra-orange-pale); stroke: var(--color-emerald-700); }
.illu-ouverture .i-b  { fill: var(--color-white); stroke: var(--color-emerald-700); }
.illu-ouverture .i-a  { fill: none; stroke: var(--color-terra); }
.illu-ouverture .i-af { fill: var(--color-terra); stroke: none; }
.doc-hero__ecran { width: 100%; border-radius: var(--cra-rayon-carte); box-shadow: var(--cra-ombre-visuel); }
.doc-hero a:not([class]):link, .doc-outil a:not([class]):link { color: var(--color-emerald-600); }
.doc-hero a:not([class]):hover, .doc-outil a:not([class]):hover { color: var(--color-emerald-700); }
.doc-sommaire { max-width: none; margin: 0; background: none; border: 0; border-radius: 0; }
.doc-sommaire--barre { position: sticky; top: var(--nav-height); z-index: 50; background: var(--color-white);
  border-bottom: var(--cra-filet) solid var(--color-gray-200); box-shadow: var(--shadow-sm); }
.doc-sommaire__barre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding-block: var(--space-3); }
.doc-sommaire--barre .doc-sommaire__titre { margin: 0; font-size: var(--cra-surtitre-taille); font-weight: 600;
  letter-spacing: var(--cra-surtitre-espacement); text-transform: uppercase; color: var(--color-gray-600); }
.doc-sommaire__pastilles { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.doc-sommaire__pastille, .doc-sommaire__pastille:visited { display: inline-block; padding: var(--space-1) var(--space-3);
  border: var(--cra-filet) solid var(--color-gray-200); border-radius: var(--radius-full); background: var(--color-white);
  color: var(--color-gray-700); font-size: var(--text-sm); line-height: 1.4; text-decoration: none; }
.doc-sommaire__pastille:hover { border-color: var(--color-emerald-600); color: var(--color-emerald-700); }
.doc-sommaire__pastille[aria-current="true"] { border-color: var(--color-emerald-700); background: var(--color-emerald-700); color: var(--color-white); }
.doc-sommaire__repli { display: none; }
.doc-sommaire--replie { padding: var(--space-3) var(--space-5); border: var(--cra-filet) solid var(--color-gray-200);
  border-radius: var(--cra-rayon-detail); background: var(--color-white); }
.doc-sommaire--replie > summary { cursor: pointer; font-weight: 600; color: var(--color-emerald-700); }
.doc-sommaire--replie .doc-sommaire__liste { margin-top: var(--space-3); }
.doc-sommaire--replie a[aria-current="true"] { color: var(--color-emerald-700); font-weight: 600; }
@media (max-width: 767px) {
  .doc-sommaire--barre { display: none; }
  .doc-sommaire__repli { display: block; padding-top: var(--space-6); }
}
.doc-intro__grille { display: grid; gap: var(--space-12); align-items: start; }
@media (min-width: 1025px) {
  .doc-intro__grille { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
  .doc-intro__grille--seul { grid-template-columns: minmax(0, 1fr); }
}
.doc-intro__apres { margin-top: var(--space-12); }
.en-bref { margin: 0; padding: var(--space-8) var(--space-8) var(--space-6); border: 0; border-radius: var(--cra-rayon-carte);
  background: var(--color-emerald-50); box-shadow: none; }
.en-bref__titre { margin: 0 0 var(--space-4); font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); color: var(--color-emerald-700); }
.en-bref__liste { margin: 0; }
.en-bref__liste li { padding: var(--space-2) 0; font-size: var(--cra-texte-carte); color: var(--color-gray-800); }
.en-bref__liste li::before { background: var(--color-emerald-700); -webkit-mask: var(--cra-coche) center / contain no-repeat;
  mask: var(--cra-coche) center / contain no-repeat; }
.doc-section--sombre { background-color: var(--color-emerald-700);
  background-image: linear-gradient(var(--cra-trame-trait) 1px, transparent 1px), linear-gradient(90deg, var(--cra-trame-trait) 1px, transparent 1px);
  background-size: var(--cra-trame-grille) var(--cra-trame-grille); color: var(--color-emerald-50); }
.doc .doc-section--sombre h2:not(.hero__title):not(.cta-section__title):not(.h4), .doc .doc-section--sombre h3,
.doc .doc-section--sombre strong { color: var(--color-white); }
.doc .doc-section--sombre .surtitre:not(.hero__badge) { color: var(--color-emerald-100); }
.doc-section--sombre .prose > :where(p, ul, ol), .doc-section--sombre .prose > :where(ul, ol) li,
.doc-section--sombre .text-lead { color: var(--color-emerald-50); }
.doc-section--sombre .prose > :where(p, ul) a:not([class]), .doc-section--sombre .prose > :where(p, ul) a:not([class]):visited { color: var(--color-white); }
.cartes.cartes--frise { position: relative; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--cra-colonne-frise)), 1fr)); gap: var(--space-5); }
.cartes.cartes--frise > :last-child { grid-column: auto; }
.cartes.cartes--frise .card, .cartes.cartes--frise .card:hover { background: none; border: 0; border-radius: 0; box-shadow: none; }
.cartes--frise .card__body { padding: 0; }
.cartes--frise .cartes__pastille--numero { position: relative; z-index: 1; width: var(--cra-numero); height: var(--cra-numero); margin-bottom: var(--space-5);
  border-radius: var(--radius-full); background: var(--color-white); color: var(--color-emerald-700); font-size: var(--text-lg); }
.cartes--frise .cartes__titre { margin: 0 0 var(--space-2); font-family: var(--font-body); font-weight: 600; font-size: var(--text-base); color: var(--color-white); }
.cartes--frise .cartes__texte, .cartes--frise .cartes__suite { font-size: var(--cra-texte-carte); line-height: 1.55; color: var(--color-emerald-50); }
@media (min-width: 1025px) {
  .cartes--frise::before { content: ""; position: absolute; top: calc(var(--cra-numero) / 2 - var(--cra-filet)); left: var(--space-6);
    right: var(--space-6); height: var(--cra-filet-epais); background: var(--cra-frise-trait); }
}
.doc-outil { background-color: var(--color-cream); }
.outil { display: grid; gap: var(--space-10); align-items: center; }
.outil + .outil { margin-top: var(--space-16); }
@media (min-width: 1025px) {
  .outil { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-12); }
}
.outil__phrase { margin: 0; color: var(--color-gray-700); }
.outil__visuel { min-width: 0; }
.outil__fenetre { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--cra-ombre-ecran); }
.outil__visuel--haute img { max-height: var(--cra-capture-haute); object-fit: cover; object-position: top;
  mask-image: linear-gradient(to bottom, var(--color-gray-900) calc(100% - var(--space-16)), transparent); }
.cartes .card, .cartes .card:hover { border: 0; border-radius: var(--cra-rayon-carte); background: var(--color-white); box-shadow: var(--cra-ombre-douce); }
.cartes a.card:hover { box-shadow: var(--shadow-lg); }
.cartes__titre { color: var(--color-emerald-700); }
.cartes__item--lien { position: relative; }
.cartes__item--lien:hover { box-shadow: var(--shadow-lg); }
.cartes__item--lien .cartes__titre a, .cartes__item--lien .cartes__titre a:visited { color: var(--color-emerald-700); text-decoration: none; }
.cartes__item--lien .cartes__titre a::after { content: ""; position: absolute; inset: 0; border-radius: var(--cra-rayon-carte); }
.cartes__item--lien:hover .cartes__titre a, .cartes__item--lien .cartes__titre a:focus-visible { text-decoration: underline;
  text-underline-offset: var(--cra-souligne); }
.cartes__pastille { width: var(--cra-pastille); height: var(--cra-pastille); margin-bottom: var(--space-5); border-radius: var(--cra-rayon-detail); }
.cartes__pastille svg { width: var(--cra-pastille-icone); height: var(--cra-pastille-icone); }
.cartes__pastille--numero { width: var(--space-10); height: var(--space-10); background-color: var(--color-emerald-50); color: var(--color-emerald-700);
  font-family: var(--font-display); font-weight: 700; font-size: var(--text-lg); }
.cartes--deux .card__body { padding: var(--space-8); }
.cartes--deux .cartes__titre { font-size: var(--cra-titre-carte-grand); }
.cartes--deux .cartes__texte { font-size: var(--text-base); }
.doc .feature-card { border: 0; border-radius: var(--cra-rayon-carte); box-shadow: var(--cra-ombre-douce); }
.features__grid > li > a.card, .features__grid > li > .feature-card { height: 100%; }
.phrase-forte, .doc .encart { display: flex; align-items: flex-start; gap: var(--space-4); margin-block: var(--space-8);
  padding: var(--space-5) var(--space-6); border: var(--cra-filet) solid var(--color-gray-200); border-radius: var(--radius-lg);
  background: var(--color-white); box-shadow: none; }
.icone-info { flex: none; width: var(--cra-icone-info); height: var(--cra-icone-info); margin-top: var(--space-1); color: var(--color-emerald-700); }
.phrase-forte p { margin: 0; font-size: var(--text-base); color: var(--color-gray-800); }
.encart__corps { min-width: 0; }
.encart__corps > :last-child { margin-bottom: 0; }
.encart__tete { margin: 0 0 var(--space-2); color: var(--color-emerald-700); }
.doc figure.schema { padding: var(--space-10) var(--space-8); border: var(--cra-filet) solid var(--color-gray-200);
  border-radius: var(--radius-xl); background: var(--color-gray-50); }
.doc .table-wrapper { padding: var(--space-6) var(--space-8); border: var(--cra-filet) solid var(--color-gray-200);
  border-radius: var(--radius-xl); background: var(--color-gray-50); box-shadow: none; }
.doc .table-wrapper .table { background: transparent; }
@media (max-width: 640px) {
  .doc figure.schema { padding: var(--space-5) var(--space-3); }
  .doc .table-wrapper { padding: var(--space-4) var(--space-3); }
}
.doc .table th { background: transparent; font-size: var(--cra-texte-entete); font-weight: 600; letter-spacing: var(--cra-entete-espacement);
  text-transform: uppercase; color: var(--color-gray-500); border-bottom: var(--cra-filet) solid var(--color-gray-200); }
.doc .accordion__item { border: var(--cra-filet) solid var(--color-gray-200); border-radius: var(--cra-rayon-detail); background: var(--color-white); box-shadow: none; }
.doc .accordion__trigger { color: var(--color-emerald-700); font-weight: 600; }
.appel-carte { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: var(--space-6) var(--space-8); padding: var(--space-12); border-radius: var(--cra-rayon-appel);
  background: var(--color-emerald-50); text-align: left; }
.appel-carte--compacte { padding: var(--space-8) var(--space-10); }
.appel-carte__tache { position: absolute; z-index: -1; width: var(--cra-tache-appel); height: var(--cra-tache-appel);
  right: calc(-1 * var(--space-16)); bottom: calc(-1 * (var(--space-30) + var(--space-5))); border-radius: var(--radius-full);
  background: var(--cra-orange-pale); filter: blur(var(--cra-flou-appel)); opacity: 0.6; pointer-events: none; }
.appel-carte__texte { flex: 1 1 var(--cra-colonne-appel); min-width: 0; }
.doc .appel-carte__titre { margin: 0 0 var(--space-2); font-family: var(--font-display); font-weight: 500; font-size: var(--cra-titre-appel);
  line-height: 1.15; color: var(--color-emerald-700); }
.appel-carte--compacte .appel-carte__titre { font-size: var(--text-2xl); }
.appel-carte__ligne { margin: 0; font-size: var(--cra-texte-grand); color: var(--color-gray-700); }
.appel-carte .btn--primary, .appel-carte .btn--primary:visited,
.bandeau-offre .btn--primary, .bandeau-offre .btn--primary:visited,
.prix .btn--primary, .prix .btn--primary:visited { border-color: var(--color-emerald-700); background: var(--color-emerald-700); color: var(--color-white); }
.appel-carte .btn--primary:hover, .appel-carte .btn--primary:active,
.bandeau-offre .btn--primary:hover, .bandeau-offre .btn--primary:active,
.prix .btn--primary:hover, .prix .btn--primary:active { border-color: var(--color-emerald-800); background: var(--color-emerald-800); color: var(--color-white); }
.appel-carte .appel-final__acces { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--space-4) var(--space-8); margin-top: var(--space-2); padding-top: var(--space-6); border-top: var(--cra-filet) solid var(--color-emerald-200); }
.appel-carte .appel-final__acces p { color: var(--color-gray-700); }
.appel-carte .appel-final__acces-titre { color: var(--color-emerald-700); }
.appel-carte .btn--outline-light, .appel-carte .btn--outline-light:visited { border-color: var(--color-emerald-700); background: transparent; color: var(--color-emerald-700); }
.appel-carte .btn--outline-light:hover { background: var(--color-emerald-700); color: var(--color-white); }
@media (max-width: 640px) {
  .appel-carte, .appel-carte--compacte { padding: var(--space-8) var(--space-6); }
}
.bandeau-offre { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4) var(--space-8);
  padding: var(--space-6) var(--space-8); border-radius: var(--cra-rayon-carte); background: var(--color-emerald-50); }
.bandeau-offre__texte { flex: 1 1 0; min-width: 0; margin: 0; font-size: var(--cra-texte-grand); font-weight: 500; line-height: 1.5; color: var(--color-gray-800); }
.bandeau-offre__bouton { flex: none; }
@media (max-width: 1024px) {
  .bandeau-offre { flex-direction: column; align-items: flex-start; }
  .bandeau-offre__texte { flex: none; }
}
.prix { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); align-items: stretch;
  margin: var(--space-10) 0 0; padding: 0; list-style: none; }
@media (max-width: 900px) { .prix { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); } }
.prix__carte { position: relative; display: flex; flex-direction: column; margin: 0; padding: var(--space-10) var(--space-8) var(--space-8);
  border: var(--cra-filet-epais) solid var(--color-white); border-radius: var(--cra-rayon-carte); background: var(--color-white);
  box-shadow: var(--cra-ombre-douce); }
.prix__carte--avant { border-color: var(--color-emerald-600); }
.prix__etiquette { position: absolute; top: 0; left: var(--space-8); transform: translateY(-50%); margin: 0; padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full); background: var(--color-emerald-700); color: var(--color-white); font-size: var(--text-xs); font-weight: 600; }
.prix__nom { margin: 0; font-family: var(--font-display); font-size: var(--cra-titre-carte-grand); font-weight: 600; line-height: 1.25; color: var(--color-emerald-700); }
.prix__montant { margin: var(--space-4) 0 0; font-family: var(--font-display); font-size: var(--cra-prix-montant); font-weight: 600; line-height: 1.1;
  color: var(--color-emerald-700); }
.prix__unite, .prix__complement { margin: var(--space-2) 0 0; font-size: var(--cra-texte-carte); line-height: 1.5; color: var(--color-gray-700); }
.prix__complement { margin-top: var(--space-1); }
.prix__inclus { margin-top: var(--space-6); padding-top: var(--space-6); border-top: var(--cra-filet) solid var(--color-gray-200); }
.prix__inclus-titre { margin: 0 0 var(--space-2); font-size: var(--cra-surtitre-taille); font-weight: 600; letter-spacing: var(--cra-surtitre-espacement);
  text-transform: uppercase; color: var(--color-emerald-700); }
.prix__liste { margin: 0; }
.prix__liste li { padding: var(--space-2) 0; font-size: var(--cra-texte-carte); color: var(--color-gray-800); }
.prix__liste li::before { background: var(--color-emerald-700); -webkit-mask: var(--cra-coche) center / contain no-repeat;
  mask: var(--cra-coche) center / contain no-repeat; }
.prix__bouton { margin-top: auto; align-self: stretch; justify-content: center; }
.prix__carte > :has(+ .prix__bouton) { margin-bottom: var(--space-8); }
.calcul { margin: var(--space-8) 0 0; padding: var(--space-8); border-radius: var(--cra-rayon-carte); background: var(--color-white);
  box-shadow: var(--cra-ombre-douce); }
.calcul__saisie { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.calcul__libelle { flex: 1 1 100%; font-weight: 600; color: var(--color-gray-800); }
.calcul__curseur { flex: 1 1 0; min-width: 0; height: var(--cra-cible-tactile); accent-color: var(--color-emerald-700); }
.calcul__nombre { flex: none; min-width: var(--space-12); font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 600;
  line-height: 1; text-align: right; color: var(--color-emerald-700); }
.calcul__resultats { margin: var(--space-6) 0 0; }
.calcul__ligne { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-2) var(--space-6);
  padding: var(--space-4) 0; border-top: var(--cra-filet) solid var(--color-gray-200); }
.calcul__nom { margin: 0; font-size: var(--cra-texte-carte); color: var(--color-gray-700); }
.calcul__valeur { margin: 0; font-size: var(--cra-texte-carte); color: var(--color-gray-700); }
.calcul__montant { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 600; color: var(--color-emerald-700); }
.vignettes__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); margin: var(--space-8) 0 0; padding: 0;
  list-style: none; }
@media (max-width: 900px) { .vignettes__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vignettes__item { margin: 0; }
.vignettes__figure { margin: 0; }
.vignettes__figure img { display: block; width: 100%; height: auto; aspect-ratio: 596 / 842; object-fit: cover; object-position: left top;
  border: var(--cra-filet) solid var(--color-gray-200); border-radius: var(--cra-rayon-detail); background: var(--color-white);
  box-shadow: var(--cra-ombre-douce); }
.vignettes__figure figcaption { margin-top: var(--space-3); text-align: center; color: var(--color-gray-700); }
.vignettes__action { margin: var(--space-8) 0 0; text-align: center; }
.schema { margin: var(--space-8) 0; }
.schema svg { display: block; width: 100%; height: auto; overflow: visible; }
.schema__large svg { max-height: var(--cra-hauteur-schema); margin-inline: auto; }
.schema figcaption { margin-top: var(--space-4); font-size: var(--text-sm); line-height: 1.6; color: var(--color-gray-600); }
.schema text { font-family: var(--font-body); font-size: var(--text-sm); fill: var(--color-gray-700); }
.schema .s-titre { font-family: var(--font-display); font-size: var(--text-base); font-weight: 600; fill: var(--color-emerald-700); }
.schema .s-gras { font-weight: 600; }
.schema .s-doux { fill: var(--color-gray-600); }
.schema .s-sur-accent { fill: var(--color-white); font-weight: 600; }
.schema .s-texte-accent { fill: var(--color-emerald-700); font-weight: 600; }
.schema .s-texte-alerte { fill: var(--color-error); font-weight: 600; }
.schema .s-cadre { fill: var(--color-white); stroke: var(--color-gray-300); stroke-width: 1.5; }
.schema .s-cadre-accent { fill: var(--color-white); stroke: var(--color-emerald); stroke-width: 1.5; }
.schema .s-cadre-lave { fill: var(--color-emerald-50); stroke: var(--color-emerald); stroke-width: 1.5; }
.schema .s-cadre-alerte { fill: var(--color-cream); stroke: var(--color-terra); stroke-width: 1.5; }
.schema .s-cadre-neutre { fill: var(--color-gray-50); stroke: var(--color-gray-300); stroke-width: 1.5; }
.schema .s-plein-accent { fill: var(--color-emerald); stroke: none; }
.schema .s-plein-alerte { fill: var(--color-terra); stroke: none; }
.schema .s-trait { fill: none; stroke: var(--color-gray-500); stroke-width: 1.5; }
.schema .s-trait-accent { fill: none; stroke: var(--color-emerald); stroke-width: 1.5; }
.schema .s-trait-alerte { fill: none; stroke: var(--color-terra); stroke-width: 1.5; }
.schema .s-filet { fill: none; stroke: var(--color-gray-300); stroke-width: 1.5; }
.schema .s-pointe-accent { fill: var(--color-emerald); }
.schema .s-pointe { fill: var(--color-gray-500); }
.schema .s-pointe-alerte { fill: var(--color-terra); }
.schema__mobile, .schema__repli { display: none; }
.schema__repli { margin: 0; padding-left: var(--space-5); list-style: disc; }
.schema__repli li { margin-bottom: var(--space-2); }
@media (max-width: 640px) {
  .schema:not(.schema--repli) .schema__large { display: none; }
  .schema__mobile { display: block; }
  .schema--repli .schema__large { display: none; }
  .schema--repli .schema__repli { display: block; }
}
ol.frise {
  list-style: none;
  padding: 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}
.frise__jalon { display: flex; flex-direction: column; gap: var(--space-3); overflow: hidden; padding: var(--space-2) var(--space-5) var(--space-1) var(--space-2); }
.frise__point {
  position: relative;
  flex: none;
  width: var(--cra-point);
  height: var(--cra-point);
  margin: var(--space-2) 0;
  border-radius: var(--radius-full);
  background: var(--color-white);
  border: var(--cra-filet) solid var(--color-gray-300);
}
.frise__point::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 100vw;
  height: var(--cra-filet);
  background: var(--color-gray-300);
}
.frise__jalon:last-child .frise__point::after { display: none; }
.frise__jalon--passe .frise__point::after { background: var(--color-emerald); }
.frise__date {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1.2;
  color: var(--color-emerald-700);
  font-variant-numeric: tabular-nums;
  min-height: calc(2 * var(--text-xl) * 1.2);
  display: flex;
  align-items: flex-end;
}
.frise__jalon--passe  .frise__point { background: var(--color-emerald); border-color: var(--color-emerald); }
.frise__jalon--proche .frise__point { border-color: var(--color-emerald); box-shadow: 0 0 0 0.3em var(--color-emerald-100); }
.frise__jalon--futur  .frise__point { border-color: var(--color-gray-500); }
.frise__jalon--futur  .frise__date  { color: var(--color-gray-600); }
.frise__lib { font-size: var(--text-base); line-height: 1.5; color: var(--color-gray-700); }
.frise__jalon--aujourdhui .frise__point { background: var(--color-terra); border-color: var(--color-terra); box-shadow: 0 0 0 0.3em var(--color-cream); }
.frise__jalon--aujourdhui .frise__date { font-family: var(--font-body); font-size: var(--text-sm); text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-emerald-700); }
@media (max-width: 720px) {
  ol.frise { grid-auto-flow: row; grid-auto-columns: auto; }
  .frise__jalon { display: grid; grid-template-columns: var(--cra-point) minmax(0, 1fr); column-gap: var(--space-4); row-gap: var(--space-1); padding: 0 0 var(--space-6); }
  .frise__point { grid-row: 1 / span 3; grid-column: 1; margin: 0.2em 0 0; }
  .frise__point::after { top: 100%; left: 50%; width: var(--cra-filet); height: 100vh; }
  .frise__date, .frise__lib { grid-column: 2; }
  .frise__date { min-height: 0; }
  .frise__jalon:last-child { padding-bottom: 0; }
}
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--cra-colonne-chiffre)), 1fr)); gap: 0;
  background: var(--color-white); border-block: var(--cra-filet) solid var(--color-gray-200); }
.stat {
  margin: 0;
  padding: var(--space-8) var(--space-6);
  border-right: var(--cra-filet) solid var(--color-gray-200);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.stat:last-child { border-right: 0; }
.stat__val { font-family: var(--font-display); font-weight: 600; font-size: var(--text-4xl); line-height: 1; color: var(--color-emerald-700); overflow-wrap: break-word; }
.stat__lib { margin: 0; font-size: var(--cra-texte-carte); line-height: 1.5; color: var(--color-gray-600); }
.decision {
  padding: var(--space-6);
  background: var(--bg-card);
  border: var(--cra-filet) solid var(--border-light);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}
.decision__questions { list-style: none; margin: 0; padding: 0; counter-reset: q; display: grid; gap: var(--space-4); }
.decision__question { counter-increment: q; margin: 0; display: grid; grid-template-columns: 2.25em minmax(0, 1fr); column-gap: var(--space-4); row-gap: var(--space-3); }
.decision__question::before {
  content: counter(q);
  grid-row: 1 / span 2;
  display: inline-grid;
  place-items: center;
  width: 2.25em;
  height: 2.25em;
  border-radius: var(--radius-full);
  background: var(--color-dew);
  color: var(--color-emerald-700);
  font-family: var(--font-display);
  font-weight: 700;
}
.decision__intitule { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); line-height: 1.3; color: var(--color-emerald-700); align-self: center; }
.decision__reponses { margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.decision__reponse,
.decision__reponse:visited {
  display: inline-flex;
  align-items: baseline;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border: var(--cra-filet) solid var(--color-gray-300);
  border-radius: var(--radius-md);
  background: var(--color-white);
  color: var(--color-gray-700);
  text-decoration: none;
  font-size: var(--text-sm);
}
.decision__reponse:hover,
.decision__reponse[aria-pressed="true"] { border-color: var(--color-emerald); background: var(--color-emerald-50); }
.decision__mot { font-weight: 700; color: var(--color-emerald-700); }
.decision__vers { color: var(--color-gray-600); }
.decision__vers::before { content: "→ "; }
.decision__issues { list-style: none; margin: var(--space-6) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--cra-colonne-issue)), 1fr)); gap: var(--space-3); }
.decision__issue { margin: 0; padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); border-left: var(--space-1) solid var(--color-gray-300); background: var(--color-gray-50); }
.decision__issue p { margin: 0; font-weight: 600; line-height: 1.5; color: var(--color-gray-700); }
.decision__issue--champ { background: var(--color-emerald-50); border-left-color: var(--color-emerald); }
.decision__issue--attention { background: var(--color-cream); border-left-color: var(--color-terra); }
.decision__issue--hors { background: var(--color-gray-50); border-left-color: var(--color-gray-500); }
.decision__issue:target,
.decision__question:target { outline: var(--cra-filet-epais) solid var(--color-emerald); outline-offset: var(--space-2); border-radius: var(--radius-md); }
.decision__fin { margin: var(--space-6) 0 0; display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }
[hidden] { display: none !important; }
body:has(> .pied-parcours) { display: flex; flex-direction: column; min-height: 100vh; }
body:has(> .pied-parcours) > main { flex: 1 0 auto; }
.nav--parcours .entete-parcours__barre { display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-4); height: 100%; }
.nav--parcours .nav__logo:visited .nav__logo-text { color: var(--color-forest); }
.ecran-parcours { padding-top: var(--space-8); }
.colonne-parcours { padding-top: var(--space-12); padding-bottom: var(--space-16); }
.panneau-parcours { padding: var(--space-10); }
.panneau-parcours.card:hover,
.resultat.card:hover { box-shadow: var(--shadow-card); }
.panneau-parcours > :first-child { margin-top: 0; }
.panneau-parcours > :last-child { margin-bottom: 0; }
.accroche__entete { padding-top: var(--space-8); }
.accroche__entete .hero__title { margin-bottom: var(--space-5); }
.accroche__action { justify-content: center; margin: 0; }
.accroche__reperes { margin: var(--space-12) 0 0; }
.accroche__repere .feature-card__text { margin: 0; }
.question__intro { display: block; background: var(--color-gray-50); color: var(--color-gray-700);
  border: 1px solid var(--color-gray-200); font-size: var(--text-sm); }
.accroche__entete .question__intro { margin: 0 auto var(--space-6); }
.progression { margin: 0 0 var(--space-6); }
.progression__compteur { margin: 0 0 var(--space-2); font-size: var(--text-sm); font-weight: 600; color: var(--color-gray-700); }
.question { border: 0; margin: 0 0 var(--space-12); padding: 0; min-width: 0; }
.question:last-of-type { margin-bottom: 0; }
[data-sequence] .question--repondue { display: none; }
.question__legende { display: block; width: 100%; padding: 0; margin-bottom: var(--space-3);
  font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; line-height: 1.3; color: var(--color-forest); }
.question__aide { margin: 0 0 var(--space-5); font-size: var(--text-base); line-height: 1.6; color: var(--text-secondary); }
.question__erreur { margin: 0 0 var(--space-4); }
.reponses { display: grid; gap: var(--space-2); }
.reponse { align-items: center; min-height: var(--space-16); padding: var(--space-3) var(--space-5);
  border: 1px solid var(--color-gray-300); border-radius: var(--radius-md); background: var(--color-white);
  transition: border-color var(--transition-fast), background-color var(--transition-fast); }
.reponse:hover { border-color: var(--color-emerald); background: var(--color-emerald-50); }
.reponse:has(input:checked) { border-color: var(--color-emerald); background: var(--color-emerald-50);
  box-shadow: inset var(--cra-focus) 0 0 var(--color-emerald); }
.reponse:has(input:focus-visible) { outline: var(--cra-focus) solid var(--color-forest); outline-offset: var(--cra-filet-epais); }
.reponse .form-check-input { margin-top: 0; }
.reponse__texte { font-size: var(--text-base); color: var(--color-gray-800); }
.reponses__groupe { margin: var(--space-5) 0 var(--space-1); font-size: var(--text-xs); font-weight: 600;
  text-transform: uppercase; color: var(--color-gray-600); }
.reponses__groupe:first-child { margin-top: 0; }
.actions { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-8); }
.analyse { min-height: 40vh; display: grid; place-content: center; text-align: center; }
.analyse__etat { margin: 0; min-height: calc(var(--text-xl) * 3.2); font-family: var(--font-display);
  font-size: var(--text-xl); font-weight: 700; line-height: 1.6; color: var(--color-forest); }
.analyse__etat > span { display: block; animation: analyse-releve var(--transition-slow) both; }
@keyframes analyse-releve {
  from { opacity: 0; transform: translateY(var(--space-2)); }
  to   { opacity: 1; transform: none; }
}
.analyse__filet { margin-top: var(--space-6); }
.analyse__filet::after { content: ""; display: block; width: 40%; height: 100%; border-radius: var(--radius-full);
  background: var(--color-emerald); animation: analyse-va-et-vient var(--cra-duree-attente) ease-in-out infinite; }
@keyframes analyse-va-et-vient {
  from { transform: translateX(-100%); }
  to   { transform: translateX(250%); }
}
.analyse__reduit { display: none; }
@media (prefers-reduced-motion: reduce) {
  .analyse__sequence { display: none; }
  .analyse__reduit { display: block; }
}
.analyse__echec { display: block; text-align: start; }
.analyse__echec p { margin: 0 0 var(--space-4); }
.analyse__echec p:last-child { margin-bottom: 0; }
.resultat { margin-bottom: var(--space-5); }
.resultat__bandeau { height: var(--cra-bandeau-resultat); }
.resultat__corps { padding: var(--space-5) var(--space-10); }
.resultat__pret { margin: 0 0 var(--space-2); font-size: var(--text-sm); color: var(--text-secondary); }
.resultat__verdict { margin: 0 0 var(--space-3); font-family: var(--font-display); font-size: var(--text-4xl);
  font-weight: 800; line-height: 1.1; }
.resultat__qualification { margin: 0; font-size: var(--text-lg); line-height: 1.6; color: var(--text-secondary); }
.ton-concerne .resultat__bandeau { background: var(--color-error); }
.ton-attention .resultat__bandeau { background: var(--color-warning); }
.ton-hors-champ .resultat__bandeau { background: var(--color-success); }
.ton-concerne .resultat__verdict { color: var(--color-error); }
.ton-attention .resultat__verdict,
.ton-hors-champ .resultat__verdict { color: var(--color-forest); }
.resultat__correction { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-gray-200); }
.resultat__rappel { margin: 0 0 var(--space-2); font-size: var(--text-sm); line-height: 1.6; color: var(--text-secondary); }
.bouton-correction { padding: var(--space-2) 0; border: 0; background: none; font: inherit; font-size: var(--text-base);
  font-weight: 600; line-height: 1.6; color: var(--color-forest); text-align: start; text-decoration: underline; cursor: pointer; }
.bouton-correction:hover { color: var(--color-gray-900); }
.bouton-correction:focus-visible { outline: var(--cra-focus) solid var(--color-forest); outline-offset: var(--cra-filet-epais); }
.ecran4-suite { display: grid; gap: var(--space-5); align-items: start; }
.ecran4-suite > .panneau-parcours { margin: 0; }
.ecran4-suite > .panneau-parcours,
.apercu-rapport.panneau-parcours { padding: var(--space-5) var(--space-8); }
.apercu-rapport { display: grid; gap: var(--space-5); }
.apercu-rapport h2,
.formulaire h2 { margin: 0 0 var(--space-2); font-size: var(--text-xl); font-weight: 700; color: var(--color-forest); }
.apercu-rapport p { margin: 0; font-size: var(--text-base); line-height: 1.6; }
.apercu-rapport__figure { margin: 0; }
.apercu-rapport__figure img { display: block; width: 100%; height: auto; border: 1px solid var(--border-light); border-radius: var(--radius-md); }
.apercu-rapport__figure figcaption { margin-top: var(--space-2); font-size: var(--text-sm); color: var(--text-secondary); }
@media (min-width: 1000px) {
  .ecran4-suite { grid-template-columns: minmax(0, 1fr) minmax(0, calc(var(--space-16) * 4)); }
  .ecran4-suite > .apercu-rapport { grid-column: 2; grid-row: 1; }
  .ecran4-suite > .formulaire { grid-column: 1; grid-row: 1; }
}
.formulaire__annonce { margin: 0 0 var(--space-4); font-size: var(--text-sm); line-height: 1.6; color: var(--text-secondary); }
.champs { display: grid; gap: var(--space-4); }
.champ { display: grid; gap: var(--space-1); }
.champ .form__label { margin: 0; }
.champ__mention { font-weight: 400; color: var(--text-secondary); }
@media (min-width: 700px) {
  .champs { grid-template-columns: 1fr 1fr; }
  .champ--large { grid-column: 1 / -1; }
}
.cases { display: grid; gap: var(--space-3); margin: var(--space-4) 0 0; }
.case .form-check-label { font-size: var(--text-sm); }
.case:has(input:focus-visible) { outline: var(--cra-focus) solid var(--color-forest); outline-offset: var(--cra-filet-epais); }
.case a,
.case a:visited { color: var(--color-forest); }
[data-telephone] { display: none; }
.formulaire:has(#optin:checked) [data-telephone] { display: grid; }
.note-info { margin: var(--space-4) 0 0; font-size: var(--text-sm); line-height: 1.6; color: var(--text-secondary); }
.note-info a,
.note-info a:visited { color: var(--color-forest); }
.formulaire__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); margin: var(--space-4) 0 0; }
.formulaire__envoi .btn { flex: none; }
.formulaire__envoi .note-info { margin: 0; }
.pot-de-miel { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.auto-eval-page { display: grid; gap: var(--space-5); }
.auto-eval-page__titre { margin: 0; font-family: var(--font-display); font-size: var(--text-5xl); font-weight: 800;
  line-height: 1.1; color: var(--color-forest); }
.auto-eval-page__chapeau { margin: 0; }
.auto-eval-page .auto-eval { display: grid; gap: var(--space-10); }
.auto-eval-page .auto-eval__alerte { margin: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-md); background: var(--color-gray-50); color: var(--color-gray-800); }
.auto-eval-page .auto-eval__axe { display: grid; gap: var(--space-4); }
.auto-eval-page .auto-eval__axe-titre { margin: 0; font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-forest); }
.auto-eval-page .auto-eval__axe-titre span { display: block; font-family: var(--font-body); font-size: var(--text-sm);
  font-weight: 400; color: var(--text-secondary); }
.auto-eval-page .auto-eval__fiche { display: grid; gap: var(--space-3); min-width: 0; margin: 0; padding: var(--space-5) var(--space-6);
  border: 1px solid var(--border-light); border-radius: var(--radius-lg); background: var(--bg-card); box-shadow: var(--shadow-card); }
.auto-eval-page .auto-eval__fiche--manque { border-color: var(--color-error); }
.auto-eval-page .auto-eval__titre { float: left; width: 100%; padding: 0; font-family: var(--font-display); font-size: var(--text-lg);
  font-weight: 600; color: var(--color-forest); }
.auto-eval-page .auto-eval__formulation { margin: 0; font-size: var(--text-sm); line-height: 1.6; color: var(--text-secondary); }
.auto-eval-page .auto-eval__niveaux { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.auto-eval-page .auto-eval__niveau { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-gray-300); border-radius: var(--radius-full); background: var(--color-white);
  font-size: var(--text-sm); cursor: pointer; }
.auto-eval-page .auto-eval__niveau input { margin: 0; accent-color: var(--color-emerald); }
.auto-eval-page .auto-eval__niveau:has(input:checked) { border-color: var(--color-emerald); background: var(--color-emerald-50); }
.auto-eval-page .auto-eval__niveau:has(input:focus-visible) { outline: var(--cra-focus) solid var(--color-forest); outline-offset: var(--cra-filet-epais); }
.auto-eval-page .auto-eval__envoi { margin: 0; }
.auto-eval-page .auto-eval__envoi .bouton { display: inline-flex; align-items: center; padding: var(--space-3) var(--space-6); border: 0;
  border-radius: var(--radius-md); background: var(--color-primary); color: var(--color-white); font-family: var(--font-body);
  font-size: var(--cra-btn-taille); font-weight: 600; line-height: 1.2; cursor: pointer; transition: background-color var(--transition-base); }
.auto-eval-page .auto-eval__envoi .bouton:hover { background: var(--color-primary-hover); }
.auto-eval-page .auto-eval__envoi .bouton:focus-visible { outline: var(--cra-focus) solid var(--color-forest); outline-offset: var(--cra-filet-epais); }
.auto-eval-page .auto-eval-resultat { display: grid; gap: var(--space-6); }
.auto-eval-page .auto-eval-resultat__global { padding: var(--space-6); border: 1px solid var(--border-light); border-radius: var(--radius-lg);
  background: var(--bg-card); box-shadow: var(--shadow-card); }
.auto-eval-page .auto-eval-resultat__etiquette { margin: 0; font-size: var(--text-xs); font-weight: 600; text-transform: uppercase;
  color: var(--text-secondary); }
.auto-eval-page .auto-eval-resultat__note { margin: var(--space-1) 0 0; font-size: var(--text-lg); color: var(--color-gray-800); }
.auto-eval-page .auto-eval-resultat__note strong { font-family: var(--font-display); font-size: var(--text-4xl); color: var(--color-forest);
  font-variant-numeric: tabular-nums; }
.auto-eval-page .auto-eval-resultat__date { margin: var(--space-1) 0 0; font-size: var(--text-sm); color: var(--text-secondary); }
.auto-eval-page .auto-eval-resultat__axes { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.auto-eval-page .auto-eval-resultat__axe { display: grid; gap: var(--space-2); padding: var(--space-5); border: 1px solid var(--border-light);
  border-radius: var(--radius-lg); background: var(--bg-card); }
.auto-eval-page .auto-eval-resultat__axe-titre { margin: 0; font-weight: 600; color: var(--color-forest); }
.auto-eval-page .auto-eval-resultat__axe-titre span { display: block; font-weight: 400; font-size: var(--text-sm); color: var(--text-secondary); }
.auto-eval-page .auto-eval-resultat__jauge { height: var(--space-2); border-radius: var(--radius-full); background: var(--color-gray-100); overflow: hidden; }
.auto-eval-page .auto-eval-resultat__jauge span { display: block; height: 100%; border-radius: var(--radius-full); background: var(--color-emerald); }
.auto-eval-page .auto-eval-resultat__axe-note { margin: 0; font-size: var(--text-sm); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.auto-eval-page .auto-eval-resultat__titre { margin: 0; font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-forest); }
.auto-eval-page .auto-eval-resultat__ecarts { display: grid; gap: var(--space-2); margin: 0; padding-left: var(--space-5); }
.auto-eval-page .auto-eval-resultat__ecarts .renvoi { margin-left: var(--space-2); font-size: var(--text-xs); color: var(--text-secondary); }
.auto-eval-page .auto-eval-resultat__vide,
.auto-eval-page .auto-eval-resultat__note-bas { margin: 0; font-size: var(--text-sm); color: var(--text-secondary); }
.auto-eval-page .auto-eval-resultat__suite { display: grid; gap: var(--space-3); }
.auto-eval-page .auto-eval-resultat__suite p { margin: 0; }
.auto-eval-page .auto-eval-resultat__gate { display: grid; gap: var(--space-3); padding: var(--space-6); border: 1px solid var(--border-light);
  border-radius: var(--radius-lg); background: var(--bg-card); box-shadow: var(--shadow-card); }
.auto-eval-page .auto-eval-resultat__gate > p { margin: 0; color: var(--text-secondary); }
.auto-eval-page .auto-eval-capture { display: grid; gap: var(--space-4); }
.auto-eval-page .auto-eval-capture__envoi { margin: 0; }
.auto-eval-page .auto-eval-resultat__confirmation { margin: 0; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-md); background: var(--color-gray-50); color: var(--color-gray-800); font-size: var(--text-sm); }
.pied-parcours.footer { margin-top: var(--space-16); padding: var(--space-6) 0; }
.pied-parcours .footer__bottom { flex-wrap: wrap; gap: var(--space-3) var(--space-6); padding-top: 0; border-top: 0; }
.pied-parcours .footer__legal { flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.pied-parcours__identite { margin: 0; }
.pied-parcours .footer__legal a,
.pied-parcours .footer__legal a:visited { color: var(--color-white); }
@media (max-width: 699px) {
  .ecran-parcours { padding-top: var(--space-6); }
  .colonne-parcours { padding-top: var(--space-8); padding-bottom: var(--space-12); }
  .panneau-parcours,
  .ecran4-suite > .panneau-parcours,
  .apercu-rapport.panneau-parcours { padding: var(--space-6) var(--space-5); }
  .accroche__entete { padding-top: 0; }
  .accroche__entete .hero__title { font-size: var(--text-4xl); }
  .accroche__entete .hero__description { font-size: var(--text-lg); }
  .question__legende { font-size: var(--text-xl); }
  .resultat__corps { padding: var(--space-5); }
  .resultat__verdict { font-size: var(--text-2xl); }
  .auto-eval-page__titre { font-size: var(--text-4xl); }
  .auto-eval-page .auto-eval-resultat__axes { grid-template-columns: minmax(0, 1fr); }
  .actions .btn { flex: 1 1 0; justify-content: center; }
  .entete-parcours__sortie { padding-left: var(--space-3); padding-right: var(--space-3); }
}
.rapport { padding-top: var(--space-8); }
.rapport__acces { margin-top: var(--space-8); }
.rapport__acces h2 { font-size: var(--text-xl); margin: 0 0 var(--space-3); }
.rapport__acces p { margin: 0 0 var(--space-4); }
.rapport__entete { border-left: var(--space-1) solid var(--border-light); padding-left: var(--space-5); margin-bottom: var(--space-10); }
.ton-concerne .rapport__entete { border-left-color: var(--color-error); }
.ton-attention .rapport__entete { border-left-color: var(--color-warning); }
.ton-hors-champ .rapport__entete { border-left-color: var(--color-success); }
.rapport__surtitre { margin: 0 0 var(--space-4); }
.rapport__destinataire { margin: 0 0 var(--space-4); }
.rapport__destinataire strong { display: block; font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-emerald-700); }
.rapport__destinataire span { display: block; margin-top: var(--space-1); color: var(--color-gray-600); }
.rapport__meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); margin: 0; font-size: var(--text-sm); color: var(--color-gray-700); }
.rapport__meta div { display: flex; gap: var(--space-2); }
.rapport__meta dt { font-weight: 600; color: var(--color-gray-600); }
.rapport__meta dt::after { content: " :"; }
.rapport__meta dd { margin: 0; }
.rapport__preambule { margin-bottom: var(--space-8); }
.rapport__sommaire { margin-bottom: var(--space-12); padding: var(--space-5) var(--space-6); border-radius: var(--radius-md); background: var(--color-gray-50); }
.rapport__sommaire-titre { margin: 0 0 var(--space-3); font-weight: 600; color: var(--color-emerald-700); }
.rapport__sommaire ol { margin: 0; padding-left: var(--space-6); list-style: decimal; }
.rapport__sommaire li { margin-bottom: var(--space-2); }
.rapport__sommaire a,
.rapport__sommaire a:visited { color: var(--color-gray-700); text-decoration: none; }
.rapport__sommaire a:hover { text-decoration: underline; }
.rapport__section { margin-bottom: var(--space-12); scroll-margin-top: var(--space-6); }
.rapport__titre { display: flex; gap: var(--space-4); align-items: center; margin: 0 0 var(--space-5); font-size: var(--text-2xl); }
.rapport__numero { flex: none; display: inline-flex; align-items: center; justify-content: center; width: var(--space-10); height: var(--space-10);
  border-radius: var(--radius-full); background: var(--color-emerald-50); color: var(--color-emerald-700); font-size: var(--text-base); font-weight: 700; }
.rapport__section p { margin: 0 0 var(--space-4); }
.rapport__section h3 { margin: var(--space-6) 0 var(--space-2); font-size: var(--text-lg); }
.rapport__section .list-styled,
.rapport__section .step-list { margin: 0 0 var(--space-5); }
.rapport .step-item { margin-bottom: var(--space-4); }
.rapport .step-content { padding-top: var(--space-2); }
.rapport .step-content > :last-child { margin-bottom: 0; }
.rapport .step-content p { font-size: inherit; opacity: 1; }
.rapport__section .table-wrapper { margin: var(--space-5) 0; }
.rapport .table th, .rapport .table td { vertical-align: top; }
.rapport__cloture { margin-top: var(--space-10); padding: var(--space-6) var(--space-8); background: var(--color-emerald-50); }
.rapport__cloture.card:hover { box-shadow: var(--shadow-card); }
.rapport__cloture > :first-child { margin-top: 0; }
.rapport__cloture > :last-child { margin-bottom: 0; }
.rapport__cloture h2 { margin: 0 0 var(--space-3); font-size: var(--text-xl); }
.rapport__cloture p { margin: 0 0 var(--space-4); }
.rapport__cloture a,
.rapport__cloture a:visited { color: var(--color-emerald-700); }
.rapport__pied { margin-top: var(--space-10); padding-top: var(--space-5); border-top: var(--cra-filet) solid var(--color-gray-200);
  font-size: var(--text-sm); color: var(--color-gray-600); }
.rapport__pied p { margin: 0 0 var(--space-2); }
.rapport__pied p:last-child { margin-bottom: 0; font-size: var(--text-xs); }
.rapport__titre-seul { margin: 0 0 var(--space-5); font-size: var(--text-3xl); }
@media (max-width: 699px) {
  .rapport { padding-top: var(--space-6); }
  .rapport__titre { gap: var(--space-3); font-size: var(--text-xl); }
  .rapport__cloture { padding: var(--space-5); }
}
@media (max-width: 480px) {
  .rapport__barre .nav__logo-text { font-size: var(--text-base); }
  .rapport__barre .btn { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); }
}
@media print {
  .nav, .nav__mobile-menu, .footer, .doc-bande--fin, .appel-compact, .evitement, .doc-corps__rail, .doc-hero__actions { display: none; }
  .section, .section-sm { padding-top: var(--space-4); padding-bottom: var(--space-4); }
  .accordion__content { max-height: none; }
  .sans-impression { display: none; }
  .rapport { max-width: none; padding: 0; }
  .rapport__document.card,
  .rapport__document.card:hover { padding: 0; border: 0; box-shadow: none; background: none; transition: none; }
  .rapport p, .rapport li, .rapport dl, .rapport .table { font-size: var(--text-sm); }
  .rapport__titre,
  .rapport__destinataire strong { font-size: var(--text-xl); }
  .rapport__entete,
  .rapport__titre { break-after: avoid; }
  .rapport__sommaire,
  .rapport .table-wrapper,
  .rapport table,
  .rapport__cloture,
  .rapport__pied { break-inside: avoid; }
  .rapport .table-wrapper { overflow: visible; }
  .rapport a[href^="http"]::after { content: " (" attr(href) ")"; font-size: var(--text-xs); word-break: break-all; }
  .rapport a { color: inherit; text-decoration: underline; }
  @page { margin: 18mm 14mm; } 
}
