@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;600;700&display=swap');

/* Root / Reset */


:root {
    --mdc-text-button-label-text-color: #f7f7f7;
    --mdc-shape-small: 4px;
    --mdc-theme-body: rgb(27, 39, 51);
    --mdc-theme-error: #a20323;
    --cas-theme-primary: #114377;
    --cas-theme-button-bg-hover: #1678d8;
    --cas-theme-primary-bg: rgba(21, 62, 80, 0.2);
    --cas-theme-button-bg: #26418f;
    --cas-theme-button-bg-lite: #1e78d0;
    --cas-theme-primary-light: #006d85;
    --cas-theme-secondary: #018077;
    --cas-theme-success: #74C163;
    --cas-theme-danger: #58151c;
    --cas-theme-danger-bg: #f8d7da;
    --cas-theme-warning: #664d03;
    --cas-theme-warning-bg: #fff3cd;
    --cas-theme-border-light: 1px solid rgba(0, 0, 0, .2);
    --mdc-theme-primary: var(--cas-theme-primary, #153e50);
    --mdc-typography-font-family: "Ubuntu", "Open Sans", Roboto, Arial, sans-serif;

    --navbar-width: 256px;
    --navbar-width-min: 80px;
    --navbar-dark-primary: #18283b;
    --navbar-dark-secondary: #2c3e50;
    --navbar-light-primary: #f5f6fa;
    --navbar-light-secondary: #8392a5;
}

body {
    display: flex;
    height: 100vh;
    margin: 0;
    padding: 0;
    flex-direction: column;
    justify-content: space-between;
    font-family: var(--mdc-typography-font-family);
    background: var(--mdc-theme-body);
}

a {
    color: #153e50;
    color: var(--cas-theme-primary, #153e50);
}

a:hover, a:visited, a:active {
    color: #006d85;
    color: var(--cas-theme-primary-light);
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 3px;
}

aside, section, main {
    display: block;
}

/* Accessibility */

/** Display content only to screen readers. **/
.sr-only {
    border: 0 !important;
    clip: rect(1px,1px,1px,1px) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
}

/* Material */

.mdc-drawer {
    top: 56px;
}

.mdc-drawer-app-content {
    flex: auto;
    overflow: auto;
    position: relative;
    background-size: cover;
}

.main-content {
    display: flex;
}

.mdc-top-app-bar {
    z-index: 7;
}

div#content {
    box-shadow: 1px 1px 3px #888;
}

/* widgets */

.notifications-count {
    position: absolute;
    top: 8px;
    right: 4px;
    background-color: var(--mdc-theme-error, #b00020);
    color: #fff;
    border-radius: 50%;
    padding: 1px 3px;
    font: 11px Verdana;
}

.cas-brand {
    height: 48px;
    width: auto;
}

header > nav .cas-brand path.cls-1 {
    fill: white;
}

header > nav .cas-brand .cas-logo {
    height: 100%;
}

.caps-warn {
    display: none;
}

.caps-on {
    order: 3
}

.caps-on DIV SPAN {
    display: block;
}

.caps-on span:before {
    vertical-align: sub;
    content: "\F0027";
    font-size: 24px;
    font: normal normal normal 24px/1 "Material Design Icons";
}

.login-section {
    border-right: 1px solid rgba(0, 0, 0, .2);
    border-right: var(--cas-theme-border-light, 1px solid rgba(0, 0, 0, .2));
    padding: 2rem 2.5rem;
    flex: 1 1 auto;
    /* IE flex fix */
}

.login-section:last-child {
    border: none;
}

@media screen and (max-width: 767.99px) {
    .login-section {
        border-right: none;
        border-bottom: 1px solid rgba(0, 0, 0, .2);
        border-bottom: var(--cas-theme-border-light, 1px solid rgba(0, 0, 0, .2));
        max-width: none;
        padding: 0 1.5rem;
    }
}

@media (max-width: 960px) {
    #casFooter {
        display: none !important;
    }
}


.log-trace {
    color: whitesmoke;
    font-weight: bold;
}

.log-none, .log-debug {
    color: dodgerblue;
    font-weight: bold;
}

.log-default, .log-notice, .log-info {
    color: limegreen;
    font-weight: bold;
}

.log-warning, .log-alert, .log-warn {
    color: orange;
    font-weight: bold;
}

.log-fatal, .log-emergency, .log-critical, .log-error {
    color: orangered;
    font-weight: bold;
}

.noborder {
    border: 0 none;
    border-style: none;
}

.close {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    text-transform: none;
    text-decoration: none;
}

button.close {
    background-color: transparent;
    border: 0;
    -webkit-appearance: none;
}

form button i.mdi {
    margin-right: 2px;
}

.banner {
    border: 1px solid rgba(0, 0, 0, .2);
    border: var(--cas-theme-border-light, 1px solid rgba(0, 0, 0, .2));
    position: relative;
    padding-left: 10px;
    box-shadow: 1px 1px 3px #888;
    border-radius: .5em;
    padding-top: .5em;
    padding-bottom: .5em;
}

.banner > span {
    vertical-align: top;
}

.banner .banner-message {
    margin: 0.375rem 0;
}

.banner .banner-heading:first-child {
    margin-top: 0;
}

.banner .banner-message:first-child {
    margin-top: 0;
}

.banner .banner-message:last-child {
    margin-bottom: 0;
}

.banner-primary {
    border-color: #153e50;
    border-color: var(--cas-theme-primary, #153e50);
}

.banner-primary .mdi {
    color: #153e50;
    color: var(--cas-theme-primary, #153e50);
}

.banner-danger h1:before,
.banner-danger h2:before,
.banner-danger h3:before,
.banner-danger h4:before,
.banner-danger h5:before {
    content: "\F0027";
    font-size: 24px;
    font: normal normal normal 24px/1 "Material Design Icons";
}

.banner-danger {
    border-color: #b00020;
    border-color: var(--cas-theme-danger, #b00020);
    color: var(--cas-theme-danger, #58151c);
    background-color: var(--cas-theme-danger-bg, #f8d7da);
}

.banner-danger .mdi {
    color: #b00020;
    color: var(--cas-theme-danger, #b00020);
}

.banner-warning {
    border-color: #e6a210;
    border-color: var(--cas-theme-warning, #e6a210);
    color: #664d03;
    color: var(--cas-theme-warning, #664d03);
    background-color: var(--cas-theme-warning-bg, #fff3cd);
}

.banner-warning .mdi {
    color: #664d03;
    color: var(--cas-theme-warning, #664d03);
}

.banner-success h1:before,
.banner-success h2:before,
.banner-success h3:before,
.banner-success h4:before,
.banner-success h5:before {
    content: "\F012D";
    font-size: 24px;
    font: normal normal normal 24px/1 "Material Design Icons";
}

.banner-success {
    border-color: var(--cas-theme-success);
    color: var(--cas-theme-primary, #153e50);
    background-color: #adf096;
}

.banner-info h1:before,
.banner-info h2:before,
.banner-info h3:before,
.banner-info h4:before,
.banner-info h5:before {
    content: "\F1C67";
    font-size: 24px;
    font: normal normal normal 24px/1 "Material Design Icons";
}

.banner-info {
    border-color: var(--cas-theme-primary);
    color: black;
    background-color: #9fceff;
}

.banner-dismissible {
    padding-right: 1rem;
}

.banner-dismissible .close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.05rem 0.05rem;
    color: inherit;
}

.login-provider-item {
    list-style: none;
}

.login-provider-item .mdc-button .mdi {
    margin-right: 0.375rem;
}

@media screen and (max-width: 767.99px) {
    .logout-banner {
        width: 100%;
    }
}

.cas-footer {
    background-color: var(--mdc-theme-primary, #6200ee);
    color: whitesmoke;
}

.cas-footer a {
    color: deepskyblue;
}

.cas-footer > * {
    margin-right: 0.25rem;
    display: inline-block;
}

.cas-footer > *:last-child {
    margin: 0;
}

.cas-notification-dialog .mdc-dialog__content > .cas-notification-message:not(:last-child) {
    border-bottom: 1px solid rgba(0, 0, 0, .2);
    border-bottom: var(--cas-theme-border-light, 1px solid rgba(0, 0, 0, .2));
}

.cas-card {
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
    background-color: lightskyblue;
    flex-direction: column;
    flex-grow: 1;
    grid-column-end: span 6 !important;
}

.mdc-dialog__title::before {
    display: none;
}

.mdi {
    content: "";
    /*vertical-align: baseline;*/
}

#casAccountProfile .mdi {
    vertical-align: baseline;
}

#dashboardTabBar .mdi, .attribute-tab .mdi {
    vertical-align: sub;
    /*padding-right: 1px;*/
}

.ace-editor {
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    font-family: "Monaco", "Menlo", "Ubuntu Mono", "Droid Sans Mono", "Consolas", monospace !important;
}

.ace-absolute {
    position: absolute;
}

.ace-relative {
    position: relative;
    border-radius: 10px;
}

.mdi:before {
    font-size: 20px;
}

/* custom components */

.custom-select {
    display: inline-block;
    min-width: 80%;
    height: 56px;
    padding: .375rem 1.75rem .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: rgba(0, 0, 0, 0.87);
    vertical-align: middle;
    background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    -webkit-appearance: none;
}

/* utilities */

.pl-2 {
    padding-left: 0.8rem;
}

.mr-2 {
    margin-right: 2px !important;
}

.mr-4 {
    margin-right: 4px !important;
}

.mr-8 {
    margin-right: 8px !important;
}

.mr-12 {
    margin-right: 12px !important;
}

.pr-2 {
    padding-right: 0.8rem;
}

.pr-4 {
    padding-right: 1.2rem;
}

.pb-2 {
    padding-bottom: 0.8rem;
}

.pb-3 {
    padding-bottom: 1.4rem !important;
}

.bg-primary {
    background-color: rgba(21, 62, 80, 0.2);
    background-color: var(--cas-theme-primary-bg, rgba(21, 62, 80, 0.2));
}

.border-bottom {
    border-color: #153e50;
    border-bottom: 1px solid var(--cas-theme-primary, #153e50);
}


.strong {
    font-weight: bold;
}

.hide {
    display: none;
}

.text-warning {
    color: #664d03;
    color: var(--cas-theme-warning, #664d03);
}

.text-danger {
    color: #b00020;
    color: var(--cas-theme-danger, #b00020);
}

.text-secondary {
    color: var(--cas-theme-secondary);
}

.text-success {
    color: var(--cas-theme-success);
}

.progress-bar-danger .mdc-linear-progress__bar-inner {
    border-color: #b00020;
    border-color: var(--cas-theme-danger, #b00020);
}

.progress-bar-warning .mdc-linear-progress__bar-inner {
    border-color: #664d03;
    border-color: var(--cas-theme-warning, #664d03);
}

.progress-bar-success .mdc-linear-progress__bar-inner {
    border-color: var(--cas-theme-success);
}

.word-break-all {
    word-break: break-all;
}

.mdc-text-field {
    width: 100%;
}

.mdc-text-field > .mdc-text-field__input, .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) > .mdc-text-field__input {
    border-color: #153e50;
    border: 1px solid var(--cas-theme-primary, #153e50);
    border-radius: 4px;
}

.mdc-input-group .mdc-input-group-field .mdc-notched-outline__trailing {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mdc-input-group .mdc-input-group-append {
    order: 2;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.mdc-input-group .mdc-input-group-prepend, .mdc-input-group .mdc-input-group-append {
    height: 56px;
}

.mdc-input-group .mdc-input-group-prepend {
    order: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mdc-input-group .mdc-input-group-field.mdc-input-group-field-prepend .mdc-text-field > .mdc-text-field__input {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.mdc-input-group .mdc-input-group-field.mdc-input-group-field-append .mdc-text-field > .mdc-text-field__input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.text-danger, .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-helper-text.text-danger {
    color: var(--cas-theme-danger, #58151c);
}

.mdc-text-field__icon.text-danger {
    color: var(--mdc-theme-error, #b00020);
}

.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label {
    color: #153e50;
    color: var(--cas-theme-primary, #153e50);
}

.button-cancel {
    background-color: var(--mdc-theme-error, #a20323) !important;
}

span button.toolbar {
    background-color: var(--cas-theme-button-bg-lite, dodgerblue) !important;
}

.mdc-button--outline:not(:disabled, .reveal-password) {
    background-color: var(--cas-theme-secondary, #018077);
    border-radius: 8px 8px 8px 8px;
    filter: drop-shadow(2px 2px 4px #018077);
}

.mdc-button--raised:not(:disabled, .reveal-password) {
    margin-right: 4px;
    padding-top: 3px;
    border-radius: 9px 9px 9px 9px;
    filter: drop-shadow(2px 2px 4px #023b53);
    background-color: var(--cas-theme-primary, #153E50);
    cursor: default;
}

.mdc-button--raised:not(:disabled, .reveal-password):hover,
.mdc-button--raised:not(:disabled, .reveal-password):focus-visible {
    transform: scale(1.08);
    box-shadow: 5px 10px 10px rgba(0, 0, 0, 0.15);
    cursor: pointer;
}

.mdc-button.btn-primary:not(:disabled):hover,
.mdc-button.btn-primary:not(:disabled):focus-visible {
    background-color: var(--cas-theme-button-bg-hover, dodgerblue);
}

.mdc-button--lg {
    width: 180px;
    height: 48px;
}

.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.text-center {
    text-align: center;
}

.pad-0 {
    padding-right: 0;
    padding-left: 0;
}

.w-66 {
    width: 66%;
}

.w-33 {
    width: 33%;
}

.w-10 {
    width: 10% !important;
}

.w-25 {
    width: 25%;
}

.w-50 {
    width: 50%;
}

.w-75 {
    width: 75%;
}

.w-100 {
    width: 100%;
}

.w-auto {
    width: auto;
}

.h-750px {
    height: 750px;
}

.h-450px {
    height: 450px;
}

.h-350px {
    height: 350px;
}

.h-250px {
    height: 250px;
}

.h-150px {
    height: 150px;
}

.h-25 {
    height: 25%;
}

.h-50 {
    height: 50%;
}

.h-75 {
    height: 75%;
}

.h-100 {
    height: 100%;
}

.h-auto {
    height: auto;
}

.mw-100 {
    max-width: 100% !important;
}

.mw-75 {
    max-width: 75% !important;
}

.mw-50 {
    max-width: 50% !important;
}

.mh-100 {
    max-height: 100%;
}

.min-width-24x {
    min-width: 24px !important;
    width: 24px;
    max-height: 24px !important;
}

.min-width-32x {
    min-width: 32px !important;
    width: 32px;
    max-height: 32px !important;
}

.min-width-48x {
    min-width: 48px !important;
    width: 24px;
}

.min-vw-100 {
    min-width: 100vw;
}

.min-vh-100 {
    min-height: 100vh;
}

.min-height-60 {
    min-height: 60%;
}

.vw-100 {
    width: 100vw;
}

.vh-100 {
    height: 100vh;
}

.mw-50 {
    max-width: 50%;
}

.mw-25 {
    max-width: 25%;
}

.mw-20 {
    max-width: 20%;
}

.mt-0 {
    margin-top: 0;
}

.mt-2 {
    margin-top: 2px;
}

.mt-4 {
    margin-top: 4px;
}

.mt-auto {
    margin-top: auto;
}

.ml-2 {
    margin-left: 0.5rem;
}
.border-rounded {
    border-color: #153e50;
    border: 1px solid var(--cas-theme-primary, #153e50);
    border-radius: 8px;
}

.border-bottom {
    border-color: #153e50;
    border-bottom: 1px solid var(--cas-theme-primary, #153e50);
}

select.palantir {
    width: 100%;
    height: 48px;
    border-radius: 10px;
    border-color: var(--cas-theme-primary);
    font-family: monospace;
    font-size: 16px;
    padding-left: 7px;
    font-weight: bold;
}

.elevation-surface {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    min-height: 100px;
    min-width: 200px;
    margin: 15px;
    -ms-flex-align: center;
    align-items: center;
    border-radius: 50px;
    background-color: #e3e9ec;
}

.swal-overlay {
    background-color: rgba(17, 67, 119, 0.95);
}

@media all and (min-width: 768px) {
    .w-md-50 {
        width: 50%;
    }

    .w-md-66 {
        width: 66%;
    }
}

@media all and (min-width: 992px) {
    .w-lg-50 {
        width: 50%;
    }

    .w-lg-66 {
        width: 66%;
    }
}

@media all and (max-width: 767.99px) {
    .w-md-50 {
        width: 100%;
    }

    .w-md-66 {
        width: 100%;
    }
}

@media all and (max-width: 991.99px) {
    .w-lg-50 {
        width: 100%;
    }

    .w-lg-66 {
        width: 100%;
    }
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

*, ::after, ::before {
    box-sizing: border-box;
}

.text-justify {
    text-align: justify;
}

.text-wrap {
    white-space: normal;
}

.text-wrap-pretty {
    text-wrap: pretty;
}

#servicedesc .mdi {
    vertical-align: sub;
}

#fieldsLegend {
    font-size: 14px;
    font-style: italic;
}

.dataTables_wrapper {
    margin-left: 5px;
    margin-top: 5px;
    margin-right: 5px;
}

#heroimg {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.login-providers {
    max-width: 50%;
}

/** jQuery UI **/

.swal2-confirm {
    background-color: var(--cas-theme-button-bg);
}

.ui-selectmenu-open {
    background: var(--mdc-theme-background);
}

.ui-tooltip {
    background-color: var(--cas-theme-primary) !important;
    color: whitesmoke;
    min-width: 450px !important;
    max-width: 600px;
}

.ui-tabs-active {
    background: var(--cas-theme-primary) !important;
}

.ui-widget, .ui-widget button {
    font-family: var(--mdc-typography-font-family) !important;
    font-size: unset;
}

.ui-widget-content, .ui-widget-header {
    background: unset;
}

.ui-widget-header {
    border: unset;
}

.ui-tabs .ui-tabs-nav li {
    border-bottom: 1px solid var(--cas-theme-button-bg-lite);
    margin-right: 0.07em;
}

/***************************/


#main-content {
    margin-right: 10px;
    margin-left: 10px;
    margin-top: 2px;
}

main:has(.d-flex > section:only-of-type) {
    max-width: 560px;
}


@media all and (min-width: 768px) {
    .login-section {
        flex: 1 1 500px;
    }
}


/* fix for not showing password reveal icon on MSEdge and MSIE */
.pwd::-ms-reveal,
.pwd::-ms-clear {
    display: none;
}

@media (min-width: 1400px) {
    .container-xxl {
        max-width: 95%;
    }
}

/************************************/
body {
    overflow: hidden;
}

.sidebar-navigation {
    border-radius: 5px;
    display: inline-block;
    min-height: 100vh;
    width: 80px;
    background-color: var(--mdc-theme-primary, #6200ee);
    float: left;
}

.sidebar-navigation ul {
    margin: 0;
    padding: 0;
    text-align: center;
    color: white;
    list-style: none;
}

.sidebar-navigation ul li {
    padding: 28px 0;
    cursor: pointer;
    text-align: center;
    transition: all ease-out 120ms;
    border-radius: 10px;
}

.sidebar-navigation ul li i {
    display: block;
    font-size: 24px;
    transition: all ease 450ms;
}

.sidebar-navigation ul li .tooltip {
    display: inline-block;
    position: absolute;
    background-color: #313443;
    padding: 8px 15px;
    border-radius: 3px;
    margin-top: 5px;
    left: 170px;
    opacity: 0;
    visibility: hidden;
    font-size: 13px;
    letter-spacing: 0.5px;
    z-index: 100;
}

.sidebar-navigation ul li .tooltip:before {
    content: "";
    display: block;
    position: absolute;
    left: -4px;
    top: 5px;
    transform: rotate(45deg);
    width: 10px;
    height: 10px;
    background-color: inherit;
}

.sidebar-navigation ul li:hover {
    background-color: deepskyblue;
}

.sidebar-navigation ul li:hover .tooltip {
    visibility: visible;
    opacity: 1;
}

.sidebar-navigation ul li.active {
    background-color: steelblue;
}

.sidebar-navigation ul li.active i {
    color: #98D7EC;
}

/** Notyf Options **/
.notyf__toast {
    max-width: 50em !important;
    .notyf__ripple {
        height: 60em;
        width: 60em;
    }
}

.nodeLabel,.edgeLabel {
    font-family: Monaco, monospace !important;
}
foreignObject {
    border-radius: 5px;
}

pre code.hljs {
    box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.9);
}

.fade-in {
    animation: appear 0.4s ease-in-out forwards;
}

@keyframes appear {
    0%   { opacity: 0;   filter: blur(20px); }
    50%  { opacity: 0.5; filter: blur(10px); }
    100% { opacity: 1;   filter: blur(0);   }
}

/* ==================== Surcouche SEPR (voir wiki/projects/migration-cas-apereo-7x.md) ==================== */

:root {
    /* Palette SEPR (sepr.edu, relevee le 09/08/2026) */
    --cas-theme-primary: #292056;        /* indigo fonce - titres, boutons, top bar */
    --cas-theme-primary-light: #483b8b;  /* violet moyen - hover/liens, logo */
    --cas-theme-secondary: #00a590;      /* turquoise - accent, etats de succes */
    --cas-theme-success: var(--cas-theme-secondary);
    --mdc-theme-primary: var(--cas-theme-primary, #292056);

    /* Fond de page clair (le defaut CAS 7.3.x est sombre, rgb(27,39,51)) */
    --mdc-theme-body: #f5f6fa;

    /* Typographie SEPR (Barlow), en gardant une pile de secours large */
    --mdc-typography-font-family: 'Barlow', 'Open Sans', Roboto, Arial, sans-serif;
}

/* Barlow en gras pour les titres, plus proche du rendu sepr.edu */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

/* Bouton d'action principal (SE CONNECTER) : accent turquoise plutot que l'indigo
   du bandeau, pour un vrai contraste d'appel a l'action (absent de l'ancien theme,
   qui reutilisait la meme couleur pour tout) */
.mdc-button--raised:not(:disabled) {
    background-color: var(--cas-theme-secondary, #00a590);
}

/* Specificite egale a la regle par defaut "header > nav .cas-brand .cas-logo"
   (ligne ~127) pour la departager par l'ordre de declaration, sinon son
   "height: 100%" gagne et le medaillon rogne le mot SEPR du logo. */
header > nav .cas-brand .cas-logo,
.cas-brand .cas-logo {
    height: 32px;
    width: auto;
    padding: 10px 14px;
    background-color: #f5f6fa;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    box-sizing: content-box;
}

/* Le message parents/entreprises (screen.welcome.instructions) herite du style h2
   du thème par defaut, trop imposant pour un simple texte d'orientation
   (sur l'ancien CAS 6.3.2 c'etait un h5, plus discret). Retaille sans toucher
   aux autres h2 du site. */
#login-form-controls > h2.text-center {
    font-size: 1.05rem;
    font-weight: 600;
}

/* Photo de fond (courtyard SEPR) : par defaut background-position vaut 0% 0%
   (defaut navigateur, jamais fixe par le theme) donc avec background-size:cover
   seul le haut de la photo (ciel/toiture) reste visible. On decale la fenetre
   visible vers le bas pour montrer la cour (tables, arbres). */
.bgimage {
    background-position: center 75%;
}

/* Pied de page CAS (copyright Apereo, version, hostname) retire a la demande
   de Kevin (13/08/2026) - purement cosmetique, sans incidence fonctionnelle. */
#casFooter {
    display: none !important;
}

/* Bloc de bienvenue du service (#serviceui) : par defaut, icone+texte reste
   coince en haut a gauche d'un bandeau bleu generique Bootstrap avec un
   paragraphe vide qui laisse un blanc disgracieux dessous. Recentre le
   contenu, retire ce blanc, et reprend la palette SEPR plutot que le bleu
   par defaut (demande Kevin, 13/08/2026). */
#serviceui {
    background-color: rgba(0, 165, 144, 0.12);
    border-left: 4px solid var(--cas-theme-secondary, #00a590);
    border-radius: 6px;
    text-align: center;
}

#serviceui .d-flex {
    justify-content: center;
}

#servicedesc p:empty {
    display: none;
}

/* Icone "planete" (mdi-web) devant le message de bienvenue du service,
   jugee superflue par Kevin (13/08/2026) - texte seul suffit. */
#serviceui i.mdi-web {
    display: none;
}
