.tgc-wrap{
  --tgc-ink:#1B2A3D;
  --tgc-paper:#EFE6D3;
  --tgc-paper-2:#E4D8BE;
  --tgc-amber:#F1AB3C;
  --tgc-rust:#C1502E;
  --tgc-charcoal:#23201B;
  --tgc-line: rgba(27,42,61,0.14);
  --tgc-grey: #8A8477;
  max-width:1080px;
  margin:0 auto;
  font-family:'Work Sans', Arial, sans-serif;
  color:var(--tgc-charcoal);
}
.tgc-wrap *{ box-sizing:border-box; }

/* Hours strip */
.tgc-hours{
  display:grid; grid-template-columns:repeat(7,1fr); gap:2px;
  background:var(--tgc-ink); border-radius:4px; overflow:hidden; margin-bottom:32px;
}
.tgc-hours .tgc-day{ background:var(--tgc-paper); padding:12px 6px 14px; text-align:center; }
.tgc-hours .tgc-day.tgc-today{ background:var(--tgc-amber); }
.tgc-hours .tgc-day .tgc-d{ font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; opacity:0.6; }
.tgc-hours .tgc-day .tgc-t{ margin-top:5px; font-size:12px; font-weight:600; }

/* Calendar nav */
.tgc-cal-nav{ display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:16px; }
.tgc-cal-nav button{ border:none; background:transparent; color:var(--tgc-ink); font-size:20px; cursor:pointer; line-height:1; padding:4px 8px; }
.tgc-cal-nav button:hover{ color:var(--tgc-rust); }
.tgc-month{ font-weight:700; font-size:20px; letter-spacing:0.03em; color:var(--tgc-ink); min-width:200px; text-align:center; }

/* Month grid */
.tgc-cal-full{ border:1px solid var(--tgc-line); border-radius:6px; overflow:hidden; background:#fff; }
.tgc-dow-row, .tgc-week{ display:grid; grid-template-columns:repeat(7,1fr); }
.tgc-dow{ padding:10px 12px; font-size:12px; font-weight:700; color:var(--tgc-ink); border-bottom:1px solid var(--tgc-line); }
.tgc-cal-day{
  min-height:118px; border-right:1px solid var(--tgc-line); border-bottom:1px solid var(--tgc-line);
  padding:8px; position:relative; background:#fff;
}
.tgc-week .tgc-cal-day:last-child{ border-right:none; }
.tgc-cal-day .tgc-num{ font-size:13px; font-weight:700; color:var(--tgc-ink); }
.tgc-cal-day.tgc-other-month .tgc-num{ color:var(--tgc-grey); opacity:0.6; }
.tgc-cal-day.tgc-is-today .tgc-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; background:var(--tgc-amber); color:var(--tgc-ink);
}
.tgc-cal-day .tgc-ev-list{ margin-top:6px; display:flex; flex-direction:column; gap:5px; }
.tgc-ev{
  cursor:pointer; padding:3px 5px; border-radius:3px; border-left:3px solid var(--tgc-rust);
  background:var(--tgc-paper); transition:background .12s ease;
}
.tgc-ev:hover{ background:var(--tgc-paper-2); }
.tgc-ev .tgc-time{ display:block; font-size:10.5px; color:var(--tgc-grey); font-weight:600; }
.tgc-ev .tgc-title{ display:block; font-size:12px; font-weight:700; color:var(--tgc-ink); line-height:1.25; }
.tgc-ev.tgc-more{ border-left-color:var(--tgc-ink); background:transparent; font-size:11px; font-weight:700; color:var(--tgc-ink); opacity:0.7; }

/* Popup */
.tgc-popup{
  position:absolute; z-index:9999; width:300px; max-height:320px; overflow-y:auto;
  background:#fff; border-radius:8px; box-shadow:0 14px 34px rgba(27,42,61,0.28);
  padding:18px 20px; border:1px solid var(--tgc-line); font-family:'Work Sans', Arial, sans-serif;
}
.tgc-popup .tgc-close{ position:absolute; top:8px; right:10px; border:none; background:none; font-size:16px; color:var(--tgc-grey); cursor:pointer; }
.tgc-popup h4{ font-weight:800; font-size:17px; line-height:1.2; margin:0 18px 12px 0; color:var(--tgc-ink); }
.tgc-popup .tgc-lbl{ font-size:12px; font-weight:700; color:var(--tgc-ink); margin-top:8px; }
.tgc-popup .tgc-val{ font-size:13px; color:var(--tgc-charcoal); opacity:0.8; }
.tgc-popup .tgc-desc{ margin-top:10px; font-size:13px; line-height:1.5; opacity:0.85; }

@media (max-width:760px){
  .tgc-cal-day{ min-height:90px; }
  .tgc-ev .tgc-title{ font-size:11px; }
}
@media (max-width:560px){
  .tgc-dow{ font-size:10px; padding:6px 4px; }
  .tgc-cal-day{ padding:5px; min-height:74px; }
  .tgc-ev{ padding:2px 3px; }
  .tgc-ev .tgc-time{ font-size:9px; }
  .tgc-ev .tgc-title{ font-size:10px; }
  .tgc-popup{ width:88vw !important; left:6vw !important; }
}
