.cal-controls { display:flex; gap:12px; margin:12px 0; align-items:center; }
.cal-controls button { background:#1a1d2c; color:#eee; border:1px solid #2a2d3c; border-radius:6px; padding:6px 12px; }
.cal-controls .btn.primary { background:#3b4070; border-color:#5a6090; color:#fff; }
.cal-label { font-size:18px; font-weight:700; min-width:160px; text-align:center; }

.cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; margin:12px 0; }
.cal-grid .head { padding:4px; text-align:center; font-size:12px; color:#888; }
.cal-grid .day {
  background:#14172a; border:1px solid #232539; border-radius:6px;
  padding:6px; min-height:90px; cursor:pointer; transition:border-color .12s;
  display:flex; flex-direction:column; gap:4px; font-size:12px;
}
.cal-grid .day:hover { border-color:#3b4070; }
.cal-grid .day.other { opacity:.3; }
.cal-grid .day.today { border-color:#f6c34a; }
.cal-grid .day .num { font-size:14px; font-weight:600; color:#bbb; }
.cal-grid .day.sat .num { color:#7cd5ff; }
.cal-grid .day.sun .num { color:#ff8080; }
.cal-grid .day .pill {
  display:inline-flex; gap:4px; align-items:center; padding:1px 6px;
  border-radius:8px; font-size:10px; line-height:1.4;
}
.cal-grid .day .pill.moon-new { background:#0d1730; color:#7cd5ff; border:1px solid #1d3a6a; }
.cal-grid .day .pill.moon-full { background:#3a3010; color:#f6c34a; border:1px solid #6a5a20; }
.cal-grid .day .pill.meteor { background:#1a3a20; color:#9be0a8; border:1px solid #2a6a40; }
.cal-grid .day .pill.event { background:#3a1a30; color:#ff80c8; border:1px solid #6a2a50; }

.cal-legend { display:flex; gap:14px; flex-wrap:wrap; margin:12px 0; font-size:12px; align-items:center; }
.cal-legend .dot { display:inline-block; width:14px; height:14px; border-radius:50%; margin-right:4px; vertical-align:middle; }
.cal-legend .moon-new { background:#7cd5ff; }
.cal-legend .moon-full { background:#f6c34a; }
.cal-legend .meteor { background:#9be0a8; }
.cal-legend .event { background:#ff80c8; }

.cal-info { background:#14172a; border:1px solid #232539; border-radius:8px; padding:14px; margin-top:14px; }
.cal-info h3 { margin-top:0; font-size:14px; color:#bbb; }
#cal-detail .ev { padding:8px; border-bottom:1px solid #1a1d2c; display:flex; justify-content:space-between; align-items:center; }
#cal-detail .ev:last-child { border-bottom:none; }
#cal-detail .ev .meta { color:#888; font-size:11px; }
#cal-detail .ev button { background:#1a1d2c; border:1px solid #2a2d3c; color:#ccc; border-radius:6px; padding:4px 10px; font-size:12px; cursor:pointer; }
#cal-detail .ev button.on { background:#3b4070; color:#fff; border-color:#5a6090; }
