body { font-family: Arial, sans-serif; }
.nav-link { display:block; padding: .75rem 1rem; border-radius: .75rem; color: #e2f8ea; }
.nav-link:hover { background:#166534; }
.card { background:#fff; border:1px solid #e2e8f0; border-radius:1rem; padding:1.25rem; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.card-lite { background:#f8fafc; border:1px solid #e2e8f0; border-radius:1rem; padding:1rem; }
.section-title { font-size:1.125rem; font-weight:700; margin-bottom:1rem; }
.input, .select, .textarea { width:100%; border:1px solid #cbd5e1; border-radius:.75rem; padding:.8rem 1rem; background:#fff; }
.textarea { min-height: 110px; }
.label { display:block; margin-bottom:.4rem; font-size:.92rem; font-weight:600; }
.btn-primary { display:inline-block; background:#166534; color:#fff; padding:.8rem 1rem; border-radius:.75rem; font-weight:700; }
.btn-secondary { display:inline-block; background:#e2e8f0; color:#0f172a; padding:.8rem 1rem; border-radius:.75rem; font-weight:700; }
.btn-danger { display:inline-block; background:#b91c1c; color:#fff; padding:.7rem 1rem; border-radius:.75rem; font-weight:700; }
.table { width:100%; border-collapse: collapse; }
.table th, .table td { padding:.8rem; border-bottom:1px solid #e2e8f0; text-align:left; vertical-align: top; }
.metric { background:#f8fafc; border:1px solid #e2e8f0; border-radius:1rem; padding:1rem; }
.metric span { display:block; color:#64748b; font-size:.9rem; }
.metric strong { display:block; margin-top:.35rem; font-size:1.4rem; }
.badge { display:inline-block; padding:.25rem .65rem; border-radius:999px; font-size:.75rem; font-weight:700; }
.flash-success { background:#dcfce7; color:#166534; border:1px solid #86efac; padding:1rem 1.25rem; border-radius:1rem; }
.flash-error { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; padding:1rem 1.25rem; border-radius:1rem; }
.error-text { color:#b91c1c; font-size:.85rem; margin-top:.35rem; }
.kpi { background:#fff; border:1px solid #e2e8f0; border-radius:1rem; padding:1rem; }
.participant-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .75rem; }
.participant-item { border:1px solid #e2e8f0; border-radius:.9rem; padding:.75rem .9rem; background:#fff; }

.phase-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .7rem; border-radius:999px; font-size:.8rem; font-weight:700; color:#fff; }
.card-member-standard { width: 860px; max-width: 100%; border-radius: 24px; overflow:hidden; box-shadow: 0 18px 42px rgba(15,23,42,.18); background:#fff; border:1px solid #e2e8f0; }
.card-member-front, .card-member-back { padding: 28px; }
.card-member-grid { display:grid; grid-template-columns: 1.4fr .9fr; gap: 20px; }
.card-line { display:flex; justify-content:space-between; gap:16px; padding:.45rem 0; border-bottom:1px dashed rgba(255,255,255,.25); }
.card-line-light { display:flex; justify-content:space-between; gap:16px; padding:.45rem 0; border-bottom:1px dashed #cbd5e1; }
.card-qr-box { background:#fff; border-radius:18px; padding:16px; border:1px solid #e2e8f0; text-align:center; }
.print-actions { display:flex; gap:12px; flex-wrap:wrap; }
@media print {
  .no-print { display:none !important; }
  body { background:#fff !important; }
  .card-member-standard { box-shadow:none; border:none; width:100%; }
}

/* Dashboard executif V4 */
.dashboard-hero {
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:1.25rem;
  background:linear-gradient(135deg,#064e3b,#166534 55%,#0f766e);
  color:#fff;
  border-radius:1.5rem;
  padding:1.6rem;
  box-shadow:0 18px 45px rgba(15,23,42,.16);
  overflow:hidden;
  position:relative;
}
.dashboard-hero:after {
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:240px;
  height:240px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
}
.dashboard-hero h1 { font-size:clamp(1.55rem,3vw,2.35rem); line-height:1.1; font-weight:800; margin:.35rem 0 .55rem; letter-spacing:-.03em; }
.dashboard-hero p { color:#d9f99d; max-width:760px; line-height:1.7; }
.dashboard-eyebrow { display:inline-flex; align-items:center; gap:.4rem; color:#16a34a; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; font-weight:800; }
.dashboard-hero .dashboard-eyebrow { color:#bbf7d0; }
.dashboard-hero-actions { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; gap:1rem; min-width:260px; position:relative; z-index:1; }
.dashboard-date { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); padding:.55rem .85rem; border-radius:999px; color:#f8fafc; font-size:.85rem; }
.quick-actions { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:flex-end; }
.quick-actions a { background:#fff; color:#166534; padding:.72rem .95rem; border-radius:.9rem; font-weight:800; box-shadow:0 10px 22px rgba(15,23,42,.12); }
.quick-actions a:hover { transform:translateY(-1px); }
.dashboard-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.dashboard-kpi { background:#fff; border:1px solid #e2e8f0; border-radius:1.25rem; padding:1.15rem; box-shadow:0 12px 30px rgba(15,23,42,.06); }
.dashboard-kpi .kpi-head { display:flex; align-items:center; justify-content:space-between; color:#64748b; font-size:.88rem; font-weight:700; }
.dashboard-kpi strong { display:block; margin-top:.85rem; font-size:clamp(1.45rem,2.5vw,2rem); line-height:1.15; color:#0f172a; letter-spacing:-.03em; }
.dashboard-kpi small { display:block; margin-top:.45rem; color:#64748b; line-height:1.45; }
.kpi-icon { display:inline-flex; width:2.55rem; height:2.55rem; align-items:center; justify-content:center; border-radius:1rem; font-size:.75rem; font-weight:900; }
.tone-green .kpi-icon { background:#dcfce7; color:#166534; }
.tone-blue .kpi-icon { background:#dbeafe; color:#1d4ed8; }
.tone-amber .kpi-icon { background:#fef3c7; color:#b45309; }
.tone-red .kpi-icon { background:#fee2e2; color:#b91c1c; }
.dashboard-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:1rem; align-items:start; }
.dashboard-main { display:grid; gap:1rem; }
.dashboard-side { display:grid; gap:1rem; }
.dashboard-card { background:#fff; border:1px solid #e2e8f0; border-radius:1.25rem; padding:1.2rem; box-shadow:0 12px 30px rgba(15,23,42,.055); }
.dashboard-card-title { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.dashboard-card-title h2 { font-size:1.05rem; font-weight:800; color:#0f172a; margin-top:.2rem; letter-spacing:-.02em; }
.dashboard-card-title a { color:#166534; font-size:.88rem; font-weight:800; white-space:nowrap; }
.dashboard-card-title.simple { margin-bottom:.7rem; }
.dashboard-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.dashboard-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.mini-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.mini-stats.training,.mini-stats.terrain,.mini-stats.stock { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mini-stats div,.finance-summary div { background:#f8fafc; border:1px solid #e2e8f0; border-radius:1rem; padding:.85rem; }
.mini-stats span,.finance-summary span { display:block; color:#64748b; font-size:.78rem; font-weight:700; }
.mini-stats strong,.finance-summary strong { display:block; margin-top:.35rem; color:#0f172a; font-size:1.05rem; font-weight:900; }
.phase-list,.stack-list,.priority-list,.status-list { display:grid; gap:.72rem; }
.phase-row { border:1px solid #e2e8f0; background:#f8fafc; border-radius:1rem; padding:.85rem; }
.phase-row-top { display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin-bottom:.65rem; }
.phase-row small { color:#64748b; font-weight:700; display:block; margin-top:.45rem; }
.progress-track { height:.55rem; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.progress-track span { display:block; height:100%; background:linear-gradient(90deg,#16a34a,#65a30d); border-radius:999px; }
.responsive-table { overflow-x:auto; }
.dashboard-table th { font-size:.76rem; color:#64748b; text-transform:uppercase; letter-spacing:.04em; }
.dashboard-table td { font-size:.9rem; }
.priority-card { background:linear-gradient(180deg,#fff,#f8fafc); }
.priority-list a { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem; border-radius:1rem; border:1px solid #e2e8f0; color:#0f172a; background:#fff; }
.priority-list a:hover,.module-card:hover { border-color:#86efac; box-shadow:0 10px 22px rgba(22,101,52,.08); }
.priority-list span { color:#64748b; font-size:.88rem; font-weight:700; }
.priority-list strong { font-size:1.15rem; }
.status-list div { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.6rem; padding:.7rem .75rem; border:1px solid #e2e8f0; border-radius:.9rem; background:#f8fafc; }
.status-dot { width:.65rem; height:.65rem; border-radius:999px; background:#16a34a; }
.list-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid #e2e8f0; background:#f8fafc; border-radius:1rem; padding:.85rem; }
.list-row.vertical { align-items:flex-start; }
.list-row.slim { margin-bottom:.55rem; }
.list-row strong { display:block; color:#0f172a; font-size:.92rem; line-height:1.45; }
.list-row small { display:block; color:#64748b; margin-top:.25rem; line-height:1.45; }
.list-row > span:not(.badge) { color:#166534; font-weight:900; white-space:nowrap; }
.dashboard-empty { background:#f8fafc; border:1px dashed #cbd5e1; color:#64748b; border-radius:1rem; padding:1rem; text-align:center; font-size:.9rem; }
.split-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.split-list h3 { font-size:.92rem; font-weight:900; color:#334155; margin-bottom:.65rem; }
.finance-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.progress-card { border:1px solid #e2e8f0; background:#f8fafc; border-radius:1rem; padding:.9rem; margin:1rem 0; }
.progress-card div:first-child { display:flex; justify-content:space-between; align-items:center; margin-bottom:.6rem; color:#64748b; font-size:.86rem; font-weight:800; }
.progress-card strong { color:#0f172a; }
.module-card { background:#fff; border:1px solid #e2e8f0; border-radius:1.25rem; padding:1.1rem; display:flex; flex-direction:column; gap:.35rem; color:#0f172a; box-shadow:0 12px 30px rgba(15,23,42,.055); }
.module-card span { display:inline-flex; width:max-content; min-width:2.4rem; height:2.4rem; align-items:center; justify-content:center; padding:0 .5rem; border-radius:.9rem; background:#dcfce7; color:#166534; font-size:.72rem; font-weight:900; }
.module-card strong { font-size:1rem; font-weight:900; }
.module-card small { color:#64748b; }
@media (max-width: 1180px) {
  .dashboard-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-layout,.dashboard-grid-2 { grid-template-columns:1fr; }
  .dashboard-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .dashboard-hero { flex-direction:column; padding:1.15rem; border-radius:1.15rem; }
  .dashboard-hero-actions { align-items:flex-start; min-width:0; }
  .quick-actions { justify-content:flex-start; }
  .dashboard-kpi-grid,.dashboard-grid-3,.dashboard-side,.mini-stats,.mini-stats.training,.mini-stats.terrain,.mini-stats.stock,.finance-summary,.split-list { grid-template-columns:1fr; }
  .dashboard-card-title { flex-direction:column; }
  .list-row { align-items:flex-start; flex-direction:column; }
}


/* Dashboard ultra premium V5 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.icon-svg{width:1.15rem;height:1.15rem;display:inline-block;vertical-align:middle;flex:none}
.icon-svg.tiny{width:.95rem;height:.95rem}
.inline-icon{margin-right:.35rem}
.with-icon{display:inline-flex;align-items:center;gap:.45rem}
.premium-surface{position:relative;overflow:hidden}
.premium-surface:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0));pointer-events:none}
.dashboard-hero{background:radial-gradient(circle at top left,rgba(187,247,208,.22),transparent 35%),linear-gradient(135deg,#052e2b,#0f766e 55%,#14532d 100%);border:1px solid rgba(255,255,255,.08);min-height:220px}
.dashboard-hero p{color:#ecfccb;max-width:760px;line-height:1.8}
.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center}
.hero-pills{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}
.hero-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .85rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);font-size:.83rem;color:#f8fafc;font-weight:700}
.action-dock{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.7rem}
.user-chip{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:.6rem .85rem;font-size:.82rem;font-weight:700}
.icon-btn{width:2.9rem;height:2.9rem;border-radius:1rem;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#0f172a;border:1px solid rgba(148,163,184,.26);box-shadow:0 12px 22px rgba(15,23,42,.14);transition:all .2s ease}
.icon-btn:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(15,23,42,.18);border-color:#86efac}
.icon-btn .icon-svg{width:1.2rem;height:1.2rem}
.icon-btn.success{background:linear-gradient(180deg,#ecfdf5,#dcfce7);color:#166534}
.icon-btn.info{background:linear-gradient(180deg,#eff6ff,#dbeafe);color:#1d4ed8}
.icon-btn.warning{background:linear-gradient(180deg,#fffbeb,#fef3c7);color:#b45309}
.icon-btn.default{background:linear-gradient(180deg,#ffffff,#f8fafc)}
.dashboard-kpi-grid{margin-top:.2rem}
.dashboard-kpi{border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc);transition:transform .2s ease,box-shadow .2s ease}
.dashboard-kpi:hover,.dashboard-card:hover,.module-card:hover{transform:translateY(-2px)}
.dashboard-kpi .kpi-head{margin-bottom:.35rem}
.kpi-icon{width:3rem;height:3rem;border-radius:1rem;padding:.68rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.kpi-icon .icon-svg{width:1.35rem;height:1.35rem}
.dashboard-card{background:linear-gradient(180deg,#fff,#f8fafc);border-color:#e5e7eb}
.premium-header{align-items:flex-start}
.section-heading{display:flex;align-items:flex-start;gap:.9rem}
.section-heading h2{font-size:1.06rem;font-weight:900;color:#0f172a;margin-top:.18rem;letter-spacing:-.02em}
.section-icon{width:2.85rem;height:2.85rem;border-radius:1rem;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ecfdf5,#dcfce7);color:#166534;box-shadow:0 10px 18px rgba(22,101,52,.1)}
.section-icon .icon-svg{width:1.25rem;height:1.25rem}
.mini-stats div,.finance-summary div,.phase-row,.list-row,.status-list div,.priority-list a,.progress-card{background:rgba(248,250,252,.95)}
.priority-list a{font-weight:800}
.priority-list a strong{display:flex;align-items:center;gap:.45rem;font-size:1.1rem}
.priority-list a strong:after{content:"›";font-size:1.2rem;color:#16a34a}
.dashboard-table tbody tr:hover{background:#f8fafc}
.dashboard-table td,.dashboard-table th{padding:.85rem .7rem}
.dashboard-empty{background:linear-gradient(180deg,#fff,#f8fafc)}
.module-card{position:relative;padding-right:3.2rem}
.module-card span{width:2.9rem;height:2.9rem;padding:0}
.module-card em{position:absolute;right:1rem;top:1rem;color:#16a34a;display:inline-flex}
.module-card em .icon-svg{width:1rem;height:1rem}
.last-row{margin-bottom:1.25rem}
@media (max-width:1180px){.dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))}.action-dock{justify-content:flex-start}}
@media (max-width:760px){.hero-pills,.action-dock{justify-content:flex-start}.dashboard-date,.user-chip{max-width:100%;width:max-content}.icon-btn{width:2.7rem;height:2.7rem}.section-heading{gap:.7rem}.section-icon{width:2.55rem;height:2.55rem}}

/* =========================================================
   GLOBAL ULTRA PREMIUM V6 - toutes les pages
   ========================================================= */
:root{
  --tp-ink:#0f172a;
  --tp-muted:#64748b;
  --tp-border:#e2e8f0;
  --tp-soft:#f8fafc;
  --tp-green:#166534;
  --tp-green-2:#0f766e;
  --tp-gold:#b45309;
  --tp-red:#b91c1c;
  --tp-blue:#1d4ed8;
  --tp-shadow:0 18px 45px rgba(15,23,42,.08);
  --tp-shadow-soft:0 10px 24px rgba(15,23,42,.055);
}
html{scroll-behavior:smooth}
body.tp-body,body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top left,rgba(187,247,208,.35),transparent 28%),linear-gradient(180deg,#f8fafc,#eef2f7 62%,#f8fafc);color:var(--tp-ink)}
.tp-shell{background:transparent}
.tp-icon{width:1.1rem;height:1.1rem;display:inline-block;vertical-align:middle;flex:none}
.tp-icon.tiny{width:.9rem;height:.9rem}.tp-icon.mini{width:.78rem;height:.78rem}
.tp-sidebar{width:18.5rem;background:radial-gradient(circle at top left,rgba(187,247,208,.24),transparent 28%),linear-gradient(180deg,#052e2b,#064e3b 48%,#0f3f30);color:#fff;border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 45px rgba(15,23,42,.18);position:sticky;top:0;height:100vh;overflow:hidden}
.tp-sidebar:after{content:"";position:absolute;right:-90px;top:120px;width:180px;height:180px;border-radius:999px;background:rgba(255,255,255,.055);pointer-events:none}
.tp-brand{display:flex;align-items:center;gap:.9rem;padding:1.15rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:1}.tp-brand-mark{width:3rem;height:3rem;border-radius:1.1rem;background:linear-gradient(135deg,#dcfce7,#86efac);color:#14532d;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(15,23,42,.25)}.tp-brand-mark .tp-icon{width:1.45rem;height:1.45rem}.tp-brand h1{font-size:1.05rem;font-weight:900;letter-spacing:-.025em}.tp-brand p{font-size:.78rem;color:#bbf7d0;margin-top:.1rem}.tp-profile-card{display:flex;align-items:center;gap:.75rem;margin:1rem 1rem .55rem;padding:.85rem;border-radius:1.2rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);position:relative;z-index:1}.tp-avatar{width:2.4rem;height:2.4rem;border-radius:.9rem;background:#fff;color:#166534;display:flex;align-items:center;justify-content:center;font-weight:900}.tp-nav{padding:.45rem 1rem 1.25rem;display:flex;flex-direction:column;gap:.22rem;overflow:auto;position:relative;z-index:1}.tp-nav::-webkit-scrollbar{width:7px}.tp-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}.nav-link{display:flex!important;align-items:center;gap:.72rem;padding:.68rem .78rem;border-radius:1rem;color:#e2f8ea!important;font-weight:700;line-height:1.15;transition:all .2s ease;position:relative;text-decoration:none!important}.nav-link .tp-icon{opacity:.92}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.13)!important;color:#fff!important;transform:translateX(3px);box-shadow:inset 3px 0 0 #86efac}.nav-link span:not(.nav-count){flex:1}.nav-count{min-width:1.55rem;height:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:900}.tp-topbar{background:rgba(255,255,255,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(226,232,240,.82);padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:20}.tp-topbar h2{font-size:1.22rem;font-weight:900;color:#0f172a;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-topbar p{font-size:.86rem;color:#64748b;margin-top:.12rem}.tp-kicker{display:inline-flex;align-items:center;gap:.42rem;color:#166534;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:900;margin-bottom:.18rem}.tp-top-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.top-icon-link{width:2.65rem;height:2.65rem;border-radius:1rem;background:#fff;border:1px solid #e2e8f0;color:#166534;display:inline-flex;align-items:center;justify-content:center;position:relative;box-shadow:0 10px 22px rgba(15,23,42,.06);transition:all .2s ease}.top-icon-link:hover{transform:translateY(-2px);box-shadow:0 16px 26px rgba(15,23,42,.1)}.top-icon-link.danger{color:#b91c1c}.top-icon-link span{position:absolute;right:-.35rem;top:-.35rem;min-width:1.25rem;height:1.25rem;padding:0 .25rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.68rem;font-weight:900;display:flex;align-items:center;justify-content:center}.tp-email{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:999px;padding:.58rem .8rem;font-size:.82rem;font-weight:700}.tp-main{background:transparent}.card,.dashboard-card,.kpi,.metric,.card-lite{background:linear-gradient(180deg,#fff,#f8fafc)!important;border:1px solid rgba(226,232,240,.95)!important;border-radius:1.35rem!important;box-shadow:var(--tp-shadow-soft)!important;position:relative;overflow:hidden}.card:before,.dashboard-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#16a34a,#0f766e,#65a30d);opacity:.9}.card:hover,.metric:hover,.card-lite:hover{box-shadow:var(--tp-shadow)!important;transform:translateY(-1px)}.section-title{display:flex;align-items:center;gap:.55rem;font-size:1.08rem;font-weight:900;color:#0f172a;letter-spacing:-.02em}.section-title:before{content:"";width:.85rem;height:.85rem;border-radius:.35rem;background:linear-gradient(135deg,#16a34a,#65a30d);box-shadow:0 7px 16px rgba(22,101,52,.2)}.input,.select,.textarea,input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="datetime-local"],select,textarea{border:1px solid #dbe3ef!important;border-radius:1rem!important;background:#fff!important;box-shadow:0 1px 0 rgba(15,23,42,.02)!important;transition:border-color .2s ease,box-shadow .2s ease}.input:focus,.select:focus,.textarea:focus,input:focus,select:focus,textarea:focus{outline:none!important;border-color:#86efac!important;box-shadow:0 0 0 4px rgba(34,197,94,.13)!important}.label,label{font-weight:800;color:#334155}.btn-primary,.btn-secondary,.btn-danger,button[type="submit"],button[type="button"],a.btn-primary,a.btn-secondary,a.btn-danger{display:inline-flex!important;align-items:center;justify-content:center;gap:.48rem;border-radius:.95rem!important;font-weight:900!important;line-height:1.1;text-decoration:none!important;transition:all .2s ease;border:1px solid transparent}.btn-primary{background:linear-gradient(135deg,#166534,#0f766e)!important;color:#fff!important;box-shadow:0 12px 24px rgba(22,101,52,.18)}.btn-secondary{background:#fff!important;color:#0f172a!important;border-color:#dbe3ef!important;box-shadow:0 8px 18px rgba(15,23,42,.045)}.btn-danger{background:linear-gradient(135deg,#b91c1c,#ef4444)!important;color:#fff!important;box-shadow:0 12px 24px rgba(185,28,28,.16)}.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover,button:hover,a[class*="btn-"]:hover{transform:translateY(-1px);filter:saturate(1.04);box-shadow:0 16px 28px rgba(15,23,42,.12)!important}.table{width:100%;border-collapse:separate!important;border-spacing:0}.table th{background:#f8fafc;color:#475569;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:900;border-bottom:1px solid #e2e8f0}.table th:first-child{border-top-left-radius:.9rem}.table th:last-child{border-top-right-radius:.9rem}.table td{background:rgba(255,255,255,.72);border-bottom:1px solid #edf2f7}.table tr:hover td{background:#f8fafc}.table td:last-child,.table th:last-child{text-align:right}.badge{display:inline-flex;align-items:center;gap:.3rem;border:1px solid rgba(148,163,184,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}.flash-success,.flash-error{box-shadow:0 12px 28px rgba(15,23,42,.08);font-weight:800}.tp-action-icon,.icon-only-action{width:2.35rem!important;height:2.35rem!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:.85rem!important;text-indent:0!important;overflow:visible!important;white-space:nowrap;vertical-align:middle}.tp-action-icon svg,.icon-only-action svg{width:1.05rem;height:1.05rem;display:block}.tp-action-icon .tp-action-text,.icon-only-action .tp-action-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tp-action-icon.view{background:#ecfdf5!important;color:#166534!important;border:1px solid #bbf7d0!important}.tp-action-icon.edit{background:#eff6ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important}.tp-action-icon.delete{background:#fef2f2!important;color:#b91c1c!important;border:1px solid #fecaca!important}.tp-action-icon.print{background:#fffbeb!important;color:#b45309!important;border:1px solid #fde68a!important}.tp-action-icon.download{background:#f0fdfa!important;color:#0f766e!important;border:1px solid #99f6e4!important}.tp-action-icon.back{background:#f8fafc!important;color:#334155!important;border:1px solid #e2e8f0!important}.tp-action-icon.validate{background:#ecfdf5!important;color:#15803d!important;border:1px solid #bbf7d0!important}.tp-action-icon.reject{background:#fef2f2!important;color:#b91c1c!important;border:1px solid #fecaca!important}.action-cell,.table td:last-child{white-space:nowrap}.form-actions,.actions,.print-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.login-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:1.5rem;box-shadow:0 25px 60px rgba(15,23,42,.12)}
@media(max-width:1024px){.tp-topbar{position:relative}.tp-main{padding:1rem!important}.tp-email{display:none}.card,.dashboard-card{border-radius:1.1rem!important}}
@media(max-width:760px){.tp-topbar{align-items:flex-start;flex-direction:column}.tp-top-actions{justify-content:flex-start}.table td:last-child,.table th:last-child{text-align:left}.tp-action-icon,.icon-only-action{width:2.55rem!important;height:2.55rem!important}}

/* Login premium */
.login-premium-shell{min-height:calc(100vh - 120px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.75fr);gap:1.5rem;align-items:center;padding:1.5rem 0}.login-premium-hero{min-height:460px;border-radius:1.75rem;padding:2rem;background:radial-gradient(circle at top left,rgba(187,247,208,.3),transparent 32%),linear-gradient(135deg,#052e2b,#0f766e 55%,#14532d);color:#fff;box-shadow:0 25px 65px rgba(15,23,42,.16);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;position:relative}.login-premium-hero:after{content:"";position:absolute;right:-110px;top:-110px;width:280px;height:280px;border-radius:999px;background:rgba(255,255,255,.08)}.login-eyebrow{display:inline-flex;width:max-content;padding:.48rem .8rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-weight:900;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#dcfce7}.login-premium-hero h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.02;font-weight:950;letter-spacing:-.05em;max-width:760px;margin:1rem 0}.login-premium-hero p{color:#dcfce7;line-height:1.8;max-width:680px}.login-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1.4rem}.login-feature-grid span{padding:.75rem;border-radius:1rem;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);font-weight:800;text-align:center}.login-card{padding:1.5rem}.login-card-header{display:flex;align-items:center;gap:.9rem;margin-bottom:1.25rem}.login-logo-mark{width:3.2rem;height:3.2rem;border-radius:1.1rem;background:linear-gradient(135deg,#166534,#0f766e);color:#fff;font-weight:950;display:flex;align-items:center;justify-content:center;box-shadow:0 15px 28px rgba(22,101,52,.22)}.login-card h3{font-size:1.55rem;font-weight:950;letter-spacing:-.035em;color:#0f172a}.login-card p{color:#64748b}@media(max-width:980px){.login-premium-shell{grid-template-columns:1fr}.login-premium-hero{min-height:360px}.login-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.login-premium-hero{padding:1.3rem;border-radius:1.25rem}.login-card{padding:1rem}.login-feature-grid{grid-template-columns:1fr}}


/* V7 – Ultra premium global toutes pages */
.tp-body{background:radial-gradient(circle at top left,rgba(34,197,94,.08),transparent 34%),linear-gradient(180deg,#f8fafc,#eef2f7 45%,#f8fafc);}
.tp-main{max-width:100%;}
.tp-main > section,.tp-main > div:not(.flash-success):not(.flash-error),.tp-main > form{animation:tpFadeUp .22s ease both}
@keyframes tpFadeUp{from{opacity:.75;transform:translateY(4px)}to{opacity:1;transform:none}}
.tp-title-iconified{display:flex!important;align-items:center;gap:.75rem;letter-spacing:-.02em}
.tp-title-icon{width:2.4rem;height:2.4rem;border-radius:1rem;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ecfdf5,#dcfce7);color:#166534;box-shadow:0 10px 22px rgba(22,101,52,.12);flex:none}
.tp-title-icon svg{width:1.15rem;height:1.15rem}
.card,.premium-card-auto,.dashboard-card,.dashboard-kpi,.module-card{backdrop-filter:saturate(1.15) blur(2px)}
.premium-card-auto{background:linear-gradient(180deg,#fff,#f8fafc)!important;border:1px solid #e2e8f0!important;border-radius:1.25rem!important;box-shadow:0 14px 35px rgba(15,23,42,.06)!important}
.form-premium{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:1.25rem;padding:1rem;box-shadow:0 14px 35px rgba(15,23,42,.05)}
.form-premium label{font-weight:800;color:#334155;font-size:.84rem;letter-spacing:-.01em}
.field-premium{border-radius:.9rem!important;border:1px solid #cbd5e1!important;background:#fff!important;box-shadow:0 1px 0 rgba(15,23,42,.02);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.field-premium:focus{outline:none!important;border-color:#22c55e!important;box-shadow:0 0 0 4px rgba(34,197,94,.14)!important;background:#fff!important}
.table-premium{width:100%;border-collapse:separate!important;border-spacing:0 .55rem!important;background:transparent!important}
.table-premium thead th{background:transparent!important;color:#64748b!important;font-size:.72rem!important;text-transform:uppercase!important;letter-spacing:.075em!important;border:0!important;padding:.55rem .8rem!important;white-space:nowrap}
.table-premium tbody tr{background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(15,23,42,.045);transition:transform .18s ease,box-shadow .18s ease}
.table-premium tbody tr:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(15,23,42,.075)}
.table-premium tbody td{border-top:1px solid #e2e8f0!important;border-bottom:1px solid #e2e8f0!important;padding:.82rem .8rem!important;vertical-align:middle!important;background:transparent!important}
.table-premium tbody td:first-child{border-left:1px solid #e2e8f0!important;border-radius:1rem 0 0 1rem!important}
.table-premium tbody td:last-child{border-right:1px solid #e2e8f0!important;border-radius:0 1rem 1rem 0!important}
.action-cell{white-space:nowrap;text-align:right!important;min-width:8rem}
.action-cell a,.action-cell button{margin-left:.35rem;margin-bottom:.2rem}
.tp-action-icon{width:2.35rem!important;height:2.35rem!important;min-width:2.35rem!important;padding:0!important;border-radius:.82rem!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;border:1px solid #e2e8f0!important;background:linear-gradient(180deg,#fff,#f8fafc)!important;color:#334155!important;box-shadow:0 8px 18px rgba(15,23,42,.06)!important;transition:all .18s ease!important;vertical-align:middle!important;font-size:0!important;line-height:1!important}
.tp-action-icon svg{width:1.05rem;height:1.05rem;display:block;flex:none}
.tp-action-icon:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(15,23,42,.1)!important;border-color:#86efac!important;color:#166534!important}
.tp-action-icon.view{background:linear-gradient(180deg,#eff6ff,#dbeafe)!important;color:#1d4ed8!important;border-color:#bfdbfe!important}
.tp-action-icon.edit{background:linear-gradient(180deg,#f0fdf4,#dcfce7)!important;color:#166534!important;border-color:#bbf7d0!important}
.tp-action-icon.delete{background:linear-gradient(180deg,#fef2f2,#fee2e2)!important;color:#b91c1c!important;border-color:#fecaca!important}
.tp-action-icon.print{background:linear-gradient(180deg,#f8fafc,#e2e8f0)!important;color:#334155!important}
.tp-action-icon.download{background:linear-gradient(180deg,#eef2ff,#e0e7ff)!important;color:#4338ca!important;border-color:#c7d2fe!important}
.tp-action-icon.back{background:linear-gradient(180deg,#fff7ed,#ffedd5)!important;color:#c2410c!important;border-color:#fed7aa!important}
.tp-action-icon.validate{background:linear-gradient(180deg,#ecfdf5,#d1fae5)!important;color:#047857!important;border-color:#a7f3d0!important}
.tp-action-icon.reject{background:linear-gradient(180deg,#fff1f2,#ffe4e6)!important;color:#be123c!important;border-color:#fecdd3!important}
.tp-action-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tp-icon-text,.btn-primary,.btn-secondary,button[type="submit"]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.5rem!important;border-radius:.9rem!important;font-weight:850!important;letter-spacing:-.01em!important;transition:all .18s ease!important}
.tp-icon-text svg,.btn-primary svg,.btn-secondary svg,button[type="submit"] svg{width:1rem;height:1rem;flex:none}
.tp-icon-text:hover,.btn-primary:hover,.btn-secondary:hover,button[type="submit"]:hover{transform:translateY(-1px)}
.btn-primary,.tp-icon-text.btn-primary{background:linear-gradient(135deg,#166534,#16a34a)!important;color:#fff!important;border:1px solid rgba(22,101,52,.25)!important;box-shadow:0 12px 24px rgba(22,101,52,.16)!important}
.btn-secondary,.tp-icon-text.btn-secondary{background:linear-gradient(180deg,#fff,#f8fafc)!important;color:#334155!important;border:1px solid #cbd5e1!important;box-shadow:0 8px 18px rgba(15,23,42,.06)!important}
.badge{display:inline-flex!important;align-items:center!important;gap:.35rem!important;border-radius:999px!important;font-weight:850!important;letter-spacing:-.01em!important}
.flash-success,.flash-error{box-shadow:0 14px 30px rgba(15,23,42,.08);font-weight:750}
.tabs a,.tab-link{border-radius:.9rem!important}
@media(max-width:760px){.form-premium{padding:.85rem}.table-premium{border-spacing:0 .45rem!important}.table-premium thead{display:none}.table-premium tbody tr{display:block;border:1px solid #e2e8f0;border-radius:1rem;padding:.35rem .55rem}.table-premium tbody td{display:flex!important;justify-content:space-between;gap:1rem;border:0!important;border-radius:0!important;padding:.55rem .2rem!important}.action-cell{justify-content:flex-start!important;text-align:left!important;min-width:0}.tp-action-icon{width:2.5rem!important;height:2.5rem!important}}


/* Pagination globale automatique V8 */
.tp-pagination-toolbar,.tp-pagination-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:linear-gradient(180deg,#ffffff,#f8fafc);border:1px solid #e2e8f0;box-shadow:0 10px 24px rgba(15,23,42,.055)}
.tp-pagination-toolbar{border-radius:1rem 1rem .35rem .35rem;margin-bottom:.65rem;flex-wrap:wrap}
.tp-pagination-footer{border-radius:.35rem .35rem 1rem 1rem;margin-top:.65rem;flex-wrap:wrap}
.tp-pagination-left,.tp-pagination-right{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.tp-pagination-title{display:inline-flex;align-items:center;gap:.45rem;font-weight:900;color:#0f172a;font-size:.9rem}
.tp-pagination-title svg{width:1.05rem;height:1.05rem;color:#166534}
.tp-pagination-search,.tp-pagination-size{display:inline-flex;align-items:center;gap:.45rem;color:#64748b;font-size:.78rem;font-weight:800}
.tp-pagination-search input,.tp-pagination-size select{height:2.35rem;border:1px solid #cbd5e1;border-radius:.8rem;background:#fff;padding:0 .8rem;color:#0f172a;outline:none;min-width:220px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.tp-pagination-size select{min-width:84px;padding-right:.5rem}
.tp-pagination-search input:focus,.tp-pagination-size select:focus{border-color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.13)}
.tp-pagination-summary{display:inline-flex;align-items:center;padding:.42rem .7rem;border-radius:999px;background:#ecfdf5;color:#166534;font-size:.78rem;font-weight:900;border:1px solid #bbf7d0}
.tp-pagination-info{color:#64748b;font-size:.85rem;font-weight:700}
.tp-pagination-nav{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.tp-page-btn{width:2.25rem;height:2.25rem;border-radius:.72rem;border:1px solid #cbd5e1;background:#fff;color:#334155;font-weight:900;display:inline-flex;align-items:center;justify-content:center;transition:all .18s ease;box-shadow:0 6px 14px rgba(15,23,42,.055)}
.tp-page-btn:hover:not(:disabled){transform:translateY(-1px);border-color:#86efac;color:#166534;box-shadow:0 10px 18px rgba(22,101,52,.1)}
.tp-page-btn.active{background:#166534;color:#fff;border-color:#166534;box-shadow:0 10px 18px rgba(22,101,52,.18)}
.tp-page-btn:disabled{opacity:.42;cursor:not-allowed;background:#f8fafc}
.tp-paginated-table tbody tr{transition:background .15s ease}
@media(max-width:760px){.tp-pagination-toolbar,.tp-pagination-footer{align-items:flex-start}.tp-pagination-left,.tp-pagination-right{width:100%;align-items:flex-start}.tp-pagination-search{width:100%;flex-direction:column;align-items:flex-start}.tp-pagination-search input{width:100%;min-width:0}.tp-pagination-nav{width:100%;justify-content:flex-start}.tp-page-btn{width:2.1rem;height:2.1rem}}
.tp-server-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:1rem;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.055);color:#64748b;font-size:.85rem;font-weight:800;flex-wrap:wrap}
.tp-server-pagination>div{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.tp-server-pagination .tp-page-btn{text-decoration:none}.tp-server-pagination .tp-page-btn.disabled{opacity:.42;pointer-events:none;background:#f8fafc}

/* Menu groupé par domaine V9 */
.tp-sidebar{overflow:hidden!important}.tp-nav.grouped{padding:.6rem .85rem 1.4rem;gap:.75rem}.nav-section{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.045);border-radius:1.15rem;padding:.55rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.nav-section.active{background:rgba(255,255,255,.08);border-color:rgba(134,239,172,.26);box-shadow:inset 3px 0 0 rgba(134,239,172,.9),0 12px 24px rgba(0,0,0,.08)}.nav-section-title{display:flex;align-items:center;gap:.5rem;padding:.35rem .45rem .55rem;color:#bbf7d0;text-transform:uppercase;letter-spacing:.075em;font-size:.68rem;font-weight:900}.nav-section-title .tp-icon{width:.95rem;height:.95rem;opacity:.95}.nav-section-items{display:flex;flex-direction:column;gap:.18rem}.nav-section .nav-link{padding:.62rem .68rem;border-radius:.85rem;font-size:.88rem}.nav-section .nav-link:hover,.nav-section .nav-link.active{transform:translateX(2px);box-shadow:inset 3px 0 0 #86efac;background:rgba(255,255,255,.13)!important}.nav-section .nav-link .tp-icon{width:1.05rem;height:1.05rem}.tp-nav.grouped::-webkit-scrollbar{width:7px}.tp-nav.grouped::-webkit-scrollbar-thumb{background:rgba(187,247,208,.2);border-radius:999px}.tp-profile-card{margin-bottom:.75rem}@media (max-width:1024px){.tp-nav.grouped{gap:.45rem}.nav-section{border-radius:1rem}}


/* Menu avec sous-menus V10 */
.tp-nav.grouped{gap:.55rem!important;padding-bottom:1.6rem!important}.nav-section{padding:.42rem!important;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.nav-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.7rem;border:0;background:transparent;color:#bbf7d0;padding:.2rem .28rem .35rem;border-radius:.9rem;cursor:pointer;text-align:left}.nav-section-toggle:hover{background:rgba(255,255,255,.075)}.nav-section-title{display:flex!important;align-items:center;gap:.5rem;padding:.42rem .45rem!important;color:#bbf7d0;text-transform:uppercase;letter-spacing:.075em;font-size:.68rem;font-weight:900;line-height:1.2}.nav-section-title span:last-child{flex:1}.nav-section-chevron{width:1.7rem;height:1.7rem;border-radius:.65rem;background:rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center;color:#dcfce7;transition:transform .2s ease,background .2s ease}.nav-section.open .nav-section-chevron{transform:rotate(180deg);background:rgba(134,239,172,.18)}.nav-section-items{display:flex;flex-direction:column;gap:.18rem;margin-top:.1rem;padding:.12rem .12rem .12rem .35rem;border-left:1px solid rgba(187,247,208,.16);animation:tpSubmenuReveal .18s ease}.nav-section-items[hidden]{display:none!important}.nav-section:not(.open){background:rgba(255,255,255,.035)!important}.nav-section.open{background:rgba(255,255,255,.075)!important}.nav-section .nav-link{position:relative;margin-left:.15rem}.nav-section .nav-link:before{content:"";position:absolute;left:-.52rem;top:50%;width:.38rem;height:1px;background:rgba(187,247,208,.35)}.nav-section .nav-link.active:before{background:#86efac;height:2px}.nav-section .nav-link .tp-icon{width:1.02rem;height:1.02rem}.nav-section.active.open{border-color:rgba(134,239,172,.35)!important}.nav-section.active .nav-section-title{color:#fff}.nav-section.active .nav-section-chevron{color:#fff}@keyframes tpSubmenuReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.nav-section-toggle{min-height:2.75rem}.nav-section-title{font-size:.72rem}}
