/* Rayor Transfer — habillage « Style Suisse » (régénéré depuis transfert.legacy.css).
   Encre/papier + rouge unique, Helvetica grotesque, radius 0, aplats, inversion. */
:root{
  --bg:#0b0b0c; --panel:#101013; --panel-2:#141417; --text:#f4f4f4; --muted:rgba(244,244,244,.62);
  --border:rgba(255,255,255,.16); --accent:#e23b3f; --accent-2:#e23b3f; --accent-ink:#fff;
  --danger:#e23b3f; --ok:#22c55e; --grid:#ffffff; --grid-op:0;
  --shadow:none; --radius:0;
}
:root[data-theme="light"]{
  --bg:#ffffff; --panel:#ffffff; --panel-2:#f4f4f4; --text:#0a0a0a; --muted:rgba(10,10,10,.58);
  --border:rgba(10,10,10,.14); --accent:#8e0004; --accent-2:#8e0004; --accent-ink:#fff;
  --danger:#8e0004; --ok:#0a8f54; --grid:#0a0a0a; --grid-op:0;
  --shadow:none; --radius:0;
}
*{box-sizing:border-box}html,body{margin:0}
body{
  font-family:"Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;overflow-x:hidden;
}
.bg-grid{position:fixed;inset:0;z-index:-2;pointer-events:none;color:var(--grid);opacity:var(--grid-op)}
body::after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(1100px 520px at 84% -14%,color-mix(in srgb,var(--accent) 14%,transparent),transparent)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{width:100%;max-width:680px;margin:0 auto;padding:24px 18px;flex:1}
.wrap-lg{max-width:1080px}
/* Barre */
.topbar{display:flex;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:14px 18px;width:100%}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:19px;color:var(--text);letter-spacing:-.3px}
.brand img{height:30px;width:auto;border-radius:7px;display:block}
.brand b{background:linear-gradient(90deg,var(--accent),#ff2e3e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.spacer{flex:1}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;min-width:40px;padding:0 14px;
  border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;transition:.2s}
.iconbtn:hover{border-color:transparent;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent);text-decoration:none}
.iconbtn:active{transform:scale(.95)}
.iconbtn.on{border-color:transparent;background:color-mix(in srgb,var(--accent) 20%,var(--panel));color:var(--accent)}
.chip-user{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}
/* Cartes & boutons */
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:999px;
  padding:13px 24px;font-size:15px;font-weight:700;cursor:pointer;transition:.2s;font-family:inherit;letter-spacing:.2px}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 36%,transparent)}
.btn-primary:hover{text-decoration:none;transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 11px 28px color-mix(in srgb,var(--accent) 48%,transparent)}
.btn-primary:active{transform:translateY(0) scale(.98)}
.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;filter:none}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);text-decoration:none}
.btn-ghost:active{transform:scale(.98)}
.muted{color:var(--muted)}
input,select{font-family:inherit;font-size:15px;color:var(--text);background:var(--panel-2);
  border:1px solid var(--border);border-radius:12px;padding:12px 13px;width:100%}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:6px}
/* ---- Mode Liquid Glass ---- */
[data-glass="on"] .card,[data-glass="on"] .iconbtn,[data-glass="on"] .btn-ghost,
[data-glass="on"] input,[data-glass="on"] select,[data-glass="on"] .launch-panel{
  background:color-mix(in srgb,var(--panel) 44%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);
  border-color:color-mix(in srgb,var(--text) 16%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 32%,transparent),inset 0 -14px 30px color-mix(in srgb,#fff 4%,transparent),0 16px 40px rgba(0,0,0,.34);
}
[data-glass="on"] .card{border-radius:24px}
[data-glass="on"] .btn-primary{
  background:color-mix(in srgb,var(--accent) 58%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 10px 28px color-mix(in srgb,var(--accent) 42%,transparent);
}
[data-glass="on"] .iconbtn:hover,[data-glass="on"] .btn-ghost:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}
[data-glass="on"] .drop{background:color-mix(in srgb,var(--panel) 30%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
/* Lanceur écosystème */
.launch-ov{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 58%,#000);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  z-index:2000;display:none;align-items:center;justify-content:center;padding:20px;opacity:0;transition:.25s}
.launch-ov.on{display:flex;opacity:1}
.launch-panel{width:100%;max-width:660px;background:var(--panel);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);
  padding:24px 24px 26px;transform:scale(.95) translateY(8px);transition:transform .3s cubic-bezier(.2,.9,.3,1.25)}
.launch-ov.on .launch-panel{transform:none}
.launch-head{display:flex;align-items:center;gap:12px}
.launch-head h2{margin:0;font-size:21px;font-weight:800;letter-spacing:-.4px;flex:1}
.launch-head h2 b{background:linear-gradient(90deg,var(--accent),#ff2e3e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.launch-close{flex:0 0 auto;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:.18s}
.launch-close:hover{color:var(--text);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel-2))}
.fr-tag{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);font-weight:700;letter-spacing:.6px;text-transform:uppercase;margin:6px 0 18px}
.fr-flag{width:18px;height:12px;border-radius:2px;background:linear-gradient(90deg,#002395 33%,#fff 33%,#fff 66%,#ed2939 66%)}
.launch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px}
.app{display:flex;align-items:center;gap:13px;padding:10px 12px;border-radius:13px;border:1px solid transparent;background:transparent;text-decoration:none;transition:.15s;position:relative}
.app:hover{background:color-mix(in srgb,var(--accent) 7%,transparent);border-color:color-mix(in srgb,var(--accent) 38%,var(--border));text-decoration:none}
.app-ic{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:.15s}
.app-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.app:hover .app-ic{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}
.app-cur .app-ic{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.app-tx{flex:1;min-width:0}
.app-tx h3{margin:0;font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-tx p{margin:1px 0 0;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-go{flex:0 0 auto;color:var(--accent);opacity:0;transform:translateX(-5px);transition:.15s}
.app:hover .app-go{opacity:1;transform:none}
.app-go svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.app-cur .app-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
footer.foot{text-align:center;padding:26px 16px;color:var(--muted);font-size:13px}
footer.foot a{color:var(--muted)}footer.foot a:hover{color:var(--text)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);
  padding:11px 18px;border-radius:11px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:3000}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* =====================================================================
   COUCHE SUISSE — aplatissement / inversion / grotesque / radius 0
   Surcouche autoritative (vert succès / rouge erreur conservés).
   ===================================================================== */

/* Grotesque partout */
body, .btn, .iconbtn, input, select, .launch-head h2, .app-tx h3, .toast {
  font-family:"Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif !important;
}

/* Pas de dégradé de fond : on neutralise le halo radial et la grille */
body::after{ background:none !important; }
.bg-grid{ display:none !important; }

/* Radius 0 sur tout le chrome (les pastilles/points rondes restent rondes) */
.card,.btn,.iconbtn,input,select,.launch-panel,.launch-close,.app,.app-ic,.drop,
.toast,.fr-flag{ border-radius:0 !important; }
/* Ronds explicitement conservés */
.app-cur .app-dot{ border-radius:50% !important; }

/* Plat : ni ombre, ni flou */
.card,.btn,.btn-primary,.iconbtn,.launch-panel,.toast{ box-shadow:none !important; }
.launch-ov,.drop{ -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
.launch-ov{ background:color-mix(in srgb,var(--bg) 90%,#000) !important; }

/* Désactive le mode Liquid Glass (flou/translucide) -> aplats nets */
[data-glass="on"] .card,[data-glass="on"] .iconbtn,[data-glass="on"] .btn-ghost,
[data-glass="on"] input,[data-glass="on"] select,[data-glass="on"] .launch-panel,
[data-glass="on"] .btn-primary,[data-glass="on"] .drop{
  background:var(--panel) !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border-color:var(--border) !important; box-shadow:none !important; border-radius:0 !important;
}
[data-glass="on"] .btn-primary{ background:var(--text) !important; }

/* Cartes = aplat + filet 1px */
.card{ background:var(--panel) !important; border:1px solid var(--border) !important; }

/* Boutons : primaire = encre, survol par inversion vers le rouge */
.btn{ text-transform:uppercase; letter-spacing:.04em; }
.btn-primary{
  background:var(--text) !important; color:var(--bg) !important;
  border:1px solid var(--text) !important; filter:none !important;
}
.btn-primary:hover{
  background:var(--accent) !important; border-color:var(--accent) !important;
  color:#fff !important; transform:none !important; filter:none !important; box-shadow:none !important;
}
.btn-primary:disabled{ opacity:.4; }
.btn-ghost{ background:transparent !important; color:var(--text) !important; border:1px solid var(--border) !important; }
.btn-ghost:hover{ background:var(--text) !important; color:var(--bg) !important; }

/* Boutons-icône : survol par inversion (encre), actif en rouge */
.iconbtn:hover{ background:var(--text) !important; color:var(--bg) !important; border-color:var(--text) !important; }
.iconbtn.on{ background:transparent !important; color:var(--accent) !important; border-color:var(--accent) !important; }
.chip-user{ color:var(--ok) !important; border-color:color-mix(in srgb,var(--ok) 45%,var(--border)) !important; }

/* Champs : filet 1px, focus rouge (pas d'anneau flou) */
input:focus,select:focus{ border-color:var(--accent) !important; box-shadow:none !important; outline:0 !important; }

/* Marque : nom en encre (pas de dégradé bleu→rouge) */
.brand b{ -webkit-text-fill-color:currentColor; color:var(--text) !important; background:none !important; }
.launch-head h2 b{ -webkit-text-fill-color:currentColor; color:var(--text) !important; background:none !important; }

/* Lanceur : item actif/survol = filet rouge, icône en rouge */
.app:hover{ background:transparent !important; border-color:var(--accent) !important; }
.app:hover .app-ic,.app-cur .app-ic{ color:var(--accent) !important; border-color:var(--accent) !important; }
.app-ic{ border-radius:0 !important; }
.app-go,.app:hover .app-go{ color:var(--accent) !important; }
.app-cur .app-dot{ background:var(--accent) !important; box-shadow:none !important; }
.launch-close:hover{ color:var(--bg) !important; background:var(--text) !important; border-color:var(--text) !important; }

/* Liens : rouge, soulignement au survol */
a{ color:var(--accent) !important; }

/* Drapeau FR : on garde (élément sémantique « hébergé en France ») mais carré */
.fr-flag{ border-radius:0 !important; }

/* Toast : aplat encre */
.toast{ background:var(--text) !important; color:var(--bg) !important; }

/* Libellés en capitales + interlettrage (déjà le cas pour .fr-tag) */
.fr-tag{ letter-spacing:.08em; }
