:root {
  --plgc-primary: #11A954;
  --plgc-primary-dark: #0c8e45;
  --plgc-accent: #FFCC25;
  --plgc-dark: #1b1b1b;
  --plgc-muted: #5f6662;
  --plgc-border: #e5e7e8;
  --plgc-bg: #f5f7f6;
}
.plgc-calendar-shell,.plgc-calendar-shell *,.plgc-lang-shortcode,.plgc-lang-shortcode *,.plgc-agenda-shortcode,.plgc-agenda-shortcode *,.plgc-download-shortcode,.plgc-download-shortcode *{box-sizing:border-box}
.plgc-calendar-shell,.plgc-lang-shortcode,.plgc-agenda-shortcode,.plgc-download-shortcode{color:var(--plgc-dark);font-family:inherit}
.plgc-calendar-container{width:min(1180px,calc(100% - 32px));margin:0 auto}

/* Correção contra estilos do tema em :focus/:active/visited */
.plgc-lang-toggle button:hover,
.plgc-lang-toggle button:focus,
.plgc-lang-toggle button:focus-visible,
.plgc-lang-toggle button:active,
.plgc-month-arrow:hover,
.plgc-month-arrow:focus,
.plgc-month-arrow:focus-visible,
.plgc-month-arrow:active,
.plgc-month-tab:hover,
.plgc-month-tab:focus,
.plgc-month-tab:focus-visible,
.plgc-month-tab:active,
.plgc-download-button:hover,
.plgc-download-button:focus,
.plgc-download-button:focus-visible,
.plgc-download-button:active,
.plgc-modal__close:hover,
.plgc-modal__close:focus,
.plgc-modal__close:focus-visible,
.plgc-modal__close:active {
  background-color: var(--plgc-accent) !important;
  background-image: none !important;
  border-color: var(--plgc-accent) !important;
  color: var(--plgc-dark) !important;
  box-shadow: 0 0 0 3px rgba(255,204,37,.35) !important;
  outline: none !important;
  text-decoration: none !important;
}

.plgc-download-button:hover *,
.plgc-download-button:focus *,
.plgc-download-button:focus-visible *,
.plgc-download-button:active * {
  color: var(--plgc-dark) !important;
}

.plgc-lang-shortcode{padding:18px 0 8px}
.plgc-lang-toggle{display:inline-flex;flex-wrap:wrap;gap:10px}
.plgc-lang-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 18px;border:1px solid var(--plgc-border);border-radius:5px;background:#fff;color:var(--plgc-dark);cursor:pointer;transition:.2s ease;font-weight:700}
.plgc-lang-toggle button.is-active{background:var(--plgc-primary);border-color:var(--plgc-primary);color:#fff;box-shadow:0 10px 24px rgba(17,169,84,.18)}
.plgc-lang-flag{display:inline-flex;align-items:center;justify-content:center;line-height:1}


.plgc-month-nav-wrap{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--plgc-border);box-shadow:0 4px 18px rgba(0,0,0,.04)}
.plgc-month-nav{display:flex;align-items:center;gap:8px;padding:12px 0}
.plgc-month-arrow,.plgc-modal__close{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.plgc-month-arrow{width:42px;height:42px;flex:0 0 42px;border:1px solid var(--plgc-border);background:#fff;color:var(--plgc-dark);cursor:pointer;border-radius:5px;transition:.2s ease;padding:0}
.plgc-month-arrow span{display:inline-flex;align-items:center;justify-content:center;font-size:24px;transform:none}
.plgc-month-tabs{flex:1;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.plgc-month-tabs::-webkit-scrollbar{display:none}
.plgc-month-tab{flex:0 0 auto;border:0;background:transparent;color:var(--plgc-dark);padding:10px 14px;border-radius:5px;cursor:pointer;transition:.2s ease;white-space:nowrap}
.plgc-month-tab strong{font-size:16px;margin-right:6px;font-weight:700}
.plgc-month-tab span{opacity:.75;font-size:12px}
.plgc-month-tab.is-active{background:var(--plgc-primary);color:#fff}
.plgc-month-tab.is-empty:not(.is-active){color:#a8adaa}
.plgc-calendar-main{padding:28px 0 42px}
.plgc-month-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}
.plgc-month-header p{margin:0 0 4px;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--plgc-muted);font-weight:700}
.plgc-month-header h2{margin:0;font-size:clamp(34px,5vw,54px);line-height:1.05;font-weight:600}
.plgc-legend,.plgc-mobile-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:480px}
.plgc-mobile-legend{display:none;justify-content:flex-start;margin-top:14px}
.plgc-legend-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:5px;font-size:12px;font-weight:700}
.plgc-legend-chip i{width:7px;height:7px;border-radius:50%;background:currentColor}
.plgc-calendar-card{background:#fff;border:1px solid var(--plgc-border);border-radius:5px;overflow:hidden;box-shadow:0 6px 22px rgba(0,0,0,.035)}
.plgc-weekdays,.plgc-days-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.plgc-weekdays{border-bottom:1px solid var(--plgc-border)}
.plgc-weekdays div{text-align:center;padding:13px 4px;color:var(--plgc-muted);font-size:12px;font-weight:700;letter-spacing:.08em}
.plgc-weekdays .is-sunday,.plgc-day-cell.is-sunday .plgc-day-number span:not(.is-today){color:#ef6f6c}
.plgc-weekdays .is-saturday,.plgc-day-cell.is-saturday .plgc-day-number span:not(.is-today){color:#4e88da}
.plgc-day-cell{min-height:112px;padding:10px;border-right:1px solid var(--plgc-border);border-bottom:1px solid var(--plgc-border);transition:.2s ease}
.plgc-day-cell:nth-child(7n){border-right:0}
.plgc-day-cell.is-empty{background:#fafafa}
.plgc-day-cell.has-events{cursor:pointer}
.plgc-day-cell.has-events:hover{background:rgba(255,204,37,.12)!important}
.plgc-day-cell.is-closed{background:#fafafa}
.plgc-day-number{display:flex;align-items:center;gap:6px;margin-bottom:7px}
.plgc-day-number span{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-weight:700;font-size:14px}
.plgc-day-number span.is-today{background:var(--plgc-primary);color:#fff}
.plgc-day-number small{text-transform:uppercase;font-size:10px;color:#aaa;font-weight:700}
.plgc-day-events{display:flex;flex-direction:column;gap:5px}
.plgc-event-chip{display:flex;align-items:center;gap:4px;border-radius:5px;padding:4px 7px;font-size:12px;line-height:1.25;min-width:0}
.plgc-event-chip em{font-style:normal;font-size:10px;opacity:.7;flex:0 0 auto}
.plgc-event-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.plgc-agenda-shortcode{padding:6px 0 52px}
.plgc-agenda-title{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--plgc-primary);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.plgc-agenda-title span{width:28px;height:2px;background:var(--plgc-accent)}
.plgc-agenda-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.plgc-agenda-card{display:flex;gap:14px;background:#fff;border:1px solid var(--plgc-border);border-radius:5px;padding:16px;transition:.2s ease}
.plgc-agenda-card:hover{border-color:var(--plgc-accent)!important;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.plgc-agenda-date{width:46px;height:46px;flex:0 0 46px;border-radius:5px;background:var(--plgc-primary);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}
.plgc-agenda-date strong{font-size:20px;line-height:1}
.plgc-agenda-date span{color:var(--plgc-accent);font-size:10px;font-weight:700;margin-top:2px}
.plgc-agenda-events{display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:0}
.plgc-agenda-events p{margin:0;font-weight:700;font-size:14px;line-height:1.35}
.plgc-agenda-events em{font-style:normal;font-size:10px;padding:2px 5px;background:rgba(17,169,84,.1);color:var(--plgc-primary);border-radius:5px;margin-right:7px}
.plgc-closed-text{color:#aaa!important}
.plgc-download-shortcode{padding:10px 0 22px}
.plgc-download-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:1px solid var(--plgc-primary);border-radius:5px;background:var(--plgc-primary);color:#fff;cursor:pointer;transition:.2s ease;font-weight:800;line-height:1}
.plgc-download-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:rgba(255,255,255,.18);line-height:1;font-size:18px;transform:none}
.plgc-download-button:hover .plgc-download-icon{background:rgba(27,27,27,.1)}
.plgc-type-official{background:#eaf8f0;color:#0c7e3c}.plgc-type-private{background:#fff8df;color:#9a7400}.plgc-type-tuesday{background:#e8fbf1;color:#119650}.plgc-type-special{background:#fff2c9;color:#966a00}.plgc-type-mensal{background:#e6f9ec;color:#147541}.plgc-type-meeting{background:#eef2ff;color:#4f46e5}.plgc-type-closed{background:#f1f1f1;color:#999}
.plgc-modal[hidden]{display:none}.plgc-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px}.plgc-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px)}.plgc-modal__box{position:relative;width:min(460px,100%);background:#fff;border-radius:5px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.3)}.plgc-modal__header{background:var(--plgc-primary);color:#fff;padding:22px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.plgc-modal__header p{color:var(--plgc-accent);font-size:12px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 8px;font-weight:700}.plgc-modal__close{width:42px;height:42px;flex:0 0 42px;border-radius:5px;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;padding:0}.plgc-modal__close span{display:inline-flex;align-items:center;justify-content:center;font-size:28px;line-height:1;transform:none}.plgc-modal__date{display:flex;align-items:center;gap:12px}.plgc-modal__date strong{font-size:54px;line-height:.9;font-weight:600}.plgc-modal__date span{color:rgba(255,255,255,.72)}.plgc-modal__body{padding:22px;display:flex;flex-direction:column;gap:12px}.plgc-modal-event{display:flex;gap:13px;border-radius:5px;padding:15px}.plgc-modal-event>div{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto}.plgc-modal-event strong{font-size:10px;background:rgba(255,255,255,.55);padding:3px 5px;border-radius:5px}.plgc-modal-event i{width:7px;height:7px;background:currentColor;border-radius:50%}.plgc-modal-event h4{margin:0 0 4px;font-size:15px;line-height:1.35}.plgc-modal-event p{margin:0 0 6px;font-size:12px;opacity:.72}.plgc-modal-event small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;opacity:.65}body.plgc-modal-open{overflow:hidden}
@media(max-width:900px){.plgc-agenda-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plgc-day-cell{min-height:96px;padding:8px}.plgc-event-chip{font-size:11px}}
@media(max-width:640px){.plgc-calendar-container{width:min(100% - 24px,1180px)}.plgc-lang-toggle{display:flex;width:100%}.plgc-lang-toggle button{flex:1}.plgc-month-header{align-items:flex-start;flex-direction:column}.plgc-legend{display:none}.plgc-mobile-legend{display:flex}.plgc-weekdays div{font-size:10px}.plgc-day-cell{min-height:76px;padding:5px}.plgc-day-number span{width:24px;height:24px;font-size:12px}.plgc-day-number small{display:none}.plgc-event-chip{padding:3px 4px;font-size:10px}.plgc-event-chip em{display:none}.plgc-agenda-grid{grid-template-columns:1fr}.plgc-modal{align-items:flex-end;padding:0}.plgc-modal__box{border-radius:5px 20px 0 0}}


/* Centralização dos arrows de navegação */
.plgc-month-arrow {
  position: relative;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.plgc-month-arrow span {
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-size: 22px !important;
  transform: none !important;
}



/* Correções mobile: evita quebra/estouro do calendário */
.plgc-calendar-card,
.plgc-weekdays,
.plgc-days-grid,
.plgc-day-cell,
.plgc-day-events,
.plgc-event-chip {
  min-width: 0 !important;
}

.plgc-calendar-card {
  width: 100% !important;
  max-width: 100% !important;
}

.plgc-weekdays,
.plgc-days-grid {
  width: 100% !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}

.plgc-day-cell {
  overflow: hidden !important;
}

.plgc-event-chip {
  max-width: 100% !important;
  overflow: hidden !important;
}

.plgc-event-chip b {
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Modal com radius uniforme */
.plgc-modal__box {
  border-radius: 5px !important;
}

.plgc-modal__header {
  border-radius: 5px 5px 0 0 !important;
}

.plgc-modal__body {
  border-radius: 0 0 5px 5px !important;
}

.plgc-modal__close {
  border-radius: 5px !important;
}

@media (max-width: 640px) {
  .plgc-calendar-container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .plgc-calendar-main {
    padding-top: 22px !important;
  }

  .plgc-calendar-card {
    overflow: hidden !important;
  }

  .plgc-weekdays div {
    padding: 10px 1px !important;
    font-size: 10px !important;
    letter-spacing: 0 !important;
  }

  .plgc-day-cell {
    min-height: 76px !important;
    padding: 4px !important;
  }

  .plgc-day-number {
    margin-bottom: 4px !important;
  }

  .plgc-day-number span {
    width: 21px !important;
    height: 21px !important;
    font-size: 11px !important;
  }

  .plgc-day-events {
    gap: 3px !important;
  }

  .plgc-event-chip {
    display: block !important;
    padding: 3px 4px !important;
    font-size: 9px !important;
    line-height: 1.2 !important;
  }

  .plgc-event-chip b {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .plgc-modal {
    align-items: center !important;
    padding: 14px !important;
  }

  .plgc-modal__box {
    border-radius: 5px !important;
    width: 100% !important;
    max-width: 430px !important;
  }

  .plgc-modal__header {
    border-radius: 5px 5px 0 0 !important;
  }

  .plgc-modal__body {
    border-radius: 0 0 5px 5px !important;
  }
}



/* Loading dos shortcodes */
.plgc-is-loading {
  position: relative;
  min-height: 90px;
}

.plgc-is-loading > * {
  opacity: 0 !important;
  visibility: hidden !important;
}

.plgc-is-loading::before {
  content: "Carregando calendário...";
  position: absolute;
  inset: 0;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--plgc-primary);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .02em;
  z-index: 3;
}

.plgc-is-loading::after {
  content: "";
  position: absolute;
  left: calc(50% - 11px);
  top: calc(50% + 18px);
  width: 22px;
  height: 22px;
  border: 3px solid rgba(17,169,84,.18);
  border-top-color: var(--plgc-primary);
  border-radius: 50%;
  animation: plgc-spin .75s linear infinite;
  z-index: 4;
}

@keyframes plgc-spin {
  to { transform: rotate(360deg); }
}

.plgc-download-button.is-generating {
  pointer-events: none;
  opacity: .9;
}

.plgc-download-button.is-generating .plgc-download-icon {
  animation: plgc-spin .75s linear infinite;
}




/* Ajuste definitivo: centralização dos arrows no desktop/mobile */
.plgc-month-arrow {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  flex: 0 0 42px !important;

  padding: 0 !important;
  margin: 0 !important;

  line-height: 1 !important;
  text-align: center !important;
  vertical-align: middle !important;
}

.plgc-month-arrow span {
  position: absolute !important;
  inset: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  padding: 0 !important;
  margin: 0 !important;

  line-height: 1 !important;
  font-size: 18px !important;
  font-weight: 700 !important;

  transform: translateY(-1px) !important;
}

.plgc-month-arrow svg,
.plgc-month-arrow i {
  display: block !important;
  margin: 0 auto !important;
  line-height: 1 !important;
}



/* Ajuste definitivo: centralização do X do modal */
.plgc-modal__close {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  flex: 0 0 46px !important;

  padding: 0 !important;
  margin: 0 !important;

  line-height: 1 !important;
  text-align: center !important;
  vertical-align: middle !important;
}

.plgc-modal__close span {
  position: absolute !important;
  inset: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  padding: 0 !important;
  margin: 0 !important;

  line-height: 1 !important;
  font-size: 26px !important;
  font-weight: 700 !important;

  transform: translateY(-1px) !important;
}

.plgc-modal__close:hover,
.plgc-modal__close:focus,
.plgc-modal__close:focus-visible,
.plgc-modal__close:active {
  background-color: var(--plgc-accent) !important;
  border-color: var(--plgc-accent) !important;
  color: var(--plgc-dark) !important;
}

