.panel {
  background: white;
  border: 1px solid var(--paper-edge);
  border-radius: 12px;
  padding: 18px 20px;
  display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 1px 0 rgba(255,255,255,0.6), 0 14px 30px -20px rgba(0,0,0,0.18);
  min-height: 280px;
}
.panel h3 {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0;
  font-weight: 600;
}
.panel .count {
  font-family: var(--serif);
  font-variation-settings: "opsz" 96;
  font-weight: 600;
  font-size: 36px;
  line-height: 1;
  color: var(--ink);
  display: flex; align-items: baseline; gap: 8px;
  font-feature-settings: "tnum";
}
.panel .count small {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}
.panel ul.depends {
  margin: 0; padding: 0;
  list-style: none;
  display: flex; flex-direction: column; gap: 0;
  border-top: 1px solid var(--rule);
}
.panel ul.depends li {
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.4;
  padding: 10px 0;
  color: var(--ink);
  border-bottom: 1px solid var(--rule);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: baseline;
  animation: depends-in 360ms ease-out both;
}
.panel ul.depends li.retreating {
  animation: depends-out 280ms ease-in both;
}
.panel ul.depends li .month-tag {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-soft);
  background: var(--paper-2);
  border: 1px solid var(--paper-edge);
  border-radius: 3px;
  padding: 1px 5px;
  font-feature-settings: "tnum";
  white-space: nowrap;
}
.panel ul.depends li .text { color: var(--ink-2); }
@keyframes depends-in {
  from { opacity: 0; transform: translateY(-4px); }
}
@keyframes depends-out {
  to { opacity: 0; transform: translateX(8px); }
}
.panel .empty {
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.4;
}
