/* Samadhi events — month-grid calendar. Self-contained, transparent-bg friendly. */
.sam-cal{
  --ink:#33312e; --ink-soft:#615c53; --ink-faint:#9a938750;
  --ink-mute:#a49c8f;
  --orange:#c46a26; --orange-dark:#a2551d;
  --cream:#fffefc; --border:#e3e0d8; --border-soft:#eeece6;
  --radius:20px;
  --t-retreat:#c46a26;
  --t-day:oklch(0.55 0.08 155);
  --t-class:oklch(0.55 0.08 250);
  --shadow:0 1px 2px rgba(51,49,46,.04), 0 10px 30px -16px rgba(51,49,46,.2);
  font-family:'Mulish',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  max-width:1080px;
  margin:0 auto;
  line-height:1.4;
  container-type:inline-size;
  container-name:cal;
}
.sam-cal *{box-sizing:border-box;}
.sam-cal button{font-family:inherit;}

/* ---- toolbar ---- */
.sam-cal .cal-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 22px;background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow);}
.sam-cal .cal-title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0;min-width:190px;}
.sam-cal .cal-nav{display:flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:999px;padding:3px;background:#fff;}
.sam-cal .cal-nav button{border:none;background:transparent;color:var(--ink-soft);cursor:pointer;border-radius:999px;font-weight:700;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s;}
.sam-cal .cal-nav .arw{width:32px;height:32px;font-size:16px;}
.sam-cal .cal-nav .today{padding:0 16px;height:32px;letter-spacing:.02em;}
.sam-cal .cal-nav button:hover{background:#f4efe7;color:var(--ink);}
.sam-cal .cal-filter{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;}
.sam-cal .cal-chip{border:1.5px solid var(--border);background:#fff;color:var(--ink-soft);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color .12s,background .12s,color .12s;}
.sam-cal .cal-chip:hover{border-color:var(--ink-mute);}
.sam-cal .cal-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff;}
.sam-cal .cal-chip .cdot{width:8px;height:8px;border-radius:50%;}
.sam-cal .cal-chip .fico{margin-right:-1px;}
.sam-cal .fdiv{width:1px;align-self:stretch;background:var(--border);margin:2px 3px;}

/* ---- hover card ---- */
.sam-cal .cal-pop{position:absolute;z-index:60;width:284px;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 20px 48px -18px rgba(51,49,46,.5);opacity:0;pointer-events:none;transform:translateY(5px);transition:opacity .14s ease,transform .14s ease;}
.sam-cal .cal-pop.show{opacity:1;pointer-events:auto;transform:none;}
.sam-cal .cal-pop .pimg{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.sam-cal .cal-pop .pimg.ph{background:repeating-linear-gradient(135deg,#efeae1,#efeae1 10px,#e8e2d6 10px,#e8e2d6 20px);display:flex;align-items:center;justify-content:center;color:#9a9387;font-family:ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.02em;}
.sam-cal .cal-pop .pbody{padding:14px 16px 16px;}
.sam-cal .cal-pop .plabel{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--orange-dark);display:flex;align-items:center;gap:6px;margin-bottom:7px;}
.sam-cal .cal-pop .plabel .cdot{width:7px;height:7px;border-radius:50%;}
.sam-cal .cal-pop h4{font-size:16px;font-weight:800;letter-spacing:-.01em;line-height:1.25;margin:0 0 11px;}
.sam-cal .cal-pop .prow{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink-soft);margin-bottom:6px;font-weight:600;}
.sam-cal .cal-pop .prow svg{flex:none;color:var(--ink-mute);margin-top:1px;}
.sam-cal .cal-pop .pbtn{display:flex;align-items:center;justify-content:center;margin-top:13px;background:var(--orange);color:#fff;border-radius:999px;padding:11px;font-weight:800;font-size:13.5px;text-decoration:none;transition:background .12s;}
.sam-cal .cal-pop .pbtn:hover{background:var(--orange-dark);color:#fff;}

/* ---- grid ---- */
.sam-cal .cal-grid{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.sam-cal .cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);}
.sam-cal .cal-dow span{padding:12px 12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute);}
.sam-cal .cal-weeks{display:flex;flex-direction:column;}

.sam-cal .week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:auto;column-gap:0;row-gap:3px;padding-bottom:8px;min-height:112px;border-bottom:1px solid var(--border);}
.sam-cal .week:last-child{border-bottom:none;}
.sam-cal .wbg{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);pointer-events:none;}
.sam-cal .wbg span{border-right:1px solid var(--border-soft);}
.sam-cal .wbg span:last-child{border-right:none;}
.sam-cal .wbg span.other{background:#f7f4ee;}
.sam-cal .wbg span.today{background:oklch(0.96 0.03 60);}

.sam-cal .dnum{grid-row:1;padding:8px 10px 2px;font-size:14px;font-weight:800;color:var(--ink-soft);z-index:1;}
.sam-cal .dnum.other{color:#c3bcae;font-weight:700;}
.sam-cal .dnum .tmark{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:var(--orange);color:#fff;}

/* event pills / bars */
.sam-cal .ev{position:relative;z-index:1;margin:0 6px;min-height:22px;padding:3px 9px;border-radius:8px;font-size:12px;line-height:1.25;font-weight:700;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:6px;overflow:hidden;cursor:pointer;transition:transform .1s,box-shadow .12s;}
.sam-cal .ev:hover{box-shadow:0 4px 12px -4px rgba(51,49,46,.3);transform:translateY(-1px);}
.sam-cal .ev .etitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.sam-cal .ev .edot{width:8px;height:8px;border-radius:50%;flex:none;}
.sam-cal .ev .efmt{flex:none;display:inline-flex;opacity:.7;}
.sam-cal .ev.chip .efmt{color:var(--ink-mute);}

/* single-day chip: white with colored dot + left accent */
.sam-cal .ev.chip{background:#fff;border:1px solid var(--border);box-shadow:0 1px 1px rgba(51,49,46,.03);}
.sam-cal .ev.chip.class{border-left:3px solid var(--t-class);}
.sam-cal .ev.chip.day{border-left:3px solid var(--t-day);}
.sam-cal .ev.chip.class .edot{background:var(--t-class);}
.sam-cal .ev.chip.day .edot{background:var(--t-day);}

/* multi-day / retreat bar: filled */
.sam-cal .ev.bar{color:#fff;font-weight:700;}
.sam-cal .ev.bar.retreat{background:var(--t-retreat);}
.sam-cal .ev.bar.day{background:var(--t-day);}
.sam-cal .ev.bar.class{background:var(--t-class);}
.sam-cal .ev.bar .edot{display:none;}
.sam-cal .ev.cont-left{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0;}
.sam-cal .ev.cont-right{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0;}
.sam-cal .ev.cont-left::before{content:"‹";margin-right:2px;opacity:.7;font-weight:800;}
.sam-cal .ev.cont-right::after{content:"›";margin-left:2px;opacity:.7;font-weight:800;}

.sam-cal .more{grid-row:auto;margin:0 10px;font-size:11px;font-weight:800;color:var(--ink-soft);z-index:1;cursor:pointer;}
.sam-cal .more:hover{color:var(--orange-dark);}

/* empty state */
.sam-cal .cal-empty{display:none;text-align:center;padding:48px 24px;}
.sam-cal .cal-grid.is-empty .cal-empty{display:block;}
.sam-cal .cal-empty .ic{width:52px;height:52px;border-radius:50%;background:#f4efe7;color:var(--ink-mute);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.sam-cal .cal-empty h3{font-size:19px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em;}
.sam-cal .cal-empty p{font-size:14.5px;color:var(--ink-soft);margin:0;}

/* ---- mobile agenda ---- */
.sam-cal .cal-agenda{display:none;}
.sam-cal .agenda-day{margin-top:18px;}
.sam-cal .agenda-day:first-child{margin-top:4px;}
.sam-cal .agenda-date{display:flex;align-items:baseline;gap:10px;padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--border);}
.sam-cal .agenda-date .anum{font-size:22px;font-weight:800;letter-spacing:-.02em;}
.sam-cal .agenda-date .adow{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);}
.sam-cal .agenda-date.today .anum{color:var(--orange-dark);}
.sam-cal .acard{display:block;text-decoration:none;color:inherit;background:var(--cream);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:12px;box-shadow:0 1px 1px rgba(51,49,46,.03);transition:box-shadow .12s,transform .1s;}
.sam-cal .acard:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
.sam-cal .acard .aimg-wrap{position:relative;aspect-ratio:16/9;}
.sam-cal .acard .aimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.sam-cal .acard .aimg.ph{background:repeating-linear-gradient(135deg,#efeae1,#efeae1 10px,#e8e2d6 10px,#e8e2d6 20px);display:flex;align-items:center;justify-content:center;color:#9a9387;font-family:ui-monospace,Menlo,monospace;font-size:11px;}
.sam-cal .acard .afmt{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;background:rgba(38,35,32,.82);color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em;padding:5px 10px;border-radius:999px;}
.sam-cal .acard .abody{padding:13px 15px 15px;}
.sam-cal .acard .tlabel{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--orange-dark);display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.sam-cal .acard .tlabel .cdot{width:7px;height:7px;border-radius:50%;}
.sam-cal .acard h3{font-size:16px;font-weight:800;margin:0 0 5px;letter-spacing:-.01em;line-height:1.25;}
.sam-cal .acard .ameta{font-size:13px;color:var(--ink-soft);}
.sam-cal .acard .ameta b{color:var(--ink);font-weight:700;}
.sam-cal .acard .avenue{display:inline-flex;align-items:center;gap:4px;}
.sam-cal .acard .avenue svg{color:var(--ink-mute);flex:none;}

.sam-cal a.ev:focus-visible,.sam-cal .acard:focus-visible,.sam-cal .cal-chip:focus-visible,.sam-cal .cal-nav button:focus-visible{outline:3px solid #7fa8ff;outline-offset:2px;}

@container cal (max-width:640px){
  .sam-cal .cal-grid{display:none;}
  .sam-cal .cal-agenda{display:block;}
  .sam-cal .cal-bar{padding:16px;gap:12px;}
  .sam-cal .cal-title{font-size:22px;min-width:0;}
  .sam-cal .cal-filter{width:100%;margin-left:0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;}
}
