:root{
  --bg:#6e8f86; --surface:#f5f7f6; --ink:#1f2937;
  --muted:#6b7280; --grid:#ececec; --head:#eaf0ee;
}

html,body{margin:0;background:var(--bg);font-family:system-ui,Segoe UI,Roboto,Inter,Arial,sans-serif;color:var(--ink)}
.ch-pc-wrap{max-width:1100px;margin:24px auto;padding:16px}
.ch-pc-cal{background:var(--surface);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.15);overflow:hidden}
.ch-pc-cal__top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e5e7eb;background:var(--head)}
.ch-pc-cal__title{font-weight:800}
.ch-pc-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ch-pc-btn{appearance:none;border:1px solid #d1d5db;background:#fff;padding:6px 10px;border-radius:8px;cursor:pointer;font-weight:600}
.ch-pc-month-input{border:1px solid #d1d5db;border-radius:8px;padding:6px 8px;background:#fff}

.ch-pc-row{display:grid;grid-template-columns:repeat(7,1fr)}
.ch-pc-dow{background:#f3f4f6;padding:10px 8px;text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#374151;font-weight:700;border-bottom:1px solid #e5e7eb}
.ch-pc-cell{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);min-height:110px;padding:8px 6px;position:relative;background:#fff;overflow:auto}
.ch-pc-cell:nth-child(7n){border-right:none}
.ch-pc-outside{background:#fafafa;color:#a1a1aa}
.ch-pc-date{position:absolute;top:6px;right:6px;font-size:12px;color:#6b7280;font-weight:700}

/* View toggle (segmented) */
.ch-pc-seg{display:inline-flex;border:1px solid #d1d5db;border-radius:8px;overflow:hidden}
.ch-pc-seg .ch-pc-btn{border:0;border-right:1px solid #d1d5db}
.ch-pc-seg .ch-pc-btn:last-child{border-right:0}
.ch-pc-seg .ch-pc-btn[aria-pressed="true"]{background:#111;color:#fff}

/* Event pill — two-line: name then time */
a.ch-pc-event{
  display:flex; gap:6px; align-items:flex-start;
  border-radius:9px; padding:4px 6px;
  font-size:12px; line-height:1.1; cursor:pointer;
  border:1px solid rgba(0,0,0,.06);
  white-space:normal; overflow:hidden; text-decoration:none; color:inherit;
}
.ch-pc-event + .ch-pc-event{ margin-top:6px }

/* Margin differs per mode */
.ch-pc-grid-mode a.ch-pc-event{ margin-top:22px }  /* pushes under date badge */
.ch-pc-list-mode a.ch-pc-event{ margin-top:6px }

.ch-pc-event .ch-pc-dot{
  width:8px; height:8px; border-radius:50%; flex:0 0 8px;
  margin-top:3px; opacity:.95;
}
.ch-pc-event .ch-pc-info{ display:flex; flex-direction:column; min-width:0 }
.ch-pc-event .ch-pc-name{
  font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ch-pc-event .ch-pc-time{
  font-size:11px; color:var(--muted); font-weight:400; margin-top:2px;
}

/* Legend */
.ch-pc-legend{display:flex;gap:10px;flex-wrap:wrap;padding:10px 14px;background:#f9fafb;border-top:1px solid #e5e7eb}
.ch-pc-key{
  display:flex;align-items:center;gap:8px;
  font-size:12px;color:#374151;text-decoration:none;
  border:1px solid rgba(0,0,0,.06); padding:6px 8px; border-radius:8px;
  background:#fff;
}
.ch-pc-key:hover{ text-decoration:underline }
.ch-pc-swatch{width:14px;height:14px;border-radius:5px;border:1px solid rgba(0,0,0,.08)}

/* Status & list view */
.ch-pc-loading{padding:10px 14px;font-size:12px;color:#374151;border-top:1px solid #e5e7eb;background:#fff}
.ch-pc-listwrap{padding:8px 10px}
.ch-pc-day-group{padding:8px 10px;border-bottom:1px solid var(--grid);background:#fff}
.ch-pc-day-head{font-weight:800;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 6px}
.ch-pc-empty{padding:16px;color:var(--muted);font-size:13px}

@media(max-width:700px){
  .ch-pc-cell{min-height:96px}
  a.ch-pc-event{font-size:11px}
}
