/* Raid schedule page (/schedule): additions on top of the prototype calendar rules in fb.css (.cal-hero, .cal-next, .cal, .ct). */
.frosty-schedule .cal-hero { min-height: 290px; }
.frosty-schedule .cal-hero h1 { font-size: clamp(34px, 2.4vw + 14px, 54px); }
.sch-facts { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 18px 0 0; padding: 0; }
.sch-facts li { position: relative; padding-left: 20px; font: 600 13px var(--body); color: #dfe6fb; }
.sch-facts li::before { content: ""; position: absolute; left: 0; top: 4px; width: 11px; height: 6px; border-left: 2px solid #3fd8ff; border-bottom: 2px solid #3fd8ff; transform: rotate(-45deg); }
.cal-next { min-height: 190px; align-content: center; }
.cal-next[data-n-raid], .cal-next > b { min-height: 1.3em; }
.cal-next.is-off { opacity: .55; pointer-events: none; }
.cal-next.is-live strong { background: linear-gradient(180deg, #fff 30%, #c9c8ff); -webkit-background-clip: text; background-clip: text; }
.cal-next.is-empty > b { font-size: 20px; }
.cal-next.is-empty > span { line-height: 1.5; }
.cal-next .sch-next-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; font: 700 26px/1.1 var(--head); }
.cal-next .sch-next-cta i { font-style: normal; transition: transform .2s; -webkit-text-fill-color: #9fe3ff; }
.cal-next.is-empty:hover .sch-next-cta i { transform: translateX(4px); }

.cal-bar .seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.cal-bar .seg::-webkit-scrollbar { display: none; }

.sch-empty { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; margin: 0 0 14px; box-shadow: inset 0 0 0 1px rgba(95, 212, 255, .28); }
.sch-empty div { display: grid; gap: 4px; }
.sch-empty b { font: 700 15px var(--head); color: #fff; }
.sch-empty span { font-size: 13.5px; color: var(--soft); }
.sch-empty .btn { flex: none; }

/* reserve the grid height before the script paints it (no jump on load) */
.cal:empty { min-height: 420px; }
.cal.week .cal-day { min-height: 220px; }
.cal-dh em { min-width: 20px; text-align: right; }
.sch-ghost { display: grid; place-items: center; min-height: 92px; margin: 0; border-radius: var(--sh-s); border: 1px dashed rgba(124, 140, 255, .22); font: 500 12px var(--body); color: var(--faint); text-align: center; }
.sch-ghost-wide { min-height: 160px; }
.ct[aria-disabled="true"] { pointer-events: none; }
.ct .ct-raid { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cal-row h3 small { margin-left: 6px; font: 500 13px var(--body); color: var(--muted); }
.sch-info { padding-top: 44px; }
.sch-info .t-card { margin-top: 0; }

/* day tabs: phone only — one day at a time instead of a seven-screen-long column */
.sch-days { display: none; }
@media (max-width: 1280px) and (min-width: 901px) { .cal.week { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .frosty-schedule .cal-hero { min-height: 0; }
  .cal-next { min-height: 170px; }
  .sch-empty { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .sch-days { display: flex; gap: 6px; margin: 0 calc(-1 * var(--gut)) 12px; padding: 2px var(--gut) 4px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
  .sch-days::-webkit-scrollbar { display: none; }
  .sch-days button { flex: none; display: grid; justify-items: start; gap: 2px; min-width: 86px; padding: 9px 12px; border: 0; border-radius: var(--sh-s); background: rgba(8, 12, 32, .6); box-shadow: inset 0 0 0 1px var(--line); color: var(--muted); text-align: left; scroll-snap-align: start; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .sch-days button b { font: 700 13.5px var(--head); color: #fff; }
  .sch-days button span { font-size: 11.5px; }
  .sch-days button em { font: 600 11px var(--body); font-style: normal; color: #7fd8ff; }
  .sch-days button em.zero { color: var(--faint); }
  .sch-days button.on { background: var(--g-indigo); box-shadow: inset 0 0 0 1.5px rgba(160, 170, 255, .6); color: #fff; }
  .cal.week { grid-template-columns: 1fr; }
  .cal.week .cal-day { display: none; min-height: 0; }
  .cal.week .cal-day.picked { display: block; }
  .cal.week .cal-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cal:empty { min-height: 300px; }
  .cal-bar [data-view] { display: none; }
  .sch-facts { gap: 6px 16px; }
}
@media (max-width: 380px) { .cal.week .cal-items { grid-template-columns: 1fr; } }
.ct-top .rs { white-space: nowrap; flex: none; } .ct-top { min-width: 0; }

/* 3-day view: one row per day, horizontal run tiles side by side */
.cal.days3 { display: grid; gap: 16px; }
.cal-d3 { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: start; padding: 16px; border-radius: 4px 18px 4px 18px; background: rgba(20, 24, 56, .55); box-shadow: inset 0 0 0 1px var(--line); }
.cal-d3.today { box-shadow: inset 0 0 0 1px rgba(63, 216, 255, .35); background: linear-gradient(100deg, rgba(31, 140, 255, .1), rgba(20, 24, 56, .55) 40%); }
.cal-d3h { position: sticky; top: calc(var(--bar) + 16px); display: grid; gap: 2px; padding: 6px 4px; }
.cal-d3h b { font: 700 20px var(--head); color: #fff; } .cal-d3h span { font-size: 13.5px; color: var(--muted); }
.cal-d3h em { justify-self: start; margin-top: 8px; padding: 2px 10px; border-radius: 3px 9px 3px 9px; font: 700 12px var(--body); font-style: normal; color: #05112a; background: #3fd8ff; }
.cal-d3h em.zero { color: var(--muted); background: rgba(255, 255, 255, .06); }
.cal-d3i { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.cal-d3i .cal-empty { grid-column: 1 / -1; margin: 0; padding: 22px; text-align: center; }
.cal-d3i .ct { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "time raid price" "time diff seats" "bar bar bar"; gap: 4px 16px; align-items: center; padding: 14px 16px; min-height: 0; }
.cal-d3i .ct-top { grid-area: time; display: grid; justify-items: start; gap: 6px; padding-right: 16px; border-right: 1px solid var(--line); }
.cal-d3i .ct-top b { font-size: 26px; line-height: 1; }
.cal-d3i .ct-raid { grid-area: raid; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-d3i .ct-diff { grid-area: diff; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-d3i .ct-foot { display: contents; }
.cal-d3i .ct-foot > span { grid-area: seats; justify-self: end; font-size: 12.5px; color: var(--muted); white-space: nowrap; }
.cal-d3i .ct-foot > b { grid-area: price; justify-self: end; font-size: 17px; white-space: nowrap; }
.cal-d3i .rbar { grid-area: bar; margin-top: 8px; }
.cal-d3i .ct-live { grid-column: 1 / -1; }
@media (max-width: 760px) {
  .cal-d3 { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 12px; }
  .cal-d3h { position: static; grid-auto-flow: column; justify-content: start; align-items: baseline; gap: 10px; padding: 0 2px; }
  .cal-d3h em { margin-top: 0; }
  .cal-d3i { grid-template-columns: minmax(0, 1fr); }
  .cal-d3i .ct-top b { font-size: 22px; }
}
.cal-d3i { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); }
.cal-d3i .ct-raid { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.25; }
.cal-more { grid-column: 1 / -1; justify-self: center; margin-top: 4px; padding: 10px 22px; border: 0; border-radius: 3px 12px 3px 12px; background: rgba(31, 140, 255, .12); box-shadow: inset 0 0 0 1px rgba(63, 216, 255, .35); color: #9fe6ff; font: 700 14px var(--body); cursor: pointer; }
.cal-more:hover { background: rgba(31, 140, 255, .22); color: #fff; }
@media (max-width: 760px) {  .cal-more { justify-self: stretch; } }
