/* DL+ICS Google Calendar Viewer - Calendar Views (Month/Week/Day/Combo)
   Premium default UI (safe CSS-only upgrade)
*/

.dlics-gcv{
  width:100%;
  box-sizing:border-box;
  position:relative; /* important for modal anchor */
}

.dlics-gcv *{
  box-sizing:border-box;
}

/* ==========================
   TOOLBAR
   ========================== */
.dlics-gcv-toolbar{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:14px;
}

.dlics-gcv-btn{
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  padding:8px 12px;
  border-radius:12px;
  cursor:pointer;
  line-height:1;
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}

.dlics-gcv-btn:hover{
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.22);
}

.dlics-gcv-btn:active{
  transform: translateY(1px);
}

.dlics-gcv-btn:focus-visible{
  outline:2px solid rgba(31,78,216,.35);
  outline-offset:2px;
}

.dlics-gcv-title{
  font-weight:800;
  margin-left:8px;
  letter-spacing:.01em;
}

.dlics-gcv-full-btn{
  margin-left:auto;
  text-decoration:none;
  border:1px solid rgba(0,0,0,.14);
  padding:8px 14px;
  border-radius:999px;
  display:inline-block;
  background:#fff;
  transition: background .12s ease, border-color .12s ease, transform .08s ease;
}

.dlics-gcv-full-btn:hover{
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.22);
}

.dlics-gcv-full-btn:active{
  transform: translateY(1px);
}

.dlics-gcv-full-btn:focus-visible{
  outline:2px solid rgba(31,78,216,.35);
  outline-offset:2px;
}

/* ==========================
   LAYOUT
   ========================== */
.dlics-gcv-layout{
  display:grid;
  gap:18px;
  align-items:start;
}

.dlics-gcv-layout--month,
.dlics-gcv-layout--week,
.dlics-gcv-layout--day{
  grid-template-columns: 1fr;
}

.dlics-gcv-layout--combo{
  grid-template-columns: 1.35fr 1fr;
}

@media (max-width: 900px){
  .dlics-gcv-layout--combo{ grid-template-columns: 1fr; }
  .dlics-gcv-full-btn{ margin-left:0; }
}

/* ==========================
   GRID WRAPPER
   ========================== */
.dlics-gcv-grid{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

/* ==========================
   MONTH HEADER
   ========================== */
.dlics-gcv-month-header{
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background:rgba(0,0,0,.03);
  border-bottom:1px solid rgba(0,0,0,.08);
  font-weight:800;
}

.dlics-gcv-month-header div{
  padding:10px 8px;
  text-align:center;
  white-space:nowrap;
}

/* ==========================
   MONTH GRID (7 columns always)
   ========================== */
.dlics-gcv-month-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

/* Ensure nothing outside can break the 7-column layout */
.dlics-gcv-month-header,
.dlics-gcv-month-grid{
  width:100%;
}

/* ==========================
   DAY CELL
   ========================== */
.dlics-gcv-day{
  min-height:110px;
  border-right:1px solid rgba(0,0,0,.06);
  border-bottom:1px solid rgba(0,0,0,.06);
  padding:10px;
  cursor:pointer;
  position:relative;
  transition: background .12s ease, outline-color .12s ease, transform .08s ease;
}

.dlics-gcv-day:hover{
  background:rgba(0,0,0,.02);
}

.dlics-gcv-day:active{
  transform: translateY(1px);
}

.dlics-gcv-day:nth-child(7n){
  border-right:none;
}

.dlics-gcv-day--muted{
  background:rgba(0,0,0,.015);
  color:rgba(0,0,0,.45);
}

.dlics-gcv-day--today{
  outline:2px solid rgba(31,78,216,.22);
  outline-offset:-2px;
}

.dlics-gcv-day--selected{
  background:rgba(31,78,216,.08);
  outline:2px solid rgba(31,78,216,.35);
  outline-offset:-2px;
}

.dlics-gcv-day-number{
  font-weight:900;
  font-size:14px;
  letter-spacing:.01em;
}

.dlics-gcv-day-dots{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:8px;
}

.dlics-gcv-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:#1f4ed8;
  display:inline-block;
  opacity:.9;
}

/* ==========================
   PANEL
   ========================== */
.dlics-gcv-panel{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  padding:14px;
  background:#fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.dlics-gcv-panel-title{
  font-weight:900;
  margin-bottom:10px;
  letter-spacing:.01em;
}

.dlics-gcv-panel-body{
  max-height: 540px;
  overflow:auto;
  padding-right:4px;
}

/* ==========================
   EVENT ITEM
   ========================== */
.dlics-gcv-event{
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.07);
}

.dlics-gcv-event:last-child{
  border-bottom:none;
}

.dlics-gcv-event-title{
  font-weight:900;
  line-height:1.15;
}

.dlics-gcv-event-time{
  color:rgba(0,0,0,.72);
  margin-top:4px;
  font-size:14px;
  line-height:1.2;
}

/* ==========================
   WEEK/DAY INTERNAL WRAPPERS
   (These views use inline styles in JS, so we enhance via class styles.)
   ========================== */
.dlics-gcv-layout--week .dlics-gcv-grid > div,
.dlics-gcv-layout--day .dlics-gcv-grid > div{
  padding:14px;
}

/* ==========================
   RESPONSIVE
   ========================== */
@media (max-width: 600px){
  .dlics-gcv-toolbar{
    gap:8px;
  }

  .dlics-gcv-btn{
    padding:8px 10px;
    border-radius:12px;
  }

  .dlics-gcv-title{
    width:100%;
    margin-left:0;
    font-size:16px;
  }

  .dlics-gcv-day{
    min-height:86px;
    padding:8px;
  }

  .dlics-gcv-day-number{
    font-size:13px;
  }

  .dlics-gcv-panel-body{
    max-height:none;
  }
}

/* ==========================
   PANEL POSITION: BOTTOM
   ========================== */
.dlics-gcv-layout--panel-bottom{
  grid-template-columns: 1fr !important;
}

.dlics-gcv-layout--panel-bottom .dlics-gcv-panel{
  order: 2;
}

.dlics-gcv-layout--panel-bottom .dlics-gcv-grid{
  order: 1;
}

/* ==========================
   DAY WITH EVENTS (visual cue)
   ========================== */
.dlics-gcv-day--has-events .dlics-gcv-day-number{
  position:relative;
}

.dlics-gcv-day--has-events .dlics-gcv-day-number::after{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#1f4ed8;
  margin-left:6px;
  vertical-align:middle;
  opacity:.9;
}

/* ==========================
   MODAL (Popup)
   ========================== */
.dlics-gcv-modal{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  z-index:999999; /* ensure it sits above themes/builders */
}

.dlics-gcv-modal--open{
  pointer-events:auto;
  opacity:1;
}

.dlics-gcv-modal__backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  /* optional blur, safe fallback */
  backdrop-filter: blur(2px);
}

.dlics-gcv-modal__dialog{
  position:fixed;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(680px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  overflow:auto;
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.10);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  padding:16px 16px 14px;
}

.dlics-gcv-modal__close{
  position:absolute;
  top:10px;
  right:12px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  width:34px;
  height:34px;
  border-radius:999px;
  cursor:pointer;
  font-size:22px;
  line-height:1;
}

.dlics-gcv-modal__close:hover{
  background:rgba(0,0,0,.03);
}

.dlics-gcv-modal__close:focus-visible{
  outline:2px solid rgba(31,78,216,.35);
  outline-offset:2px;
}

.dlics-gcv-modal__title{
  font-weight:900;
  padding-right:42px;
  margin-bottom:10px;
}

.dlics-gcv-modal__body{
  padding-top:4px;
}
