/* =====================================================================
   LINUX — thème Aero glossy (Windows Vista / 7)
   Verre dépoli, reflets, fond « aurore » vert et bleu, boutons brillants.
   Sombre par défaut ; html[data-theme="light"] pour la version claire.
   ===================================================================== */
body.p-linux{
  --bg:#06262d;--bg2:#0b3640;--card:rgba(255,255,255,.08);--ink:#eaf6fb;--muted:#b4d2dc;--line:rgba(255,255,255,.28);
  --accent:#6fe3a2;--accent-ink:#04221a;--link:#8fe3ff;
  --glass:linear-gradient(180deg,rgba(255,255,255,.26) 0,rgba(255,255,255,.09) 48%,rgba(255,255,255,.03) 50%,rgba(255,255,255,.10) 100%),rgba(8,40,52,.38);
  --glass-edge:rgba(255,255,255,.42);
  --t-bg:transparent;--t-bar:transparent;--t-border:rgba(255,255,255,.42);--t-fg:#e6f3f8;--t-title:#ffffff;
  --t-pr:#7cfc9a;--t-pa:#6cc7ff;--t-hl:#ffe27a;--t-dim:#8fb3c2;--t-err:#ff8a7a;
  font-family:"Segoe UI","Noto Sans",Tahoma,Verdana,sans-serif;font-size:15.5px;
  background:
    radial-gradient(ellipse 65% 45% at 12% 92%,rgba(46,204,113,.60),transparent 70%),
    radial-gradient(ellipse 55% 40% at 88% 12%,rgba(52,152,219,.55),transparent 70%),
    radial-gradient(ellipse 45% 30% at 62% 58%,rgba(26,188,156,.35),transparent 70%),
    linear-gradient(160deg,#04222c 0%,#0a3b3f 45%,#0b2a4a 100%);
  background-attachment:fixed;
}
html[data-theme="light"] body.p-linux{
  --bg:#e4f5fb;--bg2:#d4edf6;--ink:#0b2a3a;--muted:#3d6577;--line:rgba(11,42,58,.18);--accent:#1c9a54;--accent-ink:#fff;--link:#0b6ea8;
  --glass:linear-gradient(180deg,rgba(255,255,255,.85) 0,rgba(255,255,255,.55) 48%,rgba(255,255,255,.35) 50%,rgba(255,255,255,.55) 100%),rgba(220,240,248,.35);
  --glass-edge:rgba(255,255,255,.95);
  --t-title:#0b2a3a;
  background:
    radial-gradient(ellipse 65% 45% at 12% 92%,rgba(46,204,113,.45),transparent 70%),
    radial-gradient(ellipse 55% 40% at 88% 10%,rgba(52,152,219,.40),transparent 70%),
    radial-gradient(ellipse 45% 30% at 60% 55%,rgba(26,188,156,.22),transparent 70%),
    linear-gradient(160deg,#cdeefa 0%,#e9fbf3 50%,#d6ecfb 100%);
  background-attachment:fixed;
}
/* Rayons de lumière (pas de lignes de balayage ici) */
body.p-linux::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:normal;opacity:1;
  background:
    linear-gradient(112deg,transparent 30%,rgba(255,255,255,.10) 36%,transparent 44%),
    linear-gradient(112deg,transparent 52%,rgba(255,255,255,.07) 56%,transparent 61%),
    linear-gradient(112deg,transparent 64%,rgba(255,255,255,.12) 66%,transparent 70%)}
canvas.matrix{display:none}

/* Typographie : Segoe, titres lumineux */
body.p-linux h1{font-family:"Segoe UI","Noto Sans",sans-serif;font-weight:300;letter-spacing:-.01em;font-size:clamp(44px,6vw,78px);line-height:1.02;
  color:#fff;text-shadow:0 0 18px rgba(255,255,255,.55),0 0 2px rgba(255,255,255,.8)}
html[data-theme="light"] body.p-linux h1{color:#0b3550;text-shadow:0 0 14px #fff,0 0 3px #fff}
body.p-linux h2,body.p-linux h3{font-family:"Segoe UI","Noto Sans",sans-serif;font-weight:400;letter-spacing:0;text-shadow:0 0 12px rgba(255,255,255,.35)}
html[data-theme="light"] body.p-linux h2,html[data-theme="light"] body.p-linux h3{text-shadow:0 0 10px #fff;color:#0b3550}
body.p-linux h2::before{content:none}
body.p-linux .lead{font-size:16.5px;line-height:1.7;color:var(--muted)}
body.p-linux a,body.p-linux a.auto{color:var(--link);text-decoration-color:rgba(143,227,255,.5)}
html[data-theme="light"] body.p-linux a.auto{text-decoration-color:rgba(11,110,168,.4)}

/* Verre */
body.p-linux .card,body.p-linux #setup,body.p-linux .term,body.p-linux .site-footer{
  background:var(--glass);border:1px solid var(--glass-edge);border-radius:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 0 0 1px rgba(255,255,255,.08),0 12px 34px rgba(0,0,0,.38);
  backdrop-filter:blur(10px) saturate(1.5);-webkit-backdrop-filter:blur(10px) saturate(1.5)}
html[data-theme="light"] body.p-linux .card,html[data-theme="light"] body.p-linux #setup,html[data-theme="light"] body.p-linux .site-footer{box-shadow:inset 0 1px 0 #fff,0 10px 28px rgba(11,42,58,.18)}

/* En-tête : barre en verre, onglet actif en surbrillance Aero */
body.p-linux .site-header{background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,.28) 50%,rgba(0,0,0,.42));border-bottom:1px solid rgba(255,255,255,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);backdrop-filter:blur(12px) saturate(1.5)}
html[data-theme="light"] body.p-linux .site-header{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.55) 50%,rgba(220,240,250,.6));border-bottom-color:rgba(11,42,58,.18)}
body.p-linux .brand{font-family:"Segoe UI","Noto Sans",sans-serif;font-size:18px;font-weight:600;color:var(--ink)}
body.p-linux .menu a{color:var(--muted);border:1px solid transparent;border-radius:4px}
body.p-linux .menu a:hover{background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.08) 50%,rgba(255,255,255,.02) 51%,rgba(255,255,255,.12));border-color:rgba(255,255,255,.4);color:var(--ink)}
body.p-linux .menu a[aria-current="page"]{background:linear-gradient(180deg,rgba(185,235,255,.55),rgba(90,180,230,.35) 50%,rgba(40,140,210,.35) 51%,rgba(110,200,245,.5));
  border-color:rgba(160,220,255,.8);color:#fff;box-shadow:0 0 10px rgba(110,200,245,.45)}
html[data-theme="light"] body.p-linux .menu a[aria-current="page"]{color:#0b2a3a}
body.p-linux .icon-btn{border-radius:4px;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.08) 50%,rgba(255,255,255,.02) 51%,rgba(255,255,255,.14));border-color:rgba(255,255,255,.45);color:var(--ink)}

/* Boutons brillants */
body.p-linux .chip,body.p-linux .filters button{border-radius:3px;font-family:inherit;font-size:13.5px;color:#0b2a3a;border:1px solid #6f8fa3;
  background:linear-gradient(180deg,#f4fafd 0,#dcecf5 49%,#c6e0ee 50%,#e6f3f9 100%);box-shadow:inset 0 1px 0 #fff}
body.p-linux .chip:hover,body.p-linux .filters button:hover{border-color:#3c7fb1;background:linear-gradient(180deg,#eaf7fe 0,#c3e7fa 49%,#a9daf6 50%,#d7effc 100%);box-shadow:0 0 8px rgba(80,170,230,.6),inset 0 1px 0 #fff;color:#0b2a3a}
body.p-linux .filters button.on{border-color:#2f6f9c;background:linear-gradient(180deg,#d7f0fd 0,#93d1f3 49%,#6dbbea 50%,#a9dcf7 100%);color:#062236;box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
body.p-linux a.chip{color:#0b2a3a}
body.p-linux .chip small{color:#3d6577}

/* Setup : liste dans une fenêtre en verre */
body.p-linux #setup{padding:4px 22px}
body.p-linux #setup .stat{border-bottom:1px solid var(--line)}
body.p-linux #setup .stat:nth-last-child(-n+3){border-bottom:0}
body.p-linux #setup .stat span::after{content:" :"}
body.p-linux .mono-val{font-family:"Segoe UI","Noto Sans",sans-serif!important;font-weight:600!important}
body.p-linux .mono-val a{color:var(--ink);text-decoration-color:var(--accent)}

/* « Ce que j'en fais » : petites fenêtres */
body.p-linux .cards .card{border-left:1px solid var(--glass-edge);border-radius:8px;padding:18px 20px}
body.p-linux .cards .card h3{font-size:18px;margin-bottom:8px}
body.p-linux .card p{color:var(--muted)}

/* Terminal : cadre de fenêtre Vista, contenu façon console */
body.p-linux .term{padding:0 6px 6px;overflow:hidden}
body.p-linux .term-bar{background:transparent;border:0;padding:8px 2px;color:var(--t-title);font-family:"Segoe UI","Noto Sans",sans-serif;font-size:13px;
  text-shadow:0 0 8px rgba(255,255,255,.7)}
html[data-theme="light"] body.p-linux .term-bar{text-shadow:0 0 8px #fff}
body.p-linux .term-bar span:first-of-type{order:0;margin-left:4px}
body.p-linux .term-bar .tb{order:2;width:27px;height:19px;border-radius:3px;border:1px solid rgba(0,0,0,.45);
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.18) 50%,rgba(255,255,255,.05) 51%,rgba(255,255,255,.28));box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
body.p-linux .term-bar .tb.yellow{order:1;margin-left:auto}
body.p-linux .term-bar .tb.green{order:2}
body.p-linux .term-bar .tb.red{order:3;width:44px;background:linear-gradient(180deg,#eeb0a0 0,#d0583a 49%,#ad2a10 50%,#d9653f 100%)}
body.p-linux .term-bar .tb::after{opacity:1;color:#fff;font:700 11px/1 "Segoe UI",sans-serif;text-shadow:0 0 3px rgba(0,0,0,.8)}
body.p-linux .term-bar .tb.yellow::after{content:"–"}
body.p-linux .term-bar .tb.green::after{content:"□"}
body.p-linux .term-bar .tb.red::after{content:"✕"}
body.p-linux .term-bar .tb:hover{box-shadow:0 0 10px rgba(120,200,255,.9),inset 0 1px 0 rgba(255,255,255,.6)}
body.p-linux .term-bar .tb.red:hover{box-shadow:0 0 12px rgba(255,120,80,.95)}
body.p-linux .term-hint{order:0}
body.p-linux .term-body{background:rgba(4,14,20,.88);border:1px solid rgba(255,255,255,.3);border-radius:2px;box-shadow:inset 0 1px 4px rgba(0,0,0,.6)}
body.p-linux .term.full{padding:0 8px 8px;border-radius:0}

/* Pied de page */
body.p-linux .site-footer{margin:40px 24px 24px;border-radius:8px}
body.p-linux .site-footer kbd{background:rgba(255,255,255,.2);border-color:var(--glass-edge);color:var(--ink)}

@media (prefers-reduced-transparency:reduce){
  body.p-linux .card,body.p-linux #setup,body.p-linux .term{backdrop-filter:none}
}
body.p-linux .cards .card{background:var(--glass);border:1px solid var(--glass-edge);border-radius:8px;padding:18px 20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 12px 34px rgba(0,0,0,.3);backdrop-filter:blur(10px) saturate(1.5);-webkit-backdrop-filter:blur(10px) saturate(1.5)}

/* ---- Boutons de fenêtre animés façon Windows Vista / 7 ---- */
body.p-linux .term-bar .tb{position:relative;overflow:hidden;cursor:pointer;
  transition:box-shadow .35s ease,border-color .35s ease,transform .08s}
body.p-linux .term-bar .tb::before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .45s ease;
  background:radial-gradient(ellipse 90% 70% at 50% 100%,rgba(140,215,255,1),rgba(60,150,235,.75) 55%,rgba(30,90,170,.35) 100%),
             linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.12) 50%,transparent 51%)}
body.p-linux .term-bar .tb.red::before{background:radial-gradient(ellipse 90% 70% at 50% 100%,#ffd0a8,#f05a32 55%,#b8200a 100%),
             linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.12) 50%,transparent 51%)}
body.p-linux .term-bar .tb::after{z-index:1}
body.p-linux .term-bar .tb:hover::before,body.p-linux .term-bar .tb:focus-visible::before{opacity:1;transition-duration:.18s}
body.p-linux .term-bar .tb:hover{border-color:rgba(20,60,110,.8);animation:aero-glow 1.6s ease-in-out infinite alternate}
body.p-linux .term-bar .tb.red:hover{border-color:rgba(110,20,10,.8);animation-name:aero-glow-red}
body.p-linux .term-bar .tb:active{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.55)!important;animation:none}
body.p-linux .term-bar .tb:active::before{opacity:1;filter:brightness(.72) saturate(1.2);transition-duration:0s}
@keyframes aero-glow{from{box-shadow:0 0 5px rgba(120,200,255,.55),inset 0 1px 0 rgba(255,255,255,.6)}to{box-shadow:0 0 14px rgba(120,200,255,1),inset 0 1px 0 rgba(255,255,255,.7)}}
@keyframes aero-glow-red{from{box-shadow:0 0 5px rgba(255,120,80,.6)}to{box-shadow:0 0 16px rgba(255,110,70,1)}}
/* Fenêtre active : halo bleuté, comme une fenêtre Aero au premier plan */
body.p-linux .term{transition:box-shadow .35s ease}
body.p-linux .term:focus-within{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(170,225,255,.55),0 0 28px rgba(110,200,255,.4),0 14px 40px rgba(0,0,0,.45)}
body.p-linux .term.full{border-radius:0;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);
  background:var(--glass),rgba(6,30,40,.55)}
html[data-theme="light"] body.p-linux .term.full{background:var(--glass),rgba(220,240,248,.6)}
@media (prefers-reduced-motion:reduce){ body.p-linux .term-bar .tb:hover{animation:none} }

/* ===== Animations Aero / Windows 7 sur les boutons (filtres, chips, onglets du haut, icônes) =====
   Un dégradé ne peut pas s'animer : le reflet de survol est posé sur ::before et apparaît en fondu,
   vite à l'entrée et lentement à la sortie, comme sous Windows 7. */
body.p-linux .menu a,body.p-linux .chip,body.p-linux .filters button,body.p-linux .icon-btn{position:relative;isolation:isolate;overflow:hidden;
  transition:box-shadow .9s ease,border-color .9s ease,color .3s,transform .12s}
body.p-linux .menu a::before,body.p-linux .chip::before,body.p-linux .filters button::before,body.p-linux .icon-btn::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .9s ease}
/* reflet bleu des boutons (verre clair) */
body.p-linux .chip::before,body.p-linux .filters button::before{background:linear-gradient(180deg,#eaf7fe 0,#c3e7fa 49%,#a9daf6 50%,#d7effc 100%)}
/* reflet verre des onglets et des icônes */
body.p-linux .menu a::before,body.p-linux .icon-btn::before{background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(190,230,255,.16) 50%,rgba(120,200,255,.08) 51%,rgba(170,225,255,.3))}
/* au survol : le fond reste celui de base, c'est le reflet qui apparaît */
body.p-linux .chip:hover,body.p-linux .filters button:not(.on):hover{background:linear-gradient(180deg,#f4fafd 0,#dcecf5 49%,#c6e0ee 50%,#e6f3f9 100%)}
body.p-linux .filters button.on:hover{background:linear-gradient(180deg,#d7f0fd 0,#93d1f3 49%,#6dbbea 50%,#a9dcf7 100%)}
body.p-linux .filters button.on::before{background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,.1))}
body.p-linux .menu a:hover{background:transparent}
body.p-linux .menu a:hover::before,body.p-linux .chip:hover::before,body.p-linux .filters button:hover::before,body.p-linux .icon-btn:hover::before{opacity:1;transition-duration:.18s}
body.p-linux .menu a:hover,body.p-linux .chip:hover,body.p-linux .filters button:hover,body.p-linux .icon-btn:hover{transition-duration:.18s,.18s,.3s,.12s}
body.p-linux .menu a:hover,body.p-linux .icon-btn:hover{box-shadow:0 0 10px rgba(120,200,255,.55),inset 0 1px 0 rgba(255,255,255,.5);border-color:rgba(255,255,255,.55)}
/* lueur qui « respire » tant que la souris reste dessus */
body.p-linux .chip:hover,body.p-linux .filters button:not(.on):hover{animation:aero-btn 1.8s ease-in-out .2s infinite alternate}
@keyframes aero-btn{from{box-shadow:0 0 5px rgba(80,170,230,.45),inset 0 1px 0 #fff}to{box-shadow:0 0 13px rgba(80,170,230,.9),inset 0 1px 0 #fff}}
/* reflet qui balaie le bouton au survol */
body.p-linux .filters button::after,body.p-linux .menu a::after,body.p-linux .icon-btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);opacity:0}
body.p-linux .filters button:hover::after,body.p-linux .menu a:hover::after,body.p-linux .icon-btn:hover::after{animation:aero-shine .7s ease-out}
@keyframes aero-shine{0%{left:-60%;opacity:1}100%{left:120%;opacity:0}}
/* appui : bouton enfoncé, reflet plus foncé */
body.p-linux .menu a:active,body.p-linux .chip:active,body.p-linux .filters button:active,body.p-linux .icon-btn:active{transform:translateY(1px);transition-duration:.05s}
body.p-linux .chip:active::before,body.p-linux .filters button:active::before{background:linear-gradient(180deg,#d7f0fd 0,#93d1f3 49%,#6dbbea 50%,#a9dcf7 100%);transition:none}
body.p-linux .chip:active,body.p-linux .filters button:active{box-shadow:inset 0 2px 3px rgba(0,0,0,.3);animation:none}
/* le filtre choisi s'allume en douceur */
body.p-linux .filters button.on{animation:aero-on .45s ease-out}
@keyframes aero-on{0%{filter:brightness(1.35)}100%{filter:none}}
@media (prefers-reduced-motion:reduce){
  body.p-linux .menu a,body.p-linux .chip,body.p-linux .filters button,body.p-linux .icon-btn,
  body.p-linux .menu a::before,body.p-linux .chip::before,body.p-linux .filters button::before,body.p-linux .icon-btn::before{transition:none;animation:none}
  body.p-linux .filters button:hover::after,body.p-linux .menu a:hover::after,body.p-linux .icon-btn:hover::after{animation:none}
}
