/* RIVET cohort calendar — month view in the brand. No text on saturated fills: every chip is a dark tint with a
   coloured edge and white text (cyan live · violet labs/tasks · magenta certification · gold next cohort). */
.gcal{ display:block; }
.gcal__main{ min-width:0; border-radius:20px; background:#0A0A0C; border:1px solid #1A1A22; padding:16px 18px 18px; }
.gcal__top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 14px; margin-bottom:12px; }
.gcal__nav{ display:flex; align-items:center; gap:10px; }
.gcal__nav b{ font-size:1.25rem; font-weight:600; color:#fff; }
.gcal__arw{ width:36px; height:36px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:transparent; color:#fff; font-size:1.15rem; cursor:pointer; }
.gcal__arw:hover:not(:disabled){ border-color:#4CF3FE; }
.gcal__arw:disabled{ color:#4A4A68; border-color:#1A1A22; cursor:default; }
.gcal__arw:focus-visible,.gcal__chip--live:focus-visible{ outline:2px solid #3B06D4; outline-offset:2px; }
.gcal__tz{ font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:#D1D1D9; }
.gcal__wh{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.gcal__wh span{ padding:0 8px 8px; font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.1em; color:#D1D1D9; }
.gcal__cells{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid #1A1A22; border-left:1px solid #1A1A22; }
.gcal__cell{ min-width:0; min-height:104px; padding:6px 5px 8px; display:flex; flex-direction:column; gap:4px; border-right:1px solid #1A1A22; border-bottom:1px solid #1A1A22; }
.gcal__cell.is-off{ background:rgba(255,255,255,.025); }
.gcal__cell.is-out .gcal__dn{ color:rgba(255,255,255,.45); }
.gcal__dn{ display:grid; place-items:center; width:26px; height:26px; margin:0 0 2px 2px; border-radius:999px; font-size:.82rem; font-weight:500; color:#fff; }
.gcal__cell.is-start .gcal__dn{ box-shadow:inset 0 0 0 2px #4CF3FE; color:#fff; font-weight:700; }
.gcal__chip{ display:block; min-width:0; padding:4px 7px; border-radius:6px; font:inherit; font-size:.72rem; line-height:1.3; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff; border:0; }
.gcal__chip b{ font-weight:700; margin-right:2px; }
.gcal__chip--live{ background:rgba(76,243,254,.16); box-shadow:inset 3px 0 0 #4CF3FE; cursor:pointer; transition:background .2s ease; }
.gcal__chip--live:hover{ background:rgba(76,243,254,.26); }
.gcal__chip--ws{ background:rgba(157,123,255,.18); box-shadow:inset 3px 0 0 #9d7bff; }
.gcal__chip--ws:hover{ background:rgba(157,123,255,.3); }
.k-ws{ background:#9d7bff !important; }
.gcal__chip--task{ background:rgba(157,123,255,.2); box-shadow:inset 3px 0 0 #9d7bff; }
.gcal__chip--next{ background:rgba(245,194,75,.16); box-shadow:inset 3px 0 0 #F5C24B; white-space:normal; }
.gcal__chip--cert{ background:rgba(255,0,212,.22); border-radius:0; margin:0 -6px; padding-left:12px; position:relative; z-index:2; overflow:visible; text-overflow:clip; }
.gcal__chip--cert.is-first{ border-radius:6px 0 0 6px; margin-left:0; padding-left:7px; box-shadow:inset 3px 0 0 #FF00D4; }
.gcal__chip--cert.is-last{ border-radius:0 6px 6px 0; margin-right:0; }
.gcal__chip--cert.is-first.is-last{ border-radius:6px; }
.gcal__agenda{ display:none; }
.gcal__ag-w > b{ display:block; margin:0 0 8px; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.gcal__ag-w ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.gcal__ag-w li{ display:grid; grid-template-columns:46px minmax(0,1fr); gap:10px; align-items:start; }
.gcal__ag-d{ display:flex; flex-direction:column; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:.6rem; color:#D1D1D9; }
.gcal__ag-d b{ font-family:'IBM Plex Sans',sans-serif; font-size:1.1rem; font-weight:500; }
.gcal__ag-e{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.gcal__ag-e .gcal__chip{ white-space:normal; padding:9px 10px; font-size:.82rem; margin:0; border-radius:6px; }
.gcal__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; margin-top:14px; padding-top:14px; border-top:1px solid #1A1A22; }
.gcal__key{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.82rem; color:#D1D1D9; }
.gcal__key li{ display:flex; align-items:center; gap:8px; }
.gcal__key i{ flex:none; width:10px; height:10px; border-radius:3px; }
.k-live{ background:#4CF3FE; } .k-task{ background:#9d7bff; } .k-cert{ background:#FF00D4; } .k-next{ background:#F5C24B; }
.gcal__aha{ flex:1 1 260px; display:flex; gap:10px; margin:0; font-family:'IBM Plex Mono',monospace; font-size:.7rem; line-height:1.6; color:#D1D1D9; }
.gcal__aha span{ flex:none; width:7px; height:14px; margin-top:2px; border-radius:2px; background:#FF00D4; }
.gcal__cta{ border-radius:16px !important; }
/* the page theme forces <b> white and cyan; the calendar keeps its own ink */
body.gtm-dark main .gcal .gcal__nav b, body.gtm-dark main .gcal .gcal__chip b, body.gtm-dark main .gcal .gcal__ag-d b{ color:#fff !important; }
body.gtm-dark main .gcal .gcal__ag-w > b{ color:#4CF3FE !important; }
@media (max-width:720px){ .gcal__grid{ display:none; } .gcal__agenda{ display:flex; flex-direction:column; gap:16px; } .gcal__main{ padding:14px; } .gcal__chip--live{ min-height:44px; } .gcal__foot{ flex-direction:column; align-items:flex-start; } }

/* v3 wrap: session and task names read in full inside the month cells; the certification label stays on top */
.gcal__cells .gcal__chip--live, .gcal__cells .gcal__chip--task, .gcal__cells .gcal__chip--next{ white-space:normal; overflow:visible; }
.gcal__cells .gcal__chip--cert.is-mid, .gcal__cells .gcal__chip--cert.is-last{ z-index:1; }
.gcal__cells .gcal__chip--cert.is-first{ z-index:3; }

/* v4: the calendar sits on the page ground (no black panel); time-zone picker in the top bar */
.gcal__main{ background:rgba(255,255,255,.035) !important; border:1px solid rgba(255,255,255,.14) !important; }
.gcal__cells,.gcal__cell,.gcal__foot{ border-color:rgba(255,255,255,.12) !important; }
.gcal__cell.is-off{ background:rgba(255,255,255,.03); }
.gcal__tzw{ display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:#D1D1D9; }
.gcal__tzsel{ font:inherit; font-family:'IBM Plex Sans',sans-serif; font-size:.86rem; letter-spacing:0; text-transform:none; color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); border-radius:10px; padding:7px 10px; cursor:pointer; }
.gcal__tzsel:focus-visible{ outline:2px solid #3B06D4; outline-offset:2px; }
.gcal__tzsel option{ color:#000; }
