/* Saytu : touche « verre liquide » (11/11/2026), par-dessus css/base.css.
   Surfaces translucides et floutées, reflet clair sur l'arête haute, profondeur légère, halo vert et sable en fond.
   RETOUR SANS LE VERRE : supprimer la ligne <link rel="stylesheet" href="css/glass.css"> dans index.html
   (le reste du style est dans css/base.css). L'écran de connexion n'est pas concerné. */

:root{
  --glass:rgba(255,255,255,.68);
  --glass-strong:rgba(255,255,255,.78);
  --glass-edge:rgba(20,32,27,.09);
  --glass-hi:rgba(255,255,255,.85);
  --glass-blur:saturate(150%) blur(14px);
  --glass-depth:0 1px 2px rgba(10,30,22,.03),0 6px 18px rgba(10,30,22,.04);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --glass:rgba(26,38,33,.55);--glass-strong:rgba(26,38,33,.78);--glass-edge:rgba(255,255,255,.08);--glass-hi:rgba(255,255,255,.10);
  --glass-depth:0 1px 2px rgba(0,0,0,.25),0 10px 30px rgba(0,0,0,.30)}}
:root[data-theme="dark"]{
  --glass:rgba(26,38,33,.55);--glass-strong:rgba(26,38,33,.78);--glass-edge:rgba(255,255,255,.08);--glass-hi:rgba(255,255,255,.10);
  --glass-depth:0 1px 2px rgba(0,0,0,.25),0 10px 30px rgba(0,0,0,.30)}

/* halo de fond, fixe, derrière tout : il donne au verre quelque chose à flouter */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60vmax 45vmax at 92% -8%,rgba(11,110,91,.11),transparent 62%),
    radial-gradient(50vmax 40vmax at -8% 105%,rgba(217,164,65,.14),transparent 60%),
    radial-gradient(40vmax 30vmax at 55% 55%,rgba(11,92,76,.06),transparent 70%),
    var(--bg)}
body{background:transparent}

/* surfaces en verre */
nav.tabs,.panel,.pcard,.weeknav,.seg,.asg-save{
  background:var(--glass)!important;
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border-color:var(--glass-edge)!important;
  box-shadow:inset 0 1px 0 var(--glass-hi),var(--glass-depth)!important}
/* barre du haut : le flou est porté par un pseudo-élément, sinon il capturerait le menu latéral (position fixe) qu'elle contient */
header.top{background:transparent!important;border-color:var(--glass-edge)!important}
header.top::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);pointer-events:none}
nav.tabs{box-shadow:inset -1px 0 0 var(--glass-edge)!important}
html[dir="rtl"] nav.tabs{box-shadow:inset 1px 0 0 var(--glass-edge)!important}
.seg{box-shadow:inset 0 1px 2px rgba(10,30,22,.08)!important}
.panel .panel,.panel .pcard{box-shadow:inset 0 1px 0 var(--glass-hi)!important}

/* éléments flottants : verre plus dense */
dialog,.morebox,.menu .pop{
  background:var(--glass-strong)!important;
  -webkit-backdrop-filter:saturate(180%) blur(26px);backdrop-filter:saturate(180%) blur(26px);
  border:1px solid var(--glass-edge)!important;
  box-shadow:inset 0 1px 0 var(--glass-hi),0 18px 44px rgba(10,30,22,.16)!important}
dialog::backdrop{background:rgba(8,16,12,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.toast{background:rgba(20,32,27,.78)!important;color:#fff!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 12px 30px rgba(0,0,0,.25)}

/* boutons : capsules de verre ; le bouton principal garde son vert, avec un reflet */
main .btn:not(.primary):not(.danger):not(.hhero .btn),dialog .btn:not(.primary):not(.danger),header.top .langtop,header.top .menu summary{
  background:rgba(255,255,255,.55)!important;
  -webkit-backdrop-filter:saturate(170%) blur(12px);backdrop-filter:saturate(170%) blur(12px);
  border-color:var(--glass-edge)!important;
  box-shadow:inset 0 1px 0 var(--glass-hi),0 1px 2px rgba(10,30,22,.04)}
main .btn.primary,dialog .btn.primary,.seg button[aria-pressed="true"],.chips button[aria-pressed="true"]{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 3px rgba(11,110,91,.14)!important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) :is(main,dialog) .btn:not(.primary):not(.danger):not(.hhero .btn),:root:not([data-theme="light"]) header.top :is(.langtop,.menu summary){background:rgba(255,255,255,.07)!important}}
:root[data-theme="dark"] :is(main,dialog) .btn:not(.primary):not(.danger):not(.hhero .btn),:root[data-theme="dark"] header.top :is(.langtop,.menu summary){background:rgba(255,255,255,.07)!important}
/* la barre du haut : menu et faculté au même verre que langue et compte */
header.top .burger,header.top .hdrfac select{background-color:rgba(255,255,255,.55);border-color:var(--glass-edge)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) header.top :is(.burger,.hdrfac select){background-color:rgba(255,255,255,.07)}}
:root[data-theme="dark"] header.top :is(.burger,.hdrfac select){background-color:rgba(255,255,255,.07)}

/* bandeau vert du menu et carte « Prochain cours » : reflet de verre sur l'aplat */
nav.tabs .drawer-top,.hhero{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 4px 12px rgba(11,92,76,.12)!important}

/* lisibilité : la grille d'emploi du temps et les champs restent opaques */
.tt-wrap{background:var(--surface)!important}
input,select,textarea{background-color:var(--surface)}

/* appareils qui ne savent pas flouter : surfaces opaques */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  header.top::before,nav.tabs,.panel,.pcard,.weeknav,.asg-save,dialog,.morebox,.menu .pop{background:var(--surface)!important}
}
@media (prefers-reduced-transparency: reduce){
  header.top::before,nav.tabs,.panel,.pcard,.weeknav,.asg-save,dialog,.morebox,.menu .pop{background:var(--surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}
}
.pcard[aria-pressed="true"]{background:var(--accent-soft)!important;border-color:var(--accent)!important}

/* la carte « Prochain cours » garde son aplat vert */
.hhero.hhero{background:var(--brand)!important;-webkit-backdrop-filter:none;backdrop-filter:none;border-color:transparent!important}
.hhero .btn{background:transparent!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
