/* ─────────────────────────────────────────────────────────────────────
   corporate.css — Design system dashboards corporate (Sprint S6 2026-08-01)
   Extrait de accounts/templates/accounts/partials/corporate_page_styles.html
   (598 lignes). Utilisé par tous les templates corporate_*.
   ───────────────────────────────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&display=swap');

body.corporate-dashboard-page {
    background: linear-gradient(180deg, #eef5ff 0%, #f6f9ff 100%);
}

body.corporate-dashboard-page > main {
    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 16px;
    box-sizing: border-box;
    background: transparent !important;
    box-shadow: none;
    border: 0;
}

.corp-dashboard-main {
    background: transparent;
    min-height: calc(100vh - 70px);
}

.corp-shell {
    --corp-ink: #14213d;
    --corp-muted: #667085;
    --corp-line: rgba(20, 33, 61, 0.12);
    --corp-blue: #1d4ed8;
    --corp-green: #16a34a;
    background: transparent !important;
}

.corp-dashboard-main > .container-fluid {
    max-width: min(1880px, calc(100vw - 56px));
    padding-left: 0;
    padding-right: 0;
}

.corp-shell .corp-utility-bar,
.corp-shell .corp-page-hero,
.corp-shell .corp-summary-card,
.corp-shell .corp-section-card,
.corp-shell .corp-stat-card,
.corp-shell .corp-form-card,
.corp-shell .corp-list-card,
.corp-shell .corp-kpi-card {
    border: 1px solid var(--corp-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(20, 33, 61, 0.06);
}

.corp-shell .corp-utility-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: .9rem 1.2rem;
    background:
      radial-gradient(circle at top left, rgba(37, 99, 235, 0.12), transparent 30%),
      linear-gradient(135deg, #ffffff 0%, #f8fbff 55%, #f6f9ff 100%);
    margin-bottom: 18px;
}

.corp-shell .corp-utility-copy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}

.corp-shell .corp-utility-meta {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}

.corp-shell .corp-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .42rem .78rem;
    border-radius: 999px;
    border: 1px solid rgba(20, 33, 61, 0.12);
    background: rgba(255, 255, 255, 0.88);
    color: #475569;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1;
}

.corp-shell .corp-page-hero {
    padding: 1.45rem;
    margin-bottom: 1.25rem;
    background:
      radial-gradient(circle at top right, rgba(31, 114, 255, 0.08), transparent 32%),
      linear-gradient(180deg, rgba(248, 251, 255, 0.92) 0%, rgba(246, 249, 255, 0.78) 100%);
}

.corp-shell .corp-page-kicker {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .4rem .8rem;
    border-radius: 999px;
    background: rgba(29, 78, 216, 0.08);
    color: #1d4ed8;
    font-family: 'Raleway', sans-serif;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: .8rem;
}

.corp-shell .corp-page-title {
    margin: 0 0 .55rem;
    color: var(--corp-ink);
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.85rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.03em;
}

.corp-shell .corp-page-intro {
    max-width: 980px;
    margin: 0;
    color: var(--corp-muted);
    font-size: 1rem;
    line-height: 1.75;
}

.corp-shell .corp-page-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    width: 100%;
    margin-top: 1.1rem;
}

.corp-shell .corp-action-btn {
    min-height: 64px;
    width: 100%;
    border-radius: 18px;
    font-weight: 700;
    font-size: .98rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border: 2px solid transparent;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease;
}

.corp-shell .corp-action-btn:hover {
    transform: translateY(-1px);
}

.corp-shell .corp-action-btn.primary {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
    box-shadow: 0 16px 34px rgba(22, 163, 74, 0.18);
}

.corp-shell .corp-action-btn.secondary {
    background: #eff6ff;
    border-color: #2563eb;
    color: #2563eb;
}

.corp-shell .corp-action-btn.neutral {
    background: #fff;
    border-color: #111827;
    color: #111827;
}

.corp-shell .corp-action-btn.soft {
    background: #f8fafc;
    border-color: #64748b;
    color: #475569;
}

.corp-form-card,
.corp-list-card,
.corp-section-card {
    padding: 1.15rem;
}

.corp-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.corp-section-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--corp-ink);
}

.corp-ride-list,
.corp-stacked-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.corp-list-row,
.corp-ride-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    background: #f8fbff;
    border: 1px solid rgba(20, 33, 61, 0.08);
    text-decoration: none;
    color: #1e293b;
}

.corp-list-row:hover,
.corp-ride-row:hover {
    background: #ffffff;
    box-shadow: 0 12px 24px rgba(20, 33, 61, 0.06);
}

.corp-list-icon,
.corp-ride-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #e8f0fe;
    color: #1d4ed8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.corp-status-badge {
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    font-size: 0.77rem;
    font-weight: 700;
}

.corp-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.corp-kpi-card {
    padding: 1rem 1.1rem;
    text-align: center;
}

.corp-kpi-card strong {
    display: block;
    font-size: 1.85rem;
    line-height: 1;
    color: var(--corp-ink);
    margin-bottom: .35rem;
}

.corp-kpi-card span {
    color: var(--corp-muted);
    font-size: .84rem;
}

.corp-inline-note {
    color: var(--corp-muted);
    font-size: .88rem;
    line-height: 1.65;
}

/* ── Utility bar ──────────────────────────────────────────────────────── */
.corp-shell .corp-utility-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.corp-shell .corp-utility-btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .58rem .92rem;
    border: 1px solid rgba(20, 33, 61, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.88);
    color: #475569;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 10px 24px rgba(20, 33, 61, 0.06);
    text-decoration: none;
    cursor: pointer;
    transition: color .14s, border-color .14s, background .14s;
}

.corp-shell .corp-utility-btn:hover {
    color: #1d4ed8;
    border-color: rgba(37, 99, 235, 0.18);
    background: #fff;
}

.corp-shell .corp-utility-visual {
    min-width: min(220px, 26vw);
    display: flex;
    justify-content: flex-end;
}

.corp-shell .corp-utility-van {
    width: min(170px, 24vw);
    max-width: 170px;
    height: auto;
    filter: drop-shadow(0 12px 20px rgba(31, 114, 255, 0.16));
}

/* ── Help panel ───────────────────────────────────────────────────────── */
.corp-shell .corp-help-panel {
    display: none;
    margin-bottom: 1.25rem;
    background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(248,251,255,.88) 100%);
    padding: 1.2rem;
}

.corp-shell .corp-help-panel.is-open {
    display: block;
}

.corp-help-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: .9rem;
}

.corp-help-item {
    padding: 1rem;
    border-radius: 20px;
    border: 1px solid rgba(20, 33, 61, 0.08);
    background: rgba(255, 255, 255, 0.82);
}

/* ── Stats aperçu panel ──────────────────────────────────────────────── */
.corp-stats-panel {
    display: none;
    margin-top: 1.25rem;
    padding: 1rem;
    border-radius: 20px;
    border: 1px solid rgba(20, 33, 61, 0.08);
    background: rgba(255, 255, 255, 0.86);
}

.corp-stats-panel.is-open {
    display: block;
}

.corp-stats-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.corp-stats-badges .badge {
    padding: .55rem .8rem;
    font-size: .82rem;
}

/* ── Summary card (plan actif) ───────────────────────────────────────── */
.corp-shell .corp-summary-card {
    padding: 1.2rem 1.25rem;
    margin-bottom: 1.25rem;
    background: linear-gradient(135deg, #17325f, #1f72ff);
    color: #fff;
    border: none;
}

.corp-summary-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
}

.corp-summary-title {
    font-weight: 800;
    font-size: 1.05rem;
}

.corp-summary-copy {
    font-size: .92rem;
    opacity: .88;
}

.corp-summary-figure {
    text-align: right;
}

.corp-summary-figure strong {
    display: block;
    font-size: 2rem;
    line-height: 1;
}

/* ── Stats grid ──────────────────────────────────────────────────────── */
.corp-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.corp-shell .corp-stat-card {
    position: relative;
    padding: 1.15rem 1.1rem 1.05rem;
    overflow: hidden;
}

.corp-shell .corp-stat-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(31,114,255,0.08), transparent 34%);
    pointer-events: none;
}

.corp-stat-value {
    position: relative;
    font-size: clamp(1.7rem, 2vw, 2.2rem);
    font-weight: 800;
    color: var(--corp-ink);
    line-height: 1;
    margin-bottom: .45rem;
}

.corp-stat-label {
    position: relative;
    font-size: .92rem;
    font-weight: 700;
    color: #1f2937;
}

.corp-stat-meta {
    position: relative;
    margin-top: .45rem;
    color: var(--corp-muted);
    font-size: .82rem;
    line-height: 1.55;
}

/* ── Quick action tiles ──────────────────────────────────────────────── */
.corp-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.corp-shell .corp-tile {
    padding: 1.4rem;
    text-align: center;
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform .18s ease, box-shadow .18s ease;
}

.corp-shell .corp-tile:hover {
    color: inherit;
    text-decoration: none;
    transform: translateY(-2px);
}

.corp-tile-icon {
    font-size: 2rem;
    color: #16a34a;
    margin-bottom: .9rem;
}

.corp-tile-title {
    font-weight: 700;
    color: #1f2937;
    margin-bottom: .35rem;
}

.corp-tile-desc {
    color: #667085;
    font-size: .88rem;
}

/* ── Progress bar ────────────────────────────────────────────────────── */
.corp-progress {
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    overflow: hidden;
    margin-top: .9rem;
}

.corp-progress > span {
    display: block;
    height: 100%;
    border-radius: 999px;
}

/* ── Responsive additions ────────────────────────────────────────────── */
@media (max-width: 1399.98px) {
    .corp-stats-grid,
    .corp-quick-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .corp-stats-grid,
    .corp-quick-actions,
    .corp-help-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .corp-stats-grid,
    .corp-quick-actions,
    .corp-help-grid {
        grid-template-columns: 1fr;
    }
}

.corp-inline-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.corp-icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid rgba(20, 33, 61, 0.12);
    background: #fff;
    color: #1d4ed8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(20, 33, 61, 0.05);
}

.corp-icon-btn:hover {
    background: #eff6ff;
    color: #1d4ed8;
}

.corp-icon-btn.danger { color: #dc2626; }
.corp-icon-btn.success { color: #16a34a; }

@media (max-width: 1399.98px) {
    .corp-shell .corp-page-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .corp-shell .corp-page-actions,
    .corp-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .corp-shell .corp-utility-bar,
    .corp-shell .corp-utility-copy {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .corp-shell .corp-page-actions,
    .corp-kpi-grid {
        grid-template-columns: 1fr;
    }
}


/* ═══════════════════════════════════════════════════════════════
   CORPORATE PAGE-SPECIFIC STYLES (Sprint S6 2026-08-01)
   ═══════════════════════════════════════════════════════════════ */

/* ─────────── corporate_faq.html → body.corporate-faq-page ─────────── */
body.corporate-faq-page {

    background:
      radial-gradient(circle at top right, rgba(37, 99, 235, 0.08), transparent 24%),
      radial-gradient(circle at top left, rgba(16, 185, 129, 0.07), transparent 22%),
      linear-gradient(180deg, #eef5ff 0%, #f8fbff 100%);
  }
body.corporate-faq-page > main {

    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 16px;
    box-sizing: border-box;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
  }
body.corporate-faq-page .corporate-faq-shell {

    padding: 28px 0 56px;
  }
body.corporate-faq-page .corporate-faq-shell .container-fluid {

    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
body.corporate-faq-page .corporate-faq-hero {

    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 1.5rem;
    padding: 2rem;
    border-radius: 30px;
    border: 1px solid rgba(191, 219, 254, 0.82);
    background:
      radial-gradient(circle at top right, rgba(96, 165, 250, 0.18), transparent 32%),
      linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(240, 249, 255, 0.9));
    box-shadow: 0 24px 80px rgba(15, 23, 42, 0.08);
  }
body.corporate-faq-page .corporate-faq-badge {

    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    width: fit-content;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.1);
    color: #2554cc;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
body.corporate-faq-page .corporate-faq-title {

    margin: 1rem 0 0.9rem;
    color: #19284b;
    font-size: clamp(2.1rem, 4vw, 4rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
    font-weight: 900;
    max-width: 12ch;
  }
body.corporate-faq-page .corporate-faq-subtitle {

    margin: 0;
    max-width: 68ch;
    color: #52647f;
    font-size: 1.04rem;
    line-height: 1.75;
  }
body.corporate-faq-page .corporate-faq-cta {

    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.35rem;
  }
body.corporate-faq-page .corporate-faq-kpis {

    display: grid;
    gap: 0.9rem;
    align-content: start;
  }
body.corporate-faq-page .corporate-faq-kpi-card {

    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(191, 219, 254, 0.7);
  }
body.corporate-faq-page .corporate-faq-kpi-card strong {

    display: block;
    color: #1d3557;
    margin-bottom: 0.25rem;
  }
body.corporate-faq-page .corporate-faq-kpi-card span {

    color: #5d6e87;
    font-size: 0.93rem;
    line-height: 1.6;
  }
body.corporate-faq-page .corporate-faq-layout {

    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
body.corporate-faq-page .corporate-faq-sidebar, body.corporate-faq-page .corporate-faq-content {

    min-width: 0;
  }
body.corporate-faq-page .corporate-faq-card {

    padding: 1.15rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(191, 219, 254, 0.7);
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.05);
  }
body.corporate-faq-page .corporate-faq-nav-title {

    margin-bottom: 0.95rem;
    color: #1f314c;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
body.corporate-faq-page .corporate-faq-nav {

    display: grid;
    gap: 0.65rem;
  }
body.corporate-faq-page .corporate-faq-nav a {

    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.9rem 1rem;
    border-radius: 16px;
    color: #24364f;
    text-decoration: none;
    border: 1px solid rgba(191, 219, 254, 0.75);
    background: rgba(255, 255, 255, 0.86);
    transition: transform 0.16s ease, box-shadow 0.16s ease;
  }
body.corporate-faq-page .corporate-faq-nav a:hover {

    transform: translateY(-1px);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
  }
body.corporate-faq-page .corporate-faq-help-box {

    margin-top: 1rem;
    padding: 1.1rem;
    border-radius: 20px;
    background: linear-gradient(135deg, #0f172a, #1e3a8a);
    color: #fff;
  }
body.corporate-faq-page .corporate-faq-help-box a {

    color: #bfdbfe;
    text-decoration: none;
  }
body.corporate-faq-page .corporate-faq-section + .corporate-faq-section {

    margin-top: 1.2rem;
  }
body.corporate-faq-page .corporate-faq-section-head {

    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin-bottom: 1rem;
  }
body.corporate-faq-page .corporate-faq-icon {

    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(37, 99, 235, 0.1);
    color: #2563eb;
    font-size: 1.15rem;
    flex-shrink: 0;
  }
body.corporate-faq-page .corporate-faq-section h2 {

    margin: 0;
    color: #192b49;
    font-size: 1.35rem;
    font-weight: 800;
  }
body.corporate-faq-page .corporate-faq-question {

    border: 1px solid rgba(191, 219, 254, 0.72);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    overflow: hidden;
  }
body.corporate-faq-page .corporate-faq-question + .corporate-faq-question {

    margin-top: 0.8rem;
  }
body.corporate-faq-page .corporate-faq-question summary {

    list-style: none;
    cursor: pointer;
    padding: 1rem 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: #1f314b;
    font-weight: 700;
  }
body.corporate-faq-page .corporate-faq-question summary::-webkit-details-marker {

    display: none;
  }
body.corporate-faq-page .corporate-faq-question summary i {

    color: #2563eb;
    transition: transform 0.2s ease;
  }
body.corporate-faq-page .corporate-faq-question[open] summary i {

    transform: rotate(45deg);
  }
body.corporate-faq-page .corporate-faq-answer {

    padding: 0 1.1rem 1.05rem;
    color: #56677f;
    line-height: 1.75;
  }
body.corporate-faq-page .corporate-faq-answer p:last-child {

    margin-bottom: 0;
  }
@media (max-width: 991.98px) {
body.corporate-faq-page .corporate-faq-hero, body.corporate-faq-page .corporate-faq-layout {

      grid-template-columns: 1fr;
    }

  }
@media (max-width: 575.98px) {
body.corporate-faq-page .corporate-faq-shell {

      padding-top: 20px;
    }
body.corporate-faq-page .corporate-faq-hero, body.corporate-faq-page .corporate-faq-card {

      padding: 1rem;
      border-radius: 22px;
    }
body.corporate-faq-page .corporate-faq-title {

      max-width: none;
      font-size: 2rem;
    }

  }


/* ─────────── corporate_billing_print.html → body.corporate-billing-print-page ─────────── */
body.corporate-billing-print-page *, body.corporate-billing-print-page *::before, body.corporate-billing-print-page *::after {
 box-sizing: border-box; margin: 0; padding: 0; }
body {

            font-family: Arial, Helvetica, sans-serif;
            font-size: 13px;
            line-height: 1.5;
            color: #1f2937;
            background: #f3f4f6;
        }
body.corporate-billing-print-page .print-bar {

            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 100;
            background: #1e3a8a;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 24px;
            gap: 12px;
            box-shadow: 0 2px 8px rgba(0,0,0,.18);
        }
body.corporate-billing-print-page .print-bar .invoice-ref {
 font-size: 14px; font-weight: 700; opacity: .92; }
body.corporate-billing-print-page .print-bar .print-actions {
 display: flex; gap: 8px; }
body.corporate-billing-print-page .btn-print {

            display: inline-flex; align-items: center; gap: 6px;
            padding: 7px 18px; border-radius: 8px; border: none;
            font-size: 13px; font-weight: 600; cursor: pointer;
            text-decoration: none;
        }
body.corporate-billing-print-page .btn-print-primary {
 background: #fff; color: #1e3a8a; }
body.corporate-billing-print-page .btn-print-back {
 background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.3); }
body.corporate-billing-print-page .page-wrap {

            max-width: 920px;
            margin: 68px auto 48px;
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 8px 32px rgba(30,58,138,.10);
            overflow: hidden;
        }
body.corporate-billing-print-page .inv-header {

            background: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);
            color: #fff;
            padding: 32px 40px;
            display: grid;
            grid-template-columns: 1fr auto;
            gap: 32px;
            align-items: start;
        }
body.corporate-billing-print-page .inv-logo {

            height: 44px;
            width: auto;
            margin-bottom: 10px;
            filter: brightness(0) invert(1);
        }
body.corporate-billing-print-page .inv-company-name {

            font-size: 20px;
            font-weight: 800;
            letter-spacing: -.3px;
            margin-bottom: 4px;
        }
body.corporate-billing-print-page .inv-company-sub {

            font-size: 12px;
            opacity: .78;
            margin-bottom: 14px;
        }
body.corporate-billing-print-page .inv-tax-box {

            background: rgba(255,255,255,.12);
            border: 1px solid rgba(255,255,255,.22);
            border-radius: 8px;
            padding: 8px 14px;
            font-size: 11.5px;
            line-height: 1.8;
        }
body.corporate-billing-print-page .inv-tax-box strong {

            opacity: .7;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: .4px;
        }
body.corporate-billing-print-page .inv-meta {
 text-align: right; }
body.corporate-billing-print-page .inv-title {

            font-size: 28px;
            font-weight: 800;
            letter-spacing: -.5px;
            line-height: 1;
            margin-bottom: 6px;
        }
body.corporate-billing-print-page .inv-number {

            font-size: 15px;
            font-weight: 700;
            opacity: .88;
            margin-bottom: 16px;
        }
body.corporate-billing-print-page .inv-dates {

            font-size: 12px;
            opacity: .78;
            line-height: 2;
        }
body.corporate-billing-print-page .inv-billto {

            padding: 20px 40px;
            background: #f0f4ff;
            border-bottom: 1px solid #dbeafe;
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 20px;
            align-items: center;
        }
body.corporate-billing-print-page .inv-billto-label {

            font-size: 11px;
            font-weight: 700;
            color: #1e3a8a;
            text-transform: uppercase;
            letter-spacing: .8px;
            writing-mode: vertical-rl;
            transform: rotate(180deg);
            border-right: 3px solid #1d4ed8;
            padding-right: 10px;
        }
body.corporate-billing-print-page .inv-billto-name {
 font-size: 16px; font-weight: 700; color: #111827; margin-bottom: 2px; }
body.corporate-billing-print-page .inv-billto-addr {
 font-size: 12.5px; color: #374151; line-height: 1.7; }
body.corporate-billing-print-page .inv-body {
 padding: 28px 40px 32px; }
body.corporate-billing-print-page .inv-section-label {

            font-size: 10.5px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .9px;
            color: #1e3a8a;
            border-bottom: 2px solid #dbeafe;
            padding-bottom: 6px;
            margin-bottom: 0;
        }
body.corporate-billing-print-page .inv-table {

            width: 100%;
            border-collapse: collapse;
            margin-bottom: 24px;
        }
body.corporate-billing-print-page .inv-table thead th {

            padding: 10px 12px;
            background: #eff6ff;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .6px;
            color: #1e3a8a;
            border-bottom: 2px solid #bfdbfe;
        }
body.corporate-billing-print-page .inv-table thead th:last-child, body.corporate-billing-print-page .inv-table tbody td:last-child {
 text-align: right; }
body.corporate-billing-print-page .inv-table tbody tr {
 border-bottom: 1px solid #f0f0f0; }
body.corporate-billing-print-page .inv-table tbody tr:last-child {
 border-bottom: none; }
body.corporate-billing-print-page .inv-table tbody tr:nth-child(even) {
 background: #fafbff; }
body.corporate-billing-print-page .inv-table tbody td {

            padding: 11px 12px;
            font-size: 13px;
            vertical-align: middle;
        }
body.corporate-billing-print-page .inv-table tbody td .item-title {
 font-weight: 600; color: #111827; }
body.corporate-billing-print-page .inv-table tbody td .item-desc {
 font-size: 11.5px; color: #6b7280; margin-top: 2px; }
body.corporate-billing-print-page .inv-chip {

            display: inline-flex;
            padding: 3px 10px;
            border-radius: 999px;
            font-size: 11px;
            font-weight: 700;
            color: #fff;
        }
body.corporate-billing-print-page .inv-chip.success {
 background: #16a34a; }
body.corporate-billing-print-page .inv-chip.info {
 background: #0284c7; }
body.corporate-billing-print-page .inv-chip.warning {
 background: #d97706; }
body.corporate-billing-print-page .inv-chip.secondary {
 background: #64748b; }
body.corporate-billing-print-page .inv-chip.danger {
 background: #dc2626; }
body.corporate-billing-print-page .inv-chip.dark {
 background: #334155; }
body.corporate-billing-print-page .inv-totals-wrap {

            display: flex;
            justify-content: flex-end;
            margin-top: 4px;
        }
body.corporate-billing-print-page .inv-totals {

            width: 360px;
            border: 1px solid #e5e7eb;
            border-radius: 10px;
            overflow: hidden;
        }
body.corporate-billing-print-page .inv-totals-row {

            display: flex;
            justify-content: space-between;
            padding: 9px 16px;
            font-size: 13px;
            border-bottom: 1px solid #f3f4f6;
        }
body.corporate-billing-print-page .inv-totals-row:last-child {
 border-bottom: none; }
body.corporate-billing-print-page .inv-totals-row.total-final {

            background: #1e3a8a;
            color: #fff;
            font-size: 15px;
            font-weight: 800;
            padding: 12px 16px;
        }
body.corporate-billing-print-page .tax-num {

            font-size: 10.5px;
            color: #9ca3af;
            display: block;
            margin-top: 1px;
        }
body.corporate-billing-print-page .inv-totals-row.total-final .tax-num {
 color: rgba(255,255,255,.6); }
body.corporate-billing-print-page .inv-footer {

            margin-top: 28px;
            padding: 16px 0 0;
            border-top: 1px solid #e5e7eb;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
            font-size: 11px;
            color: #9ca3af;
        }
body.corporate-billing-print-page .empty-state {

            padding: 24px 0;
            text-align: center;
            color: #6b7280;
        }
@media print {
@page {

                size: letter;
                margin: 14mm 12mm;
            }
body {
 background: #fff; }
body.corporate-billing-print-page .print-bar {
 display: none !important; }
body.corporate-billing-print-page .page-wrap {

                margin: 0;
                box-shadow: none;
                border-radius: 0;
                max-width: 100%;
            }
body.corporate-billing-print-page .inv-header, body.corporate-billing-print-page .inv-billto, body.corporate-billing-print-page .inv-table thead th, body.corporate-billing-print-page .inv-totals-row.total-final, body.corporate-billing-print-page .inv-table tbody tr:nth-child(even) {

                -webkit-print-color-adjust: exact;
                print-color-adjust: exact;
            }

        }


/* ═══════════════════════════════════════════════════════════════
   SIDEBAR CSS extrait de corporate_sidebar.html (Sprint S6)
   ═══════════════════════════════════════════════════════════════ */

.corp-page-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 1.5rem;
    max-width: 1880px;
    margin: 0 auto;
    align-items: start;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.corp-page-main {
    min-width: 0;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.corp-nav-sidebar {
    position: sticky;
    top: 24px;
    background: #fff;
    border: 1px solid rgba(20, 33, 61, 0.12);
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(20, 33, 61, 0.06);
    overflow: hidden;
}
.corp-nav-top {
    padding: 1.25rem 1.25rem 1rem;
    background: linear-gradient(135deg, #17325f, #1f72ff);
    color: #fff;
}
.corp-nav-top-label {
    font-size: .7rem;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: .06em;
    opacity: .7;
    margin-bottom: .3rem;
}
.corp-nav-top-name {
    font-weight: 700;
    font-size: .95rem;
    line-height: 1.2;
}
.corp-nav-top-role {
    font-size: .78rem;
    opacity: .65;
    margin-top: .25rem;
}
.corp-nav-body {
    padding: .6rem .6rem .5rem;
}
.corp-nav-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .62rem .85rem;
    border-radius: 14px;
    color: #14213d;
    text-decoration: none;
    font-weight: 600;
    font-size: .82rem;
    margin-bottom: .15rem;
    transition: background .14s, color .14s, transform .1s;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    line-height: 1.3;
}
.corp-nav-link i { font-size: 1rem; flex-shrink: 0; opacity: .8; }
.corp-nav-link:hover { background: #f0f6ff; color: #1d4ed8; transform: translateX(2px); text-decoration: none; }
.corp-nav-link.is-active { background: #e8f0fe; color: #1d4ed8; font-weight: 700; transform: none; }
.corp-nav-divider { height: 1px; background: rgba(20, 33, 61, 0.07); margin: .35rem .85rem; }
.corp-nav-footer { padding: .65rem 1.1rem .8rem; border-top: 1px solid rgba(20, 33, 61, 0.07); font-size: .75rem; color: #667085; }
@media (max-width: 1024px) {
    .corp-page-layout { grid-template-columns: 1fr; }
    .corp-nav-sidebar { position: static; display: flex; flex-direction: row; flex-wrap: wrap; border-radius: 16px; }
    .corp-nav-top { flex: 0 0 100%; }
    .corp-nav-body { display: flex; flex-wrap: wrap; gap: .1rem; padding: .5rem; flex: 1 1 auto; }
    .corp-nav-link { padding: .45rem .7rem; font-size: .78rem; border-radius: 10px; margin-bottom: 0; }
    .corp-nav-divider { display: none; }
    .corp-nav-footer { flex: 0 0 100%; }
}


/* ═══════════════════════════════════════════════════════════════
   Sprint S6 mobile-first polish sidebars (2026-08-01)
   Layout 240px sticky → mono-colonne sur mobile + burger toggle
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 991.98px) {
  .inst-page-layout, .corp-page-layout {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }
  .inst-nav-sidebar, .corp-nav-sidebar {
    position: static !important;
    border-radius: 16px !important;
  }
  .inst-page-main, .corp-page-main {
    padding: 0 8px;
  }
}

@media (max-width: 767px) {
  /* Titres compacts */
  body[class*="institution-"] .page-title h1,
  body[class*="corporate-"] .page-title h1 {
    font-size: 1.35rem !important;
    line-height: 1.2;
  }
  /* Tables denses → scroll horizontal + hint visuel */
  body[class*="institution-"] .inst-table-wrap,
  body[class*="institution-"] table,
  body[class*="corporate-"] table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  /* Cards resserrées */
  body[class*="institution-"] .card,
  body[class*="corporate-"] .card,
  body[class*="institution-"] .inst-content-card,
  body[class*="corporate-"] .corp-content-card {
    padding: 1rem !important;
    border-radius: 14px !important;
  }
  /* KPI grid : mono-colonne < 500px */
  body[class*="institution-"] .inst-kpi-grid,
  body[class*="corporate-"] .corp-kpi-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  /* Boutons actions bar → wrap propre */
  body[class*="institution-"] .inst-page-actions,
  body[class*="corporate-"] .corp-page-actions {
    grid-template-columns: 1fr !important;
    width: 100%;
  }
}

/* Paragraphes justify (règle DA TouKidou) */
body[class*="institution-"] .inst-content-card p,
body[class*="corporate-"] .corp-content-card p { text-align: justify; hyphens: none; }
body[class*="institution-"] .btn p,
body[class*="corporate-"] .btn p,
body[class*="institution-"] th p,
body[class*="corporate-"] th p,
body[class*="institution-"] td p,
body[class*="corporate-"] td p { text-align: inherit; hyphens: none; }
