/* The challenge calendar (cal-platform.js): a card per platform plus Commitments, one week at a time. */
.pcal button { font: inherit; color: inherit; background: none; border: 0; padding: 0; box-shadow: none; border-radius: 0; cursor: pointer; }
.pcal .cw-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.pcal .cw-title { font-weight: 800; font-size: 16px; text-align: center; }
.pcal .cw-nav button { width: 38px; height: 38px; border: 2px solid var(--line); border-radius: 50%; background: var(--card); box-shadow: 2px 2px 0 var(--line); font-size: 16px; }
.pcal .cw-nav button:hover { transform: translate(-1px, -1px); box-shadow: 3px 3px 0 var(--line); }
.pcal .cw-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.pcal .cw-track::-webkit-scrollbar { display: none; }
.pcal .cw { flex: 0 0 100%; scroll-snap-align: start; padding: 0 6px 6px 0; overflow: hidden; }
.pcal .cw-pips { display: flex; gap: 6px; justify-content: center; margin-top: 12px; }
.pcal .cw-pips i { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--line); }
.pcal .cw-pips i.on { background: var(--line); }
.pk-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; align-items: start; }
.pc-card { border: 2px solid var(--line); border-radius: 14px; background: color-mix(in srgb, var(--tint) 55%, var(--card)); padding: 10px 12px 6px; box-shadow: 2px 2px 0 var(--line); }
.pc-card.general { background: var(--card); border-style: dashed; }
.pk-top { display: grid; gap: 6px; }
.pc-name { font-size: 15px; font-weight: 800; }
.pk-days, .pc-dots { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; justify-items: center; align-items: center; }
.pcal .pk-d { display: flex; flex-direction: column; align-items: center; font-family: var(--mono); font-size: 10px; color: var(--muted); line-height: 1.1; padding: 1px 0; border-radius: 6px; width: 100%; }
.pk-d b { font-family: var(--display); font-size: 12px; color: var(--text); }
.pcal .pk-d.today { background: var(--pop); color: var(--on-pop); } .pk-d.today b { color: var(--on-pop); }
.pcal .pk-d.fut { cursor: default; }
/* A day is its whole column; hover or keyboard focus highlights it (same look as the design system's .zz-col) */
.pc-card { position: relative; }
.pc-card.col-on { cursor: pointer; }
.pk-col { position: absolute; bottom: 4px; border-radius: 8px; pointer-events: none; opacity: 0; transition: opacity .15s;
  background: color-mix(in srgb, var(--text) 9%, transparent); border: 1.5px solid color-mix(in srgb, var(--text) 45%, transparent); }
.pc-card.col-on .pk-col { opacity: 1; }
.pcal .pk-d:focus-visible { outline: none; }
.pc-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; align-items: baseline; padding: 7px 0; border-top: 1.5px dashed color-mix(in srgb, var(--line) 25%, transparent); }
.pc-row .pc-dots { grid-column: 1 / -1; }
.pc-kind { font-size: 13px; font-weight: 600; line-height: 1.15; }
.pc-kind small { font-family: var(--mono); font-size: 10px; font-weight: 400; color: var(--muted); margin-left: 6px; }
.pc-sum { font-family: var(--mono); font-size: 12px; text-align: right; }
.pc-sum.full { font-weight: 600; }
.pc-dots i { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--card); }
.pc-dots i.on { background: var(--line); }
.pc-dots i.part { background: conic-gradient(var(--line) var(--p), var(--card) 0); }
.pc-dots i.miss { border-color: var(--pop); }
.pc-dots i.fut { border-style: dashed; border-color: color-mix(in srgb, var(--muted) 50%, transparent); background: transparent; }
:root[data-theme="dark"] .pc-dots i.on { background: var(--text); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .pc-dots i.on { background: var(--text); } }
@media (max-width: 760px) { .pk-grid { grid-template-columns: 1fr; gap: 10px; } }
