/* 서울 청약 열람소 — 04장 「이번 달」 청약 일정 스타일
 * 1단계: 최소 동작 — 겹치지 않고 읽히는 정도. 색은 기존 :root 토큰만 사용.
 */

.cal__loading { padding: 2rem 0; color: var(--ink-soft); font-size: .9rem; }

.cal__err {
  border: 1px solid var(--rule);
  background: var(--paper);
  padding: 1.25rem 1.1rem;
}
.cal__err p { margin: .6rem 0; font-size: .87rem; line-height: 1.7; color: var(--ink-soft); }

/* ── 머리 ─────────────────────────────────────────── */
.cal__head {
  border: 1px solid var(--rule);
  background: var(--mint);
  padding: 1.1rem 1.15rem;
  margin-bottom: 1.5rem;
}
.cal__verdict { font-size: .95rem; line-height: 1.7; margin-bottom: .9rem; }
.cal__nums { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0 0 .9rem; }
.cal__nums > div { display: flex; flex-direction: column; gap: .2rem; }
.cal__nums dt { font-family: var(--mono); font-size: .62rem; letter-spacing: .1em; color: var(--ink-soft); }
.cal__nums dd { margin: 0; font-family: var(--mono); font-size: 1.15rem; font-weight: 600; }
.cal__stamp { font-size: .78rem; line-height: 1.7; color: var(--ink-soft); margin: 0; }

/* ── 그룹 ─────────────────────────────────────────── */
.cal__group { margin-bottom: 1.75rem; }
.cal__gt { font-size: 1.05rem; margin-bottom: .8rem; display: flex; align-items: baseline; gap: .5rem; }
.cal__gt span { font-family: var(--mono); font-size: .68rem; color: var(--ink-soft); }
.cal__list { display: grid; gap: .9rem; }
@media (min-width: 720px) { .cal__list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .cal__list { grid-template-columns: repeat(3, 1fr); } }

.cal__group--done .cal__c { opacity: .6; }

/* ── 카드 ─────────────────────────────────────────── */
.cal__c {
  border: 1px solid var(--rule);
  background: var(--paper);
  padding: 1.1rem 1.05rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.cal__c.is-apt { border: 2px solid var(--seal); background: #fff; }

.cal__ctop { display: flex; justify-content: space-between; align-items: flex-start; gap: .6rem; flex-wrap: wrap; }
.cal__kinds { display: flex; flex-wrap: wrap; gap: .35rem; }
.cal__kind {
  font-family: var(--mono);
  font-size: .62rem;
  letter-spacing: .04em;
  padding: .2rem .5rem;
  border: 1px solid var(--rule);
  white-space: nowrap;
}
.cal__kind--apt  { background: var(--seal); color: #fff; border-color: var(--seal); }
.cal__kind--lot  { background: var(--paper-2); color: var(--ink); }
.cal__kind--rent { background: var(--mint-deep); color: var(--ink); }
.cal__kind--etc  { background: transparent; color: var(--ink-soft); }

.cal__left {
  font-family: var(--mono);
  font-size: .72rem;
  font-weight: 600;
  color: var(--seal);
  white-space: nowrap;
}

.cal__name { font-size: 1.08rem; line-height: 1.4; margin: 0; }
.cal__where { font-size: .82rem; color: var(--ink-soft); margin: 0; }

.cal__rows { display: flex; flex-direction: column; gap: .3rem; margin: 0; }
.cal__rows > div { display: flex; gap: .6rem; font-size: .82rem; }
.cal__rows dt { font-family: var(--mono); font-size: .62rem; letter-spacing: .06em; color: var(--ink-soft); flex: none; width: 3.6rem; padding-top: .15rem; }
.cal__rows dd { margin: 0; line-height: 1.6; }

.cal__note { font-size: .78rem; line-height: 1.6; color: var(--ink-soft); border-top: 1px dashed var(--rule); padding-top: .5rem; margin: 0; }

.cal__link {
  font-family: var(--mono);
  font-size: .74rem;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--rule);
  align-self: flex-start;
  padding: .2rem 0;
}
.cal__link:hover, .cal__link:focus-visible { color: var(--seal); border-color: var(--seal); }

/* ── 꼬리 ─────────────────────────────────────────── */
.cal__foot { margin-top: 1.5rem; border-top: 2px solid var(--ink); padding-top: 1.1rem; }
.cal__foot p { font-size: .85rem; line-height: 1.8; color: var(--ink-soft); max-width: 66ch; margin: 0 0 .9rem; }
.cal__links { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; }
