/* plan-tab.css — Phase 6: countdown banner, two-month calendar, today detail, week list */

.countdown-banner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: 14px;
}
.cd-item { background: var(--bg-2); padding: 14px 16px; }
.cd-item .label { font-size: var(--fs-xs); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin-bottom: 4px; }
.cd-item .value { font-size: var(--fs-3xl); font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.cd-item .date { font-size: var(--fs-sm); color: var(--text-3); margin-top: 2px; }
.cd-item.urgent .value { color: var(--red); }

.calendar-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.cal { background: var(--bg-2); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 14px; }
.cal-month { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); font-weight: 600; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-head { font-size: var(--fs-xs); color: var(--text-4); text-align: center; padding: 4px 0; font-weight: 500; }
.cal-cell { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: var(--fs-sm); color: var(--text-3); border-radius: var(--r-sm); cursor: pointer; position: relative; font-variant-numeric: tabular-nums; }
.cal-cell:hover:not(.empty) { background: var(--bg-4); color: var(--text); }
.cal-cell.empty { color: var(--text-4); cursor: default; opacity: 0.3; }
.cal-cell.done { color: var(--green); font-weight: 600; }
.cal-cell.done::after { content: ''; position: absolute; bottom: 3px; width: 4px; height: 4px; background: var(--green); border-radius: 50%; }
.cal-cell.today { background: var(--text); color: var(--bg); font-weight: 600; }
.cal-cell.exam { color: var(--red); font-weight: 600; border: 1px solid var(--red); }
.cal-cell.scheduled { color: var(--text-2); }

.legend { display: flex; gap: 14px; font-size: var(--fs-sm); color: var(--text-3); margin-top: 10px; justify-content: center; }
.legend-item { display: flex; align-items: center; gap: 5px; }
.legend-dot { width: 8px; height: 8px; border-radius: 2px; }

.today-detail { background: var(--bg-2); border: 1px solid var(--border); border-left: 2px solid var(--text); border-radius: var(--r-md); padding: 14px 16px; margin-top: 16px; }
.today-detail .label { font-size: var(--fs-xs); color: var(--text); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.today-detail h3 { font-size: var(--fs-lg); margin: 4px 0 6px; }
.today-detail .desc { font-size: var(--fs-md); color: var(--text-2); margin-bottom: 12px; line-height: 1.5; }
.today-detail .actions { display: flex; gap: 6px; }

.week-row { display: grid; grid-template-columns: 60px 1fr 80px; padding: 9px 14px; border-bottom: 1px solid var(--border); font-size: var(--fs-base); align-items: center; }
.week-row:last-child { border-bottom: none; }
.week-row .day { color: var(--text-3); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.week-row .title { color: var(--text); }
.week-row .status { color: var(--text-3); text-align: right; font-size: var(--fs-sm); }
.week-row.done { opacity: 0.4; }
.week-row.done .title { text-decoration: line-through; }
.week-row.today { background: var(--bg-3); }
.week-row.today .title { font-weight: 500; }
