/* Cosmic calendar – single-screen instrument, aligned with Sky / Moon / Solar. */
.ae-app--calendar .ae-main{max-width:none}
.ae-coscal{--cal-plum:#633353;--cal-rose:#d8b0c8;display:flex;flex-direction:column;gap:clamp(7px,.85dvh,12px);min-height:0;height:100%;width:100%;color:var(--cal-plum);font-family:"Segoe UI",sans-serif}
.ae-coscal__header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:0 0 auto;background:rgba(255,252,254,.82);border:1px solid #e9d8e4;border-radius:9px;padding:11px 17px;backdrop-filter:blur(7px)}
.ae-coscal__eyebrow,.ae-coscal__month-overline,.ae-coscal__detail-heading>span,.ae-coscal__detail-heading div>span{font-size:9px;letter-spacing:.12em;font-weight:800;color:#a07895}
.ae-coscal__heading h1{font:normal clamp(21px,1.85vw,31px)/1.05 Georgia,serif;margin:3px 0 4px;color:#60264e}
.ae-coscal__heading p{font-size:10px;line-height:1.35;margin:0;color:#855c75}
.ae-coscal__tools{display:flex;align-items:center;gap:12px}
.ae-coscal__periods{display:flex;padding:3px;gap:3px;background:#f7edf3;border:1px solid #e8d5e2;border-radius:7px}
.ae-coscal__periods a{padding:8px 11px;border-radius:5px;text-decoration:none;color:#754661;font-size:11px;font-weight:700;white-space:nowrap}
.ae-coscal__periods a[aria-current]{color:#fff;background:#6c345b;box-shadow:0 2px 8px #46203630}
.ae-coscal__arrows{display:flex;gap:5px}
.ae-coscal__arrows a{display:grid;place-items:center;width:31px;height:31px;border:1px solid #e5cddd;background:#fffbfd;border-radius:6px;color:#713a5e;text-decoration:none;font-size:20px}
.ae-coscal__arrows .ae-coscal__today{font-size:14px}
.ae-coscal__months{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.6fr) minmax(0,.82fr);gap:clamp(7px,.85vw,13px);flex:1 1 auto;min-height:0}
.ae-coscal__month{display:flex;flex-direction:column;gap:clamp(5px,.65dvh,9px);padding:clamp(8px,.85vw,14px);min-width:0;min-height:0;background:rgba(255,252,254,.87);border:1px solid #e5d0dc;border-radius:10px;box-shadow:0 5px 18px #60304f12}
.ae-coscal__month.is-active{background:rgba(255,251,254,.97);border-color:#bc91ab;box-shadow:0 9px 25px #60304f1c}
.ae-coscal__month-head{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:43px}
.ae-coscal__month-head h2{margin:3px 0 0;font:normal clamp(17px,1.35vw,23px)/1.15 Georgia,serif;white-space:nowrap}
.ae-coscal__month-head h2 a{color:#5c2a4c;text-decoration:none}
.ae-coscal__month-head h2 span{color:#a97794}
.ae-coscal__month-count{text-align:right;display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}
.ae-coscal__month-count strong{font:normal 19px Georgia,serif;color:#764061}
.ae-coscal__month-count small{font-size:9px;color:#a57d92}
.ae-coscal__weekdays,.ae-coscal__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(2px,.32vw,5px)}
.ae-coscal__weekdays span{text-align:center;font-size:9px;font-weight:800;color:#aa8099}
.ae-coscal__days{grid-template-rows:repeat(6,minmax(0,1fr));flex:1 1 auto;min-height:0}
.ae-coscal__day{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,.42dvh,5px);padding:2px;border:1px solid #eddfe8;border-radius:5px;background:#fffafd;color:#78516b;text-decoration:none;position:relative;overflow:hidden}
.ae-coscal__day:hover,.ae-coscal__day:focus-visible{background:#f9eaf2;outline:1px solid #b77b9f}
.ae-coscal__day.is-outside{opacity:.23;pointer-events:none}
.ae-coscal__day.is-today{box-shadow:inset 0 0 0 1px #d5ad71}
.ae-coscal__day.is-selected{border-color:#7d3e68;background:#f1dce8;box-shadow:inset 0 0 0 1px #7d3e68}
.ae-coscal__day-number{font:normal clamp(12px,.91vw,16px)/1 Georgia,serif}
.ae-coscal__day-icons{display:flex;gap:3px;justify-content:center;min-height:7px}
.ae-coscal__day-icons i,.ae-coscal__legend i{width:6px;height:6px;border-radius:50%;display:inline-block}
.ae-coscal__day-icons .is-phase,.ae-coscal__legend .is-phase{background:#cc9b5f}
.ae-coscal__day-icons .is-ingress,.ae-coscal__legend .is-ingress{background:#9d67a9}
.ae-coscal__day-count{color:#9b718e;font-size:8px;white-space:nowrap}
.ae-coscal__month-foot{display:flex;justify-content:center;gap:12px;color:#956e87;font-size:10px;flex:0 0 auto}
.ae-coscal__months--quarter{grid-template-columns:repeat(3,minmax(0,1fr))}
.ae-coscal__months--quarter .ae-coscal__month{border-color:#d4b2ca}
.ae-coscal__lower{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(7px,.85vw,13px);flex:0 0 clamp(155px,24dvh,240px);min-height:0}
.ae-coscal__lower:has(.ae-coscal__detail--week){grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr) minmax(0,1fr)}
.ae-coscal__detail,.ae-coscal__summary{background:rgba(255,251,254,.94);border:1px solid #e8d2e2;border-radius:9px;padding:clamp(9px,.8vw,13px);min-height:0;overflow:hidden}
.ae-coscal__detail-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.ae-coscal__detail-heading h3{font:normal 17px Georgia,serif;color:#683452;margin:3px 0 0}
.ae-coscal__detail-heading strong{font-size:12px;color:#6e3c5a}
.ae-coscal__count{border-radius:12px;padding:4px 8px;color:#7e4b69;background:#f4e4ed;font:700 10px "Segoe UI",sans-serif;white-space:nowrap}
.ae-coscal__event-list{max-height:calc(100% - 36px);overflow-y:auto;scrollbar-width:none}
.ae-coscal__event-list::-webkit-scrollbar{display:none}
.ae-coscal__event{display:flex;align-items:baseline;gap:9px;padding:4px 0;border-top:1px solid #eddfeb}
.ae-coscal__event-time{font-weight:800;color:#965c7c;font-size:11px;min-width:41px}
.ae-coscal__event strong{display:block;font-size:11px;color:#64354f}.ae-coscal__event small{font-size:9px;color:#a07a92}
.ae-coscal__empty,.ae-coscal__summary p{font:10px/1.45 "Segoe UI",sans-serif;color:#79516b;margin:5px 0 8px}
.ae-coscal__legend{display:flex;gap:16px;font-size:10px;color:#78576d;margin-top:auto}
.ae-coscal__legend span{display:flex;align-items:center;gap:5px}
.ae-coscal__summary{display:flex;flex-direction:column;gap:2px}
.ae-coscal__week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.ae-coscal__week-strip a{display:flex;flex-direction:column;align-items:center;text-decoration:none;padding:8px 2px;border:1px solid #ecd8e5;border-radius:6px;color:#6b3a57}
.ae-coscal__week-strip a.is-selected{background:#f0dbe8;border-color:#955f80}
.ae-coscal__week-strip strong{font:normal 17px Georgia,serif}.ae-coscal__week-strip small{font-size:8px;text-align:center}
@media (min-width:1060px){
  .ae-app--calendar .ae-main{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:7px clamp(8px,1vw,18px) 8px}
  .ae-app--calendar .ae-main>.ae-disclaimer,.ae-app--calendar .ae-main>.ae-breadcrumb{display:none}
}
@media(min-width:1060px) and (max-height:730px){
  .ae-coscal__header{padding:7px 12px}
  .ae-coscal__heading p{display:none}
  .ae-coscal__lower{flex-basis:clamp(135px,22dvh,180px)}
  .ae-coscal__day-count{display:none}
  .ae-coscal__month{padding:7px}
  .ae-coscal__summary p{font-size:9px;line-height:1.3}
}
@media(max-width:1250px){
  .ae-coscal__month-overline{font-size:8px}
  .ae-coscal__month-head h2{font-size:17px}
  .ae-coscal__month-count strong{font-size:15px}
  .ae-coscal__month-foot{font-size:9px;gap:6px}
}
@media(max-width:1059px){
  .ae-coscal{height:auto;min-height:650px}
  .ae-coscal__months{min-height:440px}
  .ae-coscal__lower{min-height:150px;flex-basis:auto}
}
@media(max-width:760px){
  .ae-coscal__header{flex-direction:column;align-items:flex-start}
  .ae-coscal__tools{width:100%;justify-content:space-between}
  .ae-coscal__months{grid-template-columns:1fr;min-height:0}
  .ae-coscal__month:not(.is-active){display:none}
  .ae-coscal__months--quarter .ae-coscal__month{display:flex;min-height:330px}
  .ae-coscal__month.is-active{min-height:420px}
  .ae-coscal__lower,.ae-coscal__lower:has(.ae-coscal__detail--week){grid-template-columns:1fr}
  .ae-coscal__detail,.ae-coscal__summary{min-height:125px}
}
/* Day inspector: live Moon metrics share the available height without a new scroll area. */
.ae-coscal__lunar-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;border-top:1px solid #eedde9;padding-top:5px}
.ae-coscal__lunar-metrics span{display:flex;align-items:baseline;justify-content:space-between;gap:4px;min-width:0}
.ae-coscal__lunar-metrics small{font:9px/1.2 "Segoe UI",sans-serif;color:#97718a;white-space:nowrap}
.ae-coscal__lunar-metrics strong{font:600 10px/1.2 "Segoe UI",sans-serif;color:#61344e;text-align:right;overflow-wrap:anywhere}
@media (min-width:1060px) and (max-height:850px){
  .ae-coscal__summary{padding:7px 10px}
  .ae-coscal__summary p{font-size:9px;line-height:1.28;margin:1px 0 3px}
  .ae-coscal__lunar-metrics{gap:2px 6px;padding-top:3px}
  .ae-coscal__lunar-metrics small{font-size:8px}
  .ae-coscal__lunar-metrics strong{font-size:9px}
  .ae-coscal__legend{font-size:9px}
}

/* Subtle horizontal entrance when an AJAX navigation swaps the calendar. */
.ae-coscal__months{animation:ae-coscal-enter .28s ease-out both}
@keyframes ae-coscal-enter{from{opacity:.77;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.ae-coscal__months{animation:none}}

/* Richer observatory calendar: distinguish weekends and ISO weeks. */
.ae-coscal__weekdays span:nth-child(6){color:#9a5874}
.ae-coscal__weekdays span:nth-child(7){color:#9e4267;font-weight:900}
.ae-coscal__day.is-saturday{background:#f5e8f1;border-color:#ddbdd3}
.ae-coscal__day.is-sunday{background:#f0dae8;border-color:#d2a8c3;color:#8e315d}
.ae-coscal__day.is-selected{background:#e5c5d9!important;border:2px solid #833458;color:#50203b}
.ae-coscal__week-label{position:absolute;left:2px;top:2px;font:800 7px/1 "Segoe UI",sans-serif;color:#a36e94;opacity:.9}
.ae-coscal__month.is-active{border:2px solid #b47a9a}
.ae-coscal__day-number{font-weight:600}
.ae-coscal__detail--rich{border-color:#c69ab6;background:rgba(255,251,254,.97)}
.ae-coscal__summary--rich{background:linear-gradient(135deg,rgba(255,247,252,.98),rgba(241,217,234,.94));border-color:#bf8ba8}
.ae-coscal__daily-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:0 0 auto}
.ae-coscal__daily-grid>div{padding:6px 8px;background:#f5e5ef;border:1px solid #e4c4d8;border-radius:5px;min-width:0}
.ae-coscal__daily-grid small,.ae-coscal__moon-feature small{display:block;color:#97617e;font:700 9px/1.25 "Segoe UI",sans-serif}
.ae-coscal__daily-grid strong{display:block;color:#662c50;font:normal clamp(12px,1vw,16px)/1.25 Georgia,serif;margin-top:3px}
.ae-coscal__tradition{display:flex;gap:8px;align-items:baseline;padding:5px 8px;background:#fffaee;border-left:3px solid #c39555;border-radius:3px;margin-top:5px;font-size:10px}
.ae-coscal__tradition strong{color:#8a5735;white-space:nowrap}.ae-coscal__tradition span{color:#855e69}
.ae-coscal__event-list--rich{margin-top:5px;max-height:none;flex:1;min-height:0}
.ae-coscal__event-list--rich .ae-coscal__empty{margin:4px 0;font-size:10px}
.ae-coscal__moon-feature{display:flex;align-items:center;gap:10px;background:#6d3159;color:#fff3f8;padding:8px 10px;border-radius:7px}
.ae-coscal__moon-icon{font-size:28px;color:#f2c8de;line-height:1}
.ae-coscal__moon-feature strong{display:block;color:#fff6fc;font:normal 16px/1.2 Georgia,serif;margin-top:3px}
.ae-coscal__moon-feature span{display:block;color:#f5cce2;font-size:11px;margin-top:3px}
.ae-coscal__moon-feature small{color:#dbadcb}
.ae-coscal__source{font:800 9px "Segoe UI",sans-serif;color:#2b9257}
.ae-coscal__summary--rich .ae-coscal__lunar-metrics{margin-top:7px;gap:5px}
.ae-coscal__summary--rich .ae-coscal__lunar-metrics span{display:block;padding:6px 8px;border:1px solid #dbb5d0;border-radius:5px;background:rgba(255,250,254,.82)}
.ae-coscal__summary--rich .ae-coscal__lunar-metrics strong{display:block;text-align:left;font:normal 15px Georgia,serif;margin-top:3px}
.ae-coscal__reading{padding:5px 7px;margin-top:6px;border-left:3px solid #b88a5d;background:rgba(255,250,254,.75)}
.ae-coscal__reading strong{font-size:10px;color:#723959}
.ae-coscal__reading p{margin:3px 0!important;font-size:9px!important;line-height:1.35!important}
.ae-coscal__summary--rich .ae-coscal__legend{margin-top:auto}
@media(min-width:1060px) and (max-height:790px){
.ae-coscal__lower{flex-basis:clamp(200px,29dvh,250px)}
.ae-coscal__daily-grid>div{padding:4px 6px}
.ae-coscal__daily-grid strong{font-size:12px}
.ae-coscal__moon-feature{padding:5px 8px}
.ae-coscal__reading p{font-size:8px!important}
}
@media(max-width:760px){.ae-coscal__daily-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Day panels must fit their actual contents: reserve height before the month grid
   consumes space; do not merely clip rich daily facts beneath the viewport. */
@media(min-width:1060px){
 .ae-coscal__lower{flex:0 0 clamp(270px,34dvh,330px);min-height:0}
 .ae-coscal__months{min-height:0}
 .ae-coscal__summary--rich,.ae-coscal__detail--rich{padding:clamp(7px,.65vw,11px)}
 .ae-coscal__summary--rich .ae-coscal__detail-heading{margin-bottom:5px}
 .ae-coscal__summary--rich .ae-coscal__moon-feature{padding:6px 8px}
 .ae-coscal__summary--rich .ae-coscal__lunar-metrics{margin-top:4px}
 .ae-coscal__summary--rich .ae-coscal__lunar-metrics span{padding:4px 6px}
 .ae-coscal__reading{margin-top:4px;padding:4px 6px}
 .ae-coscal__summary--rich .ae-coscal__legend{padding-top:3px}
 .ae-coscal__daily-grid{gap:4px}
 .ae-coscal__daily-grid>div{padding:5px 7px}
}
@media(min-width:1060px) and (max-height:790px){
 .ae-coscal__lower{flex-basis:clamp(245px,37dvh,295px)}
 .ae-coscal__summary--rich .ae-coscal__moon-feature strong{font-size:13px}
 .ae-coscal__summary--rich .ae-coscal__lunar-metrics strong{font-size:12px}
 .ae-coscal__reading{padding:3px 6px}
 .ae-coscal__reading p{font-size:8px!important;line-height:1.2!important}
 .ae-coscal__summary--rich .ae-coscal__legend{font-size:9px}
}
