/* IC Calendar — ORBIT skin for Hydrogen Calendar Embeds / FullCalendar 6.
   Scoped to .ic-hycal (the [ic_hycal] wrapper). Theme tokens with CONTRACT hex fallbacks. */

.ic-hycal {
	--ic-void: var(--wp--preset--color--void, #050407);
	--ic-night: var(--wp--preset--color--night, #0E0910);
	--ic-plum: var(--wp--preset--color--plum, #230F23);
	--ic-aubergine: var(--wp--preset--color--aubergine, #2E1A2E);
	--ic-acid: var(--wp--preset--color--acid, #00FF88);
	--ic-ash: var(--wp--preset--color--ash, #BBBBBB);
	--ic-white: var(--wp--preset--color--white, #FFFFFF);
	--ic-mono: var(--wp--preset--font-family--mono, "Share Tech Mono", ui-monospace, monospace);
	--ic-display: var(--wp--preset--font-family--display, "Archivo Black", "Arial Black", sans-serif);

	/* FullCalendar 6 custom properties */
	--fc-small-font-size: 12px;
	--fc-page-bg-color: var(--ic-night);
	--fc-neutral-bg-color: var(--ic-plum);
	--fc-neutral-text-color: var(--ic-ash);
	--fc-border-color: var(--ic-aubergine);
	--fc-button-text-color: var(--ic-white);
	--fc-button-bg-color: transparent;
	--fc-button-border-color: var(--ic-aubergine);
	--fc-button-hover-bg-color: var(--ic-aubergine);
	--fc-button-hover-border-color: var(--ic-aubergine);
	--fc-button-active-bg-color: transparent;
	--fc-button-active-border-color: var(--ic-acid);
	--fc-event-bg-color: transparent;
	--fc-event-border-color: var(--ic-acid);
	--fc-event-text-color: var(--ic-acid);
	--fc-event-selected-overlay-color: rgba(0, 255, 136, .12);
	--fc-more-link-bg-color: transparent;
	--fc-more-link-text-color: var(--ic-ash);
	--fc-list-event-dot-width: 8px;
	--fc-list-event-hover-bg-color: var(--ic-plum);
	--fc-today-bg-color: rgba(0, 255, 136, .06);
	--fc-now-indicator-color: var(--ic-acid);

	position: relative;
	background: var(--ic-night);
	border: 1px solid var(--ic-aubergine);
	border-radius: 20px;
	padding: 24px;
	color: var(--ic-white);
	font-family: var(--ic-mono);
	font-size: 15px;
	line-height: 1.5;
}

.ic-hycal .hycal-container { font-family: inherit; color: inherit; }
.ic-hycal a { color: inherit; }

/* ---------- toolbar ---------- */
.ic-hycal .fc .fc-toolbar.fc-header-toolbar { margin-bottom: 20px; gap: 12px; flex-wrap: wrap; }
.ic-hycal .fc .fc-toolbar-title {
	font-family: var(--ic-display);
	font-size: clamp(22px, 3vw, 32px);
	text-transform: uppercase;
	letter-spacing: -.01em;
	line-height: 1;
	color: var(--ic-white);
}
.ic-hycal .fc .fc-button {
	font-family: var(--ic-mono);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 8px 16px;
	box-shadow: none !important;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.ic-hycal .fc .fc-button .fc-icon { font-size: 1.1em; }
.ic-hycal .fc .fc-button-group > .fc-button { border-radius: 999px; margin-left: 6px; }
.ic-hycal .fc .fc-button-group > .fc-button:first-child { margin-left: 0; }
.ic-hycal .fc .fc-button-primary:not(:disabled).fc-button-active,
.ic-hycal .fc .fc-button-primary:not(:disabled):active {
	color: var(--ic-acid);
	border-color: var(--ic-acid);
	background: transparent;
}
.ic-hycal .fc .fc-button-primary:disabled { opacity: .35; }
.ic-hycal .fc .fc-button:focus-visible { outline: 2px solid var(--ic-acid); outline-offset: 2px; }

/* ---------- month grid ---------- */
.ic-hycal .fc-theme-standard .fc-scrollgrid { border-color: var(--ic-aubergine); border-radius: 16px; overflow: hidden; }
.ic-hycal .fc-theme-standard td,
.ic-hycal .fc-theme-standard th { border-color: var(--ic-aubergine); }
.ic-hycal .fc .fc-col-header-cell { background: var(--ic-void); }
.ic-hycal .fc .fc-col-header-cell-cushion {
	color: var(--ic-ash);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 10px 4px;
}
.ic-hycal .fc .fc-daygrid-day { background: var(--ic-night); }
.ic-hycal .fc .fc-daygrid-day.fc-day-other { background: var(--ic-void); }
.ic-hycal .fc .fc-daygrid-day-number {
	color: var(--ic-ash);
	font-size: 13px;
	padding: 6px 8px;
}
.ic-hycal .fc .fc-day-other .fc-daygrid-day-number { opacity: .4; }
.ic-hycal .fc .fc-daygrid-day.fc-day-today { background: var(--fc-today-bg-color); box-shadow: inset 0 0 0 1px var(--ic-acid); }
.ic-hycal .fc .fc-day-today .fc-daygrid-day-number {
	color: #050407;
	background: var(--ic-acid);
	border-radius: 999px;
	min-width: 24px;
	text-align: center;
	margin: 4px;
	padding: 2px 6px;
}

/* event chips */
.ic-hycal .fc .fc-daygrid-event,
.ic-hycal .fc .fc-h-event {
	background: transparent;
	border: 1px solid var(--ic-acid);
	border-radius: 999px;
	color: var(--ic-acid);
	font-size: 12px;
	padding: 1px 8px;
	margin: 2px 4px;
	cursor: pointer;
}
.ic-hycal .fc .fc-h-event .fc-event-main,
.ic-hycal .fc .fc-daygrid-event .fc-event-time,
.ic-hycal .fc .fc-daygrid-event .fc-event-title { color: var(--ic-acid); }
.ic-hycal .fc .fc-h-event .fc-event-main-frame { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.ic-hycal .fc .fc-daygrid-event .fc-event-time { font-weight: 400; margin-right: 0; flex: none; }
.ic-hycal .fc .fc-daygrid-event .fc-event-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-hycal .fc .fc-daygrid-dot-event .fc-daygrid-event-dot { border-color: var(--ic-acid); }
.ic-hycal .fc .fc-daygrid-event:hover,
.ic-hycal .fc .fc-daygrid-event:focus-visible {
	background: var(--ic-acid);
	color: #050407;
	box-shadow: 0 0 12px rgba(0, 255, 136, .45);
}
.ic-hycal .fc .fc-daygrid-event:hover * ,
.ic-hycal .fc .fc-daygrid-event:focus-visible * { color: #050407; }
.ic-hycal .fc .fc-event-past { opacity: .45; }
.ic-hycal .fc .fc-daygrid-more-link { color: var(--ic-ash); font-size: 12px; }
.ic-hycal .fc .fc-popover { background: var(--ic-night); border-color: var(--ic-aubergine); border-radius: 12px; }
.ic-hycal .fc .fc-popover-header { background: var(--ic-plum); color: var(--ic-white); }

/* ---------- list view ---------- */
.ic-hycal .fc .fc-list { border-color: var(--ic-aubergine); border-radius: 16px; overflow: hidden; }
.ic-hycal .fc .fc-list-table td { border-color: var(--ic-aubergine); }
.ic-hycal .fc .fc-list-day-cushion,
.ic-hycal .fc-theme-standard .fc-list-day-cushion {
	background: var(--ic-void);
	color: var(--ic-white);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 12px 16px;
}
.ic-hycal .fc .fc-list-day-cushion a { color: inherit; text-decoration: none; }
.ic-hycal .fc .fc-list-day.fc-day-today .fc-list-day-cushion { color: var(--ic-acid); }
.ic-hycal .fc .fc-list-event td { background: var(--ic-night); padding: 14px 16px; }
.ic-hycal .fc .fc-list-event:hover td { background: var(--ic-plum); }
.ic-hycal .fc .fc-list-event-time { color: var(--ic-acid); white-space: nowrap; }
.ic-hycal .fc .fc-list-event-title,
.ic-hycal .fc .fc-list-event-title a { color: var(--ic-white); text-decoration: none; cursor: pointer; }
.ic-hycal .fc .fc-list-event-dot { border-color: var(--ic-acid); }
.ic-hycal .fc .fc-list-empty { background: var(--ic-night); }
.ic-hycal .fc .fc-list-empty-cushion { color: var(--ic-ash); }

/* ---------- loading / error ---------- */
.ic-hycal .hycal-container:not(.fc) { color: var(--ic-ash); font-size: 13px; min-height: 120px; }
.ic-hycal .hycal-error {
	color: var(--ic-white) !important;
	background: transparent !important;
	border: 1px solid var(--ic-aubergine);
	border-radius: 12px !important;
	font-size: 13px;
}
.ic-hycal--fallback { padding: 16px 24px; }
.ic-hycal--fallback a { color: var(--ic-acid); }

/* ---------- tooltip (tippy theme "ic") ---------- */
.ic-hycal .tippy-box[data-theme~="ic"] {
	background: var(--ic-void);
	color: var(--ic-white);
	border: 1px solid var(--ic-acid);
	border-radius: 16px;
	box-shadow: 0 0 24px rgba(0, 255, 136, .18);
	font-family: var(--ic-mono);
}
.ic-hycal .tippy-box[data-theme~="ic"] > .tippy-arrow { color: var(--ic-acid); }
.ic-hycal .tippy-box[data-theme~="ic"] .tippy-content { background: transparent; box-shadow: none; padding: 0 0 16px; border-radius: 16px; }
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-tooltip-close { color: var(--ic-ash) !important; }
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-title {
	color: var(--ic-white);
	font-family: var(--ic-display);
	font-size: 20px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: -.01em;
	padding: 18px 48px 8px 20px;
}
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-time { color: var(--ic-acid); font-size: 13px; padding: 0 20px 4px; }
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-location,
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-location-link,
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-location-icon { color: var(--ic-ash); }
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-description {
	color: var(--ic-ash);
	font-size: 13px;
	padding: 8px 20px 0;
	max-height: 220px;
	overflow: auto;
}
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-description a { color: var(--ic-acid); }
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-start;
	padding: 14px 20px 0;
	text-align: left;
}
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-actions .button {
	display: inline-block;
	font-family: var(--ic-mono);
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ic-white);
	background: transparent;
	border: 1px solid var(--ic-aubergine);
	border-radius: 999px;
	padding: 6px 14px;
	line-height: 1.4;
}
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-actions .ic-hycal-info {
	color: #050407;
	background: var(--ic-acid);
	border-color: var(--ic-acid);
}
.ic-hycal .tippy-box[data-theme~="ic"] .hycal-event-actions .button:hover { border-color: var(--ic-acid); }

/* ---------- phone ---------- */
@media (max-width: 767px) {
	.ic-hycal { padding: 16px; border-radius: 16px; }
	.ic-hycal .fc .fc-toolbar.fc-header-toolbar { align-items: stretch; }
	.ic-hycal .fc .fc-toolbar-chunk { display: flex; justify-content: center; }
	.ic-hycal .fc .fc-list-event td { padding: 12px 10px; }
}
