/* AZALYS V5.96 — Standardisation visuelle globale
   Objectif : harmoniser affichage, police, arrière-plan, menus, blocs, formulaires et tableaux
   sans modifier la logique métier ni les flux applicatifs.
*/

:root{
  --az-font-main: Inter, "Segoe UI", Roboto, Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --az-font-size-base: 13px;
  --az-font-size-small: 11.5px;
  --az-font-size-xs: 10.5px;
  --az-h1: 22px;
  --az-h2: 20px;
  --az-h3: 16px;
  --az-line-height: 1.45;

  --az-color-bg: #f4f7fb;
  --az-color-bg-soft: #eef4fb;
  --az-color-surface: #ffffff;
  --az-color-surface-2: #f8fafc;
  --az-color-text: #0f172a;
  --az-color-text-2: #334155;
  --az-color-muted: #64748b;
  --az-color-border: #dfe7f1;
  --az-color-border-soft: #edf2f7;
  --az-color-primary: #2563eb;
  --az-color-primary-dark: #1d4ed8;
  --az-color-success: #16a34a;
  --az-color-warning: #d97706;
  --az-color-danger: #dc2626;
  --az-color-info: #0284c7;
  --az-color-sidebar: #10233f;
  --az-color-sidebar-2: #172b49;

  --az-radius-sm: 10px;
  --az-radius-md: 12px;
  --az-radius-lg: 16px;
  --az-radius-xl: 18px;
  --az-shadow-soft: 0 10px 24px rgba(15,23,42,.055);
  --az-shadow-card: 0 14px 34px rgba(15,23,42,.075);
  --az-shadow-modal: 0 28px 70px rgba(15,23,42,.22);
  --az-space-xs: 6px;
  --az-space-sm: 10px;
  --az-space-md: 14px;
  --az-space-lg: 18px;
  --az-space-xl: 24px;

  --navy: var(--az-color-sidebar-2);
  --blue: var(--az-color-primary);
  --blue2: var(--az-color-primary-dark);
  --bg: var(--az-color-bg);
  --card: var(--az-color-surface);
  --muted: var(--az-color-muted);
  --line: var(--az-color-border);
  --text: var(--az-color-text);
  --shadow: var(--az-shadow-card);
  --radius: var(--az-radius-lg);
}

html{
  min-height:100%;
  background:var(--az-color-bg)!important;
  font-size:var(--az-font-size-base)!important;
  -webkit-text-size-adjust:100%;
}

body{
  min-height:100vh;
  margin:0!important;
  font-family:var(--az-font-main)!important;
  font-size:var(--az-font-size-base)!important;
  line-height:var(--az-line-height)!important;
  color:var(--az-color-text)!important;
  background:linear-gradient(180deg,#f7faff 0%,var(--az-color-bg) 260px,var(--az-color-bg) 100%)!important;
}

body::before,
body::after{
  display:none!important;
}

*,*::before,*::after{box-sizing:border-box}

button,input,select,textarea{
  font-family:var(--az-font-main)!important;
  font-size:12.5px!important;
  line-height:1.35!important;
}

img,svg,canvas,video{max-width:100%;height:auto}

/* Structure générale */
#app,
.app,
#main-screen,
#app-main,
.main-shell,
.main,
.content,
.view,
.client-portal,
.modules-premium-view{
  background:transparent!important;
}

.main-shell{
  grid-template-columns:236px minmax(0,1fr)!important;
}

.view,
.content{
  padding:18px 22px!important;
}

#app-main .content{
  width:100%!important;
  min-width:0!important;
}

/* Écrans chargement / connexion */
.boot-screen,
.auth-screen,
.premium-auth-surface,
#welcome-screen{
  background:linear-gradient(135deg,#10233f 0%,#1d4ed8 100%)!important;
}

.boot-card,
.auth-card,
.premium-auth-card,
#welcome-screen > div{
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 28px 80px rgba(15,23,42,.28)!important;
}

.auth-brand h1,
.boot-card h1,
#welcome-screen h1{
  font-size:clamp(22px,2.8vw,34px)!important;
  line-height:1.1!important;
  color:var(--az-color-sidebar-2)!important;
}

.auth-brand p,
.boot-card p,
#welcome-screen p{
  color:var(--az-color-muted)!important;
  font-size:13px!important;
}

/* Menus admin/collaborateur/client */
.side,
.sidebar{
  width:236px!important;
  min-width:236px!important;
  background:linear-gradient(180deg,var(--az-color-sidebar) 0%,#0b1a31 100%)!important;
  color:#fff!important;
  border-right:1px solid rgba(148,163,184,.20)!important;
  box-shadow:10px 0 34px rgba(15,23,42,.10)!important;
}

.side-brand,
.sidebar-logo{
  min-height:58px!important;
  padding:13px 14px!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
}

.side-brand strong,
.sidebar-logo h1{
  font-size:14px!important;
  line-height:1.2!important;
  letter-spacing:-.01em!important;
  color:#fff!important;
}

.side-brand span,
.sidebar-logo span{
  font-size:11px!important;
  color:rgba(226,232,240,.68)!important;
}

.side-nav,
.sidebar-nav{
  gap:4px!important;
  padding:10px 8px!important;
}

.nav-section{
  padding:11px 12px 4px!important;
  font-size:10px!important;
  letter-spacing:.07em!important;
  color:rgba(226,232,240,.44)!important;
}

.nav-btn,
.nav-item,
.side-footer .btn{
  min-height:36px!important;
  padding:8px 11px!important;
  border-radius:11px!important;
  font-size:12.5px!important;
  line-height:1.2!important;
  font-weight:750!important;
  letter-spacing:0!important;
}

.nav-btn,
.nav-item{
  color:rgba(226,232,240,.78)!important;
  background:transparent!important;
  border-left:3px solid transparent!important;
}

.nav-btn:hover,
.nav-item:hover{
  color:#fff!important;
  background:rgba(59,130,246,.16)!important;
}

.nav-btn.active,
.nav-item.active{
  color:#fff!important;
  background:rgba(37,99,235,.28)!important;
  border-left-color:#60a5fa!important;
  box-shadow:none!important;
}

.nav-item .icon,
.nav-btn .icon{
  width:20px!important;
  min-width:20px!important;
  text-align:center!important;
  font-size:15px!important;
}

/* Topbar */
.topbar,
#main-screen .topbar,
#app-main .topbar{
  min-height:60px!important;
  padding:11px 22px!important;
  background:rgba(255,255,255,.92)!important;
  border-bottom:1px solid var(--az-color-border)!important;
  box-shadow:0 8px 24px rgba(15,23,42,.045)!important;
  backdrop-filter:blur(12px)!important;
}

.topbar h2,
.topbar-title{
  margin:0!important;
  font-size:var(--az-h2)!important;
  line-height:1.16!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
  color:var(--az-color-sidebar-2)!important;
}

.eyebrow{
  font-size:10px!important;
  line-height:1.2!important;
  letter-spacing:.08em!important;
  color:var(--az-color-muted)!important;
}

.top-actions{
  gap:8px!important;
}

/* Typographie */
h1,.hero h1{
  font-size:var(--az-h1)!important;
  line-height:1.16!important;
  letter-spacing:-.025em!important;
  color:var(--az-color-sidebar-2)!important;
}

h2{font-size:var(--az-h2)!important;line-height:1.18!important;color:var(--az-color-sidebar-2)!important}
h3,.card-head h3,.card-title,.modal-title{font-size:var(--az-h3)!important;line-height:1.22!important;color:var(--az-color-sidebar-2)!important}
h4{font-size:14px!important;line-height:1.25!important;color:var(--az-color-sidebar-2)!important}
p,.item-sub,.row-sub,.muted,small{line-height:1.42!important;color:var(--az-color-muted)}
.muted,small{font-size:var(--az-font-size-small)!important}

/* Cartes, blocs, sections */
.hero,
.card,
.kpi,
.item,
.module-card,
.client-card,
.dossier-card,
.collab-pro-card,
.module-check,
.global-module-card,
.collab-rights-summary > div,
.cabinet-thread-focus-panel,
.cabinet-conversation-list-panel,
.internal-contacts-panel,
.internal-thread-panel,
.bank-reco-state-grid > div,
.fiscal-watch-card,
.audio-meeting-card,
.settings-card,
.panel,
.box,
.tile,
.workflow-card,
.bulletin-preview{
  border:1px solid var(--az-color-border)!important;
  border-radius:var(--az-radius-lg)!important;
  background:var(--az-color-surface)!important;
  box-shadow:var(--az-shadow-soft)!important;
  backdrop-filter:none!important;
}

.card,
.kpi,
.module-card,
.client-card,
.dossier-card,
.collab-pro-card,
.panel,
.box,
.tile{
  overflow:hidden;
}

.card:hover,
.kpi:hover,
.module-card:hover,
.item:hover,
.collab-pro-card:hover,
.client-card:hover,
.dossier-card:hover{
  transform:none!important;
  box-shadow:var(--az-shadow-card)!important;
  border-color:#cbd8e8!important;
}

.card-head,
.card-header,
.modal-header,
.cabinet-conversation-list-head-compact,
.internal-thread-head,
.internal-sidebar-title,
.global-modules-head{
  padding:13px 15px!important;
  border-bottom:1px solid var(--az-color-border-soft)!important;
  background:var(--az-color-surface-2)!important;
}

.card-body,
.module-usage,
.list,
.stack{
  padding:14px 15px!important;
}

.hero{
  padding:18px!important;
  margin-bottom:16px!important;
  background:linear-gradient(135deg,#ffffff 0%,#f4f8ff 100%)!important;
}

.kpi-grid,
.grid,
.modules-grid,
.global-modules-grid,
.bank-reco-state-grid{
  gap:12px!important;
}

.kpi{
  padding:14px!important;
  border-left:4px solid var(--az-color-primary)!important;
}

.kpi-label{
  font-size:10.5px!important;
  line-height:1.1!important;
  color:var(--az-color-muted)!important;
}

.kpi-value,
.collab-rights-summary strong{
  font-size:24px!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
  color:var(--az-color-sidebar-2)!important;
}

.item{
  padding:10px!important;
  margin:7px 0!important;
}

.item-icon,
.module-card .ico{
  font-size:20px!important;
}

/* Boutons */
.btn,
.btn-primary,
.btn-ghost,
.btn-secondary,
.link-btn,
.icon-btn,
button:not(.nav-btn):not(.nav-item){
  min-height:34px!important;
  border-radius:11px!important;
  font-size:12.5px!important;
  font-weight:800!important;
  line-height:1.2!important;
  box-shadow:none!important;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease!important;
}

.btn,
.btn-primary,
.btn-ghost,
.btn-secondary{
  padding:8px 12px!important;
}

.btn.primary,
.btn-primary,
.btn.btn-primary,
.premium-submit,
.internal-send-btn,
.azl-im-send,
.azl-cm-send{
  border:1px solid var(--az-color-primary)!important;
  background:var(--az-color-primary)!important;
  color:#fff!important;
}

.btn.primary:hover,
.btn-primary:hover,
.premium-submit:hover{
  background:var(--az-color-primary-dark)!important;
  border-color:var(--az-color-primary-dark)!important;
  transform:none!important;
}

.btn.ghost,
.btn-ghost,
.btn-secondary,
.icon-btn,
.password-toggle{
  border:1px solid var(--az-color-border)!important;
  background:#fff!important;
  color:var(--az-color-text-2)!important;
}

.btn.ghost:hover,
.btn-ghost:hover,
.btn-secondary:hover,
.icon-btn:hover{
  background:#f8fafc!important;
  border-color:#cbd5e1!important;
  transform:none!important;
}

.btn.danger,
.btn-danger{
  color:var(--az-color-danger)!important;
}

/* Formulaires */
label,
.form-label,
.premium-auth-form label{
  margin-bottom:8px!important;
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:750!important;
  color:#475569!important;
}

.control,
.form-control,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.azl-im-select,
.azl-im-input,
.azl-cm-input{
  min-height:36px!important;
  padding:8px 11px!important;
  border:1px solid #cbd5e1!important;
  border-radius:11px!important;
  background:#fff!important;
  color:var(--az-color-text)!important;
  box-shadow:none!important;
  outline:none!important;
}

textarea,
textarea.control,
.azl-im-input,
.azl-cm-input{
  min-height:74px!important;
  resize:vertical;
}

.control:focus,
.form-control:focus,
input:focus,
select:focus,
textarea:focus{
  border-color:var(--az-color-primary)!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.13)!important;
}

.form-grid{
  gap:11px!important;
  padding:14px 15px!important;
}

.form-grid.three{
  gap:11px!important;
}

/* Tableaux */
.table-wrap{
  width:100%;
  overflow:auto!important;
  border-radius:var(--az-radius-lg)!important;
}

table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  font-size:12px!important;
  background:#fff!important;
}

th,
td{
  padding:8px 10px!important;
  border-bottom:1px solid var(--az-color-border-soft)!important;
  vertical-align:middle!important;
}

th{
  position:relative;
  background:#f8fafc!important;
  color:#64748b!important;
  font-size:10.5px!important;
  line-height:1.2!important;
  font-weight:850!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

td{
  color:var(--az-color-text-2)!important;
  background:#fff!important;
}

tr:hover td{
  background:#f8fafc!important;
}

td.actions,
.actions{
  gap:6px!important;
}

/* Badges et états */
.badge,
.status-pill,
.nav-badge,
.pill,
.tag{
  min-height:22px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  font-size:10.8px!important;
  line-height:1.15!important;
  font-weight:850!important;
  box-shadow:none!important;
}

.badge.blue,.status-pill.info{background:#dbeafe!important;color:#1d4ed8!important;border-color:#bfdbfe!important}
.badge.green,.status-pill.ok{background:#dcfce7!important;color:#15803d!important;border-color:#bbf7d0!important}
.badge.gold,.badge.orange,.status-pill.warn{background:#fef3c7!important;color:#92400e!important;border-color:#fde68a!important}
.badge.red,.status-pill.err{background:#fee2e2!important;color:#b91c1c!important;border-color:#fecaca!important}
.badge.purple{background:#ede9fe!important;color:#6d28d9!important;border-color:#ddd6fe!important}

.alert,
.toast,
.empty,
.health-box{
  border-radius:var(--az-radius-md)!important;
}

.empty{
  padding:20px!important;
  color:var(--az-color-muted)!important;
  background:#fff!important;
}

/* Modales / fenêtres */
.modal,
.modal-overlay,
.ab-ai-modal,
.azl-im-panel,
.azl-cm-panel{
  backdrop-filter:none!important;
}

.modal-card,
.modal,
.ab-ai-modal-box,
.azl-im-panel,
.azl-cm-panel{
  border:1px solid var(--az-color-border)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:var(--az-shadow-modal)!important;
}

.modal-card{
  padding:18px!important;
}

.modal-actions,
.azl-im-compose,
.azl-cm-compose{
  gap:8px!important;
}

/* Messageries : harmonisation visuelle sans toucher aux scripts */
.internal-premium-v167 .internal-workspace,
.cabinet-inbox-compact .cabinet-inbox-workspace-v3{
  gap:12px!important;
}

.internal-premium-v167 .internal-bubble,
.azl-im-bubble,
.azl-cm-bubble{
  border-radius:15px!important;
  font-size:12.5px!important;
  line-height:1.42!important;
}

.azl-im-btn,
.azl-cm-btn,
.ab-ai-fab{
  box-shadow:0 14px 36px rgba(37,99,235,.22)!important;
}

/* Accordéons / dossiers / collaborateurs */
.dossier-accordion,
.dossier-accordion-panel,
.collab-global-modules-zone,
#collab-global-modules-zone{
  border-color:var(--az-color-border)!important;
  background:#fff!important;
}

.global-modules-grid,
.modules-grid{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;
}

.global-module-card,
.module-check,
.module-card{
  min-height:54px!important;
  padding:11px 12px!important;
}

/* Responsive */
@media (max-width:1100px){
  .main-shell{
    grid-template-columns:1fr!important;
  }
  .side,
  .sidebar{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
  }
  .side-nav,
  .sidebar-nav{
    display:flex!important;
    flex-direction:row!important;
    gap:6px!important;
    overflow-x:auto!important;
    padding:8px!important;
  }
  .nav-section{display:none!important}
  .nav-btn,
  .nav-item{
    white-space:nowrap!important;
    min-width:max-content!important;
  }
  .side-footer{display:none!important}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .grid.two{grid-template-columns:1fr!important}
  .panel-tools{grid-template-columns:1fr 1fr!important}
}

@media (max-width:760px){
  html{font-size:12.5px!important}
  body{font-size:12.5px!important}
  .view,
  .content{
    padding:12px!important;
  }
  .topbar,
  #main-screen .topbar,
  #app-main .topbar{
    min-height:56px!important;
    padding:10px 12px!important;
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:8px!important;
  }
  .topbar h2,
  .topbar-title{
    font-size:18px!important;
  }
  .hero{
    padding:14px!important;
    border-radius:15px!important;
  }
  h1,.hero h1{font-size:19px!important}
  h2{font-size:18px!important}
  h3,.card-head h3,.card-title,.modal-title{font-size:15px!important}
  .card-head,.card-header,.modal-header{padding:11px 12px!important}
  .card-body,.module-usage,.list,.stack{padding:12px!important}
  .kpi-grid,
  .modules-grid,
  .global-modules-grid,
  .bank-reco-state-grid,
  .panel-tools,
  .collab-rights-summary{
    grid-template-columns:1fr!important;
  }
  .btn,
  .btn-primary,
  .btn-ghost,
  .btn-secondary{
    min-height:34px!important;
  }
  .top-actions{
    width:100%!important;
  }
  .top-actions .btn{
    flex:1 1 auto!important;
  }
  th,td{
    padding:7px 8px!important;
  }
  .modal-card,
  .modal{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    border-radius:16px!important;
  }
}

@media (max-width:520px){
  .side-brand,
  .sidebar-logo{
    padding:11px 12px!important;
  }
  .side-nav,
  .sidebar-nav{
    padding:7px 8px!important;
  }
  .nav-btn,
  .nav-item{
    min-height:34px!important;
    padding:8px 10px!important;
    font-size:12px!important;
  }
  .kpi-value,
  .collab-rights-summary strong{
    font-size:21px!important;
  }
  .control,
  .form-control,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea{
    font-size:12px!important;
  }
}

/* Sécurité visuelle : ne pas rendre visibles les champs techniques */
input[type="hidden"]{
  display:none!important;
  min-height:0!important;
  height:0!important;
  padding:0!important;
  border:0!important;
}
