/* ==========================================================
   Cgesto Pro UI — design premium, responsive et PDF propre
   Fichier ajouté pour améliorer le tableau de bord, boutons,
   tableaux, assistant comptable et documents PDF.
   ========================================================== */
:root{
  --cg-primary:#0b1b3d;
  --cg-primary-2:#10285e;
  --cg-primary-3:#1e40af;
  --cg-gold:#d6a844;
  --cg-gold-soft:#fff6df;
  --cg-bg:#f3f6fb;
  --cg-bg-2:#eaf0f8;
  --cg-card:#ffffff;
  --cg-card-soft:#fbfdff;
  --cg-text:#101827;
  --cg-muted:#667085;
  --cg-line:#dfe7f2;
  --cg-line-2:#edf2f7;
  --cg-success:#079267;
  --cg-success-bg:#e7f8f1;
  --cg-warning:#ea8a18;
  --cg-warning-bg:#fff3df;
  --cg-danger:#d92d20;
  --cg-danger-bg:#fff0f0;
  --cg-blue:#1769ff;
  --cg-blue-bg:#eaf1ff;
  --cg-radius-xl:28px;
  --cg-radius-lg:22px;
  --cg-radius-md:16px;
  --cg-shadow:0 22px 60px rgba(11,27,61,.10);
  --cg-shadow-soft:0 12px 32px rgba(11,27,61,.07);
  --cg-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cg-bg)}
body{
  margin:0;
  font-family:var(--cg-font);
  color:var(--cg-text);
  background:
    radial-gradient(circle at 20% -10%, rgba(23,105,255,.12), transparent 32%),
    radial-gradient(circle at 95% 0%, rgba(214,168,68,.16), transparent 28%),
    linear-gradient(180deg,#f8fbff 0%,var(--cg-bg) 46%,#eef3fa 100%);
  min-height:100vh;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit}

/* Shell */
.app-shell{min-height:100vh;display:flex;width:100%}
.sidebar{
  width:294px;
  position:fixed;
  inset:0 auto 0 0;
  z-index:40;
  display:flex;
  flex-direction:column;
  color:#fff;
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),transparent 16%),
    linear-gradient(160deg,var(--cg-primary) 0%,#071329 70%,#061024 100%);
  border-right:1px solid rgba(255,255,255,.12);
  box-shadow:22px 0 70px rgba(6,16,36,.22);
}
.sidebar:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 25% 10%,rgba(214,168,68,.22),transparent 24%),
    radial-gradient(circle at 110% 62%,rgba(23,105,255,.18),transparent 28%);
}
.sidebar>*{position:relative}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  padding:22px 20px 18px;
}
.brand-mark{
  width:52px;height:52px;
  border-radius:20px;
  display:grid;place-items:center;
  color:#091832;
  font-weight:1000;
  font-size:25px;
  letter-spacing:-.05em;
  background:linear-gradient(145deg,#fff2bd 0%,var(--cg-gold) 52%,#b87d18 100%);
  box-shadow:0 16px 32px rgba(214,168,68,.24), inset 0 1px 0 rgba(255,255,255,.5);
}
.brand strong{display:block;font-size:21px;letter-spacing:-.03em;line-height:1}
.brand span{display:block;margin-top:5px;color:#b9c6da;font-size:12px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-nav{
  padding:8px 12px 20px;
  overflow:auto;
  flex:1;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.25) transparent;
}
.side-nav a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 13px;
  margin:3px 0;
  border-radius:18px;
  color:#dce6f6;
  font-size:14px;
  font-weight:760;
  border:1px solid transparent;
  transition:transform .18s ease, background .18s ease, color .18s ease, border .18s ease;
}
.side-nav a span{
  width:30px;height:30px;
  display:grid;place-items:center;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  font-size:16px;
}
.side-nav a:hover{background:rgba(255,255,255,.10);color:#fff;transform:translateX(2px)}
.side-nav a.active{
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.09));
  color:#fff;
  border-color:rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 12px 24px rgba(0,0,0,.16);
}
.side-nav a.active span{background:#fff;color:var(--cg-primary)}
.side-footer{padding:15px;border-top:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
.user-chip{
  display:flex;align-items:center;gap:10px;
  padding:10px 11px;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  font-size:13px;
}
.user-chip small{display:block;color:#b9c6da;font-size:11px;margin-top:2px}
.logout{
  display:flex;align-items:center;justify-content:center;
  margin-top:10px;
  border-radius:16px;
  padding:11px 14px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-weight:900;
}
.logout:hover{background:rgba(255,255,255,.16)}
.main-content{margin-left:294px;width:calc(100% - 294px);min-height:100vh}
.topbar{
  height:76px;
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:14px;
  padding:0 30px;
  background:rgba(248,251,255,.78);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(223,231,242,.72);
}
.topbar strong{display:block;color:var(--cg-primary);font-size:16px;letter-spacing:-.02em}
.topbar span{display:block;color:var(--cg-muted);font-size:12px;margin-top:3px}
.hamburger{
  display:none;
  width:44px;height:44px;
  border:1px solid var(--cg-line);
  border-radius:16px;
  background:#fff;
  color:var(--cg-primary);
  box-shadow:var(--cg-shadow-soft);
  font-size:19px;
}
.top-pill{
  margin-left:auto;
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 16px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--cg-line);
  box-shadow:0 10px 26px rgba(11,27,61,.06);
  color:var(--cg-primary);
  font-size:13px;
  font-weight:950;
}
.top-pill:hover{background:var(--cg-blue-bg);border-color:#bad0ff;color:var(--cg-blue)}
.content-pad{padding:30px;max-width:1560px;margin:0 auto}
.overlay{display:none}

/* Page headings */
.page-head{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin-bottom:24px;
}
.page-head>div:first-child{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:5px 13px;
  align-items:center;
}
.page-icon{
  grid-row:span 2;
  width:58px;height:58px;
  display:grid;place-items:center;
  border-radius:22px;
  background:linear-gradient(145deg,#fff,var(--cg-blue-bg));
  box-shadow:var(--cg-shadow-soft);
  color:var(--cg-primary);
  font-size:26px;
  border:1px solid #fff;
}
.page-head h1{margin:0;color:var(--cg-primary);font-size:31px;line-height:1.08;letter-spacing:-.045em}
.page-head p{margin:3px 0 0;color:var(--cg-muted);line-height:1.45}
.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Cards and panels */
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}
.stat-card{
  position:relative;
  overflow:hidden;
  display:flex;align-items:flex-start;gap:14px;
  min-height:116px;
  padding:20px;
  border-radius:var(--cg-radius-xl);
  background:
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(248,251,255,.92));
  border:1px solid rgba(255,255,255,.9);
  box-shadow:var(--cg-shadow-soft);
}
.stat-card:before{
  content:"";
  position:absolute;inset:auto -45px -55px auto;
  width:120px;height:120px;border-radius:50%;
  background:rgba(23,105,255,.08);
}
.stat-icon{
  width:50px;height:50px;
  flex:0 0 auto;
  display:grid;place-items:center;
  border-radius:19px;
  background:linear-gradient(145deg,#eaf1ff,#fff);
  color:var(--cg-blue);
  font-size:24px;
  box-shadow:inset 0 1px 0 #fff,0 10px 20px rgba(23,105,255,.08);
}
.stat-card p{margin:0 0 8px;color:var(--cg-muted);font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.stat-card strong{display:block;color:var(--cg-primary);font-size:24px;line-height:1.05;letter-spacing:-.035em}
.stat-card small{display:block;margin-top:7px;color:var(--cg-muted);font-weight:750}
.danger-card{border-color:#ffd1d1;background:linear-gradient(145deg,#fff,#fff5f5)}
.danger-card .stat-icon{background:var(--cg-danger-bg);color:var(--cg-danger)}
.panel{
  margin-bottom:24px;
  padding:22px;
  border-radius:var(--cg-radius-xl);
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.92);
  box-shadow:var(--cg-shadow-soft);
}
.panel-title{
  display:flex;align-items:center;gap:11px;
  margin-bottom:18px;
  color:var(--cg-primary);
}
.panel-title span{
  width:38px;height:38px;
  display:grid;place-items:center;
  border-radius:15px;
  background:var(--cg-gold-soft);
}
.panel-title h2{margin:0;font-size:20px;letter-spacing:-.025em;color:var(--cg-primary)}
.empty-state{
  padding:28px;
  border:1px dashed #bfcbda;
  border-radius:22px;
  background:linear-gradient(145deg,#fff,#f8fbff);
  color:var(--cg-muted);
  text-align:center;
  font-weight:800;
}

/* Forms */
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:end}
.form-grid.one{grid-template-columns:1fr}
.form-field{display:flex;flex-direction:column;gap:7px}
.form-field span{font-weight:950;font-size:13px;color:#344054;letter-spacing:-.01em}
input,select,textarea{
  width:100%;
  min-height:47px;
  border:1px solid var(--cg-line);
  border-radius:17px;
  padding:12px 14px;
  background:#fff;
  color:var(--cg-text);
  font-size:15px;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
textarea{min-height:110px;resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{
  border-color:#8ab0ff;
  box-shadow:0 0 0 4px rgba(23,105,255,.12);
}
input::placeholder,textarea::placeholder{color:#9aa6b6}
hr{border:0;border-top:1px solid var(--cg-line);grid-column:1/-1;width:100%;margin:4px 0}

/* Buttons */
.btn,.mini-btn{
  border:0;
  cursor:pointer;
  white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border .18s ease, color .18s ease;
}
.btn{
  min-height:47px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:12px 18px;
  border-radius:17px;
  font-size:14px;
  font-weight:1000;
}
.btn:hover,.mini-btn:hover{transform:translateY(-1px)}
.btn-primary{
  color:#fff;
  background:linear-gradient(135deg,var(--cg-primary-3),var(--cg-primary));
  box-shadow:0 14px 30px rgba(23,105,255,.22);
}
.btn-primary:hover{box-shadow:0 18px 38px rgba(23,105,255,.30)}
.btn-light{
  color:var(--cg-primary);
  background:#fff;
  border:1px solid var(--cg-line);
  box-shadow:0 10px 22px rgba(11,27,61,.05);
}
.btn-light:hover{background:var(--cg-blue-bg);border-color:#c9d9ff;color:var(--cg-blue)}
.mini-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:34px;
  padding:8px 11px;
  border-radius:12px;
  background:var(--cg-primary);
  color:#fff;
  font-size:12px;
  font-weight:950;
}
.mini-btn-edit{background:var(--cg-blue-bg);color:var(--cg-blue);border:1px solid #c7d8ff}
.mini-btn-danger{background:var(--cg-danger-bg);color:var(--cg-danger);border:1px solid #ffd0cd}
.row-actions,.inline-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.delete-form{margin:0;display:inline-flex}
.inline-form select,.inline-form input{min-height:35px;width:auto;padding:7px 10px;border-radius:12px;font-size:13px}
.inline-form + .row-actions{margin-top:7px}

/* Special dashboard */
.dashboard-hero-actions{
  display:grid;
  grid-template-columns:minmax(260px,330px) 1fr;
  gap:18px;
  align-items:stretch;
  margin-bottom:24px;
}
.bilan-blink{
  position:relative;
  overflow:hidden;
  min-height:136px;
  display:flex;align-items:center;justify-content:center;
  padding:22px;
  border-radius:30px;
  background:linear-gradient(135deg,#1267ff 0%,#0f44c4 55%,#0b1b3d 100%);
  color:#fff;
  font-size:20px;
  line-height:1.2;
  font-weight:1000;
  text-align:center;
  box-shadow:0 22px 50px rgba(23,105,255,.34);
  animation:bilanPulsePro 1.35s ease-in-out infinite;
}
.bilan-blink:before{
  content:"";
  position:absolute;
  width:220px;height:220px;
  border-radius:50%;
  top:-120px;right:-120px;
  background:rgba(255,255,255,.22);
}
.bilan-blink:after{
  content:"Cliquez pour ouvrir le grand bilan";
  position:absolute;
  left:18px;right:18px;bottom:17px;
  color:rgba(255,255,255,.76);
  font-size:12px;
  font-weight:800;
}
@keyframes bilanPulsePro{
  0%,100%{filter:brightness(1);box-shadow:0 18px 45px rgba(23,105,255,.28),0 0 0 0 rgba(23,105,255,.20)}
  50%{filter:brightness(1.20);box-shadow:0 24px 60px rgba(23,105,255,.48),0 0 0 9px rgba(23,105,255,.12)}
}

/* Assistant */
.assistant-status-card{
  overflow:hidden;
  display:grid;
  grid-template-columns:132px 1fr;
  gap:18px;
  align-items:center;
  min-height:136px;
  padding:20px;
  border-radius:30px;
  background:linear-gradient(145deg,#fff,#f8fbff);
  border:1px solid rgba(255,255,255,.92);
  box-shadow:var(--cg-shadow-soft);
}
.assistant-status-card.success{--assistant-color:var(--cg-success);--assistant-bg:var(--cg-success-bg)}
.assistant-status-card.warning{--assistant-color:var(--cg-warning);--assistant-bg:var(--cg-warning-bg)}
.assistant-status-card.danger{--assistant-color:var(--cg-danger);--assistant-bg:var(--cg-danger-bg)}
.assistant-status-content small{
  display:block;
  color:var(--cg-muted);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.assistant-status-content strong{display:block;margin:4px 0;color:var(--assistant-color);font-size:24px;letter-spacing:-.035em}
.assistant-status-content p{margin:0 0 13px;color:#344054;line-height:1.45;font-weight:700}
.health-bar{height:16px;border-radius:999px;background:#e9eff7;border:1px solid var(--cg-line);overflow:hidden}
.health-bar span{
  display:block;height:100%;width:100%;border-radius:999px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.20),rgba(255,255,255,.55),rgba(255,255,255,.20)),
    var(--assistant-color);
  background-size:85px 100%,auto;
  animation:healthMovePro 2s linear infinite;
}
@keyframes healthMovePro{from{background-position:-85px 0,0 0}to{background-position:85px 0,0 0}}
.assistant-figure{position:relative;width:122px;height:126px;margin:auto;perspective:600px}
.assistant-shadow{position:absolute;left:14px;right:14px;bottom:3px;height:16px;border-radius:50%;background:rgba(11,27,61,.15);filter:blur(3px)}
.assistant-body,.assistant-head{
  position:absolute;
  background:linear-gradient(145deg,#fff 0%,var(--assistant-bg) 100%);
  border:2px solid var(--assistant-color);
  box-shadow:inset -10px -10px 20px rgba(11,27,61,.06),0 16px 28px rgba(11,27,61,.15);
}
.assistant-body{left:36px;top:56px;width:52px;height:54px;border-radius:20px 20px 26px 26px;transform:rotateX(7deg)}
.assistant-head{left:27px;top:9px;width:70px;height:61px;border-radius:26px 26px 29px 29px;animation:assistantBobPro 2.25s ease-in-out infinite}
.assistant-head:before,.assistant-head:after{content:"";position:absolute;top:25px;width:8px;height:8px;border-radius:50%;background:var(--cg-primary)}
.assistant-head:before{left:20px}.assistant-head:after{right:20px}
.assistant-head span{position:absolute;left:26px;bottom:14px;width:19px;height:7px;border-bottom:3px solid var(--assistant-color);border-radius:0 0 20px 20px}
.assistant-arm{position:absolute;top:69px;width:13px;height:43px;border-radius:999px;background:var(--assistant-color);box-shadow:0 10px 18px rgba(11,27,61,.16)}
.assistant-arm.left{left:25px;transform:rotate(28deg)}
.assistant-arm.right{right:22px;transform:rotate(-34deg);transform-origin:top center;animation:assistantWavePro 1.8s ease-in-out infinite}
.assistant-board{position:absolute;right:2px;top:77px;width:38px;height:31px;border-radius:11px;background:#fff;border:2px solid var(--assistant-color);display:grid;place-items:center;color:var(--assistant-color);font-weight:1000;box-shadow:0 10px 18px rgba(11,27,61,.14);transform:rotate(8deg)}
@keyframes assistantBobPro{0%,100%{transform:translateY(0) rotateX(5deg)}50%{transform:translateY(-5px) rotateX(9deg)}}
@keyframes assistantWavePro{0%,100%{transform:rotate(-34deg)}50%{transform:rotate(-17deg)}}

/* Tables */
.table-wrap{
  overflow:auto;
  border-radius:22px;
  border:1px solid var(--cg-line);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  background:#fff;
}
.data-table{width:100%;min-width:790px;border-collapse:separate;border-spacing:0;background:#fff;font-size:14px}
.data-table th{
  position:sticky;top:0;z-index:1;
  text-align:left;
  padding:14px 15px;
  background:#f5f8fc;
  color:#53627a;
  border-bottom:1px solid var(--cg-line);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.data-table td{padding:14px 15px;border-bottom:1px solid var(--cg-line-2);vertical-align:middle;color:#253044}
.data-table tr:last-child td{border-bottom:0}
.data-table tbody tr:hover td{background:#f9fbff}
.data-table td b{color:var(--cg-primary)}
.mobile-cards{display:none}
.mobile-row-card{
  background:#fff;border:1px solid var(--cg-line);border-radius:22px;padding:15px;box-shadow:var(--cg-shadow-soft)
}
.mobile-line{display:flex;justify-content:space-between;gap:13px;padding:9px 0;border-bottom:1px solid var(--cg-line-2)}
.mobile-line:last-child{border-bottom:0}
.mobile-line span{font-size:12px;color:var(--cg-muted);font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.mobile-line strong{font-size:13px;text-align:right;max-width:62%;word-break:break-word;color:#1d2939}
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:28px;
  padding:6px 11px;
  border-radius:999px;
  font-size:12px;
  font-weight:1000;
  border:1px solid transparent;
}
.badge-success{background:var(--cg-success-bg);color:var(--cg-success);border-color:#bee9d9}
.badge-warning{background:var(--cg-warning-bg);color:#a55505;border-color:#ffdda6}
.badge-danger{background:var(--cg-danger-bg);color:var(--cg-danger);border-color:#ffd0cd}
.badge-neutral{background:#eef3f8;color:#516175;border-color:#dbe4ee}
.progress{height:11px;border-radius:999px;background:#e8eef6;overflow:hidden;margin-bottom:6px}
.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cg-success),#20c997)}

/* Alerts and recommendations */
.alert-grid,.recommend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.smart-alert,.recommend-card{
  padding:17px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--cg-line);
  box-shadow:0 10px 24px rgba(11,27,61,.05);
}
.smart-alert.warning{border-color:#ffdca2;background:linear-gradient(145deg,#fff,var(--cg-warning-bg))}
.smart-alert.danger{border-color:#ffcbc8;background:linear-gradient(145deg,#fff,var(--cg-danger-bg))}
.smart-alert strong,.recommend-card h3{display:block;margin:0 0 7px;color:var(--cg-primary);font-size:16px;letter-spacing:-.02em}
.smart-alert p,.recommend-card p{margin:0;color:#556276;line-height:1.5;font-weight:650}
.recommend-card span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:16px;background:var(--cg-gold-soft);font-size:22px;margin-bottom:10px}
.assistant-hero{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  margin-bottom:22px;
  padding:28px;
  border-radius:34px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 20%,rgba(214,168,68,.35),transparent 26%),
    linear-gradient(135deg,var(--cg-primary) 0%,#173a82 72%,#0d224b 100%);
  box-shadow:var(--cg-shadow);
}
.assistant-hero h2{margin:0 0 8px;font-size:25px;letter-spacing:-.035em}
.assistant-hero p{margin:0;color:#d9e6ff;line-height:1.55;font-weight:650}
.score-circle{
  width:122px;height:122px;
  flex:0 0 auto;
  border-radius:50%;
  background:#fff;
  color:var(--cg-primary);
  display:grid;place-items:center;
  font-size:37px;
  font-weight:1000;
  box-shadow:inset 0 -7px 14px rgba(11,27,61,.08),0 18px 32px rgba(0,0,0,.17);
}
.score-circle small{font-size:14px;margin-left:2px}
.expert-notes{padding:18px;border-radius:22px;border:1px solid var(--cg-line);background:linear-gradient(145deg,#fff,#f8fbff)}
.expert-notes p{margin:7px 0;color:#344054;font-weight:700;line-height:1.5}

/* Flash */
.flash{
  margin:16px 30px 0;
  padding:15px 17px;
  border-radius:18px;
  font-weight:900;
  border:1px solid transparent;
}
.flash-success{background:var(--cg-success-bg);color:var(--cg-success);border-color:#bee9d9}
.flash-danger{background:var(--cg-danger-bg);color:var(--cg-danger);border-color:#ffd0cd}
.flash-warning{background:var(--cg-warning-bg);color:#a55505;border-color:#ffdda6}
.muted{color:var(--cg-muted)}

/* Login / install */
.login-body{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:
    radial-gradient(circle at 20% 5%,rgba(23,105,255,.18),transparent 30%),
    radial-gradient(circle at 85% 15%,rgba(214,168,68,.22),transparent 28%),
    linear-gradient(145deg,#eef4ff,#f8fbff 45%,#edf3fa);
}
.login-card,.install-card{
  width:min(500px,100%);
  padding:32px;
  border-radius:34px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 28px 80px rgba(11,27,61,.18);
  backdrop-filter:blur(14px);
}
.install-card{width:min(720px,100%)}
.brand-login{padding:0;margin-bottom:24px;color:var(--cg-primary)}
.login-card h1,.install-card h1{margin:0 0 8px;color:var(--cg-primary);font-size:30px;letter-spacing:-.045em}
.login-card p,.install-card p{color:var(--cg-muted);line-height:1.5}
.success-box{text-align:center}

/* Document PDF */
.doc-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.document-sheet{
  max-width:1120px;
  margin:0 auto 28px;
  padding:42px;
  color:#111827;
  background:#fff;
  border:1px solid #d7e0eb;
  border-radius:18px;
  box-shadow:0 28px 90px rgba(11,27,61,.16);
}
.doc-head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:20px;
  align-items:start;
  padding-bottom:20px;
  margin-bottom:18px;
  border-bottom:4px solid var(--cg-primary);
  position:relative;
}
.doc-head:after{
  content:"";
  position:absolute;left:0;bottom:-4px;width:180px;height:4px;background:var(--cg-gold);
}
.doc-brand{
  width:64px;height:64px;
  display:grid;place-items:center;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(135deg,var(--cg-primary),var(--cg-primary-3));
  font-size:34px;
  font-weight:1000;
  box-shadow:0 12px 24px rgba(11,27,61,.18);
}
.doc-head h1{
  margin:0;
  color:var(--cg-primary);
  font-size:29px;
  line-height:1.05;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.doc-head p{margin:7px 0 2px;color:#111827;font-size:16px;font-weight:1000}
.doc-head small{color:#667085;font-weight:750}
.doc-meta{
  min-width:210px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 10px;
  padding:13px;
  border-radius:15px;
  border:1px solid #dfe7f2;
  background:#f8fbff;
  font-size:12px;
}
.doc-meta strong{color:#475467}.doc-meta span{color:#101827;font-weight:800;text-align:right}
.doc-church{
  display:flex;flex-wrap:wrap;gap:10px;
  margin-bottom:22px;
  padding:12px 14px;
  border-radius:14px;
  background:#f8fbff;
  border:1px solid #e4ebf4;
  color:#475467;
  font-size:13px;
}
.doc-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 26px}
.doc-summary-grid div{
  min-height:84px;
  padding:15px;
  border-radius:16px;
  border:1px solid #dfe7f2;
  background:linear-gradient(145deg,#fff,#f8fbff);
}
.doc-summary-grid span{display:block;color:#667085;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:1000}
.doc-summary-grid b{display:block;margin-top:7px;color:var(--cg-primary);font-size:20px;letter-spacing:-.03em}
.document-sheet h2{
  margin:26px 0 13px;
  padding-left:12px;
  border-left:6px solid var(--cg-gold);
  color:var(--cg-primary);
  font-size:19px;
  letter-spacing:-.02em;
}
.document-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid #d8e1ec;
  border-radius:14px;
  font-size:12px;
  margin-bottom:18px;
}
.document-table th{
  padding:10px 11px;
  background:var(--cg-primary);
  color:#fff;
  text-align:left;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.055em;
  border-right:1px solid rgba(255,255,255,.12);
}
.document-table td{
  padding:10px 11px;
  border-top:1px solid #e6edf5;
  border-right:1px solid #edf2f7;
  vertical-align:top;
  color:#253044;
}
.document-table td:last-child,.document-table th:last-child{border-right:0}
.document-table tr:nth-child(even) td{background:#f8fbff}
.doc-signatures{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:46px}
.doc-signatures div{height:88px;border-bottom:1.5px solid #111827;display:flex;align-items:flex-end;justify-content:center;color:#475467;font-size:12px;font-weight:850}
.doc-note{margin-top:22px;text-align:center;color:#667085;font-size:11px;line-height:1.5}
.doc-empty{padding:24px;border:1px dashed #bfcada;border-radius:14px;text-align:center;color:#667085;background:#f8fbff;font-weight:800}

/* Mobile bottom nav */
.mobile-bottom-nav{display:none}

/* Responsive */
@media(max-width:1180px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .alert-grid,.recommend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-hero-actions{grid-template-columns:1fr}
}
@media(max-width:860px){
  body{background:#f5f8fc}
  .sidebar{transform:translateX(-106%);transition:transform .24s ease;width:290px;max-width:86vw}
  .sidebar.open{transform:translateX(0)}
  .overlay.show{display:block;position:fixed;inset:0;z-index:30;background:rgba(6,16,36,.54);backdrop-filter:blur(3px)}
  .main-content{margin-left:0;width:100%}
  .topbar{height:66px;padding:0 14px;background:rgba(248,251,255,.90)}
  .topbar>div strong{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .hamburger{display:grid;place-items:center;flex:0 0 auto}
  .top-pill{padding:10px 12px;font-size:0}
  .top-pill:after{content:"🧠";font-size:19px}
  .content-pad{padding:17px 14px 96px}
  .page-head{align-items:flex-start;margin-bottom:18px}
  .page-icon{width:50px;height:50px;border-radius:19px;font-size:23px}
  .page-head h1{font-size:24px}
  .page-head p{font-size:13px;max-width:100%}
  .head-actions{display:none}
  .stat-grid,.alert-grid,.recommend-grid,.form-grid{grid-template-columns:1fr}
  .stat-card{min-height:104px;padding:17px;border-radius:24px}
  .stat-card strong{font-size:22px}
  .panel{padding:16px;border-radius:24px;margin-bottom:18px}
  .panel-title h2{font-size:18px}
  .dashboard-hero-actions{grid-template-columns:1fr;gap:14px}
  .bilan-blink{min-height:92px;border-radius:24px;font-size:18px;padding-bottom:34px}
  .bilan-blink:after{bottom:13px;font-size:11px}
  .assistant-status-card{grid-template-columns:92px 1fr;gap:10px;min-height:118px;padding:14px;border-radius:24px}
  .assistant-figure{transform:scale(.76);transform-origin:left center;width:92px}
  .assistant-status-content strong{font-size:18px}
  .assistant-status-content p{font-size:13px;margin-bottom:9px}
  .health-bar{height:13px}
  .table-wrap{display:none}
  .mobile-cards{display:grid;gap:12px}
  .inline-form{width:100%;justify-content:stretch}
  .inline-form select,.inline-form input,.inline-form .mini-btn{width:100%}
  .row-actions{justify-content:flex-end}
  .btn{width:100%}
  .doc-toolbar .btn{width:auto}
  .assistant-hero{border-radius:25px;padding:20px;align-items:flex-start}
  .assistant-hero h2{font-size:21px}
  .score-circle{width:86px;height:86px;font-size:26px}
  .flash{margin:12px 14px 0}
  .login-card,.install-card{padding:22px;border-radius:28px}
  .document-sheet{padding:20px;border-radius:20px}
  .doc-head{grid-template-columns:auto minmax(0,1fr);gap:13px}
  .doc-brand{width:52px;height:52px;border-radius:18px;font-size:28px}
  .doc-head h1{font-size:21px;word-break:break-word}
  .doc-meta{grid-column:1/-1;min-width:0}
  .doc-church{display:block}
  .doc-church span{display:block;margin:4px 0}
  .doc-summary-grid{grid-template-columns:1fr 1fr}
  .document-table{font-size:11px;display:block;overflow:auto;border-radius:13px}
  .doc-signatures{grid-template-columns:1fr;gap:24px}
  .mobile-bottom-nav{
    position:fixed;left:12px;right:12px;bottom:12px;z-index:25;
    display:grid;grid-template-columns:repeat(5,1fr);gap:4px;
    padding:8px;
    border-radius:24px;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(223,231,242,.9);
    box-shadow:0 18px 52px rgba(11,27,61,.20);
    backdrop-filter:blur(16px);
  }
  .mobile-bottom-nav a{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:52px;
    border-radius:18px;
    color:#667085;
    font-size:10px;
    font-weight:950;
  }
  .mobile-bottom-nav a span{font-size:19px;line-height:1}
  .mobile-bottom-nav a.active{background:var(--cg-blue-bg);color:var(--cg-blue)}
}
@media(max-width:420px){
  .doc-summary-grid{grid-template-columns:1fr}
  .page-head>div:first-child{grid-template-columns:auto 1fr}
  .mobile-line{display:block}.mobile-line strong{display:block;max-width:none;text-align:left;margin-top:4px}
}

/* Print */
@media print{
  @page{size:A4;margin:12mm}
  html,body{background:#fff!important;color:#111827!important}
  .no-print,.sidebar,.topbar,.overlay,.mobile-bottom-nav,.head-actions,.btn,.mini-btn,.inline-form,.flash,.page-head{display:none!important}
  .app-shell{display:block!important}.main-content{margin:0!important;width:100%!important}.content-pad{padding:0!important;max-width:none!important}
  .panel,.stat-card,.recommend-card,.smart-alert,.assistant-hero,.assistant-status-card{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid}
  .table-wrap{display:block!important;overflow:visible!important}.mobile-cards{display:none!important}.data-table{min-width:0!important;font-size:10.5px!important}
  .document-sheet{max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  .doc-head{border-bottom:3px solid var(--cg-primary)!important;break-inside:avoid}.doc-head:after{display:block!important}
  .doc-summary-grid{grid-template-columns:repeat(4,1fr)!important;break-inside:avoid}
  .document-table{font-size:10px!important;border-radius:0!important;page-break-inside:auto!important}
  .document-table tr{page-break-inside:avoid;page-break-after:auto}
  .document-table th{background:var(--cg-primary)!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .document-table tr:nth-child(even) td{background:#f8fbff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc-signatures,.doc-note{break-inside:avoid}
}

/* Assistant comptable — message lisible ligne par ligne */
.assistant-message-box{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:10px 0 13px;
  max-width:100%;
}
.assistant-section-title{
  color:#182238;
  font-size:14px;
  font-weight:1000;
  letter-spacing:-.01em;
  margin-top:2px;
}
.assistant-line{
  display:grid;
  grid-template-columns:170px 1fr;
  gap:12px;
  align-items:start;
  padding:9px 12px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(15,23,42,.07);
  border-radius:16px;
}
.assistant-label{
  font-weight:950;
  color:#475467;
}
.assistant-value{
  font-weight:1000;
  color:#101828;
}
.assistant-bullet{
  padding:9px 12px;
  background:rgba(255,247,237,.94);
  border-left:4px solid var(--assistant-color);
  border-radius:14px;
  color:#344054;
  font-weight:800;
  line-height:1.45;
}
.assistant-text{
  color:#344054;
  font-weight:800;
  line-height:1.5;
}
.assistant-space{height:4px}
.assistant-status-content p{display:none}
@media(max-width:640px){
  .assistant-line{grid-template-columns:1fr;gap:4px;padding:9px 10px}
  .assistant-label{font-size:13px}
  .assistant-value{font-size:15px}
  .assistant-bullet{font-size:13px}
}


/* Dashboard assistant compact message */
.assistant-short-text{
  display:block;
  margin:0 0 14px;
  color:#344054;
  font-weight:800;
  line-height:1.55;
}
.assistant-reason-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  padding:10px 14px;
  margin:0 0 14px;
  border-radius:999px;
  background:var(--assistant-color);
  color:#fff;
  font-weight:1000;
  box-shadow:0 10px 24px rgba(11,27,61,.16);
}
.assistant-reason-button:hover{filter:brightness(1.04);transform:translateY(-1px)}
@media(max-width:640px){
  .assistant-short-text{font-size:13px;line-height:1.45;margin-bottom:11px}
  .assistant-reason-button{width:100%;padding:10px 12px;font-size:13px}
}

/* Bilan Total - assistant expert pro */
.bilan-assistant-hero {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 22px;
    margin-bottom: 18px;
    border-radius: 28px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: linear-gradient(135deg, #ffffff 0%, #eef6ff 55%, #fff7e6 100%);
    box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
    position: relative;
    overflow: hidden;
}
.bilan-assistant-hero:before {
    content: '';
    position: absolute;
    inset: -80px auto auto -80px;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: rgba(37, 99, 235, .08);
}
.bilan-assistant-hero.warning { background: linear-gradient(135deg, #fff 0%, #fff7ed 50%, #eff6ff 100%); }
.bilan-assistant-hero.danger { background: linear-gradient(135deg, #fff 0%, #fef2f2 50%, #eff6ff 100%); }
.bilan-assistant-hero.success { background: linear-gradient(135deg, #fff 0%, #ecfdf5 50%, #eff6ff 100%); }
.bilan-assistant-visual {
    position: relative;
    width: 100px;
    height: 110px;
    display: grid;
    place-items: center;
}
.bilan-orb {
    position: absolute;
    width: 82px;
    height: 82px;
    border-radius: 24px;
    background: linear-gradient(145deg, #dbeafe, #ffffff);
    box-shadow: 12px 16px 26px rgba(30, 64, 175, .16), inset -8px -8px 18px rgba(15, 23, 42, .05), inset 8px 8px 18px rgba(255, 255, 255, .9);
    transform: rotate(10deg);
}
.bilan-bot {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 18px;
    background: linear-gradient(145deg, #1d4ed8, #60a5fa);
    box-shadow: 0 16px 24px rgba(37, 99, 235, .28);
    z-index: 2;
}
.bilan-bot span:before,
.bilan-bot span:after {
    content: '';
    position: absolute;
    top: 20px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: white;
}
.bilan-bot span:before { left: 15px; }
.bilan-bot span:after { right: 15px; }
.bilan-board {
    position: absolute;
    z-index: 3;
    bottom: 6px;
    right: 0;
    padding: 7px 10px;
    border-radius: 12px;
    background: #0f172a;
    color: white;
    font-weight: 800;
    font-size: 12px;
    box-shadow: 0 10px 18px rgba(15, 23, 42, .18);
}
.bilan-assistant-main small {
    display: inline-flex;
    margin-bottom: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(37, 99, 235, .1);
    color: #1d4ed8;
    font-weight: 800;
}
.bilan-assistant-main h2 {
    margin: 0 0 8px;
    font-size: 24px;
    color: #0f172a;
}
.bilan-assistant-main p {
    margin: 0;
    color: #475569;
    font-weight: 600;
    line-height: 1.55;
}
.bilan-health-strip {
    height: 10px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .08);
    margin-top: 14px;
    overflow: hidden;
}
.bilan-health-strip span {
    display: block;
    height: 100%;
    width: 100%;
    border-radius: 999px;
    background: #22c55e;
}
.bilan-assistant-hero.warning .bilan-health-strip span { background: #f59e0b; width: 64%; }
.bilan-assistant-hero.danger .bilan-health-strip span { background: #ef4444; width: 42%; }
.bilan-assistant-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.bilan-assistant-grid,
.bilan-advice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.bilan-advice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
.bilan-assistant-panel {
    display: flex;
    gap: 12px;
    padding: 16px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .07);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .055);
}
.bilan-assistant-panel > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: #eff6ff;
    flex: 0 0 42px;
}
.bilan-assistant-panel h3 { margin: 0 0 5px; color: #0f172a; font-size: 15px; }
.bilan-assistant-panel p { margin: 0; color: #475569; font-weight: 600; line-height: 1.45; }
.bilan-assistant-panel.warning { border-color: rgba(245, 158, 11, .28); background: #fffbeb; }
.bilan-assistant-panel.danger { border-color: rgba(239, 68, 68, .28); background: #fef2f2; }
.bilan-assistant-panel.success { border-color: rgba(34, 197, 94, .25); background: #ecfdf5; }
.bilan-filter-box {
    align-items: end;
}
.bilan-reading,
.bilan-section-intro {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: 18px;
    background: #eff6ff;
    border: 1px solid rgba(37, 99, 235, .12);
    color: #334155;
    font-weight: 600;
    line-height: 1.55;
}
.bilan-reading.danger { background: #fef2f2; border-color: rgba(239, 68, 68, .18); }
.bilan-reading.success { background: #ecfdf5; border-color: rgba(34, 197, 94, .18); }
.bilan-account-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.bilan-account-card {
    padding: 16px;
    border-radius: 22px;
    background: white;
    border: 1px solid rgba(15, 23, 42, .07);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .055);
}
.bilan-account-card small {
    display: inline-flex;
    padding: 4px 9px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-weight: 800;
    margin-bottom: 8px;
}
.bilan-account-card h3 { margin: 0; font-size: 16px; color: #0f172a; }
.bilan-account-card strong { display: block; margin: 14px 0 8px; font-size: 21px; color: #0f172a; }
.bilan-account-card span { font-weight: 800; color: #334155; }
.bilan-account-card.success { border-color: rgba(34, 197, 94, .18); }
.bilan-account-card.warning { border-color: rgba(245, 158, 11, .28); background: #fffbeb; }
.bilan-account-card.danger { border-color: rgba(239, 68, 68, .28); background: #fef2f2; }
.bilan-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}
.warning-card { border-color: rgba(245, 158, 11, .35) !important; background: #fffbeb !important; }
@media (max-width: 1024px) {
    .bilan-assistant-hero { grid-template-columns: 86px 1fr; }
    .bilan-assistant-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .bilan-account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bilan-assistant-grid,
    .bilan-advice-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .bilan-assistant-hero { grid-template-columns: 1fr; padding: 18px; }
    .bilan-assistant-visual { width: 84px; height: 90px; }
    .bilan-assistant-main h2 { font-size: 20px; }
    .bilan-account-grid,
    .bilan-mini-grid { grid-template-columns: 1fr; }
}

/* Options administrables */
.options-admin-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.options-admin-menu {
    position: sticky;
    top: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .06);
}
.options-admin-menu strong {
    display: block;
    color: #0f172a;
    margin-bottom: 8px;
}
.options-admin-menu a {
    text-decoration: none;
    color: #475569;
    font-weight: 700;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid transparent;
}
.options-admin-menu a.active,
.options-admin-menu a:hover {
    color: #12306b;
    background: #eff6ff;
    border-color: rgba(37, 99, 235, .14);
}
.options-admin-content {
    min-width: 0;
}
.muted-text {
    margin: 0 0 14px;
    color: #64748b;
    font-weight: 600;
    line-height: 1.55;
}
.options-add-form {
    align-items: end;
}
.options-table input,
.options-table select {
    width: 100%;
    min-width: 120px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 12px;
    padding: 9px 10px;
    background: #fff;
    font-weight: 650;
}
.option-row-form {
    display: contents;
}
.option-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.mini-btn.danger {
    background: #fef2f2;
    color: #b91c1c;
    border-color: rgba(239, 68, 68, .2);
}
.options-mobile-cards {
    gap: 14px;
}
@media (max-width: 900px) {
    .options-admin-layout {
        grid-template-columns: 1fr;
    }
    .options-admin-menu {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .options-admin-menu strong {
        grid-column: 1 / -1;
    }
}
@media (max-width: 560px) {
    .options-admin-menu {
        grid-template-columns: 1fr;
    }
}

/* Saisie groupée : entrées, dépenses, compta ancienne */
.bulk-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.bulk-date-row {
    display: grid;
    grid-template-columns: minmax(240px, 340px) 1fr;
    gap: 16px;
    align-items: end;
    padding: 14px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.95));
}

.bulk-help {
    color: #475569;
    font-weight: 600;
    line-height: 1.45;
}

.bulk-lines {
    display: grid;
    gap: 14px;
}

.bulk-line-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
    padding: 14px;
}

.bulk-line-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 12px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: #0f4c81;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.bulk-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.bulk-grid label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
}

.bulk-grid input,
.bulk-grid select,
.bulk-grid textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 12px;
    background: #fff;
    color: #0f172a;
    padding: 9px 10px;
    font-size: 14px;
    font-weight: 650;
    outline: none;
}

.bulk-grid input:focus,
.bulk-grid select:focus,
.bulk-grid textarea:focus {
    border-color: #0f4c81;
    box-shadow: 0 0 0 4px rgba(15, 76, 129, 0.12);
}

.bulk-span-2 {
    grid-column: span 2;
}

.options-card-list {
    display: grid;
    gap: 14px;
}

.option-edit-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.option-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.option-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.option-card-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
    margin-top: 12px;
    flex-wrap: wrap;
}

@media (max-width: 920px) {
    .bulk-date-row,
    .option-card-grid {
        grid-template-columns: 1fr;
    }

    .bulk-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .bulk-grid {
        grid-template-columns: 1fr;
    }

    .bulk-span-2 {
        grid-column: span 1;
    }

    .bulk-line-card {
        padding: 12px;
        border-radius: 16px;
    }

    .option-card-actions {
        justify-content: stretch;
    }

    .option-card-actions .btn,
    .option-card-actions .mini-btn,
    .option-card-actions form {
        width: 100%;
    }
}

/* Ajustements après suppression de la page Ancienne compta */
.bulk-date-row-2 {
    grid-template-columns: minmax(220px, 320px) minmax(260px, 1fr);
}

.bulk-date-row-3 {
    grid-template-columns: minmax(200px, 280px) minmax(260px, 1fr) minmax(220px, 320px);
}

@media (max-width: 1100px) {
    .bulk-date-row-3 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .bulk-date-row-2,
    .bulk-date-row-3 {
        grid-template-columns: 1fr;
    }
}
