/* Astrolinia Engine / Observatorium: real lunar and solar calendar timeline.
   Sits beneath Moon Now, matching the approved blush/cream dashboard mockup. */
.ae-app--overview .ae-right-rail{
  position:absolute;
  z-index:6;
  top:12px;
  right:clamp(12px,1.45vw,26px);
  box-sizing:border-box;
  width:clamp(280px,24vw,388px);
  max-height:calc(100% - 24px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(8px,1.25dvh,14px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(173,118,151,.28) transparent;
}
.ae-app--overview .ae-right-rail .ae-moon-now{
  position:relative;
  top:auto;
  right:auto;
  width:100%;
  min-height:0;
  flex:0 0 auto;
  margin:0;
}
.ae-app--overview .ae-upcoming{
  box-sizing:border-box;
  flex:0 0 auto;
  padding:clamp(12px,1.1vw,19px);
  border:1px solid #e8cbd8;
  border-radius:20px;
  color:#642548;
  background:
    radial-gradient(ellipse at 95% 12%,rgba(244,216,237,.36),transparent 64%),
    linear-gradient(145deg,rgba(255,254,252,.97),rgba(255,245,248,.95));
  box-shadow:0 9px 30px rgba(103,51,81,.13),inset 0 1px rgba(255,255,255,.74);
  backdrop-filter:blur(9px);
}
.ae-app--overview .ae-upcoming__header{
  display:flex;
  align-items:center;
  gap:clamp(5px,.55vw,9px);
  padding:0 0 10px;
  border-bottom:1px solid #ecd5df;
}
.ae-app--overview .ae-upcoming__clock{
  color:#d19562;
  font:normal clamp(23px,1.9vw,29px)/1 Georgia,"Times New Roman",serif;
  flex:0 0 auto;
}
.ae-app--overview .ae-upcoming__header h2{
  margin:0;
  flex:1 1 auto;
  min-width:0;
  color:#632244;
  white-space:nowrap;
  font:normal clamp(17px,1.4vw,21px)/1.15 Georgia,"Times New Roman",serif;
}
.ae-app--overview .ae-upcoming__header>a{
  flex:0 0 auto;
  color:#773551;
  font:normal clamp(10px,.81vw,12px)/1.25 Georgia,"Times New Roman",serif;
  text-decoration:none;
  white-space:nowrap;
}
.ae-app--overview .ae-upcoming__header>a:hover,
.ae-app--overview .ae-upcoming__header>a:focus-visible{text-decoration:underline}
.ae-app--overview .ae-upcoming__header>a span{font-size:16px;padding-left:3px}
.ae-app--overview .ae-upcoming__timeline{
  position:relative;
  margin:0;
  padding:0;
  list-style:none;
}
.ae-app--overview .ae-upcoming__timeline::before{
  content:"";
  position:absolute;
  left:clamp(45px,4.0vw,54px);
  top:30px;
  bottom:32px;
  width:1px;
  background:linear-gradient(0deg,transparent,rgba(180,116,151,.49) 23%,rgba(180,116,151,.49) 77%,transparent);
  pointer-events:none;
}
.ae-app--overview .ae-upcoming__event{
  position:relative;
  border-bottom:1px solid rgba(231,203,216,.73);
}
.ae-app--overview .ae-upcoming__event:last-child{border-bottom:0}
.ae-app--overview .ae-upcoming__event>a{
  display:grid;
  grid-template-columns:clamp(37px,3.4vw,46px) 8px clamp(38px,3.55vw,48px) minmax(0,1fr);
  gap:clamp(5px,.55vw,9px);
  align-items:center;
  min-height:clamp(62px,7.6dvh,80px);
  padding:clamp(5px,.6dvh,9px) 0;
  text-decoration:none;
  color:inherit;
}
.ae-app--overview .ae-upcoming__event>a:focus-visible{
  outline:2px solid #a95d8b;
  outline-offset:-2px;
  border-radius:8px;
}
.ae-app--overview .ae-upcoming__event>a:hover .ae-upcoming__description strong{
  text-decoration:underline;
}
.ae-app--overview .ae-upcoming__date{
  display:block;
  color:#763055;
  font:normal clamp(10px,.87vw,13px)/1.2 Georgia,serif;
  text-align:left;
  white-space:nowrap;
}
.ae-app--overview .ae-upcoming__date span{
  display:block;
  margin-top:4px;
  color:#994c6d;
  font-size:clamp(10px,.8vw,12px);
}
.ae-app--overview .ae-upcoming__point{
  position:relative;
  display:block;
  width:7px;height:7px;
  border-radius:50%;
  margin:auto;
  background:linear-gradient(160deg,#f2c691,#a7547b);
  border:1px solid rgba(255,250,249,.85);
  box-shadow:0 0 0 1px rgba(168,91,131,.26),0 0 7px rgba(202,145,174,.38);
  z-index:2;
}
.ae-app--overview .ae-upcoming__moon{
  display:block;
  width:100%;
  max-width:48px;
  aspect-ratio:1/1;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 0 5px rgba(183,132,175,.23));
}
.ae-app--overview .ae-upcoming__description{
  display:block;min-width:0;
}
.ae-app--overview .ae-upcoming__description strong{
  display:block;
  color:#612244;
  font:normal clamp(11px,.99vw,14px)/1.25 Georgia,serif;
  overflow-wrap:anywhere;
}
.ae-app--overview .ae-upcoming__description small{
  display:block;
  color:#97617b;
  margin-top:4px;
  font:normal clamp(10px,.78vw,12px)/1.22 Georgia,serif;
}
.ae-app--overview .ae-upcoming__empty{
  margin:13px 0 3px;
  color:#885572;
  font:normal 12px/1.4 Georgia,serif;
}
/* All three right-hand cards may use the available rail height; overflow scrolls if required. */
@media(min-width:1060px) and (max-width:1320px){
  .ae-app--overview .ae-right-rail{top:12px;right:10px;width:clamp(220px,21vw,280px);gap:8px}
  .ae-app--overview .ae-upcoming{padding:10px;border-radius:16px}
  .ae-app--overview .ae-upcoming__header{padding-bottom:6px;gap:5px}
  .ae-app--overview .ae-upcoming__clock{font-size:20px}
  .ae-app--overview .ae-upcoming__header h2{font-size:15px}
  .ae-app--overview .ae-upcoming__header>a{font-size:9px}
  /* Wrap the calendar link below the title in a narrow right rail. */
  .ae-app--overview .ae-upcoming__header{
    display:grid;grid-template-columns:22px minmax(0,1fr);
    column-gap:5px;row-gap:2px;
  }
  .ae-app--overview .ae-upcoming__header>a{grid-column:2;justify-self:end}
  .ae-app--overview .ae-upcoming__event>a{
    grid-template-columns:32px 7px 33px minmax(0,1fr);
    gap:5px;min-height:55px;padding:4px 0;
  }
  .ae-app--overview .ae-upcoming__timeline::before{left:39px}
  .ae-app--overview .ae-upcoming__date{font-size:10px}
  .ae-app--overview .ae-upcoming__date span{font-size:9px}
  .ae-app--overview .ae-upcoming__description strong{font-size:11px}
  .ae-app--overview .ae-upcoming__description small{font-size:9px;margin-top:2px}
}
@media(min-width:1060px) and (max-height:730px){
  .ae-app--overview .ae-upcoming{padding:9px 10px}
  .ae-app--overview .ae-upcoming__event>a{min-height:45px;padding:3px 0}
  .ae-app--overview .ae-upcoming__moon{max-width:38px}
  .ae-app--overview .ae-upcoming__header{padding-bottom:5px}
}
@media(min-width:701px) and (max-width:1059px){
  .ae-app--overview .ae-right-rail{
    top:12px;right:10px;
    width:clamp(212px,27vw,285px);
    max-height:calc(100% - 24px);
    gap:8px;
  }
  .ae-app--overview .ae-upcoming{padding:8px 10px;border-radius:15px}
  .ae-app--overview .ae-upcoming__header{gap:5px;padding-bottom:6px}
  .ae-app--overview .ae-upcoming__clock{font-size:18px}
  .ae-app--overview .ae-upcoming__header h2{font-size:14px}
  .ae-app--overview .ae-upcoming__header>a{font-size:9px}
  /* Wrap the calendar link below the title in a narrow right rail. */
  .ae-app--overview .ae-upcoming__header{
    display:grid;grid-template-columns:22px minmax(0,1fr);
    column-gap:5px;row-gap:2px;
  }
  .ae-app--overview .ae-upcoming__header>a{grid-column:2;justify-self:end}
  .ae-app--overview .ae-upcoming__event>a{
    grid-template-columns:32px 7px 33px minmax(0,1fr);
    gap:4px;min-height:49px;padding:4px 0;
  }
  .ae-app--overview .ae-upcoming__timeline::before{left:38px;top:21px;bottom:21px}
  .ae-app--overview .ae-upcoming__date{font-size:9px}
  .ae-app--overview .ae-upcoming__date span{font-size:9px;margin-top:2px}
  .ae-app--overview .ae-upcoming__description strong{font-size:10px}
  .ae-app--overview .ae-upcoming__description small{font-size:9px;margin-top:2px}
  .ae-app--overview .ae-moon-now__scene{min-height:90px}
}
@media(max-width:700px){
  .ae-app--overview .ae-right-rail{
    position:relative;top:auto;right:auto;
    width:100%;max-height:none;overflow:visible;
    gap:12px;margin:12px auto;
  }
  .ae-app--overview .ae-upcoming{padding:15px;border-radius:18px}
  .ae-app--overview .ae-upcoming__header h2{font-size:19px}
  .ae-app--overview .ae-upcoming__date{font-size:12px}
  .ae-app--overview .ae-upcoming__description strong{font-size:13px}
  .ae-app--overview .ae-upcoming__description small{font-size:11px}
}
