/* SatMe-PC's tabs (moteur: PagePc.STYLE_JETONS, OngletOrbites.CSS, OngletSked.CSS, IssDirectJs.CSS) */

  :root {
    --s0:#0A0F14; --s1:#0F161D; --s2:#131C24; --s3:#1A2530; --creux:#0D151C; --ligne:#22303B; --ligne-forte:#2F4150;
    --texte:#E8F0F7; --texte-2:#9AA7B4; --texte-3:#6B7C8F;
    --ok:#5BD68A; --warn:#FFB454; --danger:#E5484D; --info:#6F8CFF; --rx:#3FE0C8; --tx:#FF5A36; --mark:#B07CFF; --sat:#FFD166;
    --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:24px;
    --r1:6px; --r2:8px; --r3:10px;
    --fs-xs:11px; --fs-s:12px; --fs-m:13px; --fs-l:14px;
    --mono:ui-monospace,'Cascadia Mono','JetBrains Mono',Consolas,'DejaVu Sans Mono',monospace;
    --ombre:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 18px rgba(0,0,0,.28);
    --ombre-pop:0 14px 40px rgba(0,0,0,.55);
    --anim:140ms cubic-bezier(.2,.7,.3,1);
    --rail:48px;
    /* The names the page used before, kept as aliases. */
    --fond:var(--s0); --carte:var(--s2); --bord:var(--ligne); --cyan:var(--rx);
    --ambre:var(--warn); --rose:var(--danger); --vert:var(--ok); --gris:var(--texte-2); --clair:var(--texte);
  }

  /* Orbites: the satellites on the left (their passes under them in the Passage view), the stage filling the rest. */
  .ob-boite { position:relative; display:grid; grid-template-columns:250px minmax(0, 1fr); gap:10px; height:calc(100vh - 110px); min-height:480px; margin:12px 16px; }
  @media (min-width:1101px) and (min-height:600px) { .ob-boite { height:auto; position:absolute; inset:12px 16px; margin:0; } #v-orbites { position:relative; } }
  .ob-liste { min-height:0; display:flex; flex-direction:column; gap:8px; margin:0; }
  .ob-liste .t { margin:0; }
  .ob-sats { overflow:auto; min-height:96px; flex:1 1 0; display:flex; flex-direction:column; gap:2px; }
  .ob-sat { display:grid; grid-template-columns:18px 1fr auto; align-items:center; gap:2px 8px; padding:4px 6px; border-radius:var(--r1); cursor:pointer; }
  .ob-sat:hover, .ob-sat.choisi { background:var(--s3); }
  .ob-sat input { margin:0; }
  .ob-nom { font-weight:600; display:flex; align-items:center; gap:6px; min-width:0; }
  .ob-nom span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ob-nom small { color:var(--texte-3); font-weight:400; }
  .ob-pastille { width:9px; height:9px; border-radius:50%; flex:none; }
  .ob-el { font-family:var(--mono); font-size:var(--fs-xs); color:var(--texte-3); text-align:right; }
  .ob-el.haut { color:var(--warn); font-weight:600; }
  .ob-det { grid-column:2 / 4; font-family:var(--mono); font-size:var(--fs-xs); color:var(--texte-3); }
  .ob-det:empty { display:none; }
  .ob-passages { flex:0 1 auto; max-height:45%; overflow:auto; display:flex; flex-direction:column; gap:3px; border-top:1px solid var(--ligne); padding-top:8px; }
  .ob-pas { display:grid; grid-template-columns:1fr auto; gap:0 8px; text-align:left; background:transparent; border:1px solid transparent; border-radius:var(--r1); padding:4px 7px; font-family:var(--mono); font-size:var(--fs-s); }
  .ob-pas:hover { border-color:var(--ligne-forte); }
  .ob-pas[aria-pressed="true"] { border-color:var(--rx); background:rgba(63,224,200,.08); }
  .ob-max { color:var(--warn); font-weight:600; }
  .ob-sous { grid-column:1 / 3; color:var(--texte-3); font-size:var(--fs-xs); }
  .ob-scene { position:relative; min-height:0; border-radius:var(--r3); overflow:hidden; border:1px solid var(--ligne); background:#000; }
  .ob-scene > canvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
  .ob-scene > canvas[hidden] { display:none; }
  #ob-3d { cursor:grab; touch-action:none; }
  .ob-haut { position:absolute; left:10px; right:10px; top:10px; z-index:3; display:flex; gap:8px; flex-wrap:wrap; align-items:flex-start; pointer-events:none; }
  .ob-haut > * { pointer-events:auto; }
  .ob-seg { display:flex; align-items:center; gap:2px; padding:3px; border-radius:var(--r2); background:rgba(15,22,29,.86); border:1px solid var(--ligne); flex-wrap:wrap; }
  .ob-seg button { border:0; background:transparent; padding:4px 9px; border-radius:var(--r1); font-size:var(--fs-s); font-weight:600; color:var(--texte-2); }
  .ob-seg button[aria-pressed="true"] { background:var(--s3); color:var(--rx); }
  .ob-seg label { display:flex; align-items:center; gap:6px; padding:0 6px; font-size:var(--fs-s); color:var(--texte-2); }
  .ob-seg select { padding:2px 6px; font-size:var(--fs-s); }
  .ob-traces-choix { width:84px; min-width:0; flex:none; }
  .ob-temps { margin-left:auto; font-family:var(--mono); font-size:var(--fs-s); }
  .ob-temps button, .ob-temps select { padding:3px 8px; font-size:var(--fs-s); }
  .ob-temps span { padding:0 4px; color:var(--texte); }
  .ob-cadreur { flex-basis:100%; display:flex; gap:8px; flex-wrap:wrap; }
  .ob-cadreur[hidden] { display:none; }
  .ob-bulle { position:absolute; z-index:4; pointer-events:none; background:rgba(14,23,32,.96); border:1px solid var(--ligne-forte); border-radius:6px; padding:4px 8px; font-family:var(--mono); font-size:var(--fs-xs); white-space:nowrap; }
  .ob-banniere { position:absolute; left:50%; top:22%; transform:translateX(-50%); z-index:2; text-align:center; pointer-events:none; font-size:clamp(22px, 3.2vw, 40px); font-weight:800; letter-spacing:.06em; color:#fff; text-shadow:0 0 18px rgba(63,224,200,.8), 0 2px 0 rgba(0,0,0,.6); white-space:nowrap; }
  .ob-banniere small { display:block; font-family:var(--mono); font-size:var(--fs-m); font-weight:600; letter-spacing:0; color:var(--texte); text-shadow:0 1px 2px #000; margin-top:6px; }
  .ob-banniere.ob-flash { animation:ob-flash 1.4s ease-out; }
  @keyframes ob-flash { 0% { transform:translateX(-50%) scale(1.5); opacity:0; } 25% { opacity:1; } 100% { transform:translateX(-50%) scale(1); } }
  .ob-instruments { position:absolute; left:10px; right:10px; bottom:10px; z-index:3; display:grid; grid-template-columns:170px minmax(0, 1fr) 200px; gap:10px; }
  .ob-instruments[hidden] { display:none; }
  .ob-instruments > div { background:rgba(10,15,20,.82); border:1px solid var(--ligne); border-radius:var(--r3); padding:8px; min-width:0; }
  .ob-instruments canvas { display:block; width:100%; height:140px; }
  .ob-lecteur { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
  .ob-lecteur button, .ob-lecteur select { padding:3px 9px; font-size:var(--fs-s); }
  .ob-jouer { background:var(--rx); color:#06131A; border-color:var(--rx); font-weight:600; }
  .ob-mode { align-self:center; margin-left:auto; font-family:var(--mono); font-size:var(--fs-s); color:var(--warn); font-weight:600; }
  .ob-mode.ob-live { color:var(--ok); }
  .ob-mesures { display:grid; grid-template-columns:auto 1fr; gap:3px 10px; font-family:var(--mono); font-size:var(--fs-s); margin:0; }
  .ob-mesures dt { color:var(--texte-3); }
  .ob-mesures dd { margin:0; text-align:right; font-weight:600; font-variant-numeric:tabular-nums; }
  /* The dashboard (Tableau): the globe on the whole screen, its information in the corners, readable from across the room. */
  .ob-tb { position:relative; }
  .ob-infos { position:absolute; right:0; top:calc(100% + 6px); z-index:6; width:max-content; max-width:min(300px, 80vw); background:var(--s2); border:1px solid var(--ligne-forte); border-radius:var(--r2); box-shadow:var(--ombre-pop); padding:8px 12px; }
  .ob-infos label { display:flex; align-items:center; gap:8px; min-height:30px; font-size:var(--fs-s); color:var(--texte); padding:0; cursor:pointer; }
  #v-orbites.ob-tableau { position:relative; min-height:100vh; background:var(--s0); }
  #v-orbites.ob-pseudo { position:fixed; inset:0; z-index:1000; overflow:hidden; }
  #v-orbites.ob-tableau .ob-boite { position:absolute; inset:0; margin:0; height:auto; min-height:0; grid-template-columns:minmax(0, 1fr); grid-template-rows:minmax(0, 1fr); }
  #v-orbites.ob-tableau .ob-liste { display:none; }
  #v-orbites.ob-tableau .ob-scene { height:auto; min-height:0; border:0; border-radius:0; order:0; }
  #v-orbites.ob-tableau .ob-haut { justify-content:center; transition:opacity .4s; }
  #v-orbites.ob-tableau .ob-haut > :not(.ob-tb):not(.ob-tb-garde):not(.ob-cadreur) { display:none; }
  #v-orbites.ob-tableau.ob-calme .ob-haut:not(:hover):not(:focus-within) { opacity:.2; }
  #v-orbites.ob-tableau.ob-calme .ob-scene { cursor:none; }
  #v-orbites.ob-tableau.ob-deplace:not(.ob-calme) #ob-3d { cursor:move; }
  .ob-coin { display:none; }
  #v-orbites.ob-tableau .ob-coin { position:absolute; z-index:3; display:flex; flex-direction:column; gap:10px; max-width:min(38%, 440px); pointer-events:none; overflow:hidden; }
  /* The full screen's mark: the logo and « SatMe », top left (above the first corner). */
  .ob-marque { display:none; }
  #v-orbites.ob-tableau .ob-marque { display:flex; align-items:center; gap:.4em; position:absolute; left:14px; top:12px; z-index:3; pointer-events:none;
    font-size:clamp(20px, 2vw, 34px); font-weight:800; letter-spacing:.02em; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.7); }
  #v-orbites.ob-tableau .ob-marque img { height:1.35em; width:1.35em; border-radius:22%; box-shadow:0 1px 4px rgba(0,0,0,.5); }
  /* Classique: its top row is the cards, so the mark goes bottom left, above the ticker; too narrow a screen: none (the toolbar is there). */
  #v-orbites.ob-th-classique.ob-tableau .ob-marque { top:auto; bottom:calc(14px + 2.1 * clamp(14px, 1.25vw, 22px)); font-size:clamp(16px, 1.4vw, 26px); }
  @media (max-width:700px) { #v-orbites.ob-tableau .ob-marque { display:none; } }
  .ob-coin-hg { left:14px; top:60px; max-height:calc(50% - 70px); } .ob-coin-hd { right:14px; top:60px; max-height:calc(50% - 70px); align-items:flex-end; }
  .ob-coin-bg { left:14px; bottom:14px; max-height:calc(50% - 24px); } .ob-coin-bd { right:14px; bottom:14px; max-height:calc(50% - 24px); align-items:flex-end; }
  /* A corner whose cards do not fit is made smaller (--ob-k, obAjusteCoin) rather than cut; anchored at the bottom, its content flows downwards so that an overflow is seen. */
  #v-orbites.ob-tableau .ob-instruments:not([hidden]) ~ .ob-coin-b { display:none; }
  .ob-w { background:rgba(8,13,18,.6); border:1px solid rgba(255,255,255,.12); border-radius:var(--r3); padding:10px 16px; color:var(--texte); font-size:calc(clamp(14px, 1.3vw, 21px) * var(--ob-k, 1)); line-height:1.3;
          text-shadow:0 1px 2px rgba(0,0,0,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); min-width:0; max-width:100%; box-sizing:border-box; }
  .ob-w[hidden] { display:none; }
  .ob-w-t { font-size:.68em; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--texte-2); margin-bottom:2px; }
  .ob-w-gros { font-family:var(--mono); font-size:calc(clamp(30px, 4.4vw, 68px) * var(--ob-k, 1)); font-weight:800; line-height:1.05; font-variant-numeric:tabular-nums; letter-spacing:.02em; white-space:nowrap; }
  .ob-w-gros small { font-size:.36em; font-weight:600; color:var(--texte-2); margin-left:.3em; letter-spacing:0; }
  .ob-w-moy { font-family:var(--mono); font-size:1.5em; font-weight:700; font-variant-numeric:tabular-nums; }
  .ob-w-mono { font-family:var(--mono); font-variant-numeric:tabular-nums; }
  .ob-w-g { display:grid; grid-template-columns:auto auto; gap:1px 16px; font-family:var(--mono); font-variant-numeric:tabular-nums; }
  .ob-w-g span { color:var(--texte-2); } .ob-w-g b { text-align:right; }
  .ob-w-pas { display:grid; grid-template-columns:auto minmax(0, 1fr) auto auto; gap:2px 12px; align-items:baseline; }
  .ob-w-pas i { width:.6em; height:.6em; border-radius:50%; display:inline-block; }
  .ob-w-pas .n { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
  .ob-w-pas .d { font-family:var(--mono); text-align:right; font-variant-numeric:tabular-nums; } .ob-w-pas .m { font-family:var(--mono); color:var(--warn); text-align:right; }
  .ob-w-pas .la { color:var(--ok); }
  @media (max-width:700px) { #v-orbites.ob-tableau .ob-coin { max-width:calc(50% - 20px); } .ob-w { padding:6px 10px; } }
  @media (pointer:coarse) { .ob-tb button { min-height:36px; } .ob-infos label { min-height:40px; } }
  .ob-infos { max-height:calc(100vh - 140px); overflow:auto; }
  .ob-infos .ob-place-r { margin:4px 0; }
  .ob-infos .ob-menu-t { font-size:var(--fs-xs); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--texte-3); margin:8px 0 2px; }
  .ob-infos .ob-menu-t:first-child { margin-top:0; }
  .ob-mon-pastille { display:inline-block; width:10px; height:10px; border-radius:3px; flex:none; }
  .ob-seg .ob-tb > button { border:0; }
  #ob-theme-l { display:flex; align-items:center; gap:6px; padding:0 6px; font-size:var(--fs-s); color:var(--texte-2); }
  #ob-theme-l[hidden] { display:none; }
  /* The dashboard's extras: the Moon's face, the Kp bars, the ticker, the explanations. */
  .ob-lune { width:2.2em; height:2.2em; flex:none; vertical-align:middle; }
  .ob-defile .ob-lune { width:1.2em; height:1.2em; vertical-align:-.2em; }
  .ob-w-astres { display:flex; gap:12px; align-items:center; margin-bottom:4px; }
  .ob-kp { display:flex; align-items:flex-end; gap:2px; height:2.2em; margin-top:6px; }
  .ob-kp i { flex:1; border-radius:2px 2px 0 0; min-width:3px; }
  .ob-defile, .ob-bulles { display:none; }
  #v-orbites.ob-tableau .ob-defile:not([hidden]) { display:block; position:absolute; left:0; right:0; bottom:0; z-index:2; height:2.1em; overflow:hidden; pointer-events:none;
    font-size:clamp(14px, 1.25vw, 22px); color:var(--texte); background:rgba(8,13,18,.62); border-top:1px solid rgba(255,255,255,.14); }
  .ob-defile-t { position:absolute; left:100%; white-space:nowrap; line-height:2.1em; font-weight:600; animation:ob-defile 40s linear infinite; }
  .ob-defile-t span + span::before { content:'✦'; margin:0 1.4em; opacity:.6; }
  @keyframes ob-defile { from { transform:translateX(0); } to { transform:translateX(calc(-100% - 100vw)); } }
  #v-orbites.ob-tableau.ob-avec-defile .ob-coin-bg, #v-orbites.ob-tableau.ob-avec-defile .ob-coin-bd { bottom:calc(14px + 2.1 * clamp(14px, 1.25vw, 22px)); }
  #v-orbites.ob-tableau.ob-th-pedago .ob-bulles { display:block; position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
  .ob-pb { position:absolute; left:0; top:0; transition:transform .25s linear, opacity .9s ease; }
  .ob-pb.ob-pb-off { opacity:0; }
  .ob-pb[hidden] { display:none; }
  .ob-pb .pt { position:absolute; left:-8px; top:-8px; width:16px; height:16px; border-radius:50%; background:#FFD34D; border:3px solid #0a1230; box-sizing:border-box; animation:ob-pouls 1.6s ease-in-out infinite; }
  .ob-pb-emp .pt { background:#7CF29A; } .ob-pb-nuit .pt { background:#B48CFF; } .ob-pb-station .pt { background:#FFB454; }
  .ob-pb .bx { position:absolute; left:16px; bottom:12px; width:max-content; max-width:min(280px, 36vw); background:#fff; color:#0a1230; border:3px solid #0a1230; border-radius:18px 18px 18px 4px;
    padding:7px 12px; font:700 clamp(13px, 1.15vw, 20px)/1.25 "Baloo 2", Nunito, "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif; box-shadow:0 4px 0 rgba(10,18,48,.35); }
  .ob-pb.g .bx { left:auto; right:16px; border-radius:18px 18px 4px 18px; }
  .ob-pb.b .bx { bottom:auto; top:12px; border-radius:4px 18px 18px 18px; } .ob-pb.g.b .bx { border-radius:18px 4px 18px 18px; }
  @keyframes ob-pouls { 0%, 100% { transform:scale(1); } 50% { transform:scale(1.35); } }
  .ob-w-texte { line-height:1.35; max-width:30em; }
  .ob-points { display:flex; gap:5px; margin-top:8px; } .ob-points i { width:8px; height:8px; border-radius:50%; background:currentColor; opacity:.25; } .ob-points i.ici { opacity:.9; }
  .ob-w.ob-entre { animation:ob-entre .5s cubic-bezier(.3, 1.6, .5, 1); }
  @keyframes ob-entre { 0% { transform:scale(.6); opacity:0; } 100% { transform:scale(1); opacity:1; } }
  /* Dessin animé (and Pédagogique): white bubbly cards, coloured badges, floating gently. */
  #v-orbites.ob-th-cartoon .ob-w, #v-orbites.ob-th-pedago .ob-w { background:rgba(255,255,255,.94); color:#0a1230; border:3px solid #0a1230; border-radius:22px; box-shadow:0 5px 0 rgba(10,18,48,.45);
    text-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; font-family:"Baloo 2", Nunito, Fredoka, "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif; animation:ob-flotte 6s ease-in-out infinite; }
  #v-orbites.ob-th-cartoon .ob-w.ob-entre, #v-orbites.ob-th-pedago .ob-w.ob-entre { animation:ob-entre .5s cubic-bezier(.3, 1.6, .5, 1), ob-flotte 6s ease-in-out .5s infinite; }
  #v-orbites.ob-th-cartoon .ob-coin .ob-w + .ob-w, #v-orbites.ob-th-pedago .ob-coin .ob-w + .ob-w { animation-delay:-3s; }
  @keyframes ob-flotte { 0%, 100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
  :is(.ob-th-cartoon, .ob-th-pedago) .ob-w-t { display:inline-block; color:#fff; background:#FF6B6B; padding:2px 12px; border-radius:999px; letter-spacing:.06em; margin-bottom:6px; }
  :is(.ob-th-cartoon, .ob-th-pedago) [data-w="station"] .ob-w-t { background:#3FA7F5; } :is(.ob-th-cartoon, .ob-th-pedago) [data-w="astres"] .ob-w-t { background:#9B7BD8; }
  :is(.ob-th-cartoon, .ob-th-pedago) [data-w="passages"] .ob-w-t { background:#22B573; } :is(.ob-th-cartoon, .ob-th-pedago) [data-w="espace"] .ob-w-t { background:#F2A61A; }
  :is(.ob-th-cartoon, .ob-th-pedago) [data-w="sat"] .ob-w-t { background:#0a1230; } :is(.ob-th-cartoon, .ob-th-pedago) [data-w="savais"] .ob-w-t { background:#F2B134; color:#0a1230; }
  :is(.ob-th-cartoon, .ob-th-pedago) :is(.ob-w-g span, .ob-w-gros small, .ob-w-mono, .petit) { color:#4a5878; }
  :is(.ob-th-cartoon, .ob-th-pedago) .ob-w-pas .m { color:#E8743B; } :is(.ob-th-cartoon, .ob-th-pedago) .ob-w-pas .la { color:#1f9d55; }
  :is(.ob-th-cartoon, .ob-th-pedago) .ob-defile:not([hidden]) { background:#FFD34D; color:#0a1230; border-top:3px solid #0a1230; }
  #v-orbites.ob-th-pedago .ob-w { font-size:calc(clamp(15px, 1.45vw, 25px) * var(--ob-k, 1)); }
  #v-orbites.ob-tableau [data-w="sat"] .ob-w-gros { font-size:calc(clamp(26px, 3.2vw, 56px) * var(--ob-k, 1)); }
  #v-orbites.ob-th-pedago .ob-coin { max-width:min(40%, 520px); }
  /* Classique radioamateur: dense panels in a band over a flat map, monospace on black, as the station clocks. */
  #v-orbites.ob-th-classique.ob-tableau .ob-scene { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); grid-template-rows:auto minmax(0, 1fr); gap:6px; padding:6px; box-sizing:border-box; background:#000; }
  #v-orbites.ob-th-classique.ob-tableau .ob-scene > canvas { position:relative; inset:auto; grid-column:1 / -1; grid-row:2; width:100%; height:100%; min-height:0; }
  #v-orbites.ob-th-classique.ob-tableau .ob-coin { position:static; grid-row:1; max-width:none; max-height:none; align-items:stretch; justify-content:flex-start; gap:6px; }
  #v-orbites.ob-th-classique.ob-tableau .ob-coin-hd { grid-column:2; } #v-orbites.ob-th-classique.ob-tableau .ob-coin-bg { grid-column:3; } #v-orbites.ob-th-classique.ob-tableau .ob-coin-bd { grid-column:4; }
  #v-orbites.ob-th-classique .ob-w { background:#05080c; border:1px solid #233140; border-radius:4px; padding:6px 10px; font-family:var(--mono); font-size:calc(clamp(12px, .92vw, 17px) * var(--ob-k, 1)); text-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
  #v-orbites.ob-th-classique .ob-w-t { color:#00E5FF; letter-spacing:.08em; }
  .ob-th-classique [data-w="station"] .ob-w-t { color:#FFD000; } .ob-th-classique [data-w="astres"] .ob-w-t { color:#C792FF; } .ob-th-classique [data-w="passages"] .ob-w-t { color:#7CF29A; }
  .ob-th-classique [data-w="espace"] .ob-w-t { color:#FF9F43; } .ob-th-classique [data-w="sat"] .ob-w-t { color:#FF6B9A; }
  #v-orbites.ob-th-classique .ob-w-gros { font-size:calc(clamp(24px, 2.8vw, 50px) * var(--ob-k, 1)); color:#9CFF57; }
  #v-orbites.ob-th-classique .ob-haut { top:auto; bottom:44px; }
  #v-orbites.ob-th-classique.ob-tableau.ob-avec-defile .ob-coin-bg, #v-orbites.ob-th-classique.ob-tableau.ob-avec-defile .ob-coin-bd { bottom:auto; }
  #v-orbites.ob-th-classique .ob-defile:not([hidden]) { font-family:var(--mono); color:#FFD000; background:#05080c; }
  @media (max-aspect-ratio:1/1) {
    #v-orbites.ob-th-classique.ob-tableau .ob-scene { grid-template-columns:repeat(2, minmax(0, 1fr)); grid-template-rows:auto auto minmax(0, 1fr); }
    #v-orbites.ob-th-classique.ob-tableau .ob-scene > canvas { grid-row:3; }
    #v-orbites.ob-th-classique.ob-tableau .ob-coin-hd { grid-column:2; } #v-orbites.ob-th-classique.ob-tableau .ob-coin-bg { grid-column:1; grid-row:2; } #v-orbites.ob-th-classique.ob-tableau .ob-coin-bd { grid-column:2; grid-row:2; }
  }
  /* Nuit: dim, warm and big, readable from across a dark room. */
  #v-orbites.ob-th-nuit .ob-scene > canvas { filter:brightness(.55) saturate(.6); }
  #v-orbites.ob-th-nuit .ob-w { background:rgba(0,0,0,.55); border-color:rgba(255,90,60,.16); color:#D27A6A; text-shadow:none; }
  #v-orbites.ob-th-nuit :is(.ob-w-t, .ob-w-g span, .ob-w-gros small, .petit) { color:#8A4A40; }
  #v-orbites.ob-th-nuit .ob-w-gros { color:#E08A70; font-weight:600; }
  #v-orbites.ob-th-nuit [data-w="horloge"] .ob-w-gros { font-size:calc(clamp(36px, 5.2vw, 100px) * var(--ob-k, 1)); }
  #v-orbites.ob-th-nuit.ob-tableau .ob-coin { max-width:min(46%, 640px); }
  #v-orbites.ob-th-nuit :is(.ob-w-pas .m, .ob-w-pas .la) { color:#C9785A; }
  #v-orbites.ob-th-nuit .ob-defile:not([hidden]) { color:#D27A6A; background:rgba(0,0,0,.6); border-top-color:rgba(255,90,60,.16); }
  /* Rétro: parchment cards, serif ink, an old map. */
  #v-orbites.ob-th-retro .ob-scene { background:#2b1d0e; }
  #v-orbites.ob-th-retro .ob-w { background:rgba(239,224,184,.95); color:#3B2410; border:2px solid #6B3F17; border-radius:6px; text-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none;
    box-shadow:inset 0 0 0 3px rgba(239,224,184,1), inset 0 0 0 4px #6B3F17, 0 3px 10px rgba(0,0,0,.4); font-family:Georgia, "Times New Roman", serif; }
  #v-orbites.ob-th-retro :is(.ob-w-gros, .ob-w-mono, .ob-w-g, .ob-w-moy, .ob-w-pas .d, .ob-w-pas .m) { font-family:Georgia, "Times New Roman", serif; }
  #v-orbites.ob-th-retro .ob-w-t { color:#8A2D12; font-variant:small-caps; text-transform:none; letter-spacing:.08em; font-size:.85em; }
  #v-orbites.ob-th-retro :is(.ob-w-g span, .ob-w-gros small, .petit) { color:#6B4A2A; } #v-orbites.ob-th-retro .ob-w-pas .m { color:#8A2D12; }
  #v-orbites.ob-th-retro .ob-defile:not([hidden]) { color:#3B2410; background:rgba(239,224,184,.92); border-top:2px solid #6B3F17; font-family:Georgia, serif; }
  /* The satellites' cards: the tab's (under the list), the dashboard's (a photo beside its facts), the Vitrine's. */
  .ob-fiche { flex:0 1 auto; max-height:38%; overflow:auto; border-top:1px solid var(--ligne); padding-top:6px; font-size:var(--fs-s); }
  .ob-fiche[hidden] { display:none; }
  .ob-fiche-h { display:flex; align-items:center; gap:6px; justify-content:space-between; }
  .ob-fiche-pli { background:transparent; border:0; padding:2px 0; font-weight:700; color:var(--texte); text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
  .ob-fiche-h label { display:flex; align-items:center; gap:4px; font-size:var(--fs-xs); color:var(--texte-3); flex:none; }
  .ob-photo { margin:6px 0 4px; }
  .ob-photo img, .ob-photo svg { display:block; width:100%; max-height:120px; object-fit:contain; border-radius:var(--r2); background:#0a1230; }
  /* A photo whole (never cropped), as wide as its height allows. */
  .ob-photo img { width:auto; max-width:100%; height:auto; margin:0 auto; background:none; }
  .ob-photo.ob-dessin svg { object-fit:contain; background:linear-gradient(#16264f, #0a1230); padding:6px; box-sizing:border-box; }
  .ob-photo figcaption { font-size:10px; line-height:1.25; color:var(--texte-3); margin-top:2px; overflow-wrap:anywhere; }
  .ob-photo figcaption a, .ob-credit a { color:inherit; }
  .ob-fiche-t { font-weight:700; margin:2px 0; }
  .ob-fiche-g { display:grid; grid-template-columns:auto minmax(0, 1fr); gap:1px 8px; }
  .ob-fiche-g span { color:var(--texte-3); } .ob-fiche-g b { font-weight:600; }
  .ob-fiche-f { font-family:var(--mono); font-size:var(--fs-xs); margin-top:4px; }
  .ob-fiche-a { margin-top:4px; }
  .ob-fiche-r { margin-top:4px; color:var(--texte-2); } .ob-credit { font-size:var(--fs-xs); color:var(--texte-3); }
  .ob-w-photo { width:min(440px, 100%); }
  #v-orbites .ob-w-photo.ob-trop { display:none; }
  /* The dashboard's card: the photo beside the name and the facts, the story under both (the whole width, fewer lines). */
  .ob-fiche-tb { display:grid; grid-template-columns:minmax(0, 42%) minmax(0, 1fr); gap:4px 10px; align-items:start; font-size:max(11px, .78em); overflow-wrap:anywhere; }
  .ob-fiche-tb .ob-fiche-c { display:contents; }
  .ob-fiche-tb .ob-photo { margin:0; grid-row:1 / span 3; } .ob-fiche-tb .ob-photo img, .ob-fiche-tb .ob-photo svg { max-height:calc(min(18vh, 170px) * var(--ob-k, 1)); }
  .ob-fiche-tb .ob-fiche-c > * { grid-column:2; margin:0; } .ob-fiche-tb .ob-fiche-c > .ob-fiche-a { grid-column:1 / -1; }
  .ob-fiche-tb .ob-fiche-t { font-size:1.15em; } .ob-fiche-tb .ob-fiche-g { font-size:.92em; }
  .ob-fiche-tb .ob-fiche-a { font-size:.92em; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
  #v-orbites.ob-th-classique .ob-fiche-tb .ob-fiche-a { -webkit-line-clamp:3; }
  @media (max-width:700px) { .ob-fiche-tb { grid-template-columns:minmax(0, 1fr); } .ob-fiche-tb .ob-photo { grid-row:auto; } .ob-fiche-tb .ob-fiche-c > * { grid-column:1; } }
  /* Vitrine: big cards over the globe turning by itself, readable from across a hall; no menus once the mouse rests. */
  .ob-vitrine { display:none; }
  #v-orbites.ob-tableau.ob-th-vitrine .ob-vitrine:not([hidden]) { display:block; position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden;
    font:700 clamp(17px, 1.85vw, 38px)/1.3 "Baloo 2", Nunito, Fredoka, "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif; color:#0a1230; }
  #v-orbites.ob-th-vitrine.ob-calme .ob-haut:not(:hover):not(:focus-within) { opacity:0; }
  .ob-vit-tete { position:absolute; left:2.5vw; right:2.5vw; top:calc(52px + 1vh); display:flex; justify-content:space-between; align-items:center; gap:1em; color:#fff;
    font-size:1.35em; font-weight:800; text-shadow:0 3px 0 #0a1230, 0 0 18px rgba(0,0,0,.6); }
  .ob-vit-tete span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
  .ob-vit-heure { font-family:var(--mono); flex:none; }
  /* The card's size (« Taille de l'encart »: --vit-k) and its side; the globe stands beside it (obPlace). */
  .ob-vit-carte { position:absolute; left:3vw; top:52%; transform:translateY(-50%); width:calc(min(48vw, 960px) * var(--vit-k, 1)); max-height:calc(100% - 15vh - 120px); overflow:hidden; box-sizing:border-box;
    font-size:calc(100% * var(--vit-k, 1));
    background:rgba(255,255,255,.96); border:4px solid #0a1230; border-radius:28px; padding:clamp(14px, 1.6vw, 34px); box-shadow:0 8px 0 rgba(10,18,48,.45); animation:ob-vit-entre .7s cubic-bezier(.3, 1.5, .5, 1); }
  @keyframes ob-vit-entre { 0% { opacity:0; transform:translateY(-50%) translateX(-6vw) scale(.92); } 100% { opacity:1; transform:translateY(-50%); } }
  .ob-vitrine.ob-vit-droite .ob-vit-carte:not(.ob-vit-legende) { left:auto; right:3vw; animation-name:ob-vit-entre-d; }
  @keyframes ob-vit-entre-d { 0% { opacity:0; transform:translateY(-50%) translateX(6vw) scale(.92); } 100% { opacity:1; transform:translateY(-50%); } }
  .ob-vit-carte.ob-vit-legende { top:auto; bottom:calc(2.6em + 2vh); left:50%; transform:translateX(-50%); width:max-content; max-width:92vw; text-align:center; border-radius:999px; padding:.4em 1.2em; animation:ob-entre .6s ease-out; }
  .ob-vit-t { display:inline-block; white-space:nowrap; background:#FF6B6B; color:#fff; border-radius:999px; padding:.1em .8em; font-size:.8em; margin-bottom:.4em; }
  .ob-vit-gros { font-size:2.3em; font-weight:800; line-height:1.05; color:#E8743B; overflow-wrap:anywhere; }
  .ob-vit-vivant { font-size:1.35em; font-weight:800; margin:.15em 0; }
  .ob-vit-sous { font-weight:600; }
  .ob-vit-ind { font-family:var(--mono); font-size:1.6em; font-weight:800; letter-spacing:.06em; }
  .ob-vit-lien { font-family:var(--mono); font-size:.8em; overflow-wrap:anywhere; margin-top:.3em; color:#3a4a6b; }
  .ob-vit-duo { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.4fr); gap:1em; align-items:center; }
  .ob-vit-passage .ob-vit-gros { font-size:2.6em; } .ob-vit-passage .ob-vit-vivant { font-size:1.5em; line-height:1.15; }
  .ob-vit-contact .ob-vit-duo { grid-template-columns:minmax(0, 1fr) auto; }
  .ob-vit-qr { width:calc(min(26vh, 20vw) * var(--vit-k, 1)); height:auto; background:#fff; border-radius:12px; border:3px solid #0a1230; }
  .ob-vit-liste { margin:.2em 0 0; padding-left:1.1em; } .ob-vit-liste li { margin:.25em 0; }
  .ob-vitrine .ob-photo { margin:0; } .ob-vitrine .ob-photo img, .ob-vitrine .ob-photo svg { max-height:min(34vh, 9em); border-radius:18px; }
  .ob-vitrine .ob-photo figcaption { font-size:clamp(10px, .7vw, 14px); color:#4a5878; font-weight:500; }
  .ob-vit-sat .ob-photo { float:left; width:44%; margin:0 1em .4em 0; }
  .ob-vitrine .ob-fiche-t { font-size:1.5em; font-weight:800; color:#E8743B; line-height:1.1; }
  .ob-vitrine .ob-fiche-g { font-size:.78em; gap:0 .7em; } .ob-vitrine .ob-fiche-g span { color:#4a5878; } .ob-vitrine .ob-fiche-a { font-size:.85em; margin-top:.4em; }
  @media (max-aspect-ratio:1/1) {
    .ob-vit-carte { left:3vw; right:3vw; width:auto; top:auto; bottom:calc(2.6em + 2vh); transform:none; max-height:calc(52% * var(--vit-k, 1)); }
    .ob-vitrine.ob-vit-droite .ob-vit-carte:not(.ob-vit-legende) { left:3vw; right:3vw; animation-name:ob-vit-entre; }
    @keyframes ob-vit-entre { 0% { opacity:0; transform:translateY(4vh); } 100% { opacity:1; transform:none; } }
    .ob-vit-sat .ob-photo { width:40%; }
  }
  @media (prefers-reduced-motion:reduce) { .ob-vit-carte { animation:none !important; } }
  /* Classique: the ticker a row of its own under the map (nothing over the map's bottom), the bar over the map. */
  #v-orbites.ob-th-classique.ob-tableau .ob-scene { grid-template-rows:auto minmax(0, 1fr) auto; }
  #v-orbites.ob-th-classique.ob-tableau .ob-defile:not([hidden]) { position:relative; left:auto; right:auto; bottom:auto; grid-column:1 / -1; grid-row:3; margin:0 -6px -6px; }
  #v-orbites.ob-th-classique.ob-tableau .ob-haut { bottom:calc(14px + 2.1 * clamp(14px, 1.25vw, 22px)); }
  #v-orbites.ob-th-classique.ob-tableau.ob-calme .ob-haut:not(:hover):not(:focus-within) { opacity:0; }
  @media (max-aspect-ratio:1/1) {
    #v-orbites.ob-th-classique.ob-tableau .ob-scene { grid-template-rows:auto auto minmax(0, 1fr) auto; }
    #v-orbites.ob-th-classique.ob-tableau .ob-defile:not([hidden]) { grid-row:4; }
  }
  @media (prefers-reduced-motion:reduce) { #v-orbites .ob-w, #v-orbites .ob-w.ob-entre, .ob-pb .pt { animation:none !important; } .ob-defile-t { animation-duration:120s !important; } }
  .ob-attente { position:absolute; inset:0; display:grid; place-items:center; color:var(--texte-2); z-index:5; background:rgba(0,0,0,.6); padding:20px; text-align:center; }
  @media (max-width:900px) {
    .ob-boite { grid-template-columns:minmax(0, 1fr); height:auto; }
    .ob-scene { height:72vh; min-height:480px; order:-1; }
    .ob-liste { max-height:420px; }
    .ob-temps { margin-left:0; }
    .ob-instruments { grid-template-columns:1fr 1fr; }
    .ob-instruments > div:nth-child(2) { grid-column:1 / 3; order:3; }
    .ob-instruments canvas { height:110px; }
  }
  #k-grille { grid-template-columns:minmax(380px,1fr) minmax(420px,1.7fr); }
  .k-fenetres { max-height:360px; overflow:auto; }
  .k-corps { display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; }
  #k-carte, #k-globe { flex:3; min-width:320px; height:460px; border-radius:8px; cursor:grab; touch-action:none; }
  .k-reglages { margin-top:8px; font-size:var(--fs-s); }
  .k-reglages summary { cursor:pointer; color:var(--texte2, #9AA7B4); }
  #k-reglages-c { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; margin-top:6px; }
  #k-reglages-c label { display:flex; align-items:center; gap:4px; }
  #k-reglages-c .k-montypes { flex-basis:100%; display:flex; flex-wrap:wrap; gap:2px 12px; }
  @media (max-width:900px) { #k-grille { grid-template-columns:minmax(0,1fr); } }
  @media (max-width:760px) { #k-carte, #k-globe { min-width:0; flex-basis:100%; height:360px; } .k-ciels { max-width:none; flex-direction:row; } .k-ciels > div { flex:1; min-width:0; } }
  .k-ciels { flex:1; min-width:180px; max-width:240px; display:flex; flex-direction:column; gap:6px; }
  .k-ciels svg { width:100%; display:block; }
  .k-vide-t { padding:32px 16px; text-align:center; color:var(--texte-3); font-size:var(--fs-m); }

  /* ---------------------------------------------------------------- Orbites: the ISS live (IssDirectJs) */
  .iss-f { position:fixed; z-index:50; display:flex; flex-direction:column; min-width:240px; min-height:120px; box-sizing:border-box; overflow:hidden auto; overscroll-behavior:contain;
    background:rgba(10,16,22,.97); color:var(--texte, #E6EDF3); border:1px solid var(--ligne-forte, #2c3c4a); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.55); font-size:13px; }
  .iss-f[hidden] { display:none; }
  .iss-barre { display:flex; align-items:center; gap:4px; padding:4px 4px 4px 10px; background:rgba(255,255,255,.04); border-bottom:1px solid var(--ligne, #22303c); cursor:move; touch-action:none; user-select:none; flex:none; position:sticky; top:0; z-index:2; background-color:#121b24; }
  .iss-barre .iss-t { flex:1; min-width:0; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .iss-barre .iss-t i { font-style:normal; color:#FF5F5F; font-size:11px; margin-left:6px; letter-spacing:.06em; }
  .iss-barre button { border:0; background:transparent; color:var(--texte-2, #9AA7B4); width:28px; height:26px; border-radius:6px; font-size:14px; cursor:pointer; padding:0; }
  .iss-barre button:hover, .iss-barre button[aria-pressed="true"] { background:var(--s3, #24323f); color:var(--texte, #fff); }
  .iss-v { position:relative; flex:1 1 auto; min-height:130px; background:#000; }
  .iss-v iframe, .iss-v video { position:absolute; inset:0; width:100%; height:100%; border:0; background:#000; }
  .iss-hors { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:12px; text-align:center; color:#C9D4DE; background:#05080c; line-height:1.4; }
  .iss-hors[hidden] { display:none; }
  .iss-r { padding:8px 10px; display:flex; flex-direction:column; gap:6px; border-bottom:1px solid var(--ligne, #22303c); flex:none; }
  .iss-r[hidden] { display:none; }
  .iss-r input { width:100%; box-sizing:border-box; }
  .iss-r .iss-rb { display:flex; gap:6px; flex-wrap:wrap; }
  .iss-r .iss-err { color:var(--rose, #FF5FA2); }
  .iss-i { padding:6px 10px 2px; line-height:1.4; flex:none; }
  .iss-i b { color:var(--rx, #3FE0C8); }
  .iss-i .iss-ch { font-family:var(--mono, ui-monospace, monospace); font-size:12px; color:var(--texte-2, #9AA7B4); }
  .iss-i .iss-nuit { color:#B9A8FF; } .iss-i .iss-jour { color:#FFD34D; } .iss-i .iss-aube { color:#FFB454; }
  .iss-i .iss-ici { color:#7CF29A; }
  .iss-i .iss-perte { color:var(--texte-3, #6E7D8B); font-size:11.5px; }
  .iss-act { display:flex; gap:6px; flex-wrap:wrap; align-items:center; padding:4px 10px 0; flex:none; }
  .iss-act a { font-size:12px; }
  .iss-cr { padding:4px 26px 6px 10px; font-size:11px; color:var(--texte-3, #6E7D8B); flex:none; }
  .iss-poignee { position:absolute; right:0; bottom:0; width:22px; height:22px; cursor:nwse-resize; touch-action:none;
    background:linear-gradient(135deg, transparent 50%, rgba(154,167,180,.55) 50%, rgba(154,167,180,.55) 58%, transparent 58%, transparent 70%, rgba(154,167,180,.55) 70%, rgba(154,167,180,.55) 78%, transparent 78%); }
  .iss-f.iss-min { min-height:0; height:auto !important; }
  .iss-f.iss-min :is(.iss-v, .iss-r, .iss-i, .iss-act, .iss-cr, .iss-poignee) { display:none; }
  .iss-seg button[aria-pressed="true"] { color:#FF8A8A; }
  /* The dashboard's corner tile: no bar, the picture and two lines, readable from afar. */
  .iss-f.iss-tuile { left:auto !important; right:16px; top:16px !important; width:min(30vw, 520px) !important; height:auto !important; min-width:220px; border-radius:16px; border-width:2px; }
  .iss-f.iss-tuile :is(.iss-barre, .iss-r, .iss-act, .iss-poignee, .iss-ch, .iss-perte) { display:none; }
  .iss-f.iss-tuile .iss-v { flex:none; aspect-ratio:16 / 9; }
  .iss-f.iss-tuile .iss-i { font-size:clamp(13px, 1.1vw, 20px); }
  .iss-f.iss-tuile .iss-cr { padding-right:10px; }
  #v-orbites.ob-th-vitrine .iss-f.iss-tuile { top:auto !important; bottom:16px; right:16px; }
  #v-orbites.ob-th-vitrine.ob-avec-defile .iss-f.iss-tuile { bottom:calc(14px + 2.1 * clamp(14px, 1.25vw, 22px)); }
  @media (max-width:760px) {
    .iss-f:not(.iss-tuile) { left:6px !important; right:6px; top:auto !important; bottom:62px; width:auto !important; height:auto !important; max-height:calc(100vh - 120px); overflow:auto; }
    .iss-f:not(.iss-tuile) .iss-v { flex:none; aspect-ratio:16 / 9; min-height:0; }
    .iss-f .iss-poignee { display:none; }
    .iss-barre { cursor:default; }
    .iss-f .iss-perte { display:none; }
    .iss-f.iss-tuile { width:46vw !important; }
  }

