/* CEN V153 — socle premium global : cohérence, tableaux, formulaires, navigation et mobile */
:root{
  --cen-premium-green:#0d6b45;
  --cen-premium-green-dark:#084b31;
  --cen-premium-yellow:#f2c94c;
  --cen-premium-ink:#16251f;
  --cen-premium-muted:#66746d;
  --cen-premium-border:#dbe4df;
  --cen-premium-bg:#f5f8f6;
  --cen-premium-card:#ffffff;
  --cen-premium-shadow:0 10px 30px rgba(22,37,31,.08);
  --cen-premium-shadow-hover:0 16px 38px rgba(22,37,31,.12);
  --cen-premium-radius:18px;
}
html{scroll-behavior:smooth}
body{background:var(--cen-premium-bg);color:var(--cen-premium-ink)}
body.admin-layout main,body.admin-layout .main-content,body.admin-layout .content{min-width:0}

/* Titres et panneaux */
.page-heading,.dashboard-welcome,.panel,.panel-card,.card,.section-card,.form-card,.table-wrap{
  border-radius:var(--cen-premium-radius)!important;
}
.panel,.panel-card,.card,.section-card,.form-card{background:var(--cen-premium-card);border:1px solid var(--cen-premium-border);box-shadow:0 4px 16px rgba(22,37,31,.045)}
.page-heading h1,.dashboard-welcome h1,.panel h1,.panel h2{letter-spacing:-.02em}
.eyebrow{letter-spacing:.08em;font-weight:800}

/* Boutons cohérents */
.btn,button,input[type=submit],input[type=button]{border-radius:12px!important;font-weight:750;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.btn:hover,button:hover,input[type=submit]:hover,input[type=button]:hover{transform:translateY(-1px)}
.btn:active,button:active{transform:translateY(0)}
.btn.primary,.btn-primary,button.primary,input[type=submit]{box-shadow:0 6px 14px rgba(13,107,69,.16)}
button:disabled,.btn:disabled,input[type=submit]:disabled{opacity:.62!important;cursor:not-allowed!important;transform:none!important}

/* Formulaires premium */
form:not(.inline):not(.demo-toggle-form) label{font-weight:750;color:#274238}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{
  width:100%;min-height:44px;border:1px solid #cfdad4!important;border-radius:12px!important;background:#fff!important;color:#15271f!important;padding:.72rem .82rem!important;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--cen-premium-green)!important;box-shadow:0 0 0 4px rgba(13,107,69,.11)!important}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true],.is-invalid{border-color:#bf3f3f!important;box-shadow:0 0 0 3px rgba(191,63,63,.09)!important}
.field-error,.form-error,.invalid-feedback{color:#a72f2f!important;font-size:.84rem;font-weight:700;margin-top:.3rem}
.form,.filters,.form-grid{gap:1rem}
.filters{background:#fff;border:1px solid var(--cen-premium-border);padding:.9rem;border-radius:16px;box-shadow:0 3px 12px rgba(22,37,31,.04)}

/* Tables premium */
.table-wrap{overflow:auto!important;background:#fff;border:1px solid var(--cen-premium-border)!important;box-shadow:0 4px 18px rgba(22,37,31,.05)}
table{width:100%;border-collapse:separate!important;border-spacing:0!important}
table thead th{position:sticky;top:0;z-index:2;background:#eef5f1!important;color:#244136!important;font-size:.79rem;text-transform:uppercase;letter-spacing:.045em;border-bottom:1px solid #d7e3dc!important;white-space:nowrap}
table th,table td{padding:.78rem .8rem!important;vertical-align:middle;border-bottom:1px solid #edf1ef!important}
table tbody tr{transition:background .15s ease}
table tbody tr:hover{background:#f7faf8!important}
table tbody tr:last-child td{border-bottom:0!important}
.cen-table-toolbar{display:flex;gap:.65rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:.25rem 0 .7rem;padding:.65rem .7rem;background:#fff;border:1px solid var(--cen-premium-border);border-radius:14px}
.cen-table-search{max-width:360px!important;min-width:220px!important}
.cen-table-count{font-size:.82rem;color:var(--cen-premium-muted);font-weight:750;white-space:nowrap}
.cen-empty-filter{padding:1.4rem;text-align:center;color:var(--cen-premium-muted);font-weight:700}

/* Navigation premium */
.side-dashboard{box-shadow:10px 0 35px rgba(16,39,29,.08)}
.side-menu-group{border-radius:12px;overflow:hidden}
.side-menu-group summary{border-radius:12px;transition:background .16s ease,color .16s ease}
.side-menu-group summary:hover{background:rgba(13,107,69,.07)}
.side-submenu a,.cen-v125-navigation>a{border-radius:10px!important;transition:background .15s ease,transform .15s ease}
.side-submenu a:hover,.cen-v125-navigation>a:hover{transform:translateX(2px)}
.side-menu-search{position:sticky;top:0;z-index:4;background:inherit;padding-top:.4rem}

/* KPI / dashboard finition */
.kpi-card,.kpi-card-premium,.dashboard-static-chart,.cen-v15232-kpi,.cen-v15232-chart{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.kpi-card:hover,.kpi-card-premium:hover,.dashboard-static-chart:hover,.cen-v15232-kpi:hover,.cen-v15232-chart:hover{transform:translateY(-2px);box-shadow:var(--cen-premium-shadow-hover)!important;border-color:#bfd2c7!important}
.dashboard-section-head{gap:1rem;align-items:end}

/* États et feedback */
.flash,.alert,.message,.notice{border-radius:14px!important;border-width:1px!important;box-shadow:0 4px 14px rgba(22,37,31,.05)}
.cen-busy-label{display:inline-flex;align-items:center;gap:.45rem}
.cen-busy-label:before{content:'';width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:cenSpin .7s linear infinite}
@keyframes cenSpin{to{transform:rotate(360deg)}}

/* Images : stabilité et performance */
img{max-width:100%}
img:not([width]):not([height]){height:auto}

/* Accessibilité */
:focus-visible{outline:3px solid rgba(242,201,76,.85)!important;outline-offset:2px!important}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Tablette */
@media(max-width:980px){
  .dashboard-panels,.kpi-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-section-head{align-items:flex-start;flex-direction:column}
}

/* Mobile */
@media(max-width:720px){
  body{font-size:15px}
  .page-heading,.dashboard-welcome,.panel,.panel-card,.card,.section-card,.form-card{border-radius:15px!important}
  .dashboard-panels,.kpi-grid,.stats-grid,.form-grid{grid-template-columns:1fr!important}
  .filters{display:grid!important;grid-template-columns:1fr!important;gap:.7rem!important}
  .filters>*{width:100%!important;max-width:none!important}
  .table-wrap{border-radius:14px!important;margin-left:0!important;margin-right:0!important}
  table{min-width:680px}
  .cen-table-toolbar{align-items:stretch;flex-direction:column}
  .cen-table-search{max-width:none!important;min-width:0!important;width:100%!important}
  .btn,button,input[type=submit]{min-height:44px}
  .mobile-sidebar-toggle{box-shadow:0 8px 22px rgba(13,107,69,.22)!important}
  .side-dashboard{max-width:min(88vw,340px)!important}
}

@media(max-width:420px){
  .page-heading,.dashboard-welcome,.panel,.panel-card,.card,.section-card,.form-card{padding:.9rem!important}
  table th,table td{padding:.67rem .7rem!important}
}
