/* F4IOZ site — the popup of the satellite world's anniversaries (anniversaires.js) and its admin page.
   The popup keeps its own night sky in both themes: colourful on purpose. */
.anniv { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.anniv[hidden] { display: none; }
html.anniv-ouvert { overflow: hidden; }
.anniv-voile { position: absolute; inset: 0; background: rgba(4, 6, 18, .72); backdrop-filter: blur(3px); opacity: 0; transition: opacity .35s ease; }
.anniv.on .anniv-voile { opacity: 1; }

.anniv-boite {
  --a1: #FFD166; --a2: #FF6B9A; --a3: #6F8CFF; --a4: #3FE0C8;
  position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: auto;
  padding: 46px 24px 18px; border-radius: 20px; color: #F4F7FF; text-align: center;
  background:
    radial-gradient(1.5px 1.5px at 12% 18%, #fff 60%, transparent 62%), radial-gradient(1px 1px at 28% 72%, #fff 60%, transparent 62%),
    radial-gradient(1.2px 1.2px at 46% 30%, #fff 60%, transparent 62%), radial-gradient(1px 1px at 63% 12%, #fff 60%, transparent 62%),
    radial-gradient(1.6px 1.6px at 78% 64%, #fff 60%, transparent 62%), radial-gradient(1px 1px at 90% 26%, #fff 60%, transparent 62%),
    radial-gradient(1.2px 1.2px at 8% 88%, #fff 60%, transparent 62%), radial-gradient(1px 1px at 56% 90%, #fff 60%, transparent 62%),
    radial-gradient(120% 90% at 0% 0%, rgba(255, 107, 154, .45), transparent 55%),
    radial-gradient(120% 90% at 100% 100%, rgba(63, 224, 200, .38), transparent 55%),
    linear-gradient(160deg, #1B1450 0%, #241A6B 40%, #0E2A5C 100%);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .08), 0 0 0 5px rgba(255, 209, 102, .35), 0 24px 70px rgba(0, 0, 0, .6), 0 0 80px rgba(111, 140, 255, .35);
  transform: translateY(24px) scale(.92); opacity: 0; transition: transform .5s cubic-bezier(.2, 1.4, .4, 1), opacity .35s ease;
  outline: none;
}
.anniv.on .anniv-boite { transform: none; opacity: 1; }
.anniv.cat-fin .anniv-boite { --a1: #FFB3C7; background-color: #121233; }

.anniv-ciel { position: absolute; inset: 0; pointer-events: none; overflow: hidden; border-radius: inherit; }
.anniv-orbite { position: absolute; left: -10%; right: -10%; top: 22px; height: 120px; border-top: 1.5px dashed rgba(255, 255, 255, .22); border-radius: 50%; }
.anniv-sat { position: absolute; top: 4px; left: -70px; width: 56px; height: 28px; filter: drop-shadow(0 0 6px rgba(255, 209, 102, .8)); animation: anniv-passe 7s linear .4s infinite; }
.anniv-sat .p { fill: #6F8CFF; stroke: #B9C8FF; stroke-width: 1; }
.anniv-sat .c { fill: #FFD166; }
.anniv-sat .l { stroke: #E6ECFF; stroke-width: 1.6; fill: none; }
@keyframes anniv-passe {
  0% { transform: translate(0, 34px) rotate(14deg); }
  50% { transform: translate(calc(min(560px, 100vw) / 2 + 30px), 0) rotate(0deg); }
  100% { transform: translate(calc(min(560px, 100vw) + 140px), 34px) rotate(-14deg); }
}
.anniv-confettis span { position: absolute; top: -14px; left: var(--x); width: 8px; height: 13px; border-radius: 2px; background: var(--c); opacity: 0;
  animation: anniv-tombe var(--t) cubic-bezier(.3, .6, .6, 1) var(--d) 2 both; }
.anniv-confettis span.rond { width: 9px; height: 9px; border-radius: 50%; }
@keyframes anniv-tombe {
  0% { opacity: 1; transform: translate(0, 0) rotate(0); }
  85% { opacity: 1; }
  100% { opacity: 0; transform: translate(18px, 560px) rotate(var(--r)); }
}

.anniv-x { position: absolute; top: 10px; right: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25);
  background: rgba(255, 255, 255, .08); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.anniv-x:hover, .anniv-x:focus-visible { background: rgba(255, 255, 255, .2); outline: 2px solid var(--a1); outline-offset: 2px; }
.anniv-boite > p, .anniv-boite > h2, .anniv-boite > div:not(.anniv-ciel) { position: relative; z-index: 1; }

.anniv-sur { margin: 6px 0 4px; font: 700 11.5px/1.3 var(--font-sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--a4); }
.anniv-age { margin: 4px 0 0; display: flex; align-items: baseline; justify-content: center; gap: 10px; }
.anniv-icone { font-size: 34px; animation: anniv-saute 1.6s ease-in-out infinite; }
.anniv-n { font: 800 clamp(64px, 18vw, 96px)/1 var(--font-sans); letter-spacing: -2px;
  background: linear-gradient(100deg, var(--a1), var(--a2) 45%, var(--a3) 75%, var(--a4)); background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent; animation: anniv-reflet 4s linear infinite;
  filter: drop-shadow(0 4px 14px rgba(255, 107, 154, .35)); }
.anniv-unite { font: 700 22px/1 var(--font-sans); color: var(--a1); }
@keyframes anniv-reflet { to { background-position: -200% 0; } }
@keyframes anniv-saute { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-6px) rotate(6deg); } }
.anniv-quand { margin: 6px 0 2px; font-size: 15px; font-weight: 600; color: #FFE7A6; }
.anniv-titre { margin: 2px 0 6px; font-size: clamp(21px, 5.4vw, 27px); line-height: 1.2; color: #fff; text-shadow: 0 2px 12px rgba(111, 140, 255, .55); }
.anniv-date { margin: 0 0 10px; font-size: 13px; color: #C9D3F5; }
.anniv-rond { display: inline-block; padding: 1px 8px; border-radius: 99px; background: linear-gradient(90deg, var(--a2), var(--a1)); color: #2A1030; font-weight: 700; }
.anniv-texte { margin: 0 auto 14px; max-width: 44ch; font-size: 15px; line-height: 1.5; color: #E8EDFF; }
.anniv-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 0 0 12px; }
.anniv .btn { border-color: rgba(255, 255, 255, .35); color: #fff; background: rgba(255, 255, 255, .06); }
.anniv .btn:hover, .anniv .btn:focus { border-color: var(--a1); color: var(--a1); }
.anniv .btn.solid { background: linear-gradient(90deg, var(--a1), #FF9F43); border-color: transparent; color: #2A1A00; font-weight: 700; }
.anniv .btn.solid:hover, .anniv .btn.solid:focus { color: #2A1A00; filter: brightness(1.08); }
.anniv .btn:focus-visible { outline: 2px solid var(--a4); outline-offset: 2px; }
.anniv-autres { margin: 4px 0 8px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .07); text-align: left; }
.anniv-autres-t { margin: 0 0 6px; font: 700 11px/1.2 var(--font-sans); letter-spacing: 1.2px; text-transform: uppercase; color: var(--a4); }
.anniv-autres ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.anniv-autres li { display: flex; gap: 8px; align-items: baseline; font-size: 13.5px; color: #E8EDFF; }
.anniv-autres small { color: #C9D3F5; }
.anniv-autres a, .anniv-source a { color: #FFE7A6; }
.anniv-plus { margin: 6px 0 0; font-size: 12.5px; color: #C9D3F5; }
.anniv-source { margin: 4px 0 0; font-size: 11.5px; color: #AEB9E0; }

@media (max-width: 480px) {
  .anniv { padding: 10px; align-items: flex-end; }
  .anniv-boite { padding: 42px 16px 14px; border-radius: 18px; max-height: calc(100dvh - 20px); }
  .anniv-icone { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .anniv-voile, .anniv-boite { transition: none; }
  .anniv-boite { transform: none; }
  .anniv-sat { animation: none; left: 18px; top: 8px; }
  .anniv-icone, .anniv-n { animation: none; }
  .anniv-confettis { display: none; }
}

/* The admin's page. */
.anniv-apercu-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.anniv-prochains { margin: 4px 0 0; padding-left: 18px; font-size: 13.5px; display: grid; gap: 3px; }
.anniv-table td { vertical-align: top; }
.anniv-table td:first-child { width: 4.5em; text-align: center; }
.anniv-table td.mono { white-space: nowrap; }
.anniv-perso { margin: 0 0 12px; padding-left: 18px; display: grid; gap: 6px; }
.anniv-ajout { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 14px; }
.anniv-ajout .actions { grid-column: 1 / -1; margin: 0; }
.anniv-ajout input, .anniv-ajout select { width: 100%; }
