/* ════════════════════════════════════════════════════════════════
   THE NIGHT · the material every room of the app shares
   Dava-Dark kept in MotusMoves' colours. The page is a navy night; a panel is
   glass that holds light: a navy-slate tint, a rim lit from the top edge, a
   soft bloom outside it, and no backdrop blur in the flow of the page. A blurred
   panel is blurred again on every scrolled frame, and over this night the blur
   bought little. Loaded last on the app shell (after motus.css and
   overture.css); nothing here changes an id or a handler.
═══════════════════════════════════════════════════════════════════ */
:root{
  --ov-night:  #050b20;
  --ov-ice:    #d8effc;
  --ov-pearl:  #f8f1fb;
  --ov-orchid: #c084fc;
  --ov-pink:   #f18ac6;
  /* the lit rim: brightest at the top, where the light is, fading round the sides */
  --ov-rim: linear-gradient(180deg, rgba(216,239,252,.55), rgba(192,132,252,.32) 38%, rgba(241,138,198,.14) 72%, rgba(216,239,252,.06));
  /* the house glass */
  --ov-glass: linear-gradient(180deg, rgba(22,30,66,.64), rgba(10,14,34,.74));
  --ov-glass-line: rgba(216,239,252,.11);
  --ov-glass-hi: inset 0 1px 0 rgba(216,239,252,.14);
}

/* ── the night. The field canvas clears to transparent, so this is what it sits on. ── */
body{ background:var(--ov-night); }
.aurora{
  background:
    radial-gradient(46% 34% at 16% 6%,  rgba(139,92,246,.22), transparent 70%),
    radial-gradient(40% 30% at 86% 14%, rgba(241,138,198,.09), transparent 72%),
    radial-gradient(44% 34% at 72% 64%, rgba(87,130,181,.11), transparent 72%),
    radial-gradient(56% 42% at 50% 108%, rgba(177,92,255,.15), transparent 70%);
}
body::after{ background:radial-gradient(120% 80% at 50% 30%, transparent 42%, rgba(3,6,18,.62) 100%); }

/* the top bar fades from the night itself, so there is no near-black band above it */
.topbar{ background:linear-gradient(180deg, rgba(5,11,32,.86), rgba(5,11,32,0)); }

/* ── the house glass ── */
.panel,
.feedcard,
.guestbar{
  -webkit-backdrop-filter:none; backdrop-filter:none;
  background:var(--ov-glass);
  border-color:var(--ov-glass-line);
  box-shadow:var(--ov-glass-hi), 0 30px 70px -48px rgba(0,0,0,.9);
}
/* the variants keep their own light */
.feedcard--mine{ border-color:rgba(177,92,255,.45); box-shadow:var(--ov-glass-hi), 0 0 44px -26px rgba(177,92,255,.8); }
.feedcard--featured{ border-color:rgba(61,242,255,.34); background:linear-gradient(180deg, rgba(20,40,70,.66), rgba(10,14,34,.76)); }
.feedcard:hover{ border-color:rgba(216,239,252,.22); }

/* the search field is a quieter well of the same glass */
.searchbar{
  background:rgba(10,14,34,.66); border-color:rgba(216,239,252,.12);
  box-shadow:inset 0 1px 0 rgba(216,239,252,.08);
}

/* ══ MOVE · less in front of the first move ══
   A guest met three invitations to sign in before the first move: the top bar,
   the guest card, and a "Sign in to spend VOTUS & MOTUS" chip saying the guest
   card's line again. Where the guest card stands, the chip goes. */
#news-root:has(.guestbar) [data-vote-budget]:has(> .vb--ghost){ display:none; }

/* an empty month filter printed "--------- ----". It now rests as a calendar
   chip and opens into the month fields when focused or once a month is chosen.
   (required gives the empty field an :invalid state to read; nothing submits it.) */
@supports selector(::-webkit-calendar-picker-indicator){
  .timemonth:invalid:not(:focus){ width:46px; min-height:34px; padding:7px 0; }
  .timemonth:invalid:not(:focus)::-webkit-datetime-edit{ display:none; }
  .timemonth:invalid:not(:focus)::-webkit-calendar-picker-indicator{ margin:0 auto; }
}

/* ══ THE DOORS FROM OUTSIDE · /mover/<slug> and /move/<slug> ══
   A shared link lands here, so these pages are front doors too. They take the
   same night (this file is now linked on both) and the same glass. */

/* the bar fades from the night, as the app's does; it is fixed chrome, so its frost stays */
.mp-top{ background:linear-gradient(180deg, rgba(5,11,32,.86), rgba(5,11,32,.42) 70%, transparent); }

/* the identity chips and link cards: the house glass, no blur in the flow */
.mp-chip, .mp-linkcard, .mp-live__card, .mp-sig{
  -webkit-backdrop-filter:none; backdrop-filter:none;
  background:var(--ov-glass); border-color:var(--ov-glass-line);
  box-shadow:var(--ov-glass-hi), 0 22px 50px -38px rgba(0,0,0,.9);
}
.mp-chip--evo{ border-color:rgba(177,92,255,.34); }
.mp-chip--link:hover{ border-color:rgba(216,239,252,.3); box-shadow:var(--ov-glass-hi), 0 0 30px -12px rgba(156,195,239,.5); }
/* two columns hold pairs: a last chip left alone in its row takes the whole row
   (the Dash EVO chip already spans the first row when it is present) */
@media (min-width:560px){
  .mp-chips:has(> .mp-chip--evo) > .mp-chip:last-child:nth-child(even),
  .mp-chips:not(:has(> .mp-chip--evo)) > .mp-chip:last-child:nth-child(odd){ grid-column:1 / -1; }
}

/* the move card's two glows were tall boxes whose gradient had not reached clear
   at their edges, so each card carried two hard vertical seams (measured on the
   move page at x 625 and x 777). closest-side fades each glow inside its own box. */
.mp-move__pulse, .mvx-card__pulse{ background:radial-gradient(closest-side, rgba(177,92,255,.24), rgba(177,92,255,0)); }
.mp-move__pulse2, .mvx-card__pulse2{ background:radial-gradient(closest-side, rgba(61,242,255,.17), rgba(61,242,255,0)); }
