/* ══════════════════════════════════════════
   Deadlines / Calendar View
══════════════════════════════════════════ */
.calendar-layout { display: grid; grid-template-columns: 1fr 23.125rem; gap: 1.75rem; }

/* ── Month navigation ── */
.cal-nav    { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.cal-month  { font-size: 1.0625rem; font-weight: 700; letter-spacing: -.3px; }
.cal-nav-btns { display: flex; gap: 0.25rem; }
.cal-btn {
  width: 2rem; height: 2rem; border-radius: var(--rxs);
  background: var(--s2); border: 1px solid var(--b1); color: var(--t2); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: color var(--tr), background var(--tr);
}
.cal-btn:hover  { color: var(--t1); background: var(--s3); }
.cal-btn svg    { width: 0.875rem; height: 0.875rem; }

/* ── Calendar grid ── */
.cal-grid {
  background: var(--s1); border: 1px solid var(--b1);
  border-radius: var(--r); overflow: hidden;
}
.cal-wds {
  display: grid; grid-template-columns: repeat(7,1fr);
  background: var(--s2); border-bottom: 1px solid var(--b1);
}
.cal-wd   {
  padding: 0.5625rem 0.25rem; text-align: center;
  font-size: 0.6875rem; font-weight: 600; color: var(--t3);
  text-transform: uppercase; letter-spacing: .4px;
}
.cal-days { display: grid; grid-template-columns: repeat(7,1fr); }
.cal-day  {
  min-height: 4rem; padding: 0.4375rem 0.375rem; font-size: 0.78125rem;
  border-right: 1px solid var(--b1); border-bottom: 1px solid var(--b1);
  cursor: pointer; position: relative;
  transition: background var(--tr);
}
.cal-day:nth-child(7n) { border-right: none; }
.cal-day:hover         { background: var(--s2); }
.cal-day.other-m       { opacity: .25; }
.cal-day.today .cal-dn {
  background: var(--ac); color: white;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.cal-day.weekend .cal-dn { color: var(--t3); }
.cal-dn   { font-size: 0.78125rem; font-weight: 500; margin-bottom: 0.25rem; }
.cal-dots { display: flex; flex-wrap: wrap; gap: 0.1875rem; }
.cal-dot  { width: 0.375rem; height: 0.375rem; border-radius: 50%; }

/* ── Deadline list panel ── */
.dl-list-panel { display: flex; flex-direction: column; gap: 0.625rem; }
.dl-sep {
  font-size: 0.6875rem; font-weight: 600; color: var(--t3);
  text-transform: uppercase; letter-spacing: .6px;
  padding: 0.5rem 0 0.25rem; border-top: 1px solid var(--b1);
}
.dl-row {
  display: flex; gap: 0.625rem; padding: 0.875rem 1rem;
  background: var(--s1); border: 1px solid var(--b1); border-radius: var(--rsm);
  transition: border-color var(--tr), transform var(--tr); cursor: pointer;
}
.dl-row:hover   { border-color: var(--b2); transform: translateX(0.125rem); }
.dl-dot         { width: 3px; border-radius: 99px; flex-shrink: 0; }
.dl-date        { font-size: 0.6875rem; color: var(--t3); width: 2.75rem; flex-shrink: 0; }
.dl-name        { font-size: 0.8125rem; font-weight: 600; margin-bottom: 0.125rem; }
.dl-note        { font-size: 0.71875rem; color: var(--t3); }

/* ── Add deadline button (inline, below list) ── */
.dl-add-btn {
  width: 100%; margin-top: 0.875rem;
  padding: 0.625rem 0.875rem;
  background: transparent;
  border: 1px dashed var(--b2);
  border-radius: var(--rsm);
  color: var(--t3);
  font-size: 0.8125rem; font-weight: 500;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 0.4375rem;
  transition: color var(--tr), border-color var(--tr), background var(--tr);
}
.dl-add-btn:hover { color: var(--t1); border-color: var(--ac); background: rgba(99,102,241,.06); }
.dl-add-btn svg   { width: 0.9375rem; height: 0.9375rem; }

/* ── Action buttons on each deadline card ── */
.dl-actions {
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  align-self: stretch; margin-left: auto; flex-shrink: 0;
}
.dl-iconbtn {
  background: none; border: none;
  color: var(--t3); cursor: pointer;
  padding: 0.25rem; border-radius: var(--rxs);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; flex-shrink: 0;
  transition: opacity var(--tr), color var(--tr), background var(--tr);
}
.dl-iconbtn svg      { width: 0.875rem; height: 0.875rem; }
.dl-iconbtn:disabled { cursor: default; opacity: 0.4; pointer-events: none; }

.dl-row:hover  .dl-iconbtn,
.dl-card:hover .dl-iconbtn { opacity: 1; }

.dl-edit:hover   { color: var(--ac);  background: rgba(99,102,241,.08); }
.dl-hide:hover   { color: var(--t1);  background: var(--s3); }
.dl-delete:hover { color: var(--red); background: rgba(239,68,68,.08); }

/* Hidden deadlines — grey everything including the action column */
.dl-card[data-hidden="1"] .dl-info,
.dl-card[data-hidden="1"] .dl-datebox,
.dl-card[data-hidden="1"] .dl-chip,
.dl-card[data-hidden="1"] .dl-actions { opacity: 0.45; }

/* ── Responsive ── */
@media (max-width: 820px) { .calendar-layout { grid-template-columns: 1fr; } }
