:root {
        --bv-blue: #30317a;
        --bv-green: #a1cb27;
        --bv-purple: #833ca3;
        --bv-charcoal: #3c3c3b;
        --bv-bg: #f3f5ef;
        --bv-border: #dde2d3;
      }

      body {
        color: var(--bv-charcoal);
        background: var(--bv-bg);
        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
          'Helvetica Neue', Arial, sans-serif;
      }

      .container-fluid {
        max-width: 1600px;
        padding: 0 28px 34px;
      }

      .bv-hero {
        position: relative;
        overflow: hidden;
        margin: 0 -28px 28px;
        padding: 30px 42px;
        color: #fff;
        background: linear-gradient(120deg, var(--bv-blue) 0%, #44459a 72%, var(--bv-purple) 100%);
        box-shadow: 0 8px 28px rgba(48, 49, 122, .18);
      }

      .bv-hero::after {
        position: absolute;
        right: -85px;
        bottom: -125px;
        width: 310px;
        height: 230px;
        content: '';
        border-radius: 55% 0 0 0;
        background: var(--bv-green);
        opacity: .95;
        transform: rotate(-8deg);
      }

      .bv-hero-inner {
        position: relative;
        z-index: 1;
        display: flex;
        align-items: center;
        gap: 30px;
        max-width: 1500px;
        margin: 0 auto;
      }

      .bv-logo-link {
        flex: 0 0 auto;
        padding: 13px 17px;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
      }

      .bv-logo {
        display: block;
        width: 210px;
        max-height: 88px;
        object-fit: contain;
      }

      .bv-heading {
        min-width: 0;
      }

      .bv-kicker {
        margin-bottom: 3px;
        color: var(--bv-green);
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: 16px;
        font-weight: 500;
        letter-spacing: .12em;
        text-transform: uppercase;
      }

      .bv-title {
        margin: 0;
        color: #fff;
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: clamp(30px, 3.2vw, 48px);
        font-weight: 600;
        line-height: 1.05;
      }

      .bv-subtitle {
        max-width: 760px;
        margin: 8px 0 0;
        color: rgba(255, 255, 255, .88);
        font-size: 16px;
      }

      .bv-language-badge {
        flex: 0 0 auto;
        margin-left: auto;
        padding: 9px 16px;
        color: var(--bv-blue);
        border-radius: 999px;
        background: var(--bv-green);
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: 16px;
        font-weight: 600;
        letter-spacing: .04em;
        white-space: nowrap;
      }

      .well,
      .main-card {
        border: 0;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 5px 22px rgba(60, 60, 59, .09);
      }

      .well {
        padding: 22px;
        border-top: 6px solid var(--bv-green);
      }

      .main-card {
        min-height: 600px;
        padding: 6px 24px 26px;
        border-top: 6px solid var(--bv-blue);
      }

      h4 {
        margin-top: 22px;
        color: var(--bv-blue);
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: 25px;
        font-weight: 600;
      }

      hr {
        border-top-color: var(--bv-border);
      }

      label,
      .control-label {
        color: var(--bv-charcoal);
        font-weight: 600;
      }

      .form-control,
      .selectize-input {
        min-height: 40px;
        border: 1px solid #cfd5c5;
        border-radius: 6px;
        box-shadow: none;
      }

      .form-control:focus,
      .selectize-input.focus {
        border-color: var(--bv-green);
        box-shadow: 0 0 0 3px rgba(161, 203, 39, .2);
      }

      .nav-tabs {
        margin: 0 -24px 18px;
        padding: 0 24px;
        border-bottom: 1px solid var(--bv-border);
      }

      .nav-tabs > li > a {
        margin: 0 4px 0 0;
        padding: 14px 18px 12px;
        color: var(--bv-charcoal);
        border: 0 !important;
        border-radius: 0;
        background: transparent !important;
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: 17px;
        font-weight: 400;
      }

      .nav-tabs > li > a:hover {
        color: var(--bv-blue);
        box-shadow: inset 0 -4px 0 var(--bv-green);
      }

      .nav-tabs > li.active > a,
      .nav-tabs > li.active > a:focus,
      .nav-tabs > li.active > a:hover {
        color: var(--bv-blue);
        box-shadow: inset 0 -4px 0 var(--bv-green);
        font-weight: 600;
      }

      .btn {
        padding: 9px 15px;
        border: 0;
        border-radius: 5px;
        font-family: 'Oswald', 'Arial Narrow', sans-serif;
        font-size: 16px;
        font-weight: 500;
        transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
      }

      .btn:hover,
      .btn:focus {
        transform: translateY(-1px);
        box-shadow: 0 5px 13px rgba(48, 49, 122, .18);
      }

      .btn-default,
      .btn-primary {
        color: #fff;
        background: var(--bv-blue);
      }

      .btn-default:hover,
      .btn-default:focus,
      .btn-primary:hover,
      .btn-primary:focus {
        color: #fff;
        background: #242561;
      }

      #save_saisie,
      #mark_valide,
      #download_csv,
      #download_geonature_csv {
        color: #fff;
        background: #789d12;
      }

      #mark_refuse {
        color: #fff;
        background: var(--bv-purple);
      }

      #delete_saisie {
        color: #fff;
        background: #a23b3b;
      }

      .well .btn,
      .well .shiny-download-link {
        width: 100%;
        margin: 0 0 9px;
      }

      .help-block {
        padding: 9px 12px;
        color: #5f6557;
        border-left: 4px solid var(--bv-green);
        background: #f5f8eb;
      }

      pre.shiny-text-output {
        padding: 10px 12px;
        color: var(--bv-blue);
        border: 0;
        border-radius: 5px;
        background: #f0f1f8;
        font-family: inherit;
        white-space: pre-wrap;
      }

      table.dataTable thead th {
        color: #fff;
        background: var(--bv-blue);
        border-bottom: 0 !important;
      }

      table.dataTable.stripe tbody tr.odd,
      table.dataTable.display tbody tr.odd {
        background-color: #f7f8f3;
      }

      table.dataTable.hover tbody tr:hover,
      table.dataTable.display tbody tr:hover {
        background-color: #eef4dd !important;
      }

      .dataTables_wrapper .dataTables_paginate .paginate_button.current,
      .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
        color: #fff !important;
        border-color: var(--bv-blue) !important;
        background: var(--bv-blue) !important;
      }

      @media (max-width: 991px) {
        .container-fluid { padding: 0 16px 24px; }
        .bv-hero { margin: 0 -16px 20px; padding: 24px 20px; }
        .bv-hero-inner { align-items: flex-start; flex-wrap: wrap; gap: 18px; }
        .bv-logo { width: 170px; }
        .bv-language-badge { margin-left: 0; }
        .main-card { margin-top: 18px; }
      }

      @media (max-width: 600px) {
        .bv-logo-link { width: 100%; }
        .bv-logo { width: 190px; margin: auto; }
        .bv-language-badge { display: none; }
        .main-card { padding: 4px 14px 20px; }
        .nav-tabs { margin-right: -14px; margin-left: -14px; padding: 0 14px; }
        .nav-tabs > li { float: none; }
      }
