:root{--black:#050706;--dark:#0a0d0b;--card:#101411;--border:#1d231e;--accent:#b7ff00;--accent2:#ff4d00;--accent3:#00c2ff;--text:#f3f6f3;--muted:#9ca49e;--green:#39ff14;}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--black);color:var(--text);font-family:'DM Sans',system-ui,sans-serif;min-height:100vh;overflow-x:hidden;}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(183,255,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(183,255,0,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:0;}
.container{max-width:1200px;margin:0 auto;padding:0 24px 72px;position:relative;z-index:1;}
a{color:inherit;}
/* ---- topbar commun ---- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);position:relative;z-index:2;}
.topbar .brand{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:1px;color:var(--text);text-decoration:none;}
.topbar .brand span{color:var(--accent);}
.topbar-actions{display:flex;gap:14px;align-items:center;font-family:'Space Mono',monospace;font-size:12px;}
.topbar-actions a,.topbar-actions button{color:var(--muted);background:none;border:none;cursor:pointer;font:inherit;text-decoration:none;}
.topbar-actions a:hover,.topbar-actions button:hover{color:var(--accent);}
.topbar-actions .u{color:var(--text);}
/* ---- boutons ---- */
.btn{display:inline-block;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:13px 22px;border-radius:3px;border:1px solid var(--accent);background:var(--accent);color:var(--black);font-weight:700;cursor:pointer;text-decoration:none;transition:.2s;}
.btn:hover{background:transparent;color:var(--accent);}
.btn.ghost{background:transparent;color:var(--accent);}
.btn.ghost:hover{background:var(--accent);color:var(--black);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn.sm{padding:8px 14px;font-size:10px;}
/* ---- header programme ---- */
header.prog{padding:40px 0 28px;border-bottom:1px solid var(--border);margin-bottom:36px;}
.header-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.tag{font-family:'Space Mono',monospace;font-size:11px;color:var(--accent);letter-spacing:3px;text-transform:uppercase;margin-bottom:12px;}
h1.prog{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,8vw,84px);line-height:.9;letter-spacing:-1px;}
h1.prog span{color:var(--accent);}
.stats-row{display:flex;gap:28px;align-items:center;flex-wrap:wrap;}
.stat{text-align:right;}
.stat-val{font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--accent);line-height:1;}
.stat-label{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;font-family:'Space Mono',monospace;}
.nav-tabs{display:flex;gap:4px;margin-bottom:36px;background:var(--dark);padding:4px;border-radius:4px;border:1px solid var(--border);flex-wrap:wrap;}
.tab-btn{flex:1;min-width:100px;padding:12px 16px;background:transparent;border:none;color:var(--muted);font-family:'Space Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:.2s;}
.tab-btn.active{background:var(--accent);color:var(--black);font-weight:700;}
.tab-btn:hover:not(.active){color:var(--text);background:var(--border);}
.panel{display:none;}.panel.active{display:block;}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:38px;margin-bottom:8px;display:flex;align-items:center;gap:16px;}
.section-title .line{flex:1;height:1px;background:linear-gradient(90deg,var(--accent),transparent);}
.section-sub{color:var(--muted);font-size:13px;margin-bottom:28px;font-family:'Space Mono',monospace;}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;}
.kpi{background:var(--card);border:1px solid var(--border);padding:18px 20px;border-radius:4px;}
.kpi-val{font-family:'Bebas Neue',sans-serif;font-size:36px;color:var(--accent);line-height:1;}
.kpi-label{font-family:'Space Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-top:4px;}
.note-box{background:rgba(183,255,0,.05);border:1px solid rgba(183,255,0,.2);border-radius:4px;padding:16px 20px;font-size:14px;line-height:1.7;margin-top:16px;color:#ccc;}
.note-box.warn{background:rgba(255,77,0,.08);border-color:rgba(255,77,0,.35);}
.note-box strong{color:var(--accent);}
.seance-grid{display:grid;gap:14px;}
.seance-card{background:var(--card);border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.seance-header{padding:16px 24px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;cursor:pointer;transition:.2s;}
.seance-header:hover{background:rgba(183,255,0,.03);}
.seance-name{font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:1px;}
.seance-detail{display:none;padding:0 24px 20px;border-top:1px solid var(--border);}
.seance-detail.open{display:block;}
table{width:100%;border-collapse:collapse;margin-top:16px;font-size:13px;}
th{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);}
td{padding:10px 12px;border-bottom:1px solid #1a1a1a;}tr:last-child td{border-bottom:none;}
.chevron{font-size:12px;color:var(--muted);transition:transform .2s;}.chevron.open{transform:rotate(180deg);color:var(--accent);}
.badge{display:inline-block;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;padding:4px 10px;border-radius:2px;margin:0 6px 6px 0;}
.badge-orange{background:rgba(255,77,0,.15);color:var(--accent2);border:1px solid rgba(255,77,0,.3);}
.badge-blue{background:rgba(0,194,255,.1);color:var(--accent3);border:1px solid rgba(0,194,255,.3);}
.badge-yellow{background:rgba(183,255,0,.1);color:var(--accent);border:1px solid rgba(183,255,0,.3);}
.badge-green{background:rgba(57,255,20,.1);color:var(--green);border:1px solid rgba(57,255,20,.3);}
.macro-bar-wrap{margin-bottom:14px;}
.macro-bar-label{display:flex;justify-content:space-between;margin-bottom:6px;font-family:'Space Mono',monospace;font-size:11px;}
.macro-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden;}
.macro-fill{height:100%;border-radius:4px;transition:width 1s ease;}
.fill-p{background:var(--accent2);}.fill-g{background:var(--accent3);}.fill-f{background:var(--accent);}
.meals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0;}
.meal-card{background:var(--card);border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.meal-header{padding:14px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);}
.meal-title{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1px;}
.meal-time{font-family:'Space Mono',monospace;font-size:10px;color:var(--accent);}
.meal-body{padding:14px 20px;font-size:13px;line-height:1.5;color:#ccc;}
.timeline{position:relative;padding-left:40px;margin-bottom:40px;}
.timeline::before{content:'';position:absolute;left:14px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,var(--accent),transparent);}
.tl-item{position:relative;margin-bottom:24px;background:var(--card);border:1px solid var(--border);border-radius:4px;padding:18px 22px;}
.tl-dot{position:absolute;left:-32px;top:22px;width:12px;height:12px;background:var(--accent);border-radius:50%;border:2px solid var(--black);}
.tl-month{font-family:'Bebas Neue',sans-serif;font-size:20px;color:var(--accent);margin-bottom:4px;}
.tl-desc{font-size:13px;color:var(--muted);line-height:1.6;}
.empty{text-align:center;padding:80px 20px;color:var(--muted);font-family:'Space Mono',monospace;}
.actions-bar{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 32px;}
/* ---- cartes / formulaires generiques ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:28px;}
label.field{display:block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:16px;}
label.field input,label.field select,label.field textarea{width:100%;margin-top:7px;background:var(--dark);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:11px 12px;font:inherit;}
label.field input:focus,label.field select:focus{outline:none;border-color:var(--accent);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
.msg{font-family:'Space Mono',monospace;font-size:12px;padding:10px 14px;border-radius:4px;margin:12px 0;display:none;}
.msg.show{display:block;}
.msg.err{background:rgba(255,77,0,.1);border:1px solid rgba(255,77,0,.4);color:#ff9a6b;}
.msg.ok{background:rgba(57,255,20,.08);border:1px solid rgba(57,255,20,.4);color:var(--green);}
.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:sp 1s linear infinite;vertical-align:middle;}
@keyframes sp{to{transform:rotate(360deg);}}
input.edit{background:var(--dark);border:1px solid var(--border);border-radius:3px;color:var(--text);padding:6px 8px;font:inherit;font-size:13px;width:100%;}
input.edit:focus{outline:none;border-color:var(--accent);}
/* ---- blocs seance (abdos / circuit) + equivalences ---- */
.bloc-title{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;color:var(--accent3);margin-top:22px;padding-top:14px;border-top:1px dashed var(--border);}
.eq-table td{vertical-align:top;line-height:1.8;}
.jour-card .seance-header{padding:12px 20px;}

/* =========================================================
   PDF / IMPRESSION — template sombre "new pdf theme"
   (activer "Graphiques d'arriere-plan" dans la boite d'impression)
   ========================================================= */
.print-only{display:none;}
@media print{
  @page{margin:12mm 10mm;}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  html,body{background:#0b0d0a!important;color:var(--text)!important;font-size:10.5pt;}
  body::before{display:none;}
  .container{max-width:none;padding:0 6mm;}
  .topbar,.nav-tabs,.actions-bar,.no-print,.chevron,.save-bar,header.prog{display:none!important;}
  .print-only{display:block;}

  /* ---- COUVERTURE (page 1) ---- */
  .print-cover{page-break-after:always;padding:26mm 6mm 0;}
  .pc-kicker{font-family:'Space Mono',monospace;font-size:9pt;color:var(--accent);letter-spacing:3px;text-transform:uppercase;margin-bottom:10mm;}
  .pc-title{font-family:'Bebas Neue',sans-serif;font-size:52pt;line-height:.92;letter-spacing:-1px;color:var(--text);margin:0 0 10mm;}
  .pc-title span{color:var(--accent);}
  .pc-line{height:2px;background:var(--accent);margin-bottom:8mm;}
  .pc-stats{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--border);background:var(--card);margin-bottom:12mm;}
  .pc-stat{padding:6mm 4mm;border-right:1px solid var(--border);}
  .pc-stat:last-child{border-right:none;}
  .pc-stat strong{display:block;font-family:'Bebas Neue',sans-serif;font-size:17pt;color:var(--accent);}
  .pc-stat span{font-family:'Space Mono',monospace;font-size:6pt;letter-spacing:1px;color:var(--muted);text-transform:uppercase;}
  .pc-toc h2{font-family:'Bebas Neue',sans-serif;font-size:20pt;color:var(--accent);letter-spacing:1px;margin-bottom:5mm;}
  .pc-toc ul{list-style:none;padding:0;margin:0;}
  .pc-toc li{font-size:11pt;padding:2.6mm 0;border-bottom:1px solid var(--border);color:var(--text);}
  .pc-toc li b{color:var(--accent);font-family:'Space Mono',monospace;margin-right:4mm;}

  /* ---- PIED DE PAGE (toutes les pages) ---- */
  .print-footer{position:fixed;bottom:-9mm;left:0;right:0;text-align:center;font-family:'Space Mono',monospace;font-size:6.5pt;letter-spacing:2px;color:var(--muted);text-transform:uppercase;}

  /* ---- SECTIONS NUMEROTEES, une par page ---- */
  body{counter-reset:section;}
  .panel{display:block!important;page-break-before:always;padding-top:4mm;}
  .panel > .section-title:first-of-type{counter-increment:section;}
  .panel > .section-title:first-of-type::before{content:counter(section) ". ";color:var(--text);}
  .section-title{color:var(--text);font-size:24pt;border-top:2px solid var(--accent);padding-top:5mm;}
  .section-title .line{background:linear-gradient(90deg,var(--accent),transparent);}
  .section-sub{color:var(--accent);}

  /* ---- cartes depliees, style sombre conserve ---- */
  .seance-detail{display:block!important;}
  .seance-header{cursor:default;}
  .card,.kpi,.seance-card,.meal-card,.tl-item,.note-box{background:var(--card)!important;border-color:var(--border)!important;border-radius:0;}
  .kpi-val,.stat-val,.tl-month,.note-box strong,.meal-time{color:var(--accent)!important;}
  .kpi,.meal-card,.tl-item,.note-box,tr{page-break-inside:avoid;}
  .seance-card{page-break-inside:auto;}

  /* ---- tableaux façon template ---- */
  table{font-size:9pt;}
  th{color:var(--muted)!important;border-bottom:1.5px solid var(--accent);}
  td{border-bottom:.5px solid #232823;color:var(--text)!important;}
  tr:nth-child(even) td{background:rgba(255,255,255,.025);}
  .bloc-title{color:var(--accent);border-top:1px dashed #2c332c;}
  .badge{border:1px solid var(--accent)!important;background:transparent!important;color:var(--accent)!important;}
  .badge-blue{border-color:var(--accent3)!important;color:var(--accent3)!important;}
  .macro-bar{background:#1a1f1a;}
  .note-box.warn{border-color:var(--accent2)!important;}
  a{text-decoration:none;color:inherit;}
}