
.pbc-cec-wrap{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--pbc-font,#000);max-width:var(--pbc-wrap-max,100%);margin:0 auto;padding:var(--pbc-pad,18px)}

/* Break out of theme containers on desktop for a wider calendar view */
@media (min-width: 1024px){
  .pbc-cec-wrap.is-fullwidth{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
  }
}

.pbc-cec-note{margin-top:8px;color:#666;font-size:14px}
.pbc-cec-header{display:flex;justify-content:space-between;align-items:center;background:#f3f6ff;border-radius:16px;padding:18px;margin-bottom:12px}
.pbc-cec-sub{color:#6b7280;font-size:13px;margin-top:4px}
.pbc-cec-monthform{display:flex;gap:8px;align-items:center}
.pbc-cec-select{padding:8px 10px;border:1px solid #d6d9e6;border-radius:10px;background:#fff}
.pbc-cec-btn{background:var(--pbc-btn-primary-bg,#54357C);color:var(--pbc-btn-primary-text,#fff);border:1px solid var(--pbc-btn-primary-bg,#54357C);border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
.pbc-cec-btn:hover{filter:brightness(1.05)}
.pbc-cec-btn-ghost{background:var(--pbc-btn-secondary-bg,#fff);color:var(--pbc-btn-secondary-text,#54357C);border:1px solid var(--pbc-btn-secondary-border,#c9c2d6)}
.pbc-cec-btn-blue{background:#1e5eff}
.pbc-cec-btn-danger{background:#c0392b}
.pbc-cec-nav{display:flex;gap:10px;margin:10px 0 14px}
.pbc-cec-navbtn{padding:10px 14px;border-radius:999px;border:1px solid var(--pbc-btn-secondary-border,#d6d9e6);background:var(--pbc-btn-secondary-bg,#fff);color:var(--pbc-btn-secondary-text,#111);text-decoration:none;font-weight:700}
.pbc-cec-navbtn:hover{background:#f0f4ff;color:var(--pbc-hover,#1e5eff)}
.pbc-cec-navbtn.is-active{background:var(--pbc-btn-primary-bg,#54357C);color:var(--pbc-btn-primary-text,#fff);border-color:var(--pbc-btn-primary-bg,#54357C)}
.pbc-cec-legend{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e6e8f0;border-radius:12px;padding:10px 12px;margin:10px 0}
.pbc-cec-pill{display:inline-flex;align-items:center;gap:8px;background:#f7f7fb;border:1px solid #e6e8f0;border-radius:999px;padding:6px 10px;font-weight:700;font-size:13px}
.pbc-cec-dot{width:10px;height:10px;border-radius:50%}
.pbc-cec-icon{font-size:14px;line-height:1;vertical-align:middle}
.pbc-cec-filters{display:flex;gap:12px;flex-wrap:wrap;background:#f6f7fb;border:1px solid #e6e8f0;border-radius:12px;padding:12px;margin-bottom:14px;align-items:flex-end}

/* Month heading above calendar grid */
.pbc-cec-month-title{
  font-size: 20px;
  font-weight: 700;
  margin: 12px 0 10px;
  text-align: left;
}
@media (max-width: 768px){
  .pbc-cec-month-title{ font-size: 18px; }
}

.pbc-cec-filter label{display:block;font-size:12px;color:#6b7280;margin-bottom:6px}
.pbc-cec-filter input,.pbc-cec-filter select{padding:10px;border:1px solid #d6d9e6;border-radius:10px;background:#fff;min-width:220px}
.pbc-cec-filterbtns{display:flex;gap:10px;margin-left:auto}
.pbc-cec-gridwrap{display:grid;grid-template-columns:1fr;gap:14px}
@media(max-width:980px){.pbc-cec-gridwrap{grid-template-columns:1fr}}
.pbc-cec-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--pbc-grid-gap,10px)}
.pbc-cec-dow{font-weight:800;color:#6b7280;font-size:12px;text-align:center}
.pbc-cec-cell{background:#fff;border:1px solid var(--pbc-grid-line,#e6e8f0) !important;border-radius:14px;min-height:var(--pbc-cell-minh,110px);padding:10px;position:relative}
.pbc-cec-cell.is-empty{background:transparent;border:1px dashed var(--pbc-grid-line,#e6e8f0) !important}
.pbc-cec-date{font-weight:900;color:#111}
.pbc-cec-cell[data-date] .pbc-cec-date{cursor:pointer}
.pbc-cec-cell[data-date] .pbc-cec-date:hover{opacity:.85}
.pbc-cec-items{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.pbc-cec-evt{font-size:12px;text-decoration:none;color:var(--pbc-evt-text, var(--pbc-font,#000));background:var(--pbc-evt-fill, #f7f7fb);border-radius:10px;padding:8px 8px 8px 10px;border-left:5px solid #cfcfcf;line-height:1.2;display:block;transition:transform .12s ease, box-shadow .12s ease;will-change:transform;transform:translateZ(0)}
.pbc-cec-evt:hover{color:var(--pbc-evt-text-hover, var(--pbc-hover,#1e5eff));transform:scale(1.06);box-shadow:0 10px 18px rgba(0,0,0,.10);position:relative;z-index:5}

/* Hover preview card (like a magnified details tooltip) */
.pbc-cec-hovercard{
  position:fixed;
  z-index:99998;
  background:#fff;
  border:1px solid #e6e8f0;
  border-radius:12px;
  padding:10px 12px;
  box-shadow:0 14px 28px rgba(0,0,0,.12);
  max-width:320px;
  transform:scale(1);
  opacity:1;
  transition:transform .12s ease, opacity .12s ease;
  pointer-events:none;
}
.pbc-cec-hovercard.is-on{transform:scale(1);opacity:1}
.pbc-cec-hover-meta{font-size:12px;color:#6b7280;margin-bottom:6px}
.pbc-cec-hover-title{font-size:13px;font-weight:800;color:#111;line-height:1.25}
.pbc-cec-more{font-size:12px;color:#6b7280}
.pbc-cec-side{background:#fff;border:1px solid #e6e8f0;border-radius:14px;padding:12px}
.pbc-cec-side h3{margin:0 0 6px 0;color:var(--pbc-side-text,#000)}
.pbc-cec-side-sub{font-size:12px;color:var(--pbc-side-text,#000);opacity:.75;margin-bottom:10px}
.pbc-cec-side-item{display:block;padding:10px;border-radius:10px;color:var(--pbc-side-text,#000);text-decoration:none;border:1px solid transparent}
.pbc-cec-side-item:hover{background:var(--pbc-side-hbg,#1e5eff);color:var(--pbc-side-htxt,#fff)}
.pbc-cec-side-day{font-weight:900;margin-right:6px}
.pbc-cec-empty{color:#6b7280;padding:10px}
.pbc-cec-modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px;z-index:99999}
.pbc-cec-modal-card{background:#fff;border-radius:16px;max-width:720px;width:100%;padding:16px;position:relative}
.pbc-cec-close{position:absolute;top:10px;right:12px;background:#f2f2f2;border:none;border-radius:10px;width:40px;height:40px;font-size:22px;cursor:pointer}
.pbc-cec-detail h3{margin-top:0}
.pbc-cec-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;color:#374151}
.pbc-cec-detail-body{margin-top:10px}
.pbc-cec-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:12px;margin:12px 0}
.pbc-cec-notice.success{background:#ecfdf5;border-color:#a7f3d0}
.pbc-cec-error{color:#b91c1c;margin-top:6px}
.pbc-cec-unlock{display:flex;gap:10px;margin-top:10px}
.pbc-cec-unlock input{padding:10px;border:1px solid #d6d9e6;border-radius:10px}
.pbc-cec-submitform{background:#fff;border:1px solid #e6e8f0;border-radius:14px;padding:14px}
.pbc-cec-field{margin-bottom:12px}
.pbc-cec-field label{display:block;font-weight:800;margin-bottom:6px}
.pbc-cec-field input,.pbc-cec-field select,.pbc-cec-field textarea{width:100%;padding:10px;border:1px solid #d6d9e6;border-radius:10px}
.pbc-cec-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:780px){.pbc-cec-row{grid-template-columns:1fr}}
.pbc-cec-agenda{display:flex;flex-direction:column;gap:10px}
.pbc-cec-agenda-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #e6e8f0;border-radius:12px;padding:12px;text-decoration:none;color:var(--pbc-font,#000);background:#fff}
.pbc-cec-agenda-item:hover{color:var(--pbc-hover,#1e5eff)}

.pbc-cec-emoji{font-size:14px;line-height:1;vertical-align:middle}


/* Month/year dropdown heading above calendar */
.pbc-cec-month-title{
  font-weight: 700;
  font-size: var(--pbc-monthhead-size, 20px);
  margin: 14px 0 12px;
}
.pbc-cec-monthdrop{
  display:inline-block;
}
.pbc-cec-monthdrop summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  border-radius:12px;
}
.pbc-cec-monthdrop summary::-webkit-details-marker{ display:none; }
.pbc-cec-monthdrop summary:after{
  content:"▾";
  font-size:.9em;
  opacity:.75;
}
.pbc-cec-monthdrop[open] summary:after{ content:"▴"; }
.pbc-cec-monthdrop summary:hover{ background:#f3f6ff; }
.pbc-cec-monthdrop-form{
  margin-top:10px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.pbc-cec-monthdrop-form select{
  padding:10px;
  border:1px solid #d6d9e6;
  border-radius:10px;
  background:#fff;
}
.pbc-cec-inline-go{font-weight:700;border-radius:10px;padding:8px 12px;border:1px solid var(--pbc-btn-primary-bg,#54357C);background:var(--pbc-btn-primary-bg,#54357C);color:var(--pbc-btn-primary-text,#fff);cursor:pointer}
.pbc-cec-inline-go:hover{ filter: brightness(0.95); }

/* Mobile/tablet: ensure calendar is fully accessible (no cut-off), including landscape */
@media (max-width: 1024px){
  .pbc-cec-wrap{ padding: 12px; max-width: 100% !important; }
  .pbc-cec-gridwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
  .pbc-cec-grid{ min-width: 760px; }
}

/* Safety: if any legend exists, hide it */
.pbc-cec-legend{ display:none !important; }

/* Front-end edit form (modal) */
.pbc-cec-front-edit label{display:block;font-weight:600;margin:10px 0 6px;}
.pbc-cec-front-edit input[type="text"],
.pbc-cec-front-edit input[type="url"],
.pbc-cec-front-edit input[type="date"],
.pbc-cec-front-edit input[type="datetime-local"],
.pbc-cec-front-edit select,
.pbc-cec-front-edit textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d8dbe7;
  border-radius:10px;
  padding:10px 12px;
}
.pbc-cec-front-edit textarea{resize:vertical;}
.pbc-cec-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media (max-width:520px){.pbc-cec-edit-grid{grid-template-columns:1fr;}}
