:root{--bg:#f3f7fb;--card:#ffffff;--text:#102331;--muted:#64748b;--line:#dbe5ef;--primary:#005162;--primary2:#0f766e;--danger:#b91c1c;--warn:#b7791f;--ok:#047857;}
*{box-sizing:border-box} body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.app{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,#005162,#112731);color:white;padding:18px;position:fixed;top:0;bottom:0;left:0;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:26px}.brand-logo{background:#fff;color:#005162;font-weight:bold;border-radius:16px;width:58px;height:58px;display:flex;align-items:center;justify-content:center}.brand-title{font-size:18px;font-weight:bold}.brand-subtitle{font-size:12px;opacity:.75}.sidebar nav a{display:block;color:white;text-decoration:none;padding:12px 14px;border-radius:12px;margin:5px 0;opacity:.88}.sidebar nav a:hover{background:rgba(255,255,255,.12);opacity:1}.main{margin-left:270px;width:calc(100% - 270px)}.topbar{height:64px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:2}.content{padding:22px}.muted{color:var(--muted);font-size:12px;margin-left:8px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 8px 22px rgba(15,23,42,.04)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{padding:18px;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line)}.kpi .num{font-size:28px;font-weight:bold;color:var(--primary)}.kpi .label{color:var(--muted);margin-top:5px}h1{margin:0 0 16px 0;font-size:26px}h2{margin:0 0 12px 0;font-size:20px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.btn{display:inline-block;padding:9px 13px;border-radius:10px;text-decoration:none;border:1px solid var(--line);background:white;color:var(--text);cursor:pointer;font-size:14px}.btn-primary{background:var(--primary);border-color:var(--primary);color:white}.btn-ok{background:var(--ok);border-color:var(--ok);color:white}.btn-danger{background:var(--danger);border-color:var(--danger);color:white}.btn-warn{background:var(--warn);border-color:var(--warn);color:white}table{width:100%;border-collapse:collapse;background:white}th,td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}th{font-size:12px;text-transform:uppercase;color:#475569;background:#f8fafc}tr:hover td{background:#fbfdff}input,select,textarea{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:white;font-size:14px}textarea{min-height:90px}.form-row{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:center;margin-bottom:12px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#e2e8f0}.badge-info{background:#dbeafe;color:#1e3a8a}.badge-ok{background:#dcfce7;color:#166534}.badge-warn{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tabs a{padding:8px 10px;border-radius:10px;text-decoration:none;background:#eaf2f6;color:#005162}.notice{padding:12px;border-radius:12px;background:#eef9ff;border:1px solid #bae6fd;margin-bottom:12px}.error{padding:12px;border-radius:12px;background:#fff1f2;border:1px solid #fecdd3;color:#991b1b;margin-bottom:12px}.success{padding:12px;border-radius:12px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;margin-bottom:12px}.print-only{display:none}@media(max-width:900px){.sidebar{position:static;width:100%}.app{display:block}.main{margin-left:0;width:100%}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.topbar{position:static}}@media print{.sidebar,.topbar,.actions,.no-print{display:none!important}.main{margin:0;width:100%}.content{padding:0}.card{box-shadow:none;border:0}.print-only{display:block}}

small{display:block;color:#64748b;margin-top:4px}.success{background:#ecfdf5;border:1px solid #10b981;color:#065f46;padding:12px;border-radius:12px;margin:12px 0}.notice{background:#eff6ff;border:1px solid #93c5fd;color:#1e3a8a;padding:12px;border-radius:12px;margin:12px 0}

/* V2.3 - rapport enrichi */
.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.report-cover{border-left:6px solid var(--primary)}
.report-intro-sheet{background:linear-gradient(180deg,#ffffff,#f8fbfd)}
.sheet-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}
.sheet-subtitle{margin:0;color:var(--muted)}
.stage-facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fact-box{background:linear-gradient(180deg,#f9fcfd,#f3f8fb);border:1px solid var(--line);border-radius:16px;padding:14px}
.fact-box-wide{grid-column:span 2}
.fact-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:8px;font-weight:bold}
.fact-value{font-size:15px;font-weight:bold;color:#0f172a;line-height:1.45}
.fact-copy{font-weight:normal}
.stage-cover{min-height:78vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b4352 0%,#112731 55%,#1b4552 100%);color:#fff;border:0;box-shadow:none}
.cover-inner{text-align:center;max-width:760px;padding:40px 30px}
.cover-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:12px;opacity:.82;margin-bottom:12px}
.cover-type{display:inline-block;padding:8px 14px;border:1px solid rgba(255,255,255,.25);border-radius:999px;margin-bottom:22px;background:rgba(255,255,255,.08)}
.stage-cover h1{font-size:42px;line-height:1.18;margin:0 0 20px 0;color:#fff}
.cover-meta,.cover-location{font-size:22px;line-height:1.5}
.cover-location{opacity:.86;margin-top:6px}
.cover-badges{margin-top:28px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.cover-badges .badge{padding:8px 14px;font-size:13px;border:1px solid rgba(255,255,255,.12)}
.stats-wrap{max-width:980px;margin:0 auto 10px auto}
.stats-wrap-narrow{max-width:820px}
.stats-grid{display:grid;gap:14px;justify-content:center}
.stats-grid-compact{grid-template-columns:repeat(3,minmax(180px,240px))}
.stats-grid-averages{grid-template-columns:repeat(5,minmax(130px,160px))}
.kpi-compact{padding:14px 16px;text-align:center;border-radius:16px}
.kpi-compact .num{font-size:24px}
.kpi-compact .label{font-size:12px}
.kpi-highlight{background:linear-gradient(180deg,#ecfeff,#dff7f4);border-color:#bfe9e1}
.athlete-section h2{border-bottom:2px solid var(--line);padding-bottom:10px;margin-bottom:16px}
table.compact th, table.compact td{padding:7px;font-size:12px}
table.two-col th{width:220px}.page-break{page-break-before:always}
@media(max-width:1200px){.stage-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fact-box-wide{grid-column:auto}.stats-grid-compact{grid-template-columns:repeat(2,minmax(180px,1fr))}.stats-grid-averages{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:1100px){.grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.grid-5,.stage-facts-grid,.stats-grid-compact,.stats-grid-averages{grid-template-columns:1fr}.stage-cover{min-height:auto}.stage-cover h1{font-size:28px}.cover-meta,.cover-location{font-size:18px}}
@media print{
  body{background:white;font-size:11px}
  .card{page-break-inside:auto;margin-bottom:10px;padding:8px;border-radius:0}
  .stage-cover{min-height:96vh;padding:0;background:linear-gradient(135deg,#0b4352 0%,#112731 55%,#1b4552 100%)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cover-inner{padding:20mm 14mm}
  .cover-kicker,.cover-type,.cover-meta,.cover-location,.cover-badges,.stage-cover h1{color:#fff!important}
  .cover-badges .badge{border-color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.10)!important;color:#fff!important}
  .athlete-section{page-break-before:always}
  .page-break{page-break-before:always}
  h1{font-size:22px} h2{font-size:17px} h3{font-size:14px;margin-top:12px} h4{font-size:12px;margin:10px 0 6px}
  th,td{padding:5px;font-size:10px}
  table.compact th, table.compact td{padding:4px;font-size:9px}
  .kpi{padding:8px;border-radius:8px}.kpi .num{font-size:18px}.kpi .label{font-size:10px}
  .stats-wrap{max-width:none}
  .stats-grid-compact{grid-template-columns:repeat(3,1fr)}
  .stats-grid-averages{grid-template-columns:repeat(5,1fr)}
}

/* V2.4 - formulaires terrain générés depuis le référentiel d'évaluation */
.field-form-page{background:white;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.field-form-page h1{text-align:center;font-size:21px;margin:0 0 4px 0;color:#0f172a;letter-spacing:.01em}
.field-form-subtitle{text-align:center;color:#475569;font-size:12px;margin-bottom:10px}
.field-form-info-grid{display:grid;grid-template-columns:1.15fr .75fr 1.1fr 1.2fr 1.05fr;gap:8px;margin:8px 0 8px 0}
.field-info-box{background:#f8fbfd;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;min-height:54px}
.field-info-box span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:bold;margin-bottom:7px}
.field-info-box strong{font-size:13px;color:#0f172a;line-height:1.25}
.field-scale{text-align:center;font-size:11px;color:#334155;margin:6px 0 8px 0}
.field-eval-table{width:100%;border-collapse:collapse;table-layout:fixed;background:white;border:1px solid #334155}
.field-eval-table th,.field-eval-table td{border:1px solid #64748b;padding:4px 5px;vertical-align:middle;line-height:1.12}
.field-eval-table th{font-size:11px;text-align:center;text-transform:none;background:#dceef3;color:#0f172a}
.field-eval-table td{font-size:10px;height:22px}
.field-eval-table .criteria-col{width:28%;text-align:left;font-weight:bold;color:#1f2937;background:#ffffff}
.field-eval-table .small-head{font-size:10px;text-align:center;background:#f8fafc}
.field-eval-table .rider-col{width:7.2%;height:30px;font-size:10px;font-weight:bold;text-align:center}
.field-eval-table .rider-col div{min-height:18px;overflow:hidden}
.field-eval-table .name-line{font-size:9px;height:22px;text-align:center;background:#f8fafc;color:#334155}
.field-eval-table .score-cell{text-align:center;height:22px}
.field-eval-table .section-row td{background:#e2e8f0!important;color:#0f172a;font-weight:bold;font-size:10px;text-transform:uppercase;height:22px;border-top:2px solid #475569}
.field-eval-table .summary-row td{height:26px}
.rider-color-1,.rider-color-2{background:#e53935!important;color:white!important}
.rider-color-3,.rider-color-4{background:#fdd835!important;color:#111!important}
.rider-color-5,.rider-color-6{background:#111!important;color:white!important}
.rider-color-7,.rider-color-8{background:#fff!important;color:#111!important;border-top:1px solid #94a3b8!important}
.rider-color-9,.rider-color-10{background:#1e88e5!important;color:white!important}
.rider-bg-1,.rider-bg-2{background:#fdecec!important}
.rider-bg-3,.rider-bg-4{background:#fff9db!important}
.rider-bg-5,.rider-bg-6{background:#f2f2f2!important}
.rider-bg-7,.rider-bg-8{background:#ffffff!important}
.rider-bg-9,.rider-bg-10{background:#eaf4ff!important}
/* V2.5.10 - impression formulaires terrain isolée.
   IMPORTANT : ce bloc ne doit s'appliquer qu'aux pages contenant .field-form-page,
   pour ne pas casser l'impression des rapports de stage. */
@media print{
  @page{size:A4 landscape;margin:4mm}

  .field-form-page{
    width:289mm!important;
    max-width:289mm!important;
    min-height:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:0!important;
    margin:0!important;
    page-break-after:avoid!important;
    page-break-inside:avoid!important;
  }

  body:has(.field-form-page){
    width:297mm;
    height:210mm;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:white!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  body:has(.field-form-page) .app,
  body:has(.field-form-page) .main,
  body:has(.field-form-page) .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  .field-form-page h1{
    font-size:15px!important;
    line-height:16px!important;
    margin:0 0 1.2mm 0!important;
    padding:0!important;
  }

  .field-form-subtitle{
    font-size:7.2px!important;
    line-height:8.2px!important;
    margin:0 0 1.2mm 0!important;
  }

  .field-form-info-grid{
    display:grid!important;
    grid-template-columns:1.2fr .7fr 1fr 1.15fr 1fr!important;
    gap:1.4mm!important;
    margin:1.2mm 0 1.2mm 0!important;
  }

  .field-info-box{
    min-height:9.5mm!important;
    border-radius:2px!important;
    padding:1.6mm 1.8mm!important;
    line-height:1!important;
  }

  .field-info-box span{
    font-size:6.1px!important;
    line-height:6.4px!important;
    margin:0 0 1mm 0!important;
  }

  .field-info-box strong{
    display:block!important;
    font-size:6.9px!important;
    line-height:7.4px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .field-scale{
    font-size:6.8px!important;
    line-height:7.2px!important;
    margin:1mm 0 1.2mm 0!important;
  }

  .field-eval-table{
    width:289mm!important;
    max-width:289mm!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    page-break-inside:avoid!important;
  }

  .field-eval-table th,
  .field-eval-table td{
    padding:.75mm .85mm!important;
    font-size:6.2px!important;
    line-height:6.8px!important;
    height:4.75mm!important;
    min-height:4.75mm!important;
    max-height:4.75mm!important;
    overflow:hidden!important;
  }

  .field-eval-table th{
    font-size:6.4px!important;
    line-height:6.8px!important;
  }

  .field-eval-table .criteria-col{
    width:26%!important;
    font-size:10.2px!important;
    line-height:10.8px!important;
  }

  .field-eval-table .rider-col{
    width:7.4%!important;
    height:6mm!important;
    max-height:6mm!important;
    font-size:6.2px!important;
    line-height:6.5px!important;
  }

  .field-eval-table .rider-col div{
    min-height:0!important;
    height:5mm!important;
    line-height:6.2px!important;
    overflow:hidden!important;
  }

  .field-eval-table .name-line{
    font-size:5.8px!important;
    line-height:6px!important;
    height:4.6mm!important;
    max-height:4.6mm!important;
  }

  .field-eval-table .section-row td{
    font-size:6.2px!important;
    line-height:6.6px!important;
    height:4.5mm!important;
    max-height:4.5mm!important;
    border-top:1px solid #475569!important;
    padding:.65mm .85mm!important;
  }

  .field-eval-table .summary-row td{
    height:5mm!important;
    max-height:5mm!important;
  }

  .field-eval-table tr{
    page-break-inside:avoid!important;
  }
}

/* V2.4.2: rangs plus hauts pour réduire l'espace vide en bas tout en tenant sur A4 paysage. */


/* V2.5 - Interface tablette évaluation live */
.live-tablet{background:#071923;color:#e5f7fb;min-height:calc(100vh - 110px);border-radius:22px;padding:18px}
.live-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}
.live-top h1{color:white;margin:0 0 6px 0;font-size:28px}
.live-context{color:#a7c9d3;font-size:14px}
.live-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.live-tab{border:1px solid rgba(255,255,255,.18);background:#0f2c38;color:#dff8ff;border-radius:14px;padding:11px 14px;text-decoration:none;cursor:pointer;font-weight:bold}
.live-tab.active,.live-tab:hover{background:#0ea5b7;color:white}
.live-tab.link{display:inline-block}.live-tab.muted-link{background:#1f2937}
.live-message{min-height:30px;margin:8px 0;font-weight:bold}
.live-message.ok{color:#86efac}.live-message.err{color:#fecaca}
.live-view{display:none}.live-view.active{display:block}
.live-panel-title{background:#0f2c38;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:14px;margin-bottom:12px}
.live-panel-title h2{color:white;margin:0 0 6px}.live-panel-title p{margin:0;color:#a7c9d3}
.lycra-list{display:grid;gap:10px}
.lycra-row{display:grid;grid-template-columns:260px 1fr;gap:12px;align-items:center;background:#0b2530;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px}
.lycra-name strong{display:block;color:white;font-size:17px}.lycra-name span{display:block;color:#a7c9d3;font-size:12px;margin-top:4px}
.lycra-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.lycra-btn,.color-choice{border:2px solid transparent;border-radius:16px;min-height:58px;font-size:16px;font-weight:bold;cursor:pointer;box-shadow:0 6px 12px rgba(0,0,0,.18)}
.lycra-btn.selected,.color-choice.active{outline:4px solid #22d3ee;transform:translateY(-1px)}
.lycra-red{background:#e53935!important;color:white!important}.lycra-yellow{background:#fdd835!important;color:#111!important}.lycra-black{background:#111!important;color:white!important}.lycra-white{background:white!important;color:#111!important;border-color:#94a3b8!important}.lycra-blue{background:#1e88e5!important;color:white!important}
.live-bottom-actions{display:flex;justify-content:flex-end;margin-top:14px}
.live-grid{display:grid;grid-template-columns:1.05fr 1fr 1.45fr 1fr;gap:12px}
.live-step{background:#0b2530;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:12px}
.live-step h2{color:white;margin:0 0 10px;font-size:18px}
.color-pad,.score-pad{display:grid;gap:8px}
.color-choice{min-height:70px;font-size:18px}
.selected-info{color:#a7c9d3;margin-bottom:8px;font-weight:bold}
.rider-pad{display:grid;gap:8px}
.rider-choice{background:#123544;color:white;border:1px solid rgba(255,255,255,.15);border-radius:15px;padding:13px;text-align:left;cursor:pointer;min-height:58px}
.rider-choice strong{display:block;font-size:16px}.rider-choice span{display:block;color:#a7c9d3;font-size:12px;margin-top:4px}
.rider-choice.active{background:#0ea5b7;outline:3px solid #67e8f9}
.type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.type-tab{background:#123544;color:#e5f7fb;border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:12px;cursor:pointer;font-weight:bold}
.type-tab.active{background:#0ea5b7;color:white}
.criteria-pad{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:62vh;overflow:auto;padding-right:3px}
.criteria-btn{background:#eaf6fa;color:#0f172a;border:0;border-radius:14px;padding:11px 8px;min-height:48px;font-weight:bold;cursor:pointer}
.criteria-btn.active{background:#22d3ee;outline:3px solid white}
.previous-score{background:#123544;border-radius:14px;padding:12px;text-align:center;color:#dff8ff;font-weight:bold;margin-bottom:10px}
.score-pad{grid-template-columns:repeat(5,1fr)}
.score-choice{background:#eaf6fa;color:#0f172a;border:0;border-radius:16px;min-height:62px;font-size:26px;font-weight:bold;cursor:pointer}
.score-choice.active{background:#22c55e;color:white;outline:4px solid #bbf7d0}
.score-choice.previous{background:#f59e0b;color:#111}
#liveComment{margin-top:10px;background:#f8fafc;color:#111;min-height:70px;border-radius:14px}
.validate-pad{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.big-action{border:0;border-radius:18px;min-height:58px;font-weight:bold;font-size:17px;cursor:pointer}
.big-action.primary{background:#22c55e;color:white}.big-action.cancel{background:#ef4444;color:white}
.live-color-badge{display:inline-block;border-radius:999px;padding:6px 10px;font-weight:bold;font-size:12px}
@media(max-width:1100px){.live-top{display:block}.live-tabs{justify-content:flex-start;margin-top:12px}.live-grid{grid-template-columns:1fr}.lycra-row{grid-template-columns:1fr}.criteria-pad{max-height:none}}
@media print{.live-tablet{background:white;color:#111;padding:0}.live-top,.live-tabs,.live-message,.live-bottom-actions{display:none!important}}


/* V2.5.5 - Formulaire imprimable des tests physiques */
.field-tests-page .field-scale{font-weight:bold;color:#0f172a}
.field-tests-table .summary-row td{height:30px}
@media print{
  .field-tests-table th,
  .field-tests-table td{
    height:8.5mm!important;
    min-height:8.5mm!important;
    max-height:8.5mm!important;
    font-size:6.7px!important;
    line-height:7.1px!important;
  }
  .field-tests-table .section-row td{
    height:5mm!important;
    max-height:5mm!important;
  }
  .field-tests-table .summary-row td{
    height:9mm!important;
    max-height:9mm!important;
  }
}


/* V2.5.6 - Page de garde rapport inspirée du modèle PowerPoint fourni */
.report-template-cover{min-height:78vh;background:#f5f2ea!important;color:#2f3437!important;border:0;box-shadow:none;display:block;position:relative;overflow:hidden}
.report-template-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 30%),radial-gradient(circle at 80% 70%,rgba(0,0,0,.035),transparent 35%),linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(0deg,rgba(0,0,0,.018) 1px,transparent 1px);background-size:auto,auto,7px 7px,9px 9px;opacity:.65;pointer-events:none}.cover-paper-inner{position:relative;z-index:1;padding:86px 54px 64px 54px;min-height:78vh}.cover-doc-title{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:22px;color:#3f4245;margin-bottom:10px}.cover-thin-line{height:1px;background:rgba(90,90,90,.25);width:100%;margin-bottom:28px}.cover-center-block{display:grid;grid-template-columns:1.2fr 1px 1fr;gap:36px;align-items:center;min-height:160px;margin-top:18px}.cover-left-block{text-align:left;padding-left:5px}.cover-federation{font-size:20px;line-height:1.4;color:#2f3437;margin-bottom:14px}.cover-report-title{font-size:30px;font-weight:800;letter-spacing:.05em;color:#111827;text-transform:uppercase;line-height:1.15}.cover-separator{height:120px;background:rgba(90,90,90,.25);width:1px;justify-self:center}.cover-right-block{font-size:17px;line-height:1.9;color:#2f3437}.cover-field span{font-weight:700;color:#111827}.cover-field strong{font-weight:500}.cover-bottom-line{margin-top:28px;margin-bottom:0}.stage-cover.report-template-cover h1{color:#111827!important}.stage-cover.report-template-cover .badge{color:#111!important}
@media(max-width:900px){.cover-paper-inner{padding:34px 22px}.cover-center-block{grid-template-columns:1fr;gap:16px}.cover-separator{display:none}.cover-report-title{font-size:24px}.cover-federation{font-size:16px}.cover-doc-title{font-size:18px}}
@media print{.report-template-cover{min-height:96vh!important;background:#f5f2ea!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-template-cover:before{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cover-paper-inner{padding:26mm 18mm 18mm 18mm!important;min-height:96vh!important}.cover-doc-title{font-size:18pt!important;color:#3f4245!important}.cover-thin-line{background:rgba(90,90,90,.35)!important}.cover-center-block{grid-template-columns:1.2fr 1px 1fr!important;gap:16mm!important;min-height:48mm!important}.cover-federation{font-size:15pt!important;color:#2f3437!important}.cover-report-title{font-size:22pt!important;color:#111827!important}.cover-separator{display:block!important;height:34mm!important;background:rgba(90,90,90,.35)!important}.cover-right-block{font-size:12pt!important;color:#2f3437!important}.cover-field span{color:#111827!important}}


/* V2.5.7 - Page de garde rapport de stage inspirée du template PowerPoint */
.report-template-cover-v2{
  min-height:92vh;
  background:#f4efe6!important;
  color:#263238!important;
  border:0;
  box-shadow:none;
  padding:28px 28px 34px 28px;
  position:relative;
  overflow:hidden;
}
.report-template-cover-v2:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.18)),
    linear-gradient(90deg, rgba(0,0,0,.025) 1px, transparent 1px),
    linear-gradient(0deg, rgba(0,0,0,.02) 1px, transparent 1px);
  background-size:auto, 8px 8px, 8px 8px;
  pointer-events:none;
  opacity:.5;
}
.cover-v2-header,
.cover-v2-photo-wrap,
.cover-v2-meta{position:relative; z-index:1}
.cover-v2-header{margin-bottom:20px}
.cover-v2-brand{display:flex; align-items:center; gap:16px}
.cover-v2-logo{
  width:84px;
  height:84px;
  object-fit:contain;
  background:transparent;
  flex:0 0 auto;
}
.cover-v2-brand-lines{display:flex; flex-direction:column; gap:6px}
.cover-v2-org{
  font-size:24px;
  font-weight:500;
  color:#1f2937;
  line-height:1.15;
}
.cover-v2-doc{
  font-size:18px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:800;
  color:#0b4352;
}
.cover-v2-photo-wrap{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  min-height:320px;
  background:#d8e3e8;
  border:1px solid rgba(17,24,39,.08);
  box-shadow:0 18px 35px rgba(15,23,42,.10);
}
.cover-v2-photo{
  width:100%;
  height:320px;
  object-fit:cover;
  display:block;
}
.cover-v2-photo-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(11,67,82,.78) 0%, rgba(11,67,82,.46) 36%, rgba(17,39,49,.18) 100%);
}
.cover-v2-photo-caption{
  position:absolute;
  left:28px;
  right:28px;
  bottom:28px;
  color:white;
}
.cover-v2-stage-title{
  font-size:34px;
  line-height:1.1;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:8px;
  text-shadow:0 3px 14px rgba(0,0,0,.25);
}
.cover-v2-stage-subtitle{
  font-size:18px;
  font-weight:500;
  opacity:.96;
  text-shadow:0 2px 10px rgba(0,0,0,.2);
}
.cover-v2-meta{
  margin-top:24px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(17,24,39,.08);
  border-radius:16px;
  padding:20px 24px;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}
.cover-v2-meta-row{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid rgba(17,24,39,.08);
  align-items:center;
}
.cover-v2-meta-row:last-child{border-bottom:0}
.cover-v2-meta-label{
  font-size:16px;
  font-weight:800;
  color:#0b4352;
}
.cover-v2-meta-value{
  font-size:18px;
  font-weight:600;
  color:#111827;
}
@media(max-width:900px){
  .report-template-cover-v2{padding:20px}
  .cover-v2-brand{align-items:flex-start}
  .cover-v2-logo{width:68px;height:68px}
  .cover-v2-org{font-size:18px}
  .cover-v2-doc{font-size:14px;letter-spacing:.12em}
  .cover-v2-photo{height:240px}
  .cover-v2-stage-title{font-size:24px}
  .cover-v2-stage-subtitle{font-size:15px}
  .cover-v2-meta-row{grid-template-columns:1fr;gap:6px}
}
@media print{
  .report-template-cover-v2{
    min-height:96vh!important;
    background:#f4efe6!important;
    padding:12mm 12mm 12mm 12mm!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .report-template-cover-v2:before{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v2-header{margin-bottom:7mm!important}
  .cover-v2-logo{width:22mm!important;height:22mm!important}
  .cover-v2-org{font-size:16pt!important;color:#1f2937!important}
  .cover-v2-doc{font-size:12pt!important;color:#0b4352!important}
  .cover-v2-photo-wrap{
    min-height:78mm!important;
    border-radius:5mm!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v2-photo{
    height:78mm!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v2-photo-overlay{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v2-photo-caption{
    left:8mm!important;
    right:8mm!important;
    bottom:8mm!important;
  }
  .cover-v2-stage-title{font-size:22pt!important;color:#fff!important}
  .cover-v2-stage-subtitle{font-size:12pt!important;color:#fff!important}
  .cover-v2-meta{
    margin-top:8mm!important;
    padding:6mm 7mm!important;
    border-radius:4mm!important;
    background:rgba(255,255,255,.82)!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v2-meta-row{
    grid-template-columns:52mm 1fr!important;
    gap:4mm!important;
    padding:3.4mm 0!important;
  }
  .cover-v2-meta-label{font-size:11pt!important;color:#0b4352!important}
  .cover-v2-meta-value{font-size:12pt!important;color:#111827!important}
}


/* V2.5.9 - Page de garde alignée sur le template fourni */
.report-template-cover-v3{
  min-height:94vh;
  background:#f5f3ee!important;
  box-shadow:none!important;
  border:0!important;
  padding:28px 34px 24px 34px!important;
  color:#222;
  position:relative;
  font-family:Georgia, "Times New Roman", serif;
}
.cover-v3-photo-frame{
  width:100%;
  background:#fff;
  padding:6px;
  border:1px solid #dedbd4;
  box-shadow:0 3px 10px rgba(0,0,0,.10);
  box-sizing:border-box;
}
.cover-v3-photo{
  display:block;
  width:100%;
  height:330px;
  object-fit:cover;
}
.cover-v3-frms-line{
  margin-top:18px;
  font-size:24px;
  line-height:1.2;
  font-style:italic;
  color:#4f4a45;
}
.cover-v3-separator,
.cover-v3-bottom-separator{
  margin-top:14px;
  height:1px;
  background:#d9d4cc;
}
.cover-v3-main{
  margin-top:28px;
  display:grid;
  grid-template-columns:1.15fr 1px .85fr;
  gap:36px;
  align-items:start;
}
.cover-v3-title{
  font-size:82px;
  line-height:.96;
  letter-spacing:-.025em;
  color:#e64a36;
  font-weight:500;
}
.cover-v3-divider{
  background:#cfc8bd;
  min-height:250px;
}
.cover-v3-meta-block{
  padding-top:18px;
}
.cover-v3-meta-item{
  margin-bottom:34px;
}
.cover-v3-meta-item-last{
  margin-top:52px;
}
.cover-v3-label{
  display:block;
  font-size:32px;
  line-height:1.15;
  color:#403d39;
}
.cover-v3-value{
  display:block;
  margin-top:10px;
  font-size:25px;
  line-height:1.2;
  color:#222;
  min-height:30px;
}
@media (max-width: 1200px){
  .cover-v3-photo{height:260px}
  .cover-v3-main{grid-template-columns:1fr; gap:20px}
  .cover-v3-divider{display:none}
  .cover-v3-title{font-size:54px}
  .cover-v3-label{font-size:24px}
  .cover-v3-value{font-size:20px}
}
@media print{
  .report-template-cover-v3{
    min-height:96vh!important;
    padding:9mm 10mm 8mm 10mm!important;
    background:#f5f3ee!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v3-photo-frame{
    padding:1.6mm!important;
    border:0.35mm solid #dedbd4!important;
    box-shadow:none!important;
    background:#fff!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v3-photo{
    height:72mm!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cover-v3-frms-line{
    margin-top:5mm!important;
    font-size:12pt!important;
    color:#4f4a45!important;
  }
  .cover-v3-separator,
  .cover-v3-bottom-separator{
    margin-top:4mm!important;
    height:0.4mm!important;
    background:#d9d4cc!important;
  }
  .cover-v3-main{
    margin-top:8mm!important;
    grid-template-columns:1.12fr 0.4mm .88fr!important;
    gap:8mm!important;
  }
  .cover-v3-title{
    font-size:39pt!important;
    line-height:.95!important;
    color:#e64a36!important;
  }
  .cover-v3-divider{
    min-height:54mm!important;
    background:#cfc8bd!important;
  }
  .cover-v3-meta-block{
    padding-top:3mm!important;
  }
  .cover-v3-meta-item{
    margin-bottom:8mm!important;
  }
  .cover-v3-meta-item-last{
    margin-top:12mm!important;
  }
  .cover-v3-label{
    font-size:18pt!important;
    color:#403d39!important;
  }
  .cover-v3-value{
    margin-top:2mm!important;
    font-size:13pt!important;
    color:#222!important;
    min-height:5mm!important;
  }
}


/* V2.5.10 - impression rapport de stage */
@media print{
  @page{size:A4 portrait;margin:8mm}

  body:not(:has(.field-form-page)),
  body:not(:has(.field-form-page)) html{
    width:auto!important;
    height:auto!important;
    overflow:visible!important;
    background:white!important;
  }

  body:not(:has(.field-form-page)) .main,
  body:not(:has(.field-form-page)) .content{
    margin:0!important;
    width:100%!important;
    max-width:none!important;
    padding:0!important;
    overflow:visible!important;
  }

  body:not(:has(.field-form-page)) .card{
    box-shadow:none!important;
  }

  .report-template-cover-v3{
    display:block!important;
    visibility:visible!important;
    min-height:277mm!important;
    height:277mm!important;
    page-break-after:always!important;
    page-break-inside:avoid!important;
    overflow:hidden!important;
    background:#f5f3ee!important;
    padding:10mm!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-photo-frame,
  .cover-v3-photo,
  .cover-v3-frms-line,
  .cover-v3-separator,
  .cover-v3-main,
  .cover-v3-title,
  .cover-v3-divider,
  .cover-v3-meta-block,
  .cover-v3-meta-item,
  .cover-v3-label,
  .cover-v3-value,
  .cover-v3-bottom-separator{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }

  .cover-v3-photo-frame{
    width:100%!important;
    height:auto!important;
    padding:1.6mm!important;
    border:0.35mm solid #dedbd4!important;
    background:#fff!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-photo{
    width:100%!important;
    height:78mm!important;
    object-fit:cover!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-frms-line{
    margin-top:6mm!important;
    font-size:13pt!important;
    line-height:1.2!important;
    color:#4f4a45!important;
    font-style:italic!important;
  }

  .cover-v3-separator,
  .cover-v3-bottom-separator{
    height:.35mm!important;
    background:#d9d4cc!important;
    margin-top:4mm!important;
  }

  .cover-v3-main{
    margin-top:9mm!important;
    display:grid!important;
    grid-template-columns:1.12fr .35mm .88fr!important;
    gap:8mm!important;
    align-items:start!important;
  }

  .cover-v3-title{
    font-size:42pt!important;
    line-height:.95!important;
    color:#e64a36!important;
    font-weight:500!important;
  }

  .cover-v3-divider{
    background:#cfc8bd!important;
    min-height:62mm!important;
    width:.35mm!important;
  }

  .cover-v3-meta-block{
    padding-top:4mm!important;
  }

  .cover-v3-meta-item{
    margin-bottom:8mm!important;
  }

  .cover-v3-meta-item-last{
    margin-top:12mm!important;
  }

  .cover-v3-label{
    font-size:18pt!important;
    line-height:1.15!important;
    color:#403d39!important;
  }

  .cover-v3-value{
    margin-top:2mm!important;
    font-size:13pt!important;
    line-height:1.2!important;
    color:#222!important;
    min-height:5mm!important;
  }
}


/* V2.5.11 - Rapport de stage en A4 paysage */
@media print{
  @page{size:A4 landscape;margin:8mm}

  body:not(:has(.field-form-page)),
  body:not(:has(.field-form-page)) html{
    width:auto!important;
    height:auto!important;
    overflow:visible!important;
    background:white!important;
  }

  body:not(:has(.field-form-page)) .main,
  body:not(:has(.field-form-page)) .content{
    margin:0!important;
    width:100%!important;
    max-width:none!important;
    padding:0!important;
    overflow:visible!important;
  }

  .report-template-cover-v3{
    display:block!important;
    visibility:visible!important;
    width:281mm!important;
    min-height:194mm!important;
    height:194mm!important;
    page-break-after:always!important;
    page-break-inside:avoid!important;
    overflow:hidden!important;
    background:#f5f3ee!important;
    padding:8mm!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-photo-frame{
    display:block!important;
    visibility:visible!important;
    width:100%!important;
    height:auto!important;
    padding:1.5mm!important;
    border:0.35mm solid #dedbd4!important;
    background:#fff!important;
    box-shadow:none!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-photo{
    display:block!important;
    visibility:visible!important;
    width:100%!important;
    height:78mm!important;
    object-fit:cover!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .cover-v3-frms-line{
    display:block!important;
    visibility:visible!important;
    margin-top:5mm!important;
    font-size:14pt!important;
    line-height:1.2!important;
    color:#4f4a45!important;
    font-style:italic!important;
  }

  .cover-v3-separator,
  .cover-v3-bottom-separator{
    display:block!important;
    visibility:visible!important;
    height:.35mm!important;
    background:#d9d4cc!important;
    margin-top:3.5mm!important;
  }

  .cover-v3-main{
    display:grid!important;
    visibility:visible!important;
    margin-top:8mm!important;
    grid-template-columns:1.16fr .35mm .84fr!important;
    gap:9mm!important;
    align-items:start!important;
  }

  .cover-v3-title{
    display:block!important;
    visibility:visible!important;
    font-size:45pt!important;
    line-height:.95!important;
    color:#e64a36!important;
    font-weight:500!important;
  }

  .cover-v3-divider{
    display:block!important;
    visibility:visible!important;
    background:#cfc8bd!important;
    min-height:50mm!important;
    width:.35mm!important;
  }

  .cover-v3-meta-block{
    display:block!important;
    visibility:visible!important;
    padding-top:3mm!important;
  }

  .cover-v3-meta-item{
    display:block!important;
    visibility:visible!important;
    margin-bottom:6mm!important;
  }

  .cover-v3-meta-item-last{
    margin-top:9mm!important;
  }

  .cover-v3-label{
    display:block!important;
    visibility:visible!important;
    font-size:17pt!important;
    line-height:1.15!important;
    color:#403d39!important;
  }

  .cover-v3-value{
    display:block!important;
    visibility:visible!important;
    margin-top:1.6mm!important;
    font-size:12.5pt!important;
    line-height:1.2!important;
    color:#222!important;
    min-height:5mm!important;
  }
}



/* V2.5.13 - Correction grille fiche signalétique en impression PDF */
.report-overview-page{
  page-break-after:always;
}
.report-overview-divider{
  height:1px;
  background:#dbe5ef;
  margin:18px 0 12px 0;
}
.report-overview-title{
  margin:10px 0 8px 0;
}
.report-overview-page .stage-facts-grid,
.report-overview-page .report-overview-facts{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
}
.report-overview-page .fact-box-wide{
  grid-column:span 2!important;
}
.report-overview-page .kpi{
  padding:12px 14px;
}
.report-overview-page .kpi .num{
  font-size:23px;
}
.report-overview-page .kpi .label{
  font-size:12px;
}

@media print{
  .report-overview-page{
    min-height:178mm!important;
    height:178mm!important;
    page-break-after:always!important;
    page-break-inside:avoid!important;
    padding:5mm!important;
    overflow:hidden!important;
  }

  .report-overview-page h2{
    font-size:15pt!important;
    margin:0 0 2mm 0!important;
  }

  .report-overview-page .sheet-subtitle{
    font-size:8pt!important;
    margin:0 0 3mm 0!important;
  }

  .report-overview-page .stage-facts-grid,
  .report-overview-page .report-overview-facts{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    gap:2.2mm!important;
    width:100%!important;
  }

  .report-overview-page .fact-box{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    grid-column:auto!important;
    padding:2.4mm!important;
    border-radius:3mm!important;
    page-break-inside:avoid!important;
  }

  .report-overview-page .fact-box-wide{
    grid-column:span 2!important;
  }

  .report-overview-page .fact-label{
    font-size:6.8pt!important;
    margin-bottom:1.2mm!important;
    line-height:1.1!important;
  }

  .report-overview-page .fact-value{
    font-size:8.2pt!important;
    line-height:1.25!important;
  }

  .report-overview-divider{
    margin:4mm 0 3mm 0!important;
  }

  .report-overview-title{
    font-size:10pt!important;
    margin:2mm 0 2mm 0!important;
  }

  .report-overview-stats{
    max-width:100%!important;
    margin:0 0 3mm 0!important;
  }

  .report-overview-stats .stats-grid-compact{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:2mm!important;
  }

  .report-overview-averages .stats-grid-averages{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:2mm!important;
  }

  .report-overview-page .kpi{
    padding:2.2mm!important;
    border-radius:2.5mm!important;
  }

  .report-overview-page .kpi .num{
    font-size:14pt!important;
  }

  .report-overview-page .kpi .label{
    font-size:7.2pt!important;
    margin-top:1mm!important;
  }
}



/* V2.5.15 - Intitulé du stage sur la page de garde */
.cover-v3-stage-name{
  margin-top:22px;
  max-width:92%;
  font-size:24px;
  line-height:1.25;
  color:#3f3a36;
  font-style:italic;
}
@media print{
  .cover-v3-stage-name{
    margin-top:6mm!important;
    max-width:92%!important;
    font-size:14pt!important;
    line-height:1.2!important;
    color:#3f3a36!important;
    font-style:italic!important;
  }
}



/* V2.6 - Profil SURF360 */
.surf360-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:linear-gradient(135deg,#ffffff,#edf7fa);
  border-left:6px solid #005162;
}
.surf360-kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#005162;
  font-weight:bold;
  margin-bottom:6px;
}
.surf360-header h2{
  font-size:28px;
  margin:0 0 6px 0;
}
.surf360-priority{
  background:#005162;
  color:white;
  border-radius:18px;
  padding:16px 22px;
  min-width:180px;
  text-align:center;
}
.surf360-priority .label{
  font-size:12px;
  opacity:.75;
}
.surf360-priority .value{
  font-size:24px;
  font-weight:bold;
  margin-top:4px;
  text-transform:uppercase;
}
.surf360-summary{
  font-size:16px;
  line-height:1.65;
  background:#f8fbfd;
  border:1px solid #dbe5ef;
  border-radius:16px;
  padding:16px;
}
.surf360-kpi-grid{
  margin-top:16px;
}
.surf360-score-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.surf360-score-grid div{
  background:#f8fbfd;
  border:1px solid #dbe5ef;
  border-radius:16px;
  padding:16px;
}
.surf360-score-grid div.highlight{
  grid-column:span 2;
  background:linear-gradient(180deg,#ecfeff,#dff7f4);
}
.surf360-score-grid span{
  display:block;
  color:#64748b;
  font-size:12px;
  text-transform:uppercase;
  font-weight:bold;
}
.surf360-score-grid strong{
  display:block;
  color:#005162;
  font-size:30px;
  margin-top:6px;
}
.surf360-bars{
  display:grid;
  gap:8px;
}
.bar-row{
  display:grid;
  grid-template-columns:135px 1fr 38px;
  gap:8px;
  align-items:center;
  font-size:13px;
}
.bar-row > div{
  height:12px;
  background:#e2e8f0;
  border-radius:999px;
  overflow:hidden;
}
.bar-row b{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#005162,#0f766e);
}
.bar-row em{
  font-style:normal;
  font-weight:bold;
  color:#005162;
  text-align:right;
}
.surf360-alerts li{
  margin-bottom:8px;
}
#radarCanvas,#trendCanvas{
  width:100%;
  max-width:100%;
  background:white;
}
@media(max-width:900px){
  .surf360-header{display:block}
  .surf360-priority{margin-top:12px}
  .surf360-score-grid{grid-template-columns:1fr}
  .surf360-score-grid div.highlight{grid-column:auto}
  .bar-row{grid-template-columns:110px 1fr 34px}
}
@media print{
  .surf360-header{
    page-break-inside:avoid!important;
    padding:5mm!important;
  }
  .surf360-header h2{
    font-size:18pt!important;
  }
  .surf360-summary{
    font-size:9pt!important;
    line-height:1.35!important;
    padding:3mm!important;
  }
  .surf360-kpi-grid{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:2mm!important;
  }
  .surf360-score-grid{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:2mm!important;
  }
  .surf360-score-grid div,
  .surf360-score-grid div.highlight{
    grid-column:auto!important;
    padding:2.5mm!important;
  }
  .surf360-score-grid strong{
    font-size:16pt!important;
  }
  .bar-row{
    grid-template-columns:35mm 1fr 10mm!important;
    font-size:7.5pt!important;
    gap:2mm!important;
  }
  #radarCanvas,#trendCanvas{
    max-height:78mm!important;
  }
}



/* V2.7 - Synthèse IA SURF360 */
.surf360-ai-cover{
  background:linear-gradient(135deg,#ffffff,#ecfeff);
  border-left:6px solid #005162;
}
.surf360-ai-cover h2{
  font-size:28px;
  margin:6px 0;
}
.surf360-ai-paragraph{
  font-size:16px;
  line-height:1.7;
  background:#f8fbfd;
  border:1px solid #dbe5ef;
  border-radius:16px;
  padding:14px 16px;
}
.surf360-ai-prompt{
  width:100%;
  min-height:260px;
  font-family:Consolas, Monaco, monospace;
  font-size:13px;
  line-height:1.45;
}
@media print{
  .surf360-ai-paragraph{
    font-size:9pt!important;
    line-height:1.35!important;
    padding:3mm!important;
    page-break-inside:avoid!important;
  }
  .surf360-ai-cover{
    page-break-inside:avoid!important;
  }
}



/* V2.8 - Synthèse IA API externe */
.surf360-ai-response{
  background:#f8fbfd;
  border:1px solid #dbe5ef;
  border-radius:16px;
  padding:18px;
  font-size:15px;
  line-height:1.65;
  white-space:normal;
}
.surf360-ai-cover{
  background:linear-gradient(135deg,#ffffff,#ecfeff);
  border-left:6px solid #005162;
}
.surf360-ai-cover h2{
  font-size:28px;
  margin:6px 0;
}
.surf360-ai-prompt{
  width:100%;
  min-height:260px;
  font-family:Consolas, Monaco, monospace;
  font-size:13px;
  line-height:1.45;
}
@media print{
  .surf360-ai-response{
    font-size:9pt!important;
    line-height:1.35!important;
    padding:3mm!important;
    page-break-inside:auto!important;
  }
  .surf360-ai-cover{
    page-break-inside:avoid!important;
  }
}

.video-sync-table audio{width:150px;max-width:100%}.video-sync-table td{vertical-align:top}.video-sync-table .btn{padding:6px 8px;font-size:12px}

/* V2.9.3 - Lecture vidéo synchronisée SURF360 */
.inline-video-player{
    width:220px;
    max-width:28vw;
    min-width:160px;
    aspect-ratio:16/9;
    background:#000;
    border-radius:12px;
    display:block;
}
.video-cell{min-width:180px;}
.video-review-layout{
    display:grid;
    grid-template-columns:minmax(0, 2fr) minmax(320px, 1fr);
    gap:16px;
    align-items:start;
}
.video-review-player-card{min-width:0;}
.review-video-player{
    width:100%;
    max-height:72vh;
    background:#000;
    border-radius:16px;
    display:block;
}
.video-review-notes-card{
    max-height:78vh;
    overflow:auto;
}
.video-note-list{display:flex;flex-direction:column;gap:12px;}
.video-note-item{
    border:1px solid rgba(148,163,184,.28);
    border-radius:14px;
    padding:10px;
    background:rgba(15,23,42,.04);
}
.video-note-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.badge{
    display:inline-block;
    padding:4px 8px;
    border-radius:999px;
    background:#e2e8f0;
    color:#0f172a;
    font-size:12px;
    font-weight:700;
}
.video-note-text{font-size:14px;line-height:1.45;margin-bottom:8px;}
.video-note-capture{
    width:100%;
    max-height:180px;
    object-fit:contain;
    background:#000;
    border-radius:10px;
    display:block;
    margin:8px 0;
}
.video-note-audio{width:100%;margin-top:6px;}
@media(max-width:900px){
    .video-review-layout{grid-template-columns:1fr;}
    .video-review-notes-card{max-height:none;}
    .inline-video-player{width:180px;max-width:42vw;}
}


/* V2.9.5 - Icône de lancement du lecteur vidéo dans l'historique */
.video-launch-cell{
    text-align:center;
    vertical-align:middle!important;
    min-width:92px;
}
.video-play-icon{
    width:46px;
    height:46px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#0f766e,#0369a1);
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 10px 24px rgba(2,6,23,.18);
    transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
    text-decoration:none!important;
}
.video-play-icon:hover{
    transform:translateY(-1px) scale(1.04);
    filter:brightness(1.08);
    box-shadow:0 14px 30px rgba(2,6,23,.24);
}
.video-play-triangle{
    width:0;
    height:0;
    margin-left:4px;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:17px solid #fff;
    display:block;
}
@media(max-width:760px){
    .video-play-icon{width:40px;height:40px;}
    .video-play-triangle{border-top-width:9px;border-bottom-width:9px;border-left-width:14px;}
}


/* V2.9.6 - fallback visible si le navigateur garde une ancienne feuille en cache */
.video-play-visible{font-family:Arial, sans-serif!important;}
.video-missing-label{display:inline-block;min-width:92px;color:#64748b!important;font-size:12px;}
/* V2.9.7 - Video Coach stage/session sync */
.filters-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters-form label{display:flex;flex-direction:column;gap:4px}.participant-select{max-width:220px;width:100%;padding:6px;border-radius:8px;border:1px solid #cbd5e1}.assign-status{font-size:11px;margin-top:4px}.sync-context.warning{border-left:4px solid #f59e0b;background:#fffbeb;color:#92400e}.sync-context.ok{border-left:4px solid #10b981;background:#ecfdf5;color:#065f46}

/* V2.9.21 - Formulaires d'évaluation terrain : portrait lisible, sans couleurs lycra */
.field-form-sheet{margin-top:12px}
.field-sheet-label{text-align:right;font-size:12px;color:#64748b;font-weight:bold;margin:4px 0 6px 0}
.field-eval-table .rider-col,
.field-eval-table .name-line,
.field-eval-table .score-cell{background:#ffffff!important;color:#0f172a!important}
.field-eval-table .rider-col{border-top:1px solid #64748b!important}
.field-eval-table-portrait .criteria-col{width:42%}
.field-eval-table-portrait .rider-col{width:11.6%}

@media print{
  @page{size:A4 portrait;margin:7mm}

  .field-form-page{
    width:196mm!important;
    max-width:196mm!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    padding:0!important;
    margin:0!important;
  }

  body:has(.field-form-page){
    width:210mm!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:white!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .field-form-page h1{
    font-size:18px!important;
    line-height:20px!important;
    margin:0 0 2mm 0!important;
  }

  .field-form-subtitle{
    font-size:10px!important;
    line-height:11px!important;
    margin:0 0 2mm 0!important;
  }

  .field-form-info-grid{
    grid-template-columns:1fr 1fr!important;
    gap:2mm!important;
    margin:2mm 0!important;
  }

  .field-info-box{
    min-height:12mm!important;
    border-radius:3px!important;
    padding:2mm 2.2mm!important;
  }

  .field-info-box span{
    font-size:8px!important;
    line-height:8.5px!important;
    margin:0 0 1mm 0!important;
  }

  .field-info-box strong{
    font-size:9.2px!important;
    line-height:10px!important;
  }

  .field-scale{
    font-size:9.4px!important;
    line-height:10px!important;
    margin:2mm 0!important;
  }

  .field-form-sheet{
    page-break-inside:avoid!important;
  }

  .field-sheet-break{
    page-break-before:always!important;
    margin-top:0!important;
  }

  .field-sheet-label{
    font-size:9px!important;
    line-height:10px!important;
    margin:0 0 1.5mm 0!important;
  }

  .field-eval-table,
  .field-eval-table-portrait{
    width:196mm!important;
    max-width:196mm!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    page-break-inside:avoid!important;
  }

  .field-eval-table th,
  .field-eval-table td{
    padding:1.35mm 1.4mm!important;
    font-size:9.2px!important;
    line-height:10.2px!important;
    height:7.2mm!important;
    min-height:7.2mm!important;
    max-height:7.2mm!important;
    overflow:hidden!important;
  }

  .field-eval-table th{
    font-size:9.4px!important;
    line-height:10px!important;
  }

  .field-eval-table .criteria-col,
  .field-eval-table-portrait .criteria-col{
    width:42%!important;
    font-size:11.8px!important;
    line-height:12.8px!important;
  }

  .field-eval-table .rider-col,
  .field-eval-table-portrait .rider-col{
    width:11.6%!important;
    height:10mm!important;
    max-height:10mm!important;
    font-size:9px!important;
    line-height:9.8px!important;
    background:#fff!important;
    color:#0f172a!important;
  }

  .field-eval-table .rider-col div{
    height:8.5mm!important;
    line-height:9.5px!important;
    overflow:hidden!important;
  }

  .field-eval-table .name-line{
    font-size:8.4px!important;
    line-height:9px!important;
    height:7mm!important;
    max-height:7mm!important;
    background:#fff!important;
  }

  .field-eval-table .section-row td{
    font-size:9.2px!important;
    line-height:9.8px!important;
    height:6.5mm!important;
    max-height:6.5mm!important;
    border-top:1px solid #475569!important;
    padding:1mm 1.2mm!important;
  }

  .field-eval-table .summary-row td{
    height:8mm!important;
    max-height:8mm!important;
  }
}


/* V2.9.22 - Formulaires terrain : choix riders/page + polices maximisées en hauteur */
.eval-print-toolbar{align-items:center;gap:10px;flex-wrap:wrap}
.eval-print-options{display:flex;align-items:end;gap:10px;margin:0}
.eval-print-options label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#334155}
.eval-print-options select{height:36px;border:1px solid #cbd5e1;border-radius:10px;padding:0 10px;background:#fff;color:#0f172a;font-weight:800}

@media print{
  .field-form-page{
    width:196mm!important;
    max-width:196mm!important;
  }

  .field-form-page h1{
    font-size:19px!important;
    line-height:20px!important;
    margin:0 0 1mm 0!important;
  }

  .field-form-subtitle{
    font-size:9.4px!important;
    line-height:10px!important;
    margin:0 0 1.2mm 0!important;
  }

  .field-form-info-grid{
    grid-template-columns:1fr 1fr!important;
    gap:1.2mm!important;
    margin:1.2mm 0!important;
  }

  .field-info-box{
    min-height:8.5mm!important;
    padding:1.2mm 1.6mm!important;
  }

  .field-info-box span{
    font-size:7.4px!important;
    line-height:7.8px!important;
    margin:0!important;
  }

  .field-info-box strong{
    font-size:8.8px!important;
    line-height:9.2px!important;
  }

  .field-scale{
    font-size:9.2px!important;
    line-height:9.5px!important;
    margin:1.2mm 0!important;
    padding:1mm 1.5mm!important;
  }

  .field-eval-table,
  .field-eval-table-portrait{
    width:196mm!important;
    max-width:196mm!important;
  }

  .field-eval-table th,
  .field-eval-table td{
    height:var(--field-row-mm)!important;
    min-height:var(--field-row-mm)!important;
    max-height:var(--field-row-mm)!important;
    padding:1.15mm 1.25mm!important;
    font-size:var(--field-cell-font)!important;
    line-height:calc(var(--field-cell-font) + 1px)!important;
  }

  .field-eval-table .criteria-col,
  .field-eval-table-portrait .criteria-col{
    width:var(--field-criteria-width)!important;
    font-size:var(--field-criteria-font)!important;
    line-height:calc(var(--field-criteria-font) + 1.2px)!important;
  }

  .field-eval-table .rider-col,
  .field-eval-table-portrait .rider-col{
    font-size:var(--field-rider-font)!important;
    line-height:calc(var(--field-rider-font) + 0.8px)!important;
    height:calc(var(--field-row-mm) + 2mm)!important;
    max-height:calc(var(--field-row-mm) + 2mm)!important;
  }

  .field-eval-table .rider-col div{
    height:auto!important;
    max-height:calc(var(--field-row-mm) + 1mm)!important;
    line-height:calc(var(--field-rider-font) + 0.8px)!important;
  }

  .field-eval-table .name-line{
    height:var(--field-row-mm)!important;
    max-height:var(--field-row-mm)!important;
    font-size:calc(var(--field-cell-font) - 1px)!important;
  }

  .field-eval-table .section-row td{
    height:calc(var(--field-row-mm) - 1mm)!important;
    max-height:calc(var(--field-row-mm) - 1mm)!important;
    font-size:calc(var(--field-cell-font) + .4px)!important;
    line-height:calc(var(--field-cell-font) + 1px)!important;
  }

  .field-eval-table .summary-row td{
    height:calc(var(--field-row-mm) + 1.5mm)!important;
    max-height:calc(var(--field-row-mm) + 1.5mm)!important;
  }
}

/* V2.10 - Look & feel unifie application */
:root{
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#17212b;
  --muted:#667085;
  --line:#d7dee8;
  --line-soft:#e8edf3;
  --primary:#005162;
  --primary-strong:#063f4d;
  --primary-soft:#e6f2f4;
  --accent:#bd4f32;
  --accent-soft:#fff1ec;
  --blue:#2563a8;
  --blue-soft:#eaf2fb;
  --gold:#a66f00;
  --gold-soft:#fff7df;
  --danger:#b42318;
  --danger-soft:#fff0ef;
  --warn:#a15c07;
  --warn-soft:#fff7e8;
  --ok:#067647;
  --ok-soft:#ecfdf3;
  --radius:8px;
  --shadow:0 8px 22px rgba(16,24,40,.06);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

html{background:var(--bg)}
body{
  background:
    linear-gradient(180deg,#f8fafc 0,#f6f8fb 260px),
    var(--bg);
  color:var(--text);
  font-family:var(--font);
  font-size:14px;
  line-height:1.45;
  letter-spacing:0;
}

a{color:var(--primary);text-underline-offset:3px}
a:hover{color:var(--primary-strong)}
.app{background:transparent}
.main{min-height:100vh}
.content{padding:24px;max-width:1540px}

.sidebar{
  width:268px;
  background:#10232b;
  border-right:1px solid rgba(255,255,255,.08);
  padding:18px 14px;
}
.brand{
  margin-bottom:20px;
  padding:8px 8px 16px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.brand-logo{
  width:46px;
  height:46px;
  border-radius:8px;
  background:#ffffff;
  color:var(--primary);
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.brand-title{font-size:16px;letter-spacing:0}
.brand-subtitle{font-size:12px;color:#b7c8cf;opacity:1}
.sidebar nav{display:grid;gap:3px}
.sidebar nav a{
  border-radius:8px;
  margin:0;
  padding:10px 12px;
  color:#dce7eb;
  border:1px solid transparent;
  opacity:1;
}
.sidebar nav a:hover,
.sidebar nav a.active{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.12);
  color:#fff;
}
.sidebar nav a.active{
  box-shadow:inset 3px 0 0 #7dd3d8;
}

.topbar{
  height:62px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
  padding:0 24px;
}
.topbar strong{font-size:15px;color:#111827}
.topbar .muted{display:inline-block;margin-left:10px}
.userbox{color:var(--muted);font-size:13px}

h1,h2,h3,h4{
  color:#111827;
  letter-spacing:0;
  line-height:1.2;
}
h1{font-size:24px;margin:0 0 18px}
h2{font-size:18px;margin:0 0 14px}
h3{font-size:15px;margin:18px 0 10px}
h4{font-size:13px;margin:14px 0 8px}
p{margin-top:0}
.muted{
  color:var(--muted);
  font-size:12px;
  margin-left:0;
}
small{color:var(--muted)}

.card,
.field-form-page,
.fact-box,
.kpi,
.surf360-summary,
.surf360-score-grid div,
.surf360-ai-paragraph,
.surf360-ai-response{
  border-radius:var(--radius);
  border:1px solid var(--line-soft);
  background:var(--card);
  box-shadow:var(--shadow);
}
.card{
  padding:18px;
  margin-bottom:18px;
}
.card .card{box-shadow:none}

.grid{gap:16px}
.grid-2,.grid-3,.grid-4,.grid-5{align-items:start}
@media(max-width:1180px){
  .grid-4,.grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.kpi{
  padding:16px;
  background:#fff;
  box-shadow:none;
  min-height:92px;
}
.kpi .num{
  color:var(--primary);
  font-size:26px;
  line-height:1.05;
  overflow-wrap:anywhere;
}
.kpi .label{
  color:var(--muted);
  font-size:12px;
  margin-top:7px;
}
.kpi-highlight{
  background:var(--primary-soft);
  border-color:#c7e2e6;
}

.actions{
  align-items:center;
  gap:8px;
  margin:14px 0;
}
.btn,
button.btn,
input[type=submit].btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  gap:6px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#fff;
  color:#1f2937;
  padding:8px 12px;
  font-weight:700;
  line-height:1.15;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease;
}
.btn:hover{
  background:#f8fafc;
  border-color:#b8c3d1;
  color:#111827;
  box-shadow:0 4px 12px rgba(16,24,40,.08);
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-strong);border-color:var(--primary-strong);color:#fff}
.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-ok:hover{background:#05603a;border-color:#05603a;color:#fff}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-danger:hover{background:#912018;border-color:#912018;color:#fff}
.btn-warn{background:var(--warn);border-color:var(--warn);color:#fff}
.btn-warn:hover{background:#854a0e;border-color:#854a0e;color:#fff}

input,select,textarea{
  border:1px solid #cdd5df;
  border-radius:8px;
  background:#fff;
  color:var(--text);
  min-height:38px;
  padding:9px 10px;
  font-family:var(--font);
}
textarea{line-height:1.5}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:#6aa9b7;
  box-shadow:0 0 0 3px rgba(0,81,98,.13);
}
input[type=checkbox],
input[type=radio]{
  width:auto;
  min-height:0;
  accent-color:var(--primary);
}
.form-row{
  grid-template-columns:minmax(160px,220px) minmax(0,1fr);
  gap:10px 14px;
  align-items:start;
  margin-bottom:14px;
}
.form-row label{
  padding-top:9px;
  color:#344054;
  font-weight:700;
}
.form-row-stacked{grid-template-columns:1fr}
.form-row-stacked label{padding-top:0}

table{
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--line-soft);
  border-radius:8px;
  overflow:hidden;
}
th,td{
  border-bottom:1px solid var(--line-soft);
  padding:10px 12px;
}
th{
  background:#f3f6f9;
  color:#475467;
  font-size:11px;
  letter-spacing:.04em;
}
tr:last-child td{border-bottom:0}
tr:hover td{background:#fbfcfe}
table.compact th,
table.compact td{padding:7px 8px}

.badge{
  border-radius:999px;
  padding:4px 8px;
  font-weight:700;
  line-height:1.1;
}
.badge-info{background:var(--blue-soft);color:#174a7c}
.badge-ok{background:var(--ok-soft);color:#05603a}
.badge-warn{background:var(--warn-soft);color:#854a0e}
.badge-danger{background:var(--danger-soft);color:#912018}

.notice,.error,.success{
  border-radius:8px;
  padding:12px 14px;
  margin:14px 0;
  box-shadow:none;
}
.notice{background:var(--blue-soft);border:1px solid #cbe0f6;color:#194b7a}
.error{background:var(--danger-soft);border:1px solid #f7c6c2;color:#912018}
.success{background:var(--ok-soft);border:1px solid #b7e4c7;color:#05603a}

.tabs{gap:8px}
.tabs a{
  border-radius:8px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--primary);
  font-weight:700;
}
.tabs a:hover{background:var(--primary-soft)}
.tabs a.active{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
}

.login-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    linear-gradient(135deg,#10232b 0,#0b4b5b 52%,#8d3f2c 100%);
}
.login-card{
  width:min(100%,410px);
  padding:24px;
  box-shadow:0 24px 70px rgba(2,6,23,.26);
}
.login-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:22px;
}
.login-brand h1{margin:0 0 4px}
.login-brand .muted{margin:0}
.login-card .btn{width:100%;margin-top:4px}

.surf360-header,
.surf360-ai-cover{
  background:#fff;
  border-left:4px solid var(--primary);
}
.surf360-kicker{color:var(--primary);letter-spacing:.08em}
.surf360-priority{
  background:var(--primary);
  border-radius:8px;
}
.surf360-score-grid div.highlight,
.surf360-ai-cover{
  background:var(--primary-soft);
}
.bar-row > div{background:#e8edf3}
.bar-row b{background:linear-gradient(90deg,var(--primary),var(--accent))}
.bar-row em,
.surf360-score-grid strong{color:var(--primary)}
#radarCanvas,#trendCanvas{
  border:1px solid var(--line-soft);
  border-radius:8px;
}

.live-tablet,
.live-panel-title,
.live-step,
.lycra-row{
  border-radius:8px;
}
.live-tab,
.type-tab,
.criteria-btn,
.rider-choice,
.score-choice,
.big-action{
  border-radius:8px;
}

.video-sync-table audio{border-radius:8px}
.inline-video-player{border-radius:8px}

@media(max-width:900px){
  body{font-size:14px}
  .sidebar{position:static;width:100%;padding:14px}
  .brand{margin-bottom:12px}
  .sidebar nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .main{margin-left:0;width:100%}
  .topbar{height:auto;min-height:58px;position:static;align-items:flex-start;gap:8px;padding:14px;flex-direction:column}
  .topbar .muted{display:block;margin:4px 0 0}
  .content{padding:16px}
  .grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .form-row label{padding-top:0}
  .actions .btn{flex:1 1 auto}
  table{display:block;overflow-x:auto;white-space:nowrap}
  .field-eval-table{display:table;white-space:normal}
}

@media(max-width:520px){
  .sidebar nav{grid-template-columns:1fr}
  h1{font-size:21px}
  .card{padding:14px}
  .btn{width:100%}
}

@media print{
  body{background:white;color:#111827}
  .card,.kpi,.fact-box{
    box-shadow:none!important;
    border-radius:0!important;
  }
  table{border-radius:0!important}
}

/* V2.11 - Cockpit stage */
.stage-command{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:8px;
  padding:18px;
  margin-bottom:16px;
  box-shadow:var(--shadow);
}
.stage-command h1{margin:0 0 6px}
.stage-score{
  min-width:132px;
  text-align:center;
  border-radius:8px;
  padding:14px;
  background:var(--primary-soft);
  border:1px solid #c7e2e6;
}
.stage-score strong{
  display:block;
  color:var(--primary);
  font-size:32px;
  line-height:1;
}
.stage-score span{
  display:block;
  margin-top:6px;
  color:#475467;
  font-weight:700;
  font-size:12px;
}
.action-stack{display:grid;gap:8px}
.action-item{
  display:block;
  border-radius:8px;
  border:1px solid var(--line-soft);
  padding:10px 12px;
  text-decoration:none;
  background:#fff;
}
.action-item strong{display:block;color:#111827}
.action-item span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.action-warn{background:var(--warn-soft);border-color:#f1d29b}
.action-danger{background:var(--danger-soft);border-color:#f7c6c2}
.action-info{background:var(--blue-soft);border-color:#cbe0f6}
.workflow-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.status-dot{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  border-radius:8px;
  border:1px solid var(--line-soft);
  padding:7px 9px;
  color:#344054;
  font-weight:700;
  font-size:12px;
}
.status-dot:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:#d0d5dd;
  flex:0 0 auto;
}
.status-dot.ok{background:var(--ok-soft)}
.status-dot.ok:before{background:var(--ok)}
.status-dot.miss{background:#fff}
.status-dot.miss:before{background:var(--warn)}
.session-focus{
  display:grid;
  gap:6px;
  padding:12px;
  border-radius:8px;
  background:#f8fafc;
  border:1px solid var(--line-soft);
}
.session-focus strong{font-size:18px;color:#111827}
.session-focus span{color:var(--muted)}
.cockpit-table td,.cockpit-table th{white-space:normal}
.mini-progress{
  height:8px;
  min-width:82px;
  border-radius:999px;
  overflow:hidden;
  background:#e8edf3;
  margin-bottom:5px;
}
.mini-progress span{
  display:block;
  height:100%;
  background:linear-gradient(90deg,var(--primary),var(--accent));
}
.coverage-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.coverage-item{
  border:1px solid var(--line-soft);
  border-radius:8px;
  padding:12px;
  background:#fff;
}
.coverage-item > div:first-child{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.coverage-item span{color:var(--muted);font-weight:700}
@media(max-width:900px){
  .stage-command{display:block}
  .stage-score{margin-top:14px}
  .workflow-list,.coverage-grid{grid-template-columns:1fr}
}
