/*
 * Style « Arcade » : angles coupés, lueurs néon, titres en capitales.
 * Les angles coupés (clip-path) ne sont posés que sur des éléments sans
 * contenu débordant (bandeaux, boutons, lignes de tableau) : un menu
 * déroulant dans une carte n'est jamais rogné.
 */

:root,
[data-theme="default"] {
    --rb-border-global: 0;
    --rb-border-button: 0;
    --rb-cut: 12px;
    --rb-neon: hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), .45);
}

html body h1,
html body h2,
html body h3,
html body .banner-title,
html body .btn,
html body .nav-link,
html body .table--custom .table-header {
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* Bandeaux : angle coupé, barre néon */
html body .banner {
    border: 0;
    border-left: 4px solid var(--color-primary);
    border-radius: 0;
    background-color: var(--color-contrast-lower);
    background-image: linear-gradient(90deg, hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), .18), transparent 60%);
    clip-path: polygon(0 0, calc(100% - var(--rb-cut)) 0, 100% var(--rb-cut), 100% 100%, 0 100%);
    filter: drop-shadow(0 0 10px var(--rb-neon));
}

html body .banner .banner-icon,
html body .banner .banner-icon::before {
    border-radius: 0;
}

/* Cartes : arêtes nettes, contour et lueur intérieure */
html body .card,
html body .accordion-item,
html body .list-group-item,
html body .modal-content,
html body .dropdown-menu {
    border: 1px solid hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), .35);
    border-radius: 0 !important;
    background-color: var(--color-contrast-lower);
    box-shadow: inset 0 0 24px -12px var(--rb-neon), 0 0 0 1px rgba(0, 0, 0, .25);
}

html body .card-header,
html body .card-footer {
    border-color: hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), .35);
    background: transparent;
}

html body .table--custom .table-row {
    border-left: 3px solid var(--color-primary);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
}

/* Boutons : angles coupés, halo au survol */
html body .btn {
    border-radius: 0;
    font-weight: 700;
}

html body .btn-primary,
html body .btn-download,
html body .btn-secondary,
html body .btn-success,
html body .btn-danger {
    clip-path: polygon(var(--rb-cut) 0, 100% 0, 100% calc(100% - var(--rb-cut)), calc(100% - var(--rb-cut)) 100%, 0 100%, 0 var(--rb-cut));
}

html body .btn-primary:hover,
html body .btn-primary:focus-visible {
    filter: drop-shadow(0 0 8px var(--rb-neon)) brightness(1.1);
}

html body .form-control,
html body .form-select,
html body .input-group-text {
    border-radius: 0 !important;
}

html body .form-control:focus,
html body .form-select:focus {
    box-shadow: 0 0 0 1px var(--color-primary), 0 0 14px var(--rb-neon);
}

html body .nav-tabs .nav-link,
html body .nav-pills .nav-link,
html body .page-link,
html body .badge,
html body .alert,
html body .progress {
    border-radius: 0 !important;
}

/* Navigation : liseré néon */
html body .header .navbar {
    border-bottom: 1px solid var(--color-primary);
    box-shadow: 0 0 18px -4px var(--rb-neon);
}

html body .footer .footer--top {
    border-top: 2px solid var(--color-primary);
    box-shadow: 0 -6px 24px -12px var(--rb-neon);
}
