/* Reused ACNS schedule calendar, restyled for the public portal. */
.cv-wrap{--cv-grid-line:rgba(148,163,184,.28);display:flex;flex-direction:column;gap:14px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.cv-wrap--compact{gap:10px}
.cv-wrap--compact .sexp-header{gap:.75rem;padding:.8rem!important}
.cv-wrap--compact .cv-controls{gap:.5rem}
.cv-wrap--compact .cv-btnIcon,.cv-wrap--compact .cv-btnPill{min-height:2.35rem}
.cv-wrap--compact .cv-btnIcon{width:2.35rem;height:2.35rem}
.cv-wrap--compact .cv-btnPill{padding:0 .85rem}
.cv-wrap--compact .cv-date{max-width:100%;flex:1 1 10rem}
.cv-wrap--compact .cv-ghLeft,.cv-wrap--compact .cv-gl{padding:10px 8px}
.cv-wrap--compact .cv-resource{font-size:11px;word-break:break-word}
.cv-wrap--compact .cv-ghDay{padding:8px 2px}
.cv-wrap--compact .cv-thNum{font-size:10px}
.cv-wrap--compact .cv-thSub{font-size:8px}
.cv-wrap--compact .cv-gr,.cv-wrap--compact .cv-lane{min-height:88px;height:88px}
.cv-wrap--compact .cv-emptyLane{display:none}
.cv-wrap--compact .cv-evt{min-width:34px;padding:4px 6px;border-width:1px;border-radius:6px;gap:4px;align-items:flex-start}
.cv-wrap--compact .cv-evtIcon{width:14px;height:14px;flex:0 0 14px}
.cv-wrap--compact .cv-svgIcon svg{width:10px;height:10px}
.cv-wrap--compact .cv-evtMeta{gap:1px}
.cv-wrap--compact .cv-evtTxt{font-size:9px;line-height:1.2}
.cv-wrap--compact .cv-evtTitle{font-size:8px;line-height:1.2}

calendar-view{display:block;animation:cv-rise-in 320ms ease both}
calendar-view .sexp-header{display:grid;gap:1rem;margin-bottom:0;padding:1rem!important;border:1px solid rgba(148,163,184,.28);border-radius:1.75rem;background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.64));box-shadow:0 24px 58px rgba(15,23,42,.12);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
calendar-view[dark] .sexp-header{background:linear-gradient(180deg,rgba(15,23,42,.94),rgba(15,23,42,.84));border-color:rgba(51,65,85,.72);box-shadow:none}
.sexp-hrow,.sexp-frow,.sexp-lrow{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.sexp-hrow{justify-content:space-between}
.sexp-frow{display:grid;grid-template-columns:minmax(14rem,1fr) minmax(10rem,.24fr) minmax(12rem,.32fr) minmax(10rem,.22fr)}
.sexp-lrow{justify-content:flex-end}
.sexp-search,.sexp-filter{min-width:0}
.sexp-input,.sexp-select,.cv-date{width:100%;min-height:2.85rem;border:1px solid rgba(148,163,184,.32);border-radius:999px;background:rgba(255,255,255,.78);color:#0f172a;padding:0 1rem;font:inherit;font-weight:700;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
calendar-view[dark] .sexp-input,calendar-view[dark] .sexp-select,calendar-view[dark] .cv-date{background:rgba(15,23,42,.82);border-color:rgba(51,65,85,.78);color:#e5e7eb}
.sexp-input:focus,.sexp-select:focus,.cv-date:focus{border-color:rgba(14,165,233,.75);box-shadow:0 0 0 4px rgba(14,165,233,.12)}
.sexp-label{color:#64748b;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
calendar-view[dark] .sexp-label{color:#94a3b8}
.sexp-legend{display:inline-flex;align-items:center;gap:.7rem;padding:.4rem;border:1px solid rgba(148,163,184,.24);border-radius:999px;background:rgba(255,255,255,.48);flex-wrap:wrap}
calendar-view[dark] .sexp-legend{background:rgba(15,23,42,.74);border-color:rgba(51,65,85,.7)}
.sexp-leg{display:inline-flex;align-items:center;gap:.35rem;color:#64748b;font-size:.8rem;font-weight:900}
calendar-view[dark] .sexp-leg{color:#cbd5e1}
.cv-zone-legend{display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.cv-zone-leg{padding-left:.1rem}
.cv-zone-legMark{display:inline-grid;place-items:center;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.sexp-dot{width:.65rem;height:.65rem;border-radius:999px;display:inline-flex}
.sexp-dot--active{background:#0f9f6e}
.sexp-dot--upcoming{background:#0078d4}
.ubox-chip{display:inline-flex;align-items:center;min-height:2.15rem;padding:0 .8rem;border:1px solid rgba(14,165,233,.18);border-radius:999px;background:rgba(14,165,233,.1);color:#0369a1;font-size:.8rem;font-weight:900}
calendar-view[dark] .ubox-chip{color:#bfdbfe;background:rgba(30,41,59,.72);border-color:rgba(71,85,105,.72)}

/* Subtle custom scrollbars (like the reference) */
.cv-grid::-webkit-scrollbar{height:6px;width:6px}
.cv-grid::-webkit-scrollbar-track{background:transparent}
.cv-grid::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}

.cv-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cv-wrap--compact .cv-controls{gap:8px}
.cv-controls .sexp-label{margin-right:2px;font-size:12px;font-weight:900;color:#64748b;letter-spacing:.08em;text-transform:uppercase}
.cv-date{max-width:10.5rem}
.cv-controls .cv-date{width:auto;min-width:9.8rem}

.cv-sep{width:1px;height:22px;background:#e2e8f0;display:inline-block;border-radius:999px;opacity:.9}
.cv-ico{font-size:14px;font-weight:950;line-height:1}

.cv-btnIcon{width:2.6rem;height:2.6rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.3);color:#0f172a;font-weight:950;line-height:1}
.cv-btnIcon:hover{background:rgba(240,249,255,.96);border-color:rgba(14,165,233,.6)}
.cv-btnPill{min-height:2.6rem;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.3);color:#0f172a;font-weight:950;padding:0 1rem}
.cv-btnPill[aria-pressed="true"]{background:rgba(14,165,233,.12);border-color:rgba(14,165,233,.35)}

.cv-grid{position:relative;border:1px solid rgba(148,163,184,.28);border-radius:1.75rem;overflow:auto;background:rgba(255,255,255,.82);box-shadow:0 28px 70px rgba(15,23,42,.14);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);cursor:grab;touch-action:pan-y pinch-zoom;user-select:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.cv-grid.is-panning{cursor:grabbing}
.cv-grid.is-panning *{cursor:grabbing!important}
.cv-wrap--compact .cv-grid{max-height:420px}
.schedule-calendar .sexp-header{border-radius:0;border-left:0;border-right:0;box-shadow:none}
.schedule-calendar .cv-grid{border-radius:0;border-left:0;border-right:0;overflow-x:auto;box-shadow:none}
.schedule-calendar .cv-gantt{width:max-content;min-width:calc(var(--cv-left) + var(--cv-lane))}

/* Gantt layout */
.cv-gantt{min-width:calc(var(--cv-left) + var(--cv-lane));}

.cv-gh{position:sticky;top:0;z-index:8;display:flex;border-bottom:1px solid rgba(148,163,184,.28);background:rgba(248,250,252,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.cv-ghLeft{position:sticky;left:0;z-index:9;border-right:1px solid rgba(148,163,184,.28);padding:14px 12px;background:rgba(248,250,252,.9);display:flex;align-items:center}
.cv-ghRight{display:flex;flex-direction:column}
.cv-ghMonths,.cv-ghDays{display:flex}
.cv-ghMonths{border-bottom:1px solid rgba(148,163,184,.18);background:rgba(255,255,255,.42)}
.cv-ghMonth{padding:6px 8px;border-right:1px solid #f1f5f9;text-align:center;font-size:12px;font-weight:800;color:#334155;letter-spacing:.02em}
.cv-ghMonth:last-child{border-right:none}

.cv-ghDay{padding:7px 4px;border-right:1px solid #f1f5f9;text-align:center;display:grid;gap:2px}
.cv-ghDay:last-child{border-right:none}
.cv-ghTicks{margin-top:10px;display:flex;justify-content:space-between;font-size:9px;font-weight:900;letter-spacing:.18em;color:rgba(100,116,139,.55);text-transform:uppercase}

.cv-thTop{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-thNum{font-size:14px;font-weight:800;color:#0f172a;line-height:1}
.cv-thSub{font-size:11px;font-weight:700;color:#64748b;text-transform:none;letter-spacing:0}

.cv-gb{display:flex;flex-direction:column;padding-bottom:clamp(1.75rem,4vw,3rem)}

.cv-gr{display:flex;min-height:112px;border-bottom:1px solid rgba(226,232,240,.72);background:rgba(255,255,255,.66)}
.cv-gr:nth-child(even){background:rgba(248,250,252,.78)}
.cv-gr:hover{background:rgba(14,165,233,.05)}

.cv-gl{position:sticky;left:0;z-index:6;border-right:1px solid #e2e8f0;padding:16px;background:inherit}
.cv-gl--hl{box-shadow:inset 0 0 0 2px rgba(var(--cv-rgb),.22)}

.cv-gt{position:relative;overflow:hidden}

/* timeline lane background (grid lines like reference) */
.cv-lane{position:relative;height:112px}
.cv-zone{position:absolute;top:0;bottom:0;z-index:1;background:var(--cv-zone-color);opacity:var(--cv-zone-opacity);pointer-events:none}
.cv-lane::before{content:"";position:absolute;inset:0;pointer-events:none;
	background-image:
		/* day boundaries */
		linear-gradient(to right, rgba(226,232,240,1) 1px, transparent 1px),
		/* row guides */
		linear-gradient(to bottom, rgba(241,245,249,.9) 1px, transparent 1px);
	background-size:var(--cv-day) 100%, 100% 28px;
	opacity:.95;
	z-index:2;
}

.cv-emptyLane{position:absolute;left:16px;top:46px;color:#94a3b8;font-size:12px;font-weight:800;z-index:3}
.cv-more{position:absolute;right:14px;bottom:10px;font-size:11px;font-weight:900;color:#64748b;background:rgba(248,250,252,.85);border:1px solid #e2e8f0;padding:3px 8px;border-radius:999px;z-index:5}

.cv-resource{font-weight:950;color:#0f172a;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Event blocks (absolute positioned like the reference) */
.cv-evt{position:absolute;z-index:4;display:flex;align-items:center;gap:10px;border:2px solid rgba(var(--cv-rgb),.42);background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(var(--cv-rgb),.16));border-radius:8px;padding:8px 10px;cursor:grab;max-width:calc(100% - 4px);text-decoration:none;transition:transform 140ms ease,box-shadow 140ms ease,border-color 140ms ease,background-color 140ms ease;animation:cv-booking-in 460ms cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--cv-enter-delay,0ms)}
.cv-evt:hover{transform:translateY(-1px) scale(1.01);border-color:rgba(var(--cv-rgb),.66);box-shadow:0 18px 34px rgba(15,23,42,.10)}
.cv-evt:active{transform:translateY(0)}

.cv-evtIcon{width:18px;height:18px;border-radius:10px;background:rgba(var(--cv-rgb),.18);box-shadow:inset 0 0 0 2px rgba(var(--cv-rgb),.35);display:inline-grid;place-items:center;flex:0 0 18px;color:currentColor}
.cv-evtMeta{display:flex;flex-direction:column;min-width:0;gap:2px}
.cv-evtTxt{font-weight:950;color:#0f172a;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cv-evtTitle{font-weight:800;color:rgba(15,23,42,.72);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cv-svgIcon{display:inline-grid;place-items:center;line-height:0}
.cv-svgIcon svg{width:12px;height:12px;display:block}
.cv-svgIcon--legend svg{width:10px;height:10px}

.cv-evt--active{border-style:solid}
.cv-evt--upcoming{border-style:dashed}
.cv-evt--block{border-style:solid;border-color:rgba(var(--cv-event-rgb,100,116,139),.72);background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(var(--cv-event-rgb,100,116,139),.78));color:var(--cv-event-text-color,#fff);box-shadow:0 10px 24px rgba(15,23,42,.12)}
.cv-evt--block .cv-evtIcon{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 2px rgba(255,255,255,.22)}
.cv-evt--block .cv-evtTxt,.cv-evt--block .cv-evtTitle{color:inherit}

.cv-evt--hl{box-shadow:0 0 0 3px rgba(var(--cv-rgb),.25), 0 20px 40px rgba(15,23,42,.12)}

.cv-tooltip{position:fixed;z-index:1200;max-width:min(24rem,calc(100vw - 24px));pointer-events:none;opacity:0;transform:translateY(0) scale(.985);transition:opacity 160ms ease,transform 180ms cubic-bezier(.2,.8,.2,1);will-change:opacity,transform}
.cv-tooltip--above{transform:translateY(6px) scale(.985)}
.cv-tooltip--below{transform:translateY(-6px) scale(.985)}
.cv-tooltip--visible{opacity:1;transform:translateY(0) scale(1)}
.cv-tooltip__surface{display:grid;gap:.6rem;padding:.95rem 1rem;border:1px solid rgba(148,163,184,.26);border-radius:1rem;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.9));box-shadow:0 24px 44px rgba(15,23,42,.18);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}
.cv-tooltip__row{display:grid;gap:.2rem}
.cv-tooltip__row--multiline .cv-tooltip__value{white-space:normal;line-height:1.45}
.cv-tooltip__label{font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#64748b}
.cv-tooltip__value{font-size:.86rem;font-weight:800;color:#0f172a;white-space:nowrap}

.cv-noRows{padding:12px 14px}

/* Defaults */
.cv-gr{--cv-rgb:124,58,237}

/* Fullscreen polish */
calendar-view:fullscreen .cv-wrap{height:100vh}
calendar-view:fullscreen .cv-grid{border-radius:0;max-height:none;height:100%;box-shadow:none}
calendar-view:fullscreen .cv-controls{position:sticky;top:0;z-index:20;background:rgba(248,250,252,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:10px 12px;border-bottom:1px solid #e2e8f0}

/* Dark mode */
calendar-view[dark] .cv-grid{background:#0f172a;border-color:#334155;box-shadow:none}
calendar-view[dark] .cv-gh,calendar-view[dark] .cv-ghLeft{background:rgba(15,23,42,.96);border-bottom-color:#334155;border-right-color:#334155}
calendar-view[dark] .cv-ghMonths{background:rgba(30,41,59,.52);border-bottom-color:#334155}
calendar-view[dark] .cv-ghMonth{color:#cbd5e1;border-right-color:#334155}
calendar-view[dark] .cv-thTop{color:#94a3b8}
calendar-view[dark] .cv-thNum{color:#e2e8f0}
calendar-view[dark] .cv-thSub{color:#94a3b8}
calendar-view[dark] .cv-gr{background:#0f172a;border-bottom-color:#1e293b}
calendar-view[dark] .cv-gr:nth-child(even){background:#111827}
calendar-view[dark] .cv-gr:hover{background:#132033}
calendar-view[dark] .cv-resource{color:#e2e8f0}
calendar-view[dark] .cv-gl{border-right-color:#334155}
calendar-view[dark] .cv-lane::before{
	background-image:
		linear-gradient(to right, rgba(51,65,85,.78) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(30,41,59,.72) 1px, transparent 1px);
}
calendar-view[dark] .cv-btnIcon{background:#111827;border-color:#334155;color:#e2e8f0}
calendar-view[dark] .cv-btnIcon:hover{background:#1e293b;border-color:#475569}
calendar-view[dark] .cv-btnPill{background:#111827;border-color:#334155;color:#e2e8f0}
calendar-view[dark] .cv-btnPill[aria-pressed="true"]{background:#1e293b;border-color:#64748b}
calendar-view[dark] .cv-sep{background:#334155}
calendar-view[dark] .cv-date{background:#111827;border-color:#334155;color:#e2e8f0}
calendar-view[dark] .cv-controls .sexp-label{color:#94a3b8}
calendar-view[dark] .cv-emptyLane{color:#64748b}
calendar-view[dark] .cv-more{background:rgba(15,23,42,.9);border-color:#334155;color:#cbd5e1}
calendar-view[dark] .cv-zone{opacity:.08}
calendar-view[dark] .cv-evt{border-color:rgba(var(--cv-rgb),.5);background:linear-gradient(180deg,rgba(30,41,59,.96),rgba(15,23,42,.92));box-shadow:inset 4px 0 0 rgba(var(--cv-rgb),.72)}
calendar-view[dark] .cv-evt:hover{border-color:rgba(var(--cv-rgb),.68);box-shadow:inset 4px 0 0 rgba(var(--cv-rgb),.82),0 14px 28px rgba(2,6,23,.34)}
calendar-view[dark] .cv-evtIcon{background:rgba(148,163,184,.1);box-shadow:inset 0 0 0 1px rgba(148,163,184,.24)}
calendar-view[dark] .cv-evtTxt{color:#f8fafc}
calendar-view[dark] .cv-evtTitle{color:#cbd5e1}
calendar-view[dark] .cv-evt--block{border-color:rgba(100,116,139,.58);background:linear-gradient(180deg,rgba(30,41,59,.98),rgba(15,23,42,.94));color:#e2e8f0;box-shadow:inset 4px 0 0 rgba(var(--cv-event-rgb,100,116,139),.72)}
calendar-view[dark] .cv-evt--block .cv-evtIcon{background:rgba(148,163,184,.1);box-shadow:inset 0 0 0 1px rgba(148,163,184,.24)}
calendar-view[dark] .cv-tooltip__surface{background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(15,23,42,.9));border-color:rgba(51,65,85,.72);box-shadow:0 24px 44px rgba(2,6,23,.36)}
calendar-view[dark] .cv-tooltip__label{color:#94a3b8}
calendar-view[dark] .cv-tooltip__value{color:#f8fafc}

@keyframes cv-rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes cv-booking-in{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}

@media (max-width:820px){
  .sexp-frow{grid-template-columns:1fr}
  .cv-controls{align-items:stretch}
  .cv-date{max-width:none}
  .schedule-calendar .sexp-header{padding:.75rem!important;border-left:0;border-right:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .schedule-calendar .sexp-lrow{justify-content:flex-start}
  .schedule-calendar .sexp-legend{width:100%;justify-content:flex-start;padding:0;border:0;border-radius:0;background:transparent}
  calendar-view[dark].schedule-calendar .sexp-legend{background:transparent;border-color:transparent}
  .schedule-calendar .cv-ghLeft{padding:10px 8px}
  .schedule-calendar .cv-gl{padding:10px 8px}
  .schedule-calendar .cv-thTop{font-size:10px}
  .schedule-calendar .cv-resource{font-size:11px;word-break:break-word}
  .schedule-calendar .cv-ghDay{padding:8px 1px}
  .schedule-calendar .cv-thNum{font-size:10px}
  .schedule-calendar .cv-thSub{font-size:8px}
  .schedule-calendar .cv-ghMonth{padding:5px 4px;font-size:10px}
  .schedule-calendar .cv-gr,.schedule-calendar .cv-lane{min-height:88px;height:88px}
  .schedule-calendar .cv-evt{min-width:34px;padding:4px 6px;border-width:1px;border-radius:6px;gap:4px;align-items:flex-start}
  .schedule-calendar .cv-evtIcon{width:14px;height:14px;flex:0 0 14px}
  .schedule-calendar .cv-svgIcon svg{width:10px;height:10px}
  .schedule-calendar .cv-evtMeta{gap:1px}
  .schedule-calendar .cv-evtTxt{font-size:9px;line-height:1.2}
  .schedule-calendar .cv-evtTitle{font-size:8px;line-height:1.2}
  .schedule-calendar .cv-emptyLane{display:none}
  .schedule-calendar .cv-grid{max-width:100%;overflow:auto;touch-action:pan-y pinch-zoom}
  .schedule-calendar .cv-gantt{min-width:max(calc(var(--cv-left) + var(--cv-lane)),56rem)}
}

@media (max-width:640px){
  .cv-wrap{gap:10px}
  .sexp-header{gap:.75rem;padding:.75rem!important;border-radius:1.1rem}
  .sexp-hrow{justify-content:flex-start}
  .cv-controls{gap:.45rem}
  .cv-btnPill{padding:0 .8rem}
  .cv-date{flex:1 1 100%;order:10}
  .cv-sep{display:none}
  .cv-grid{border-radius:1.1rem}
  .cv-grid::before{content:none}
  .cv-ghLeft{padding:10px 8px}
  .cv-ghMonth{padding:4px 3px;font-size:9px}
  .cv-ghDay{padding:6px 1px}
  .cv-thNum{font-size:10px}
  .cv-thSub{font-size:8px}
}
