/* ================================================
   CONFORMIA — Design System
   ================================================ */

/* Reset & Base */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* Brand Colors */
  --primary:#1E3A5F;
  --primary-light:#2D5F8A;
  --primary-lighter:#E8F0FE;
  --primary-dark:#0F2A45;
  --accent:#00B67A;
  --accent-light:#00D68F;
  --accent-dark:#009966;
  --accent-bg:#ECFDF5;

  /* Status Colors */
  --success:#10B981;
  --success-bg:#DCFCE7;
  --success-text:#166534;
  --warning:#F59E0B;
  --warning-bg:#FEF3C7;
  --warning-text:#92400E;
  --danger:#EF4444;
  --danger-bg:#FEE2E2;
  --danger-text:#991B1B;
  --info:#3B82F6;
  --info-bg:#DBEAFE;
  --info-text:#1E40AF;

  /* Neutral */
  --bg:#F7F9FC;
  --bg-alt:#F1F5F9;
  --card:#FFFFFF;
  --text:#1A1D23;
  --text-secondary:#4B5563;
  --text-light:#6B7280;
  --text-muted:#9CA3AF;
  --border:#E5E7EB;
  --border-light:#F3F4F6;

  /* Shadows */
  --shadow-sm:0 1px 2px rgba(0,0,0,0.04);
  --shadow:0 1px 3px rgba(0,0,0,0.06),0 4px 16px rgba(0,0,0,0.04);
  --shadow-md:0 4px 12px rgba(0,0,0,0.08);
  --shadow-lg:0 8px 32px rgba(30,58,95,0.12);
  --shadow-xl:0 16px 48px rgba(30,58,95,0.16);

  /* Radius */
  --radius-xs:6px;
  --radius-sm:10px;
  --radius:16px;
  --radius-lg:20px;
  --radius-xl:24px;
  --radius-full:50px;

  /* Transitions */
  --transition:all 0.2s ease;
  --transition-slow:all 0.3s ease;

  /* Category Colors */
  --cat-blue:#E8F0FE;
  --cat-blue-text:#1E3A5F;
  --cat-green:#ECFDF5;
  --cat-green-text:#047857;
  --cat-orange:#FFF7ED;
  --cat-orange-text:#C2410C;
  --cat-purple:#F3E8FF;
  --cat-purple-text:#7C3AED;
  --cat-pink:#FDF2F8;
  --cat-pink-text:#DB2777;
  --cat-cyan:#ECFEFF;
  --cat-cyan-text:#0891B2;
  --cat-yellow:#FEFCE8;
  --cat-yellow-text:#CA8A04;
}

body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}

/* ================================================
   TYPOGRAPHY
   ================================================ */
h1{font-size:2.5rem;font-weight:900;line-height:1.15;letter-spacing:-0.02em;}
h2{font-size:2rem;font-weight:800;line-height:1.2;letter-spacing:-0.01em;}
h3{font-size:1.25rem;font-weight:700;line-height:1.3;}
h4{font-size:1rem;font-weight:700;line-height:1.4;}
.text-sm{font-size:0.875rem;}
.text-xs{font-size:0.75rem;}
.text-lg{font-size:1.125rem;}
.text-xl{font-size:1.25rem;}
.text-light{color:var(--text-light);}
.text-muted{color:var(--text-muted);}
.text-primary{color:var(--primary);}
.text-accent{color:var(--accent);}
.text-danger{color:var(--danger);}
.text-success{color:var(--success);}
.text-warning{color:var(--warning);}
.text-center{text-align:center;}
.font-bold{font-weight:700;}
.font-extrabold{font-weight:800;}

/* ================================================
   LAYOUT
   ================================================ */
.container{max-width:1200px;margin:0 auto;padding:0 48px;}
.section{padding:80px 0;}
.section-bg{background:var(--card);}
.flex{display:flex;}
.flex-col{flex-direction:column;}
.items-center{align-items:center;}
.justify-between{justify-content:space-between;}
.gap-4{gap:16px;}
.gap-6{gap:24px;}
.gap-8{gap:32px;}
.gap-12{gap:48px;}
.grid{display:grid;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

/* ================================================
   BUTTONS
   ================================================ */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 24px;border-radius:var(--radius-full);
  font-weight:600;font-size:0.875rem;
  cursor:pointer;transition:var(--transition-slow);
  border:none;font-family:inherit;
  text-decoration:none;
}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}

.btn-primary{background:var(--primary);color:white;}
.btn-primary:hover{background:var(--primary-light);box-shadow:var(--shadow-lg);}

.btn-accent{background:var(--accent);color:white;}
.btn-accent:hover{background:var(--accent-dark);}

.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary);}
.btn-outline:hover{background:var(--primary);color:white;}

.btn-white{background:white;color:var(--primary);}
.btn-white:hover{background:var(--bg);}

.btn-ghost{background:transparent;color:var(--text-light);border:1px solid var(--border);}
.btn-ghost:hover{background:var(--bg);color:var(--text);}

.btn-danger{background:var(--danger);color:white;}
.btn-danger:hover{background:#DC2626;}

.btn-lg{padding:14px 36px;font-size:1rem;}
.btn-sm{padding:7px 16px;font-size:0.75rem;}
.btn-xs{padding:4px 12px;font-size:0.688rem;}
.btn-block{width:100%;justify-content:center;}
.btn-icon{padding:8px;border-radius:var(--radius-sm);}

/* ================================================
   NAVIGATION — Public
   ================================================ */
.navbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 48px;background:white;
  border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:100;
}
.nav-logo{
  font-size:1.375rem;font-weight:900;
  color:var(--primary);display:flex;align-items:center;gap:10px;
}
.nav-logo .logo-icon{
  width:36px;height:36px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  color:white;font-size:1.125rem;
}
.nav-links{display:flex;gap:28px;align-items:center;}
.nav-links a{color:var(--text-light);font-weight:500;font-size:0.875rem;transition:color .2s;}
.nav-links a:hover{color:var(--primary);}

/* ================================================
   NAVIGATION — Dashboard
   ================================================ */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;background:var(--primary);color:white;
}
.topbar-logo{font-size:1.0625rem;font-weight:800;display:flex;align-items:center;gap:8px;}
.topbar-logo span{color:var(--accent-light);}
.topbar-right{display:flex;align-items:center;gap:16px;}
.topbar-btn{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;position:relative;transition:var(--transition);
  border:none;color:white;font-size:0.875rem;
}
.topbar-btn:hover{background:rgba(255,255,255,.2);}
.topbar-avatar{
  width:34px;height:34px;border-radius:50%;
  background:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:0.8125rem;cursor:pointer;
}
.notif-dot{
  position:absolute;top:6px;right:6px;
  width:8px;height:8px;
  background:var(--danger);border-radius:50%;
  border:2px solid var(--primary);
}

/* Sidebar */
.app-layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 60px);}
.sidebar{
  background:white;border-right:1px solid var(--border);
  padding:16px 0;overflow-y:auto;
}
.sidebar-group{margin-bottom:20px;}
.sidebar-label{
  font-size:0.625rem;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;
  color:var(--text-muted);padding:8px 20px;
}
.sidebar-item{
  display:flex;align-items:center;gap:11px;
  padding:10px 20px;font-size:0.8125rem;
  color:var(--text-light);cursor:pointer;
  transition:var(--transition);
  border-left:3px solid transparent;
}
.sidebar-item:hover{background:var(--primary-lighter);color:var(--primary);}
.sidebar-item.active{
  background:var(--primary-lighter);color:var(--primary);
  font-weight:600;border-left-color:var(--primary);
}
.sidebar-item i{width:16px;text-align:center;font-size:0.8125rem;}
.sidebar-badge{
  margin-left:auto;
  background:var(--danger);color:white;
  font-size:0.625rem;padding:2px 7px;
  border-radius:var(--radius-full);font-weight:700;
}

/* Main content area */
.main-content{padding:28px 32px;overflow-y:auto;}
.page-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:24px;
}
.page-header h1{font-size:1.375rem;}
.page-header p{font-size:0.8125rem;color:var(--text-light);}

/* ================================================
   CARDS
   ================================================ */
.card{
  background:white;border-radius:var(--radius);
  border:1px solid var(--border);
  transition:var(--transition-slow);
}
.card:hover{box-shadow:var(--shadow);}
.card-clickable{cursor:pointer;}
.card-clickable:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);}
.card-body{padding:24px;}
.card-header{
  padding:14px 20px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
}
.card-footer{
  padding:14px 20px;
  border-top:1px solid var(--border);
}

/* ================================================
   STATUS BADGES
   ================================================ */
.badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:var(--radius-full);
  font-size:0.6875rem;font-weight:600;
}
.badge-success{background:var(--success-bg);color:var(--success-text);}
.badge-warning{background:var(--warning-bg);color:var(--warning-text);}
.badge-danger{background:var(--danger-bg);color:var(--danger-text);}
.badge-info{background:var(--info-bg);color:var(--info-text);}
.badge-neutral{background:var(--bg-alt);color:var(--text-light);}
.badge-primary{background:var(--primary-lighter);color:var(--primary);}

/* ================================================
   ICON BOXES (for service/category icons)
   ================================================ */
.icon-box{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.125rem;flex-shrink:0;
}
.icon-box-sm{width:36px;height:36px;border-radius:8px;font-size:0.9375rem;}
.icon-box-lg{width:52px;height:52px;border-radius:14px;font-size:1.375rem;}
.icon-box-xl{width:64px;height:64px;border-radius:16px;font-size:1.5rem;}

.icon-blue{background:var(--cat-blue);color:var(--cat-blue-text);}
.icon-green{background:var(--cat-green);color:var(--cat-green-text);}
.icon-orange{background:var(--cat-orange);color:var(--cat-orange-text);}
.icon-purple{background:var(--cat-purple);color:var(--cat-purple-text);}
.icon-pink{background:var(--cat-pink);color:var(--cat-pink-text);}
.icon-cyan{background:var(--cat-cyan);color:var(--cat-cyan-text);}
.icon-yellow{background:var(--cat-yellow);color:var(--cat-yellow-text);}

/* ================================================
   PROGRESS BARS
   ================================================ */
.progress{
  display:flex;align-items:center;gap:10px;
}
.progress-bar{
  flex:1;height:8px;
  background:var(--border);
  border-radius:var(--radius-full);overflow:hidden;
}
.progress-bar-sm{height:5px;}
.progress-bar-lg{height:12px;}
.progress-fill{
  height:100%;border-radius:var(--radius-full);
  transition:width 0.8s ease;
}
.progress-fill-gradient{background:linear-gradient(90deg,var(--primary),var(--accent));}
.progress-fill-green{background:var(--accent);}
.progress-fill-orange{background:var(--warning);}
.progress-fill-red{background:var(--danger);}
.progress-fill-blue{background:var(--primary);}
.progress-pct{font-size:0.75rem;font-weight:700;min-width:32px;}

/* Completeness bar */
.completeness{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;background:var(--bg);
  border-radius:var(--radius-sm);
}
.completeness-label{font-size:0.8125rem;font-weight:600;min-width:140px;}

/* ================================================
   ALERTS
   ================================================ */
.alert{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;border-radius:var(--radius-sm);
  margin-bottom:16px;
}
.alert i{font-size:1.125rem;flex-shrink:0;}
.alert-content{flex:1;}
.alert-title{font-size:0.8125rem;font-weight:700;margin-bottom:2px;}
.alert-text{font-size:0.75rem;line-height:1.5;color:var(--text-secondary);}
.alert-warn{background:var(--warning-bg);border:1px solid #FCD34D;}
.alert-warn i{color:var(--warning);}
.alert-danger{background:var(--danger-bg);border:1px solid #FCA5A5;}
.alert-danger i{color:var(--danger);}
.alert-success{background:var(--accent-bg);border:1px solid #6EE7B7;}
.alert-success i{color:var(--accent);}
.alert-info{background:var(--info-bg);border:1px solid #93C5FD;}
.alert-info i{color:var(--info);}

/* ================================================
   AI PANEL
   ================================================ */
.ai-panel{
  background:white;border-radius:var(--radius);
  border:1px solid var(--border);
  overflow:hidden;margin-bottom:16px;
}
.ai-panel-header{
  display:flex;align-items:center;gap:10px;
  padding:12px 18px;
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:white;
}
.ai-panel-header i{font-size:0.875rem;}
.ai-panel-header h3{font-size:0.8125rem;font-weight:700;}
.ai-panel-body{padding:16px 18px;}
.ai-insight{
  display:flex;gap:10px;align-items:flex-start;
  margin-bottom:12px;padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.ai-insight:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}
.ai-insight-icon{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.6875rem;flex-shrink:0;
}
.ai-insight-text{font-size:0.8125rem;line-height:1.6;}
.ai-insight-text a{color:var(--primary);font-weight:600;}
.ai-insight-text a:hover{text-decoration:underline;}

/* ================================================
   FORMS
   ================================================ */
.form-section{
  background:white;border-radius:var(--radius);
  border:1px solid var(--border);
  padding:24px;margin-bottom:16px;
}
.form-section-title{
  font-size:0.9375rem;font-weight:700;
  display:flex;align-items:center;gap:8px;
  margin-bottom:4px;
}
.form-section-desc{
  font-size:0.75rem;color:var(--text-light);margin-bottom:16px;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.form-group{display:flex;flex-direction:column;gap:4px;}
.form-label{font-size:0.75rem;font-weight:600;color:var(--text-light);}
.form-input,.form-select,.form-textarea{
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius-xs);
  font-size:0.8125rem;font-family:inherit;
  transition:border .2s;
  background:white;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(30,58,95,0.1);
}
.form-input.valid{border-color:var(--accent);}
.form-input.error{border-color:var(--danger);}
.form-hint{font-size:0.6875rem;margin-top:2px;}
.form-hint-success{color:var(--accent);}
.form-hint-error{color:var(--danger);}
.form-textarea{resize:vertical;min-height:80px;}

/* ================================================
   DOCUMENTS
   ================================================ */
.upload-zone{
  border:2px dashed var(--border);
  border-radius:var(--radius);padding:48px;
  text-align:center;transition:var(--transition-slow);
  cursor:pointer;background:white;
}
.upload-zone:hover{border-color:var(--accent);background:var(--accent-bg);}
.upload-icon{font-size:2.75rem;color:var(--primary-light);margin-bottom:14px;}
.upload-zone h3{font-size:0.9375rem;font-weight:600;margin-bottom:6px;}
.upload-zone p{font-size:0.8125rem;color:var(--text-light);}

.doc-list{display:flex;flex-direction:column;gap:6px;}
.doc-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:var(--bg);
  border-radius:var(--radius-sm);border:1px solid var(--border);
  transition:var(--transition);
}
.doc-item:hover{border-color:var(--primary-light);}
.doc-icon{
  width:38px;height:38px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;
}
.doc-icon-pdf{background:#FEE2E2;color:#DC2626;}
.doc-icon-doc{background:#DBEAFE;color:#2563EB;}
.doc-icon-xls{background:#DCFCE7;color:#16A34A;}
.doc-icon-img{background:#FEF3C7;color:#D97706;}
.doc-info{flex:1;}
.doc-name{font-size:0.8125rem;font-weight:600;}
.doc-meta{font-size:0.6875rem;color:var(--text-light);}

/* ================================================
   STAT CARDS
   ================================================ */
.stats-grid{display:grid;gap:14px;margin-bottom:20px;}
.stats-grid-4{grid-template-columns:repeat(4,1fr);}
.stats-grid-3{grid-template-columns:repeat(3,1fr);}
.stat-card{
  background:white;border-radius:var(--radius-sm);
  padding:18px;border:1px solid var(--border);
}
.stat-label{
  font-size:0.625rem;color:var(--text-light);
  font-weight:600;text-transform:uppercase;
  letter-spacing:0.5px;margin-bottom:4px;
}
.stat-value{font-size:1.625rem;font-weight:800;}
.stat-value-sm{font-size:1.25rem;}

/* ================================================
   PARCOURS CARDS (Dashboard)
   ================================================ */
.parcours-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.parcours-card{
  background:white;border-radius:var(--radius-sm);
  padding:18px;border:1px solid var(--border);
  transition:var(--transition-slow);cursor:pointer;
}
.parcours-card:hover{box-shadow:var(--shadow);border-color:var(--accent);}
.parcours-top{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:10px;
}
.parcours-card h3{font-size:0.8125rem;font-weight:700;margin-bottom:3px;}
.parcours-desc{font-size:0.6875rem;color:var(--text-light);margin-bottom:10px;line-height:1.4;}

/* ================================================
   OPCO CARDS
   ================================================ */
.opco-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.opco-card{
  background:white;border-radius:var(--radius-sm);
  padding:18px;border:1px solid var(--border);
  text-align:center;transition:var(--transition);cursor:pointer;
}
.opco-card:hover{border-color:var(--accent);box-shadow:var(--shadow);}
.opco-logo{
  width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 10px;font-size:1rem;font-weight:800;
}
.opco-card h4{font-size:0.75rem;font-weight:700;margin-bottom:2px;}
.opco-card p{font-size:0.625rem;color:var(--text-light);}

.opco-dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.opco-dash-card{
  background:white;border-radius:var(--radius-sm);
  padding:16px;border:1px solid var(--border);
  display:flex;align-items:center;gap:12px;
  cursor:pointer;transition:var(--transition);
}
.opco-dash-card:hover{border-color:var(--accent);box-shadow:var(--shadow);}
.odc-logo{
  width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;font-weight:800;flex-shrink:0;
}
.odc-info{flex:1;}
.odc-name{font-size:0.75rem;font-weight:700;}
.odc-meta{font-size:0.625rem;color:var(--text-light);}

/* ================================================
   GUIDED MODE
   ================================================ */
.guided-layout{display:grid;grid-template-columns:300px 1fr;min-height:calc(100vh - 60px);}
.guided-panel{
  background:white;border-right:1px solid var(--border);
  padding:24px;overflow-y:auto;
}
.guided-step{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:var(--radius-xs);
  margin-bottom:6px;
}
.guided-step-done{background:var(--accent-bg);}
.guided-step-active{background:var(--primary-lighter);border:1px solid var(--primary);}
.guided-step-pending{background:var(--bg);}
.guided-step-num{
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.625rem;font-weight:700;flex-shrink:0;
}

/* Browser mockup */
.browser-frame{display:flex;flex-direction:column;background:#F1F3F5;}
.browser-bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 16px;background:#F1F3F5;
  border-bottom:2px solid var(--accent);
}
.browser-dots{display:flex;gap:5px;}
.browser-dot{width:10px;height:10px;border-radius:50%;}
.browser-dot-r{background:#FF5F57;}
.browser-dot-y{background:#FEBC2E;}
.browser-dot-g{background:#28C840;}
.browser-url{
  flex:1;background:white;border-radius:6px;
  padding:5px 12px;font-size:0.6875rem;
  color:var(--text-light);border:1px solid var(--border);
}
.browser-badge{
  background:var(--accent);color:white;
  padding:3px 10px;border-radius:var(--radius-full);
  font-size:0.625rem;font-weight:600;
  display:flex;align-items:center;gap:4px;
}
.browser-content{flex:1;padding:32px 48px;background:white;position:relative;}

/* Highlighted field in guided mode */
.field-highlighted{
  border:2px solid var(--accent) !important;
  background:#F0FFF8 !important;
  animation:pulse-border 2s infinite;
}
@keyframes pulse-border{
  0%,100%{box-shadow:0 0 0 0 rgba(0,182,122,.3);}
  50%{box-shadow:0 0 0 6px rgba(0,182,122,0);}
}
.field-suggestion{
  font-size:0.625rem;font-weight:600;
  display:flex;align-items:center;gap:4px;
  margin-top:3px;
}
.field-suggestion-ok{color:var(--accent);}
.field-suggestion-warn{color:var(--warning);}

/* Conformia overlay bubble */
.guided-overlay{
  position:absolute;bottom:16px;right:16px;
  background:white;border-radius:12px;
  padding:14px 18px;box-shadow:var(--shadow-lg);
  border:2px solid var(--accent);max-width:240px;
}
.guided-overlay-head{
  display:flex;align-items:center;gap:8px;margin-bottom:8px;
}
.guided-overlay-icon{
  width:24px;height:24px;border-radius:6px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  display:flex;align-items:center;justify-content:center;
  color:white;font-size:0.6875rem;
}
.guided-overlay p{font-size:0.625rem;color:var(--text-light);line-height:1.5;}

/* ================================================
   PRICING
   ================================================ */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto;}
.price-card{
  background:white;border-radius:var(--radius);
  padding:32px;border:1px solid var(--border);
  text-align:center;transition:var(--transition-slow);
  position:relative;
}
.price-card.popular{
  border:2px solid var(--primary);
  transform:scale(1.04);box-shadow:var(--shadow-lg);
}
.popular-badge{
  position:absolute;top:-14px;left:50%;
  transform:translateX(-50%);
  background:var(--primary);color:white;
  padding:5px 20px;border-radius:var(--radius-full);
  font-size:0.75rem;font-weight:700;
}
.price-card h3{font-size:1.1875rem;font-weight:700;color:var(--primary);}
.price-sub{font-size:0.8125rem;color:var(--text-light);margin-bottom:16px;}
.price-amount{font-size:2.5rem;font-weight:900;color:var(--primary);margin:12px 0;}
.price-amount span{font-size:0.9375rem;color:var(--text-light);font-weight:400;}
.price-card ul{list-style:none;text-align:left;margin:20px 0;}
.price-card ul li{
  padding:6px 0;font-size:0.8125rem;
  color:var(--text-light);display:flex;
  align-items:flex-start;gap:10px;
}
.price-card ul li i{color:var(--accent);margin-top:2px;}
.price-card ul li.disabled{opacity:.4;}
.price-card ul li.disabled i{color:var(--border);}

/* ================================================
   HERO SECTION
   ================================================ */
.hero{
  padding:72px 48px;display:flex;align-items:center;
  gap:56px;max-width:1200px;margin:0 auto;
}
.hero-content{flex:1;}
.hero-visual{flex:1;}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--accent-bg);color:#047857;
  padding:8px 16px;border-radius:var(--radius-full);
  font-size:0.8125rem;font-weight:600;margin-bottom:20px;
}
.hero h1{color:var(--primary);margin-bottom:18px;}
.hero h1 .highlight{
  background:linear-gradient(135deg,var(--accent),#00D68F);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.hero p{
  font-size:1.0625rem;color:var(--text-light);
  line-height:1.7;margin-bottom:28px;
}
.hero-buttons{display:flex;gap:14px;}
.hero-trust{
  display:flex;align-items:center;gap:20px;
  margin-top:28px;padding-top:20px;
  border-top:1px solid var(--border);
}
.trust-item{
  display:flex;align-items:center;gap:6px;
  font-size:0.8125rem;color:var(--text-light);
}
.trust-item i{color:var(--accent);}

/* Mini service cards in hero */
.services-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.smini{
  background:white;border-radius:var(--radius-sm);
  padding:16px;border:1px solid var(--border);
  transition:var(--transition-slow);text-align:center;
}
.smini:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--accent);}
.smini h4{font-size:0.6875rem;font-weight:700;line-height:1.3;}

/* ================================================
   STEPS FLOW
   ================================================ */
.steps-flow{
  display:flex;gap:0;align-items:flex-start;
  justify-content:center;position:relative;
}
.flow-step{
  flex:1;max-width:200px;text-align:center;
  position:relative;padding:0 12px;
}
.flow-num{
  width:48px;height:48px;border-radius:50%;
  background:var(--primary);color:white;
  font-size:1.125rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;
}
.flow-step h4{font-size:0.875rem;font-weight:700;margin-bottom:6px;}
.flow-step p{font-size:0.75rem;color:var(--text-light);line-height:1.5;}
.flow-arrow{font-size:1.5rem;color:var(--border);margin-top:10px;flex-shrink:0;}

/* ================================================
   SERVICE CARDS
   ================================================ */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto;}
.svc-card{
  background:var(--bg);border-radius:var(--radius);
  padding:28px;border:1px solid var(--border);
  transition:var(--transition-slow);
}
.svc-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent);}
.svc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.svc-card h3{font-size:0.9375rem;font-weight:700;}
.svc-desc{font-size:0.8125rem;color:var(--text-light);line-height:1.6;margin-bottom:14px;}
.svc-card ul{list-style:none;}
.svc-card ul li{
  font-size:0.75rem;padding:3px 0;
  display:flex;align-items:center;gap:7px;
  color:var(--text-light);
}
.svc-card ul li i{color:var(--accent);font-size:0.6875rem;}
.svc-tag{
  display:inline-block;margin-top:12px;
  padding:3px 10px;border-radius:var(--radius-full);
  font-size:0.625rem;font-weight:700;
}
.svc-tag-auto{background:var(--accent-bg);color:#047857;}
.svc-tag-guided{background:var(--cat-purple);color:var(--cat-purple-text);}

/* ================================================
   GUIDED MODE — Landing section
   ================================================ */
.guided-section{padding:80px 48px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));}
.guided-content{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:48px;}
.guided-text{flex:1;color:white;}
.guided-text h2{font-size:2rem;font-weight:800;margin-bottom:16px;}
.guided-text p{font-size:0.9375rem;opacity:.85;line-height:1.7;margin-bottom:24px;}
.guided-features{display:flex;flex-direction:column;gap:14px;}
.guided-feat{display:flex;align-items:center;gap:12px;color:white;}
.guided-feat-icon{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:0.875rem;flex-shrink:0;
}
.guided-feat span{font-size:0.875rem;}

/* ================================================
   CTA & FOOTER
   ================================================ */
.cta-section{
  padding:80px 48px;text-align:center;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:white;
}
.cta-section h2{font-size:2.125rem;font-weight:800;margin-bottom:14px;}
.cta-section p{
  font-size:1.0625rem;opacity:.8;margin-bottom:28px;
  max-width:500px;margin-left:auto;margin-right:auto;
}
.footer{
  padding:40px 48px;text-align:center;
  color:var(--text-light);font-size:0.75rem;
  border-top:1px solid var(--border);background:white;
}

/* ================================================
   ADMIN — Validation Queue
   ================================================ */
.queue-item{
  display:flex;align-items:center;gap:16px;
  padding:16px 20px;background:white;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  margin-bottom:8px;transition:var(--transition);
}
.queue-item:hover{box-shadow:var(--shadow);border-color:var(--primary-light);}
.queue-avatar{
  width:40px;height:40px;border-radius:50%;
  background:var(--primary-lighter);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:0.8125rem;color:var(--primary);
}
.queue-info{flex:1;}
.queue-title{font-size:0.875rem;font-weight:600;}
.queue-meta{font-size:0.6875rem;color:var(--text-light);}
.queue-actions{display:flex;gap:6px;}

/* ================================================
   MESSAGING
   ================================================ */
.msg-list{display:flex;flex-direction:column;gap:12px;}
.msg-item{
  display:flex;gap:12px;align-items:flex-start;
  max-width:70%;
}
.msg-item.sent{margin-left:auto;flex-direction:row-reverse;}
.msg-avatar{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;flex-shrink:0;
}
.msg-avatar-ai{background:var(--primary);color:white;}
.msg-avatar-user{background:var(--accent);color:white;}
.msg-avatar-admin{background:var(--info);color:white;}
.msg-bubble{
  padding:12px 16px;border-radius:14px;
  font-size:0.8125rem;line-height:1.6;
}
.msg-bubble-ai{background:var(--primary-lighter);border-radius:2px 14px 14px 14px;}
.msg-bubble-user{background:var(--accent-bg);border-radius:14px 2px 14px 14px;}
.msg-bubble-admin{background:var(--info-bg);border-radius:2px 14px 14px 14px;}
.msg-time{font-size:0.625rem;color:var(--text-muted);margin-top:4px;}

/* ================================================
   AUTH PAGES
   ================================================ */
.auth-container{
  min-height:100vh;display:flex;
  align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--bg) 0%,var(--primary-lighter) 100%);
}
.auth-card{
  background:white;border-radius:var(--radius-lg);
  padding:48px;width:100%;max-width:440px;
  box-shadow:var(--shadow-lg);
}
.auth-logo{
  text-align:center;margin-bottom:32px;
}
.auth-title{
  font-size:1.5rem;font-weight:800;
  text-align:center;margin-bottom:8px;
  color:var(--primary);
}
.auth-subtitle{
  font-size:0.875rem;color:var(--text-light);
  text-align:center;margin-bottom:28px;
}
.auth-divider{
  display:flex;align-items:center;gap:16px;
  margin:24px 0;
}
.auth-divider::before,.auth-divider::after{
  content:'';flex:1;height:1px;background:var(--border);
}
.auth-divider span{font-size:0.75rem;color:var(--text-muted);}
.auth-footer{
  text-align:center;margin-top:24px;
  font-size:0.8125rem;color:var(--text-light);
}
.auth-footer a{color:var(--primary);font-weight:600;}

/* ================================================
   NOTIFICATIONS / REMINDERS
   ================================================ */
.reminder-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;background:white;
  border-left:3px solid var(--warning);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  margin-bottom:8px;box-shadow:var(--shadow-sm);
}
.reminder-item.urgent{border-left-color:var(--danger);}
.reminder-item.info{border-left-color:var(--info);}
.reminder-item.done{border-left-color:var(--accent);opacity:.6;}
.reminder-icon{font-size:1.125rem;flex-shrink:0;}
.reminder-content{flex:1;}
.reminder-title{font-size:0.8125rem;font-weight:600;}
.reminder-date{font-size:0.6875rem;color:var(--text-light);}

/* ================================================
   TABLES
   ================================================ */
.table-wrap{overflow-x:auto;}
table.data-table{width:100%;border-collapse:separate;border-spacing:0 4px;}
.data-table th{
  text-align:left;font-size:0.6875rem;
  color:var(--text-light);font-weight:600;
  text-transform:uppercase;letter-spacing:0.5px;
  padding:8px 12px;
}
.data-table td{
  padding:12px;background:var(--bg);
  font-size:0.8125rem;
}
.data-table tr td:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.data-table tr td:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}

/* ================================================
   RESPONSIVE
   ================================================ */
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .parcours-grid{grid-template-columns:repeat(2,1fr);}
  .opco-grid{grid-template-columns:repeat(3,1fr);}
  .opco-dash-grid{grid-template-columns:repeat(2,1fr);}
  .services-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  h1{font-size:1.75rem;}
  h2{font-size:1.5rem;}
  .container{padding:0 20px;}
  .section{padding:48px 0;}
  .hero{flex-direction:column;padding:40px 20px;gap:32px;}
  .hero h1{font-size:1.75rem;}
  .navbar{padding:14px 20px;}
  .nav-links{display:none;}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .services-grid,.pricing-grid{grid-template-columns:1fr;}
  .parcours-grid{grid-template-columns:1fr;}
  .opco-grid{grid-template-columns:repeat(2,1fr);}
  .opco-dash-grid{grid-template-columns:1fr;}
  .stats-grid-4,.stats-grid-3{grid-template-columns:repeat(2,1fr);}
  .app-layout{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .main-content{padding:20px;}
  .topbar{padding:14px 20px;}
  .steps-flow{flex-direction:column;align-items:center;}
  .flow-arrow{transform:rotate(90deg);}
  .form-row{grid-template-columns:1fr;}
  .guided-layout{grid-template-columns:1fr;}
  .guided-panel{display:none;}
  .guided-content{flex-direction:column;}
  .services-mini{grid-template-columns:repeat(2,1fr);}
  .guided-section{padding:48px 20px;}
  .cta-section{padding:48px 20px;}
  .pricing-grid{max-width:100%;}
  .auth-card{margin:20px;padding:32px;}
  .price-card.popular{transform:none;}
}
@media(max-width:480px){
  .services-mini{grid-template-columns:1fr 1fr;}
  .opco-grid{grid-template-columns:1fr;}
  .stats-grid-4,.stats-grid-3{grid-template-columns:1fr;}
}

/* ================================================
   UTILITIES
   ================================================ */
.mt-1{margin-top:4px;}.mt-2{margin-top:8px;}.mt-3{margin-top:12px;}.mt-4{margin-top:16px;}.mt-6{margin-top:24px;}.mt-8{margin-top:32px;}
.mb-1{margin-bottom:4px;}.mb-2{margin-bottom:8px;}.mb-3{margin-bottom:12px;}.mb-4{margin-bottom:16px;}.mb-6{margin-bottom:24px;}.mb-8{margin-bottom:32px;}
.p-4{padding:16px;}.p-6{padding:24px;}
.hidden{display:none !important;}
.w-full{width:100%;}
.rounded{border-radius:var(--radius);}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ================================================
   TABS
   ================================================ */
.tabs-bar{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:20px;overflow-x:auto;}
.tab-btn{background:none;border:none;padding:10px 16px;font-size:0.8125rem;font-weight:500;color:var(--text-light);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;}
.tab-btn:hover{color:var(--primary);}
.tab-btn.tab-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.tab-content{display:none;}
.tab-content.active{display:block;}

/* ================================================
   DOC GRID (document cards in grid view)
   ================================================ */
.doc-grid-item{border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:white;cursor:pointer;transition:all .15s;text-align:center;}
.doc-grid-item:hover{box-shadow:var(--shadow);border-color:var(--primary);}
.doc-grid-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}
.doc-grid-name{font-size:0.75rem;font-weight:600;margin-bottom:4px;line-height:1.3;}
.doc-grid-meta{font-size:0.625rem;color:var(--text-muted);margin-bottom:6px;}
.doc-icon-green{background:#D1FAE5;color:#10B981;}
.doc-icon-blue{background:#DBEAFE;color:#3B82F6;}
.doc-icon-purple{background:#F3E8FF;color:#7C3AED;}
.doc-icon-orange{background:#FEF3C7;color:#F59E0B;}

/* ================================================
   CERFA PREVIEW
   ================================================ */
.cerfa-preview{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-top:16px;font-family:'Courier New',monospace;}
.cerfa-header{background:#1E3A5F;color:white;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;}
.cerfa-body{padding:16px 20px;background:white;}
.cerfa-field{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid #F3F4F6;}
.cerfa-label{font-size:0.75rem;color:#666;min-width:180px;font-weight:600;}
.cerfa-value{font-size:0.75rem;color:#111;font-weight:700;}

/* ================================================
   TIMELINE
   ================================================ */
.timeline{position:relative;padding-left:24px;}
.timeline::before{content:'';position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--border);}
.timeline-item{position:relative;padding-bottom:24px;}
.timeline-dot{position:absolute;left:-20px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--border);border:2px solid white;box-shadow:0 0 0 2px var(--border);}
.timeline-success .timeline-dot{background:var(--accent);box-shadow:0 0 0 2px #D1FAE5;}
.timeline-warning .timeline-dot{background:var(--warning);box-shadow:0 0 0 2px #FEF3C7;}
.timeline-danger .timeline-dot{background:var(--danger);box-shadow:0 0 0 2px #FEE2E2;}
.timeline-title{font-size:0.875rem;font-weight:700;margin-bottom:2px;}
.timeline-date{font-size:0.6875rem;color:var(--text-muted);margin-bottom:4px;}
.timeline-text{font-size:0.8125rem;color:var(--text-light);}

/* ================================================
   STATS EXTRA
   ================================================ */
.stats-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.text-success{color:var(--accent);}
.text-warning{color:var(--warning);}
.text-danger{color:var(--danger);}
.text-info{color:var(--info);}
.text-muted{color:var(--text-muted);}
.text-sm{font-size:0.8125rem;}
.text-light{color:var(--text-light);}

/* Qualiopi critère body show when toggled */
.critere-body{display:none;}
