/* ==========================================================
   AZALYS — Harmonisation premium globale modules V12
   Objectif : appliquer l'identité marocaine premium à tous
   les modules opérationnels sans toucher aux flux métier.
   ========================================================== */
:root{
  --az-bg:#f4f8f8;
  --az-bg-soft:#eef6f4;
  --az-card:#ffffff;
  --az-navy:#08324a;
  --az-navy-2:#0b3f58;
  --az-teal:#0f766e;
  --az-teal-2:#0d9488;
  --az-emerald:#047857;
  --az-gold:#c89b3c;
  --az-gold-soft:#f5ead0;
  --az-ink:#102a43;
  --az-muted:#64748b;
  --az-line:#dbe7e5;
  --az-shadow:0 18px 45px rgba(8,50,74,.10);
  --az-shadow-soft:0 10px 26px rgba(8,50,74,.08);
  --az-radius:18px;
  --az-radius-sm:12px;
}

/* Base générale — ne modifie pas le moteur métier */
body{background:linear-gradient(135deg,#f7fbfb 0%,#eef7f5 52%,#f8f4ea 100%) !important;color:var(--az-ink);}
#app-main,.app-shell,.main{background:linear-gradient(135deg,#f7fbfb 0%,#eef7f5 52%,#f8f4ea 100%) !important;}

/* Motif discret zellige sur les espaces internes */
#app-main::before,.app-shell::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.38;
  background-image:
    radial-gradient(circle at 18px 18px,rgba(200,155,60,.10) 0 1.5px,transparent 2px),
    linear-gradient(135deg,rgba(15,118,110,.045) 25%,transparent 25%),
    linear-gradient(225deg,rgba(15,118,110,.04) 25%,transparent 25%);
  background-size:36px 36px,52px 52px,52px 52px;
}
#app-main > *,.app-shell > *{position:relative;z-index:1;}

/* Sidebar premium commune */
.sidebar,.app-sidebar,.side-nav{
  background:linear-gradient(180deg,#06283d 0%,#08324a 45%,#0f766e 100%) !important;
  box-shadow:18px 0 40px rgba(6,40,61,.18) !important;
  border-right:1px solid rgba(255,255,255,.10) !important;
}
.sidebar-logo,.sidebar-brand,.app-brand{
  border-bottom:1px solid rgba(255,255,255,.13) !important;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.03)) !important;
}
.sidebar-logo h1,.sidebar-brand h1,.brand-title{
  letter-spacing:.2px !important;color:#fff !important;text-shadow:0 2px 10px rgba(0,0,0,.18);
}
.sidebar-logo span,.sidebar-brand span{color:rgba(255,255,255,.70) !important;}
.nav-section{
  color:rgba(255,255,255,.50) !important;
  letter-spacing:.12em !important;
  font-weight:800 !important;
  margin-top:10px !important;
}
.nav-item,.nav-btn,.side-nav a,.side-nav button{
  border-radius:14px !important;
  margin:4px 10px !important;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease !important;
}
.nav-item:hover,.nav-btn:hover,.side-nav a:hover,.side-nav button:hover{
  transform:translateX(3px);
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
}
.nav-item.active,.nav-btn.active,.side-nav .active{
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(200,155,60,.20)) !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.18) !important;
}
.nav-item .icon,.nav-btn .icon{filter:drop-shadow(0 2px 6px rgba(0,0,0,.20));}

/* Topbar et headers */
.topbar,.app-topbar,.page-topbar,.main-header{
  background:rgba(255,255,255,.78) !important;
  backdrop-filter:blur(14px) !important;
  border:1px solid rgba(219,231,229,.78) !important;
  border-radius:0 0 22px 22px !important;
  box-shadow:0 12px 32px rgba(8,50,74,.08) !important;
}
.topbar h2,.page-title,h1,h2,h3{color:var(--az-navy) !important;}
.subtitle,.muted,small{color:var(--az-muted) !important;}

/* Contenu et cartes */
.main,.content,.page-content,.view,.module-content{
  color:var(--az-ink);
}
.card,.stat-card,.kpi-card,.panel,.widget,.box,.section-card,.module-card,
.form-card,.table-card,.dashboard-card,.work-card,.alert-card{
  background:rgba(255,255,255,.90) !important;
  border:1px solid rgba(219,231,229,.92) !important;
  border-radius:var(--az-radius) !important;
  box-shadow:var(--az-shadow-soft) !important;
}
.card:hover,.stat-card:hover,.kpi-card:hover,.module-card:hover,.widget:hover{
  box-shadow:var(--az-shadow) !important;
  transform:translateY(-1px);
}
.card-header,.panel-header,.modal-header,.section-header{
  border-bottom:1px solid var(--az-line) !important;
  background:linear-gradient(135deg,rgba(15,118,110,.07),rgba(200,155,60,.07)) !important;
  border-radius:var(--az-radius) var(--az-radius) 0 0 !important;
}

/* Grilles de modules / dashboards */
.stats-grid,.kpi-grid,.dashboard-grid,.modules-grid,.cards-grid,.grid{
  gap:16px !important;
}
.stat-value,.kpi-value,.metric-value{color:var(--az-navy) !important;font-weight:850 !important;}
.stat-label,.kpi-label,.metric-label{color:var(--az-muted) !important;font-weight:700 !important;}

/* Sections par métier — bandeau premium général */
.page-header,.module-header,.hero,.module-hero,.az-achats-hero,.az-achats-minihead{
  border-radius:24px !important;
  background:
    linear-gradient(135deg,rgba(8,50,74,.96),rgba(15,118,110,.90)),
    radial-gradient(circle at top right,rgba(200,155,60,.35),transparent 30%) !important;
  color:#fff !important;
  box-shadow:var(--az-shadow) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  overflow:hidden;
}
.page-header h1,.page-header h2,.module-header h1,.module-header h2,.hero h1,.hero h2,.module-hero h1,.az-achats-hero h1,.az-achats-minihead h1{color:#fff !important;}
.page-header p,.module-header p,.hero p,.module-hero p,.az-achats-hero p,.az-achats-minihead p{color:rgba(255,255,255,.80) !important;}
.page-header::after,.module-header::after,.hero::after,.module-hero::after,.az-achats-hero::after,.az-achats-minihead::after{
  content:"";position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,155,60,.35),transparent 64%);pointer-events:none;
}

/* Formulaires */
input,select,textarea,.form-control,.control{
  border:1px solid #d7e5e2 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:var(--az-ink) !important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease !important;
}
input:focus,select:focus,textarea:focus,.form-control:focus,.control:focus{
  border-color:rgba(15,118,110,.70) !important;
  box-shadow:0 0 0 4px rgba(15,118,110,.12) !important;
  outline:none !important;
}
label,.form-label{color:var(--az-navy) !important;font-weight:750 !important;}
.section-divider,.section-title{
  border-left:4px solid var(--az-gold) !important;
  background:linear-gradient(90deg,rgba(200,155,60,.14),rgba(15,118,110,.06)) !important;
  color:var(--az-navy) !important;
  border-radius:12px !important;
  text-transform:none !important;
  letter-spacing:.02em !important;
}

/* Boutons */
.btn,button,.button{
  border-radius:14px !important;
  font-weight:800 !important;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease !important;
}
.btn:hover,button:hover,.button:hover{transform:translateY(-1px);}
.btn-primary,.btn.primary,.primary,.btn-success,.btn.btn-primary{
  background:linear-gradient(135deg,var(--az-teal),var(--az-emerald)) !important;
  border-color:transparent !important;
  color:#fff !important;
  box-shadow:0 12px 24px rgba(15,118,110,.24) !important;
}
.btn-primary:hover,.btn.primary:hover,.primary:hover,.btn-success:hover{box-shadow:0 16px 30px rgba(15,118,110,.30) !important;}
.btn-ghost,.btn.ghost,.ghost,.btn-secondary{
  background:rgba(255,255,255,.82) !important;
  border:1px solid var(--az-line) !important;
  color:var(--az-navy) !important;
}
.btn-danger,.danger{background:linear-gradient(135deg,#b91c1c,#dc2626) !important;color:#fff !important;border-color:transparent !important;}

/* Badges / alertes */
.badge,.pill,.tag,.status{
  border-radius:999px !important;
  font-weight:800 !important;
  border:1px solid rgba(15,118,110,.10) !important;
}
.badge-blue,.badge.info,.pill.info{background:#e8f4ff !important;color:#075985 !important;}
.badge-green,.badge.success,.pill.success{background:#e7f8f1 !important;color:#047857 !important;}
.badge-gold,.badge-warning,.badge.warn,.pill.warn{background:var(--az-gold-soft) !important;color:#8a6518 !important;}
.badge-red,.badge-danger,.pill.danger{background:#fee2e2 !important;color:#991b1b !important;}
.alert,.notice{
  border-radius:16px !important;
  border:1px solid var(--az-line) !important;
  box-shadow:0 8px 22px rgba(8,50,74,.06) !important;
}
.alert-info,.alert.info{background:linear-gradient(135deg,#eef9f8,#f9fbff) !important;color:var(--az-navy) !important;}

/* Tableaux */
.table-wrap,table{
  border-radius:18px !important;
  overflow:hidden !important;
}
table{
  border-collapse:separate !important;
  border-spacing:0 !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(8,50,74,.05) !important;
}
thead th,table thead td{
  background:linear-gradient(135deg,#eef7f5,#f6f1e6) !important;
  color:var(--az-navy) !important;
  border-bottom:1px solid var(--az-line) !important;
  font-weight:850 !important;
}
tbody tr{transition:background .14s ease,transform .14s ease;}
tbody tr:hover{background:#f7fbfa !important;}
td,th{border-color:#edf3f2 !important;}
.num,.amount,.montant{text-align:right;font-variant-numeric:tabular-nums;}

/* Modales */
.modal,.modal-content,.dialog,.dialog-content{
  border-radius:24px !important;
  border:1px solid rgba(219,231,229,.95) !important;
  box-shadow:0 28px 70px rgba(8,50,74,.22) !important;
}
.modal-backdrop,.dialog-backdrop{backdrop-filter:blur(8px) !important;}

/* Spécifique modules historiques : pages générées sans classes métier */
#app-main .main{padding:0 !important;}
#app-main .main > .topbar{margin:0 0 18px 0 !important;}
#app-main .content,#app-main .page-content{padding:22px !important;}
#app-main .page,#app-main [id^="page-"]{
  animation:azFadeUp .22s ease both;
}
@keyframes azFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Harmonisation modules nommés */
body[data-az-module="commercial"] .module-header,
body[data-az-module="commercial"] .page-header{background:linear-gradient(135deg,#08324a,#0f766e) !important;}
body[data-az-module="finance"] .module-header,
body[data-az-module="finance"] .page-header{background:linear-gradient(135deg,#082f49,#0f766e) !important;}
body[data-az-module="paie"] .module-header,
body[data-az-module="paie"] .page-header{background:linear-gradient(135deg,#08324a,#047857) !important;}
body[data-az-module="stock"] .module-header,
body[data-az-module="stock"] .page-header{background:linear-gradient(135deg,#064e3b,#0f766e) !important;}
body[data-az-module="juridique"] .module-header,
body[data-az-module="juridique"] .page-header{background:linear-gradient(135deg,#11203a,#8a6518) !important;}

/* Cartes hub ERP */
#erp-hub [onclick],.hub-card{
  border-radius:22px !important;
  box-shadow:var(--az-shadow-soft) !important;
  border:1px solid rgba(219,231,229,.80) !important;
}
#erp-hub [onclick]:hover,.hub-card:hover{box-shadow:var(--az-shadow) !important;transform:translateY(-3px) !important;}

/* Responsive */
@media (max-width: 900px){
  .main,.content,.page-content{padding:14px !important;}
  .topbar,.app-topbar{border-radius:0 0 18px 18px !important;}
  .card,.panel,.widget,.module-card{border-radius:16px !important;}
  table{font-size:12px !important;}
}
