/* ================================================================
   sage7-ihealth.css — HABILLAGE « Sage i7 / S7 » pour Akiwacu iHealth
   -----------------------------------------------------------------
   Reprend la signature visuelle de la suite Akiwacu_Finance_Suite
   (public/assets/css/sage7.css) :
     • barre de menus fenêtre classique (menubar) avec menus déroulants,
     • barre d'outils « bosselée » 3D (bevel) + boutons classiques,
     • rail de modules à gauche (icône + titre + sous-titre),
     • fenêtre principale avec barre de titre dégradé bleu nuit,
     • grilles "feuilles" façon Sage (entêtes bleues, lignes alternées),
     • status bar en bas d'écran.
   Les variables CSS du tableau de bord sont ré-valuées vers la palette
   claire Sage, de sorte que les 100+ modules (qui utilisent var(--accent),
   var(--bg3), var(--border)…) rendent automatiquement en look Sage sans
   modification de leur code.
   Tout est scopé par body.sage7 (sauf :root qui pilote les variables).
   ================================================================ */

/* ── Palette claire Sage (remplace la palette sombre des modules) ── */
:root{
  --bg:#e9e6db;            /* fond de page (beige) */
  --bg2:#faf9f5;           /* panneaux / fenêtres */
  --bg3:#f1eee4;           /* champs encastrés */
  --bg1:#fdfcf8;           /* cartes claires (modules) */
  --border:#9a9484;        /* bordures fenêtre */
  --bd:#c4beac;            /* bordures douces (agenda…) */
  --accent:#1c3f66;        /* bleu nuit Sage */
  --accent2:#3d6ba3;       /* bleu clair Sage */
  --accent2-bg:#e3edf6;    /* teinte claire success (compta/GL) */
  --accent3:#3d7a2c;       /* vert Sage */
  --danger:#b3271d;        /* rouge Sage */
  --danger-bg:#f6ded9;
  --warning:#b98318;       /* ambre Sage */
  --warning-bg:#faf3e2;
  --text:#222;
  --text2:#5a5548;
  --text3:#7a7365;
  --text-dim:#8a8168;
  --card:#fdfcf8;
  --radius:0px;
  --shadow:0 2px 6px rgba(60,50,30,.16);
  --sidebar-w:0px;
  /* couleurs de data-viz sur surface claire */
  --series-1:#1c3f66;
  --series-2:#c14f3d;
  --viz-bar:#2c5586;
  --viz-grid:rgba(60,50,30,.16);
  --viz-surface:#faf9f5;
}

*{margin:0;padding:0;box-sizing:border-box;}

body.sage7{
  font-family:"Segoe UI",Tahoma,Arial,sans-serif !important;
  font-size:13px !important;
  background:#e6e3db url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAFElEQVR42mNgoCdgMDIwMDBAJQABAAEBAQEv6dUgAAAAAElFTkSuQmCC') repeat;
  color:#222;
  margin:0;
  min-height:100vh;
  display:block;
}
body.sage7 h1,body.sage7 h2,body.sage7 h3,body.sage7 h4,body.sage7 h5,body.sage7 .logo{font-family:"Segoe UI",Tahoma,Arial,sans-serif;}
body.sage7 a{color:inherit;}
body.sage7 ::-webkit-scrollbar{width:12px;height:12px;}
body.sage7 ::-webkit-scrollbar-thumb{background:#b3ad9d;border:2px solid #e6e3db;}
body.sage7 ::-webkit-scrollbar-track{background:#e6e3db;}

/* ── Porte d'authentification ── */
#auth-gate{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999;}
#auth-gate .spin{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:agspin .8s linear infinite;}
@keyframes agspin{to{transform:rotate(360deg);}}
body.auth-ready #auth-gate{display:none;}

/* ── Barre de menus fenêtre (style Sage i7) ── */
.s7-menubar{
  display:flex;
  align-items:center;
  background:linear-gradient(#fdfcf8,#e3dfd1);
  border-bottom:1px solid #9a9484;
  padding:2px 6px;
  user-select:none;
  position:relative;
  z-index:1040;
}
.s7-mbrand{
  font-weight:700;
  color:#1c3f66;
  padding:3px 12px 3px 6px;
  border-right:1px solid #b9b3a2;
  margin-right:8px;
  white-space:nowrap;
  font-size:12px;
}
.s7-mbrand i{margin-right:6px;color:#2a5380;}
.s7-menu{display:flex;align-items:center;flex-wrap:wrap;}
.s7-menu > li{display:inline-block;position:relative;flex:0 0 auto;}
.s7-menu > li > a{
  display:block;
  padding:3px 10px;
  color:#1c2938;
  text-decoration:none;
  font-size:12px;
  cursor:pointer;
}
.s7-menu > li:hover > a,
.s7-menu > li.open > a{background:#1c3f66;color:#fff;}
.s7-menu ul{
  display:none;
  position:absolute;
  top:100%;left:0;
  min-width:240px;
  max-height:calc(100vh - 90px);
  overflow-y:auto;
  background:#f5f3ec;
  border:1px solid #7f7a6a;
  box-shadow:3px 3px 8px rgba(0,0,0,.25);
  list-style:none;
  padding:2px 0;
  margin:0;
  z-index:1050;
}
.s7-menu li.open > ul{display:block;}
.s7-menu ul a{
  display:block;
  padding:3px 14px;
  color:#111;
  text-decoration:none;
  white-space:nowrap;
  font-size:12px;
  cursor:pointer;
}
.s7-menu ul a:hover{background:#1c3f66;color:#fff;}
.s7-menu ul .s7-header{
  padding:3px 14px;
  font-weight:700;
  color:#1c3f66;
  font-size:11px;
  border-bottom:1px solid #ccc6b6;
  margin-bottom:2px;
  text-transform:uppercase;
}
.s7-menu ul .s7-sep{border-top:1px solid #bdb7a8;margin:3px 4px;}
.s7-menu ul .s7-active{background:#2a5380;color:#fff;}
.s7-mright{margin-left:auto;display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;}

/* ── Bouton bosselé "classic" (3D outset) ── */
.s7-btn,.s7-btn:link,.s7-btn:visited{
  display:inline-block;
  padding:4px 12px;
  margin:1px;
  font-size:12px;
  text-decoration:none;
  color:#1c2938;
  background:linear-gradient(#ffffff,#ece9df);
  border:1px solid #8f8a7c;
  border-top-color:#c7c2b4;
  border-left-color:#c7c2b4;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  cursor:pointer;
  white-space:nowrap;
}
.s7-btn:hover{background:linear-gradient(#ffffff,#f3f1e9);border-color:#1c3f66;}
.s7-btn:active{
  background:linear-gradient(#dfdbcd,#f0eee5);
  border-top-color:#6f6a5c;
  border-left-color:#6f6a5c;
  box-shadow:0 1px 2px rgba(0,0,0,.25) inset;
  transform:translateY(1px);
}
.s7-btn.s7-nav,.s7-btn.s7-btn-nav{
  background:linear-gradient(#2a5380,#1c3f66);
  color:#fff;
  border:1px solid #12304f;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset;
}
.s7-btn.s7-nav:hover,.s7-btn.s7-btn-nav:hover{background:linear-gradient(#2f6197,#1c3f66);}
.s7-btn.s7-nav:active,.s7-btn.s7-btn-nav:active{background:linear-gradient(#12304f,#1c3f66);}
.s7-btn.s7-ok,.s7-btn.s7-btn-ok{background:linear-gradient(#7fb06c,#5c8f4a);color:#fff;border-color:#47713a;}
.s7-btn.s7-red,.s7-btn.s7-btn-red{background:linear-gradient(#d97b6a,#c14f3d);color:#fff;border-color:#a53a2a;}
.s7-btn.s7-amber,.s7-btn.s7-btn-amber,.s7-btn.s7-btn-warn{background:linear-gradient(#f0c060,#dfa336);color:#2a2410;border-color:#b98318;}
.s7-btn i{margin-right:4px;}
.s7-btn.s7-btn-xs{padding:1px 8px;font-size:11px;}
.s7-btn:disabled,.s7-btn.s7-disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.4);}

/* ── Utilisateur / logout dans la barre ── */
.s7-user{
  padding:3px 10px;
  color:#1c2938;
  border-left:1px solid #b9b3a2;
  font-size:12px;
  white-space:nowrap;
  display:flex;align-items:center;gap:6px;
}
.s7-user b{color:#1c3f66;}
.admin-avatar{
  width:26px;height:26px;
  background:linear-gradient(135deg,#2a5380,#12304f);
  border:1px solid #12304f;
  border-radius:3px;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:11px;color:#fff;
  cursor:pointer;
}
/* Marque de l'établissement actif (menu fenêtre) */
.tenant-brand{
  display:none;align-items:center;gap:8px;
  padding:2px 8px;margin-left:14px;
  background:#f5f3ec;border:1px solid #b9b3a2;
}
.tenant-brand img{height:20px;width:auto;max-width:110px;display:none;object-fit:contain;background:#fff;padding:1px;}
.tenant-brand .tb-name{font-weight:700;font-size:12px;color:#1c2938;line-height:1.15;}
.tenant-brand .tb-sub{font-size:9px;color:#7a7365;font-weight:700;text-transform:uppercase;letter-spacing:.5px;}

/* Sélecteur d'hôpital (super-admin) */
#tenant-switcher{
  background:var(--bg2);color:var(--text);
  border:1px solid var(--border);
  border-radius:0;padding:3px 8px;font-size:12px;
  min-width:200px;
}
/* Bouton mode édition */
#edit-mode-toggle{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;
  font-size:12px;
  color:#1c2938!important;
  background:linear-gradient(#ffffff,#ece9df)!important;
  border:1px solid #8f8a7c!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
}
#edit-mode-toggle:hover{border-color:#1c3f66;}

/* ── Coquille : rail gauche + fenêtre principale ── */
.s7-shell{
  display:flex;
  align-items:stretch;
  min-height:calc(100vh - 70px);
}

/* ── Rail des modules (colonnes gauche) ── */
.s7-rail{
  width:190px;
  flex:0 0 190px;
  background:#e8e4d9;
  border-right:1px solid #9a9484;
  padding:6px 6px 0;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  max-height:calc(100vh - 70px);
  position:sticky;
  top:0;
}
.s7-rail .s7-railtitle{
  font-size:10px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#7a7365;
  padding:6px 4px 4px;
  border-top:1px solid #b9b3a2;
  margin-top:4px;
}
.s7-rail .s7-railtitle:first-child{border-top:none;margin-top:0;}
.s7-rail #nav-filter{
  display:block;
  width:100%;
  margin:2px 0 2px;
  padding:3px 6px;
  font-size:11px;
  background:#fffef9;
  border:1px solid #9a9686;
  border-top-color:#6f6a5c;
  box-shadow:1px 1px 2px rgba(0,0,0,.12) inset;
  color:#111;
}
.s7-rail #nav-filter:focus{outline:none;border-color:#1c3f66;}
.s7-rail .s7-rail-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:8px;}
.s7-rail-btn{
  display:block;
  position:relative;
  width:100%;
  margin-bottom:5px;
  text-decoration:none;
  background:linear-gradient(#fdfcf8,#e2ded0);
  border:1px solid #8f8a7c;
  border-top-color:#c9c4b6;
  border-left-color:#c9c4b6;
  padding:6px 4px;
  text-align:center;
  color:#1c2938;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  cursor:pointer;
  box-sizing:border-box;
}
.s7-rail-btn:hover{border-color:#1c3f66;background:linear-gradient(#ffffff,#ece8da);}
.s7-rail-btn:active{box-shadow:0 1px 2px rgba(0,0,0,.25) inset;transform:translateY(1px);}
.s7-rail-btn.active,.s7-rail-btn.nav-item.active{
  background:linear-gradient(#2a5380,#1c3f66);
  color:#fff;
  border-color:#12304f;
}
.s7-rail-btn .ficon{display:block;font-size:19px;line-height:20px;}
.s7-rail-btn.active .ficon{color:#dfe9f5;}
.s7-rail-btn .ftxt{display:block;font-size:11px;line-height:1.2;margin-top:2px;font-weight:600;}
.s7-rail-btn .fsub{display:block;font-size:9.5px;line-height:1.15;color:#7a7365;margin-top:1px;}
.s7-rail-btn.active .fsub{color:#cfe0f4;}
.s7-rail-btn .nav-star,.s7-rail-btn .nav-shortcut-x{
  position:absolute;top:1px;right:2px;
  font-size:9px;color:#b3ad9d;opacity:.7;cursor:pointer;padding:0 2px;
  z-index:2;background:none;border:none;
}
.s7-rail-btn:hover .nav-shortcut-x{opacity:1;}
.s7-rail-btn .nav-star.on,.s7-rail-btn .nav-star:hover{color:#c9862f;opacity:1;}
.s7-rail-btn .nav-shortcut-x:hover{color:#c14f3d;}
.s7-rail-btn.active .nav-star{color:#cfe0f4;}
.s7-rail-btn.nav-item.hidden{display:none!important;}
.s7-rail-btn .tsf-navbadge,.s7-rail-btn .sos-navbadge{
  position:absolute;top:1px;left:50%;transform:translateX(-50%);
  margin:0!important;
  background:#c14f3d!important;color:#fff;
  border-radius:8px;font-size:9px;font-weight:800;padding:0 5px;min-width:14px;text-align:center;
  z-index:3;
}

/* ── Fenêtre principale + barre de titre ── */
.s7-main{
  flex:1;
  min-width:0;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
}
.s7-fen-tb{
  display:flex;
  align-items:center;
  background:linear-gradient(#2c5586,#17345c);
  color:#fff;
  font-weight:700;
  font-size:12px;
  padding:4px 10px;
  user-select:none;
  border-bottom:1px solid #12304f;
}
.s7-fen-tb i{margin-right:6px;color:#cfdff2;}
.s7-fen-tb .s7-fen-x{margin-left:auto;display:flex;gap:4px;align-items:center;color:#cfdff2;font-weight:400;font-size:11px;}
.s7-fen-tb .s7-fen-x .s7-node{display:inline-block;width:15px;height:15px;line-height:14px;text-align:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);font-size:10px;}
.content{padding:12px 14px 52px;flex:1;}
.page-section{display:none;}
.page-section.active{display:block;}

/* ── Status bar bas de fenêtre ── */
.s7-status{
  display:flex;
  gap:18px;
  position:fixed;
  left:0;right:0;bottom:0;
  background:linear-gradient(#e9e6db,#cfcabb);
  border-top:1px solid #7f7a6a;
  padding:3px 10px;
  font-size:11px;
  color:#3a352a;
  z-index:900;
}
.s7-status .ok{color:#3d7a2c;font-weight:700;}
.s7-status .right{margin-left:auto;}

/* ================================================================
   Composants partagés des modules → look Sage
   ================================================================ */

/* ── Boutons Bootstrap/iHealth recyclés en boutons bosselés ── */
body.sage7 .btn{
  border-radius:0;
  background:linear-gradient(#ffffff,#ece9df);
  border:1px solid #8f8a7c;
  border-top-color:#c7c2b4;
  border-left-color:#c7c2b4;
  color:#1c2938;
  text-shadow:none;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  font-size:12px;
  padding:6px 12px;
  font-weight:600;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}
body.sage7 .btn:hover{background:linear-gradient(#ffffff,#f3f1e9);border-color:#1c3f66;color:#1c2938;}
body.sage7 .btn:active{
  background:linear-gradient(#dfdbcd,#f0eee5);
  border-top-color:#6f6a5c;
  border-left-color:#6f6a5c;
  box-shadow:0 1px 2px rgba(0,0,0,.25) inset;
}
body.sage7 .btn-primary{background:linear-gradient(#2a5380,#1c3f66);color:#fff;border-color:#12304f;}
body.sage7 .btn-primary:hover{background:linear-gradient(#305f93,#22456e);color:#fff;}
body.sage7 .btn-secondary{background:linear-gradient(#ffffff,#ece9df);color:#1c2938;border:1px solid #8f8a7c;border-top-color:#c7c2b4;border-left-color:#c7c2b4;}
body.sage7 .btn-secondary:hover{background:linear-gradient(#ffffff,#f3f1e9);border-color:#1c3f66;color:#1c3f66;}
body.sage7 .btn-success{background:linear-gradient(#7fb06c,#5c8f4a);color:#fff;border-color:#47713a;}
body.sage7 .btn-success:hover{background:linear-gradient(#8dbd7a,#648f57);color:#fff;}
body.sage7 .btn-danger{background:linear-gradient(#d97b6a,#c14f3d);color:#fff;border-color:#a53a2a;}
body.sage7 .btn-danger:hover{background:linear-gradient(#e08b7c,#c65a48);color:#fff;}
body.sage7 .btn-warning,.btn-warn{background:linear-gradient(#f0c060,#dfa336);color:#2a2410;border-color:#b98318;}
body.sage7 .btn-info{background:linear-gradient(#3d6ba3,#22456e);color:#fff;border-color:#1a3a5c;}
body.sage7 .btn-info:hover{background:linear-gradient(#4778b0,#2a5380);color:#fff;}
body.sage7 .btn-sm{padding:3px 10px;font-size:11px;}
body.sage7 .btn-xs{padding:1px 8px;font-size:11px;}
body.sage7 .btn:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.4);}
body.sage7 .mini-btn{
  border-radius:0;background:linear-gradient(#ffffff,#ece9df);
  border:1px solid #8f8a7c;color:#1c2938;font-size:11px;padding:2px 8px;cursor:pointer;
}
body.sage7 .mini-btn:hover{border-color:#1c3f66;}

/* ── Grilles "feuilles" façon Sage ── */
body.sage7 .table-wrap{
  background:#faf9f5;
  border:1px solid #7f7a6a;
  border-top:2px solid #1c3f66;
  box-shadow:2px 3px 8px rgba(60,50,30,.18);
  border-radius:0;
  overflow:auto;
}
body.sage7 .table-header{
  display:grid;
  padding:6px 10px;
  background:linear-gradient(#3d6ba3,#22456e);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:.4px;
  text-transform:uppercase;
}
body.sage7 .table-header .table-cell{color:#fff;font-weight:700;font-size:11px;text-transform:uppercase;}
body.sage7 .table-row{
  display:grid;
  padding:6px 10px;
  border-bottom:1px solid #d9d4c6;
  transition:background .1s;
}
body.sage7 .table-row:nth-child(even){background:#f4f1e8;}
body.sage7 .table-row:hover{background:#dce8f6;}
body.sage7 .table-row:last-child{border-bottom:none;}
body.sage7 .table-row.clickable{cursor:pointer;}
body.sage7 .table-cell{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:#222;}
body.sage7 .table-cell.actions{gap:6px;}
body.sage7 .table-loader{padding:18px;text-align:center;color:#7a7365;font-size:12px;}

/* Vraies tables HTML recyclées */
body.sage7 table.table{
  width:100%;border-collapse:collapse;background:#fffefc;font-size:12px;
}
body.sage7 table.table th{
  background:linear-gradient(#3d6ba3,#22456e);color:#fff;font-weight:700;font-size:11px;
  border:1px solid #1a3a5c;padding:4px 6px;text-align:left;white-space:nowrap;
}
body.sage7 table.table td{border:1px solid #d9d4c6;padding:3px 6px;vertical-align:top;}
body.sage7 table.table tbody tr:nth-child(even){background:#f4f1e8;}
body.sage7 table.table tbody tr:hover{background:#dce8f6;}

/* ── Badges façon Sage (angles droits) ── */
body.sage7 .badge{
  display:inline-block;padding:1px 7px;border-radius:2px;
  font-size:11px;font-weight:600;white-space:nowrap;
  border:1px solid #b9b3a2;background:#f5f3ec;color:#1c3f66;line-height:1.5;
}
body.sage7 .badge-success{background:#eef4ea;color:#25511a;border-color:#7fb06c;}
body.sage7 .badge-warning{background:#faf3e2;color:#6e4d0c;border-color:#e0b45a;}
body.sage7 .badge-danger{background:#f6ded9;color:#7c1b13;border-color:#d97b6a;}
body.sage7 .badge-info{background:#eaf0f7;color:#17345c;border-color:#6da3c9;}
body.sage7 .pill,body.sage7 .sc-badge,body.sage7 .svc-pill{font-size:11px;}

/* ── Cartes KPI (compteurs) ── */
body.sage7 .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;}
body.sage7 .stat-card{
  text-align:center;
  padding:14px 10px;
  background:linear-gradient(#ffffff,#f1eee4);
  border:1px solid #9a9484;
  box-shadow:2px 2px 5px rgba(60,50,30,.15);
  position:relative;overflow:hidden;
  border-radius:0;
}
body.sage7 .stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;}
body.sage7 .stat-card.blue::before{background:#3d6ba3;}
body.sage7 .stat-card.green::before{background:#3d7a2c;}
body.sage7 .stat-card.amber::before{background:#c9862f;}
body.sage7 .stat-card.red::before{background:#c14f3d;}
body.sage7 .stat-card-value{font-size:26px;font-weight:700;line-height:1.1;color:#17345c;font-variant-numeric:tabular-nums;white-space:nowrap;}
body.sage7 .stat-card-label{font-size:12px;color:#5a5548;margin-top:4px;}

/* ── Toolbar / recherche ── */
body.sage7 .toolbar{display:flex;gap:8px;margin-bottom:14px;align-items:center;flex-wrap:wrap;background:linear-gradient(#f4f2ea,#ddd8c9);border:1px solid #b6b09e;padding:6px 8px;}
body.sage7 .toolbar .spacer{flex:1;}
body.sage7 .search-bar{flex:1;min-width:220px;}
body.sage7 .search-bar input{width:100%;}
body.sage7 .toolbar input[type=text],body.sage7 .toolbar input[type=search],body.sage7 .toolbar input[type=date],
body.sage7 .toolbar input[type=number],body.sage7 .toolbar select{
  padding:3px 6px;
  background:#fffef9;border:1px solid #9a9686;border-top-color:#6f6a5c;
  box-shadow:1px 1px 2px rgba(0,0,0,.12) inset;
  color:#111;font-size:12px;height:26px;border-radius:0;
}
body.sage7 .toolbar input:focus,body.sage7 .toolbar select:focus{outline:none;border-color:#1c3f66;box-shadow:0 0 4px rgba(28,63,102,.5),1px 1px 2px rgba(0,0,0,.12) inset;}
body.sage7 .toolbar label{font-weight:600;font-size:12px;color:#3a352a;}
body.sage7 .s7-field{
  background:#fffef9;border:1px solid #9a9686;border-top-color:#6f6a5c;
  box-shadow:1px 1px 2px rgba(0,0,0,.12) inset;padding:3px 6px;color:#111;border-radius:0;
}
body.sage7 .s7-field:focus{outline:none;border-color:#1c3f66;}

/* ── Formulaires style Sage ── */
body.sage7 .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
body.sage7 .form-group{margin-bottom:2px;}
body.sage7 .form-group.full{grid-column:1/-1;}
body.sage7 .form-group label,.form-grid label{display:block;font-size:11px;font-weight:600;color:#3a352a;margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px;}
body.sage7 .form-group input,body.sage7 .form-group select,body.sage7 .form-group textarea,
body.sage7 .form-grid input,body.sage7 .form-grid select,body.sage7 .form-grid textarea{
  width:100%;padding:3px 6px;height:26px;
  background:#fffef9;border:1px solid #9a9686;border-top-color:#6f6a5c;
  box-shadow:1px 1px 2px rgba(0,0,0,.12) inset;
  color:#111;font-size:12px;border-radius:0;font-family:inherit;
}
body.sage7 .form-group textarea,body.sage7 .form-grid textarea{height:auto;min-height:60px;resize:vertical;}
body.sage7 .form-group input:focus,body.sage7 .form-group select:focus,body.sage7 .form-group textarea:focus,
body.sage7 .form-grid input:focus,body.sage7 .form-grid select:focus,body.sage7 .form-grid textarea:focus{outline:none;border-color:#1c3f66;box-shadow:0 0 4px rgba(28,63,102,.5),1px 1px 2px rgba(0,0,0,.12) inset;}
body.sage7 .s7-lbl{font-weight:600;font-size:11px;color:#3a352a;display:block;margin-bottom:2px;}
body.sage7 .form-control{
  background:#fffef9;border:1px solid #9a9686;border-top-color:#6f6a5c;
  box-shadow:1px 1px 2px rgba(0,0,0,.12) inset;border-radius:0;font-size:12px;height:26px;padding:3px 6px;color:#111;
}
body.sage7 .form-control:focus{border-color:#1c3f66;box-shadow:0 0 4px rgba(28,63,102,.5),1px 1px 2px rgba(0,0,0,.12) inset;}
body.sage7 .pf-section-title{
  font-size:11px;font-weight:800;color:#1c3f66;text-transform:uppercase;letter-spacing:.6px;
  margin:4px 0 8px;padding-bottom:3px;border-bottom:1px solid #b6b09e;
  display:flex;align-items:center;gap:7px;
}
body.sage7 .form-error{color:#b3271d;font-size:12px;margin-top:10px;font-weight:600;}
body.sage7 .form-hint{color:#5a5548;font-size:12px;margin-top:6px;background:#f1eee4;border:1px solid #c4beac;padding:5px 8px;}
body.sage7 .oclabel{font-weight:700;color:#1c3f66;}

/* ── Section titles ── */
body.sage7 .section-title{
  font-size:15px;font-weight:700;margin-bottom:12px;
  display:flex;align-items:center;gap:8px;color:#1c2938;justify-content:space-between;
  padding-bottom:4px;border-bottom:1px solid #b6b09e;
}
body.sage7 .section-title .left{display:flex;align-items:center;gap:8px;}
body.sage7 .section-title i{color:#1c3f66;width:17px;text-align:center;}
body.sage7 .subsection{margin-top:20px;}
body.sage7 .subhead,body.sage7 .sec-title{font-weight:700;color:#1c2938;}

/* ── Fenêtres récentes / panneaux ── */
body.sage7 .recent-section{
  background:#faf9f5;border:1px solid #7f7a6a;border-top:2px solid #1c3f66;
  box-shadow:2px 3px 8px rgba(60,50,30,.18);padding:12px;margin-top:14px;
}
body.sage7 .recent-section h3{
  font-size:13px;font-weight:700;margin-bottom:10px;color:#17345c;
  display:flex;align-items:center;gap:8px;
  background:linear-gradient(#2c5586,#17345c);color:#fff;padding:4px 8px;margin:-12px -12px 10px;
}
body.sage7 .recent-section h3 i{color:#cfdff2;}
body.sage7 .panel{background:#faf9f5;border:1px solid #7f7a6a;border-radius:0;}
body.sage7 .well{background:#f1eee4;border:1px solid #c4beac;border-radius:0;}

/* ── Détail patient / champs ── */
body.sage7 .detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
body.sage7 .detail-field{
  padding:8px 12px;background:#fdfcf8;border:1px solid #9a9686;
  box-shadow:0 1px 2px rgba(60,50,30,.1);
}
body.sage7 .detail-field label{display:block;font-size:10px;color:#7a7365;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-weight:700;}
body.sage7 .detail-field span{font-size:14px;font-weight:600;color:#1c2938;}
body.sage7 .detail-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;background:linear-gradient(#f4f2ea,#ddd8c9);border:1px solid #b6b09e;padding:6px;}

/* ── Onglets façon Sage ── */
body.sage7 .tabs{display:flex;gap:2px;border-bottom:1px solid #7f7a6a;margin:18px 0 14px;flex-wrap:wrap;}
body.sage7 .tab{
  padding:4px 14px;cursor:pointer;font-size:12px;font-weight:600;color:#222;
  background:#dedace;border:1px solid #9a9484;border-bottom:none;white-space:nowrap;
}
body.sage7 .tab:hover{color:#1c3f66;}
body.sage7 .tab.active{background:#faf9f5;font-weight:700;color:#1c3f66;position:relative;top:1px;}
body.sage7 .tab-panel{display:none;}
body.sage7 .tab-panel.active{display:block;}

/* ── Modale = fenêtre ── */
body.sage7 .modal-overlay{
  display:none;position:fixed;inset:0;background:rgba(45,38,22,.45);z-index:1000;
  align-items:center;justify-content:center;padding:12px;
}
body.sage7 .modal-box{
  background:#faf9f5;border:1px solid #7f7a6a;border-top:2px solid #1c3f66;
  box-shadow:4px 5px 14px rgba(60,50,30,.35);
  max-width:960px;width:100%;max-height:92vh;display:flex;flex-direction:column;border-radius:0;
}
body.sage7 .modal-box.wide,
body.sage7 .modal-box:has(.form-grid),
body.sage7 .modal-box:has(table),
body.sage7 .modal-box:has(.table-wrap),
body.sage7 .modal-box:has(.detail-grid),
body.sage7 .modal-box:has(.grid){
  max-width:min(1320px,96vw);width:min(1320px,96vw);
}
body.sage7 .modal-box.ocform-full,
body.sage7 .modal-box:has(.picker),
body.sage7 .modal-box:has(.ocform),
body.sage7 .modal-box:has(.svcx){
  max-width:none;width:100%;height:calc(100vh - 24px);max-height:calc(100vh - 24px);
}
body.sage7 .modal-box.ocform-full .modal-body,
body.sage7 .modal-box:has(.picker) .modal-body,
body.sage7 .modal-box:has(.ocform) .modal-body,
body.sage7 .modal-box:has(.svcx) .modal-body{flex:1;min-height:0;}
body.sage7 .modal-header{
  padding:8px 14px;border-bottom:1px solid #12304f;
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(#2c5586,#17345c);color:#fff;
}
body.sage7 .modal-header h3{font-size:13px;font-weight:700;color:#fff;}
body.sage7 .modal-close{cursor:pointer;color:#cfdff2;font-size:14px;background:none;border:none;}
body.sage7 .modal-close:hover{color:#fff;}
body.sage7 .modal-body{padding:14px;overflow-y:auto;}
body.sage7 .modal-footer{padding:10px 14px;border-top:1px solid #b6b09e;display:flex;justify-content:flex-end;gap:8px;background:#f1eee4;}

/* ── Toasts → alertes fenêtre ── */
#toast-container{position:fixed;bottom:26px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;}
body.sage7 .toast{
  background:#f5f3ec;border:1px solid #9a9686;border-left:4px solid #1c3f66;
  color:#222;padding:8px 14px;font-size:12px;box-shadow:3px 3px 8px rgba(0,0,0,.25);max-width:360px;
}
body.sage7 .toast.toast-error{border-left-color:#b3271d;background:#f7ebea;color:#7c1b13;}

/* ── Alertes génériques ── */
body.sage7 .alert{border-radius:0;border-width:1px;font-size:12px;border-left-width:4px;}
body.sage7 .alert-success{background:#eef4ea;color:#25511a;border-color:#7fb06c;border-left-color:#3d7a2c;}
body.sage7 .alert-danger{background:#f7ebea;color:#7c1b13;border-color:#d97b6a;border-left-color:#b3271d;}
body.sage7 .alert-warning{background:#faf3e2;color:#6e4d0c;border-color:#e0b45a;border-left-color:#b98318;}
body.sage7 .alert-info{background:#eaf0f7;color:#17345c;border-color:#6da3c9;border-left-color:#1c3f66;}

/* ── État vide / pagination / divers ── */
body.sage7 .empty-state{text-align:center;color:#7a7365;padding:30px 10px;font-size:13px;grid-column:1/-1;}
body.sage7 .pager{display:flex;justify-content:center;gap:8px;padding:10px;align-items:center;font-size:12px;color:#5a5548;}
body.sage7 .pager button,.mini-btn{
  border-radius:0;background:linear-gradient(#ffffff,#ece9df);
  border:1px solid #8f8a7c;color:#1c2938;font-size:11px;padding:2px 8px;cursor:pointer;
}
body.sage7 .pager button:hover{border-color:#1c3f66;}
body.sage7 .score-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#1c3f66;}
body.sage7 .muted{color:#7a7365;}
body.sage7 .s7-muted{color:#7a7365;}
body.sage7 .num{font-variant-numeric:tabular-nums;white-space:nowrap;}
body.sage7 .center{text-align:center;}

/* ── Data-viz (surface claire) ── */
.viz-root{--series-1:#1c3f66;--series-2:#c14f3d;--viz-bar:#2c5586;--viz-grid:rgba(60,50,30,.16);--viz-surface:#faf9f5;}
body.sage7 .viz-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}
@media(max-width:900px){body.sage7 .viz-grid-2{grid-template-columns:1fr;}}
body.sage7 .viz-card{background:#faf9f5;border:1px solid #7f7a6a;border-top:2px solid #1c3f66;box-shadow:2px 3px 8px rgba(60,50,30,.18);padding:12px 14px;}
body.sage7 .viz-card h4{font-size:12px;font-weight:700;color:#17345c;margin-bottom:10px;display:flex;align-items:center;gap:8px;background:linear-gradient(#2c5586,#17345c);color:#fff;padding:4px 8px;margin:-12px -14px 10px;}
body.sage7 .viz-card h4 i{color:#cfdff2;}
body.sage7 .viz-card canvas{background:#fff;}
body.sage7 .viz-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#5a5548;}
body.sage7 .viz-legend span{display:inline-flex;align-items:center;gap:6px;}
body.sage7 .viz-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;}
body.sage7 .viz-tooltip{position:fixed;pointer-events:none;background:#f5f3ec;border:1px solid #8f8a7c;padding:6px 10px;font-size:12px;color:#222;box-shadow:3px 3px 8px rgba(0,0,0,.25);z-index:3000;opacity:0;transition:opacity .1s;white-space:nowrap;}
body.sage7 .viz-empty{color:#7a7365;font-size:13px;text-align:center;padding:28px 10px;}

/* ── Divers modules (nudges légers) ── */
body.sage7 .oc-banner,body.sage7 .warn-banner{background:#faf3e2;border:1px solid #e0b45a;color:#6e4d0c;padding:6px 10px;font-size:12px;margin-bottom:10px;}
body.sage7 code{background:#eef1f6;border:1px solid #c6cdd9;color:#12304f;}
body.sage7 .json-pre{background:#fdfcf8;border:1px solid #c4beac;font-size:11px;}
body.sage7 .switch{--sw-border:#8f8a7c;}
body.sage7 input[type=checkbox]{accent-color:#1c3f66;}
body.sage7 .avatar{background:linear-gradient(135deg,#2a5380,#12304f);color:#fff;border-radius:3px;}

/* ── Impression ── */
/* ── Bureau (launcher de modules) : rail masqué, fenêtre pleine largeur ── */
.s7-shell.s7-home .s7-rail{display:none;}
.s7-shell.s7-home .s7-main{flex:1 1 auto;width:100%;}

.oc-launch-head{padding:22px 24px 6px;}
.oc-launch-head h1{font-size:22px;font-weight:800;color:var(--accent);margin:0 0 4px;}
.oc-launch-head h1 i{margin-right:8px;color:var(--accent2);}
.oc-launch-head .oc-launch-p{margin:0 0 12px;color:var(--text2);font-size:13px;}
.oc-launch-search{
  width:100%;max-width:420px;padding:8px 12px;font-size:13px;
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);
}
.oc-launch-search:focus{outline:none;border-color:var(--accent);background:#fff;}
.oc-launch-sec{
  font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:var(--text3);padding:14px 26px 6px;
}
.oc-launcher{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
  gap:12px;padding:4px 24px 20px;
}
.oc-tile{
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:6px;padding:20px 12px;min-height:120px;cursor:pointer;
  background:linear-gradient(#fdfcf8,#f1eee4);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);transition:border-color .12s,transform .06s,background .12s;
}
.oc-tile:hover{border-color:var(--accent);background:linear-gradient(#ffffff,#e7eef7);}
.oc-tile:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(0,0,0,.25) inset;}
.oc-tile .oc-tico{font-size:30px;line-height:34px;color:var(--accent);}
.oc-tile:hover .oc-tico{color:var(--accent2);}
.oc-tile .oc-tname{font-size:13px;font-weight:700;color:var(--text);line-height:1.2;}
.oc-tile .oc-tsub{font-size:10.5px;color:var(--text3);}
.oc-tile.sc .oc-tico{color:#c9862f;}
.oc-tile.hidden{display:none;}

@media print{
  body.sage7 .s7-menubar,body.sage7 .s7-toolbar,body.sage7 .s7-rail,
  body.sage7 .s7-status,body.sage7 .no-print{display:none !important;}
  body.sage7{background:#fff !important;}
  .s7-shell{min-height:0;display:block;}
  .s7-main{display:block;}
  .content{padding:0;}
  .page-section{display:block !important;}
}