/* I ♥ EVENTS — thème inspiré d'Argon Dashboard (Creative Tim), reproduit sans dépendance externe */
:root {
  --primary:#e11224; --primary-dark:#b50e1c; --secondary:#f7fafc;
  --success:#2dce89; --info:#11cdef; --warning:#fb6340; --danger:#f5365c;
  --yellow:#ffd600; --purple:#8965e0; --teal:#11cdef; --orange:#fb6340;
  --dark:#33383f; --muted:#959ca5; --text:#575e66; --bg:#f2f3f5;
  --card-shadow:0 0 2rem 0 rgba(120,130,140,.14);
  --radius:.375rem; --sidenav-w:250px;
}
* { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body { font-family:'Open Sans','Segoe UI',system-ui,-apple-system,sans-serif; background:var(--bg); color:var(--text); font-size:.875rem; }
a { color:var(--primary); text-decoration:none; }
a:hover { color:var(--primary-dark); }
h1,h2,h3,h4,h5,h6 { color:var(--dark); margin:0 0 .5rem; font-weight:600; }

/* ---------- Sidebar ---------- */
.sidenav { position:fixed; inset:0 auto 0 0; width:var(--sidenav-w); background:#fff; box-shadow:0 0 2rem 0 rgba(120,130,140,.14); z-index:100; overflow-y:auto; transition:transform .2s; }
.sidenav-brand { padding:1.2rem 1.5rem .9rem; border-bottom:1px solid #e9ebee; }
.brand-heart { font-size:1.15rem; font-weight:800; color:var(--dark); letter-spacing:.06em; }
.brand-heart b { color:var(--danger); }
.sidenav-inner { padding:.6rem 0 2rem; }
.nav-heading { padding:.9rem 1.5rem .35rem; font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.sidenav .nav { list-style:none; margin:0; padding:0; }
.sidenav .nav-link { display:flex; align-items:center; gap:.65rem; padding:.5rem 1.5rem; color:var(--text); font-size:.86rem; font-weight:500; }
.sidenav .nav-link:hover { color:var(--dark); background:#f5f6f7; }
.sidenav .nav-link.active { color:var(--primary); border-left:3px solid var(--primary); background:#f5f6f7; padding-left:calc(1.5rem - 3px); }
.nav-ico { width:1.35rem; text-align:center; font-size:.95rem; }

/* ---------- Topnav + header gradient ---------- */
.main-content { margin-left:var(--sidenav-w); min-height:100vh; display:flex; flex-direction:column; }
.topnav { position:relative; z-index:5; display:flex; align-items:center; gap:1rem; padding:.9rem 1.5rem; color:#fff; background:linear-gradient(87deg,#d70015 0,#ff4d3f 100%); }
.topnav-title { font-weight:600; font-size:.95rem; text-transform:uppercase; letter-spacing:.04em; flex:1; }
.menu-toggle { display:none; background:none; border:none; color:#fff; font-size:1.3rem; cursor:pointer; }
.topnav-user { display:flex; align-items:center; gap:.6rem; }
.topnav-user .avatar { width:2.1rem; height:2.1rem; border-radius:50%; background:rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-weight:700; }
.topnav-user .uname { font-weight:600; }
.btn-logout { background:rgba(255,255,255,.18); color:#fff; border:none; border-radius:50%; width:1.9rem; height:1.9rem; cursor:pointer; font-size:1rem; }
.btn-logout:hover { background:rgba(255,255,255,.35); }
.header-gradient { height:6.5rem; background:linear-gradient(87deg,#d70015 0,#ff4d3f 100%); }
.container-app { position:relative; margin-top:-5rem; padding:0 1.5rem 1.5rem; z-index:6; flex:1; }
.footer-app { padding:1rem 1.5rem; color:var(--muted); font-size:.8rem; text-align:center; }

/* ---------- Cards ---------- */
.card { background:#fff; border-radius:var(--radius); box-shadow:var(--card-shadow); margin-bottom:1.5rem; }
.card-header { padding:1rem 1.5rem; border-bottom:1px solid #e9ebee; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.card-header h3 { margin:0; font-size:1.02rem; flex:1; }
.card-body { padding:1.5rem; }
.card-table .card-body { padding:0; }

/* Stat cards (dashboard) */
.stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:1.2rem; margin-bottom:1.5rem; }
.stat-card { background:#fff; border-radius:var(--radius); box-shadow:var(--card-shadow); padding:1rem 1.3rem; display:flex; justify-content:space-between; align-items:center; }
.stat-card .label { text-transform:uppercase; font-size:.68rem; color:var(--muted); font-weight:600; letter-spacing:.03em; }
.stat-card .value { font-size:1.25rem; font-weight:700; color:var(--dark); }
.icon-shape { width:3rem; height:3rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.25rem; color:#fff; flex:none; }
.bg-gradient-red { background:linear-gradient(87deg,#f5365c 0,#f56036 100%); }
.bg-gradient-orange { background:linear-gradient(87deg,#fb6340 0,#fbb140 100%); }
.bg-gradient-green { background:linear-gradient(87deg,#2dce89 0,#2dcecc 100%); }
.bg-gradient-info { background:linear-gradient(87deg,#11cdef 0,#1171ef 100%); }
.bg-gradient-primary { background:linear-gradient(87deg,#d70015 0,#ff4d3f 100%); }
.bg-gradient-purple { background:linear-gradient(87deg,#8965e0 0,#bc65e0 100%); }

/* ---------- Tables ---------- */
.table-wrap { overflow-x:auto; }
table.table { width:100%; border-collapse:collapse; }
.table th { padding:.75rem 1rem; background:#f5f6f7; color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; text-align:left; border-bottom:1px solid #e9ecef; white-space:nowrap; }
.table td { padding:.7rem 1rem; border-bottom:1px solid #e9ebee; vertical-align:middle; }
.table tbody tr:hover { background:#f5f6f7; }
.table .num { text-align:right; font-variant-numeric:tabular-nums; }
.table-sm td,.table-sm th { padding:.45rem .7rem; }

/* ---------- Badges ---------- */
.badge { display:inline-block; padding:.3rem .6rem; border-radius:.375rem; font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.badge-success { background:#b0eed3; color:#1aae6f; }
.badge-danger { background:#fdd1da; color:#f80031; }
.badge-warning { background:#ffe3c8; color:#ff7b00; }
.badge-info { background:#aaedf9; color:#03acca; }
.badge-primary { background:#fcd3d7; color:#b50e1c; }
.badge-secondary { background:#e9ecef; color:#6b7a90; }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem; border:1px solid transparent; border-radius:var(--radius); font-size:.8rem; font-weight:600; cursor:pointer; transition:box-shadow .15s, transform .1s; background:#fff; color:var(--text); box-shadow:0 3px 6px rgba(60,64,70,.10),0 1px 3px rgba(0,0,0,.07); }
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn-primary { background:var(--primary); color:#fff; }
.btn-success { background:var(--success); color:#fff; }
.btn-danger { background:var(--danger); color:#fff; }
.btn-warning { background:var(--warning); color:#fff; }
.btn-info { background:var(--info); color:#fff; }
.btn-dark { background:var(--dark); color:#fff; }
.btn-light { background:#fff; color:var(--text); border:1px solid #e9ecef; }
.btn-sm { padding:.3rem .65rem; font-size:.72rem; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.btn-icon { padding:.3rem .5rem; }

/* ---------- Forms ---------- */
.form-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1rem 1.2rem; }
.form-grid .full { grid-column:1/-1; }
label.flabel { display:block; font-size:.72rem; font-weight:700; color:var(--dark); margin-bottom:.3rem; text-transform:uppercase; letter-spacing:.03em; }
.form-control { width:100%; padding:.55rem .75rem; border:1px solid #dee2e6; border-radius:var(--radius); font-size:.85rem; color:var(--text); background:#fff; transition:border-color .15s, box-shadow .15s; }
.form-control:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 2px rgba(225,18,36,.15); }
textarea.form-control { resize:vertical; min-height:70px; }
.input-inline { display:flex; gap:.6rem; align-items:center; }
.req::after { content:' *'; color:var(--danger); }

/* ---------- Alerts ---------- */
.alert { padding:.85rem 1.2rem; border-radius:var(--radius); margin-bottom:1rem; font-weight:600; color:#fff; }
.alert-success { background:linear-gradient(87deg,#2dce89 0,#2dcecc 100%); }
.alert-danger { background:linear-gradient(87deg,#f5365c 0,#f56036 100%); }
.alert-warning { background:linear-gradient(87deg,#fb6340 0,#fbb140 100%); }
.alert-info { background:linear-gradient(87deg,#11cdef 0,#1171ef 100%); }

/* ---------- Login ---------- */
body.login-page { background:linear-gradient(150deg,#45484d 0%,#8c9096 35%,#d70015 100%); min-height:100vh; display:flex; align-items:center; justify-content:center; }
.login-card { width:100%; max-width:400px; background:#fff; border-radius:.5rem; box-shadow:0 15px 35px rgba(50,50,93,.2); padding:2.2rem 2rem; margin:1rem; }
.login-brand { text-align:center; font-size:1.6rem; font-weight:800; color:var(--dark); margin-bottom:.3rem; }
.login-brand b { color:var(--danger); }
.login-sub { text-align:center; color:var(--muted); margin-bottom:1.6rem; }

/* ---------- Utilitaires ---------- */
.d-inline { display:inline; } .d-flex { display:flex; } .flex-wrap { flex-wrap:wrap; }
.gap-2 { gap:.6rem; } .align-center { align-items:center; } .justify-between { justify-content:space-between; }
.mt-1 { margin-top:.5rem; } .mt-2 { margin-top:1rem; } .mt-3 { margin-top:1.5rem; }
.mb-0 { margin-bottom:0; } .mb-2 { margin-bottom:1rem; }
.text-right { text-align:right; } .text-center { text-align:center; }
.text-muted { color:var(--muted); } .text-danger { color:var(--danger); } .text-success { color:var(--success); }
.text-primary { color:var(--primary); } .text-info { color:var(--info); } .text-orange { color:var(--orange); }
.text-purple { color:var(--purple); } .text-teal { color:var(--teal); } .text-yellow { color:#d4a600; }
.text-red { color:var(--danger); } .text-green { color:var(--success); } .text-dark { color:var(--dark); }
.small { font-size:.76rem; } .fw-bold { font-weight:700; } .nowrap { white-space:nowrap; }
.w-100 { width:100%; }
.totaux-box { max-width:340px; margin-left:auto; }
.totaux-box table { width:100%; }
.totaux-box td { padding:.35rem .6rem; }
.totaux-box tr.grand td { font-weight:800; color:var(--dark); border-top:2px solid var(--dark); font-size:.95rem; }

/* Lignes de documents */
#lignes-table select, #lignes-table input { min-width:70px; }
#lignes-table td { padding:.35rem .4rem; }
.searchbar { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.searchbar .form-control { width:auto; min-width:190px; }

/* Pagination */
.pagination { display:flex; gap:.3rem; padding:1rem 1.5rem; }
.pagination a,.pagination span { padding:.35rem .7rem; border-radius:var(--radius); border:1px solid #dee2e6; color:var(--text); font-size:.78rem; }
.pagination .cur { background:var(--primary); color:#fff; border-color:var(--primary); }

/* Calendrier */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-cell { background:#fff; min-height:96px; padding:.35rem .45rem; border:1px solid #e9ebee; border-radius:4px; font-size:.72rem; }
.cal-cell.other { background:#f7f8f9; color:#c3c9d5; }
.cal-cell .dnum { font-weight:700; color:var(--dark); }
.cal-cell.today .dnum { background:var(--primary); color:#fff; border-radius:50%; padding:.1rem .38rem; }
.cal-evt { display:block; margin-top:2px; padding:.15rem .35rem; border-radius:3px; background:#fcd3d7; color:#b50e1c; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-evt.brouillon { background:#e9ecef; color:#6b7a90; }
.cal-evt.sortie { background:#ffe3c8; color:#c05600; }
.cal-head { background:#f5f6f7; text-align:center; font-weight:700; font-size:.68rem; text-transform:uppercase; color:var(--muted); padding:.4rem 0; }

/* Impression */
@media print {
  .sidenav,.topnav,.header-gradient,.footer-app,.no-print { display:none !important; }
  .main-content { margin:0; }
  .container-app { margin-top:0; padding:0; }
  .card { box-shadow:none; margin:0; }
  body { background:#fff; }
}

/* Responsive */
@media (max-width: 900px) {
  .sidenav { transform:translateX(-100%); }
  .sidenav.open { transform:translateX(0); }
  .main-content { margin-left:0; }
  .menu-toggle { display:block; }
}
