/* ==========================================================================
   Skelly Variations (DataTables + Highcharts-style)
   Add-on classes to pair with your existing .skelly + shimmer animation.
   ========================================================================== */

/* Optional: make sure hidden overlays truly disappear */
.skellyOverlay[hidden] {
	display: none !important;
}

/* --------------------------------------------------------------------------
   Width helpers (use on any .skelly element)
   -------------------------------------------------------------------------- */
.skellyW10 { width: 10%; }
.skellyW15 { width: 15%; }
.skellyW20 { width: 20%; }
.skellyW25 { width: 25%; }
.skellyW30 { width: 30%; }
.skellyW40 { width: 40%; }
.skellyW50 { width: 50%; }
.skellyW60 { width: 60%; }
.skellyW70 { width: 70%; }
.skellyW80 { width: 80%; }
.skellyW90 { width: 90%; }

/* --------------------------------------------------------------------------
   DataTables-style skeleton
   -------------------------------------------------------------------------- */
.skellyDataTable {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.skellyDataTableTopBar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.skellyDataTableControls {
	display: flex;
	align-items: center;
	gap: 10px;
}

.skellyDataTableTable {
	display: flex;
	flex-direction: column;
	gap: 8px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 0 0 1px rgba(0,0,0,0.04) inset;
	background: rgba(0,0,0,0.02);
	padding: 10px;
}

.skellyDataTableHeaderRow,
.skellyDataTableRow {
	display: grid;
	gap: 10px;
}

.skellyDataTableHeaderRow {
	margin-bottom: 2px;
}

.skellyDataTableRow {
	opacity: 0.95;
}

.skellyDataTableFooterBar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.skellyPill {
	height: 16px;
	border-radius: 999px;
}

.skellyButton {
	height: 28px;
	border-radius: 10px;
}

.skellyInput {
	height: 28px;
	border-radius: 10px;
}

/* Use these to pick a column layout that matches a given report */
.skellyCols3 { grid-template-columns: 2fr 1fr 2fr; }
.skellyCols4 { grid-template-columns: 2fr 1fr 1fr 2fr; }
.skellyCols5 { grid-template-columns: 2fr 1fr 1fr 1fr 2fr; }

/* --------------------------------------------------------------------------
   Highcharts-style chart skeletons
   -------------------------------------------------------------------------- */
.skellyChartFrame {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.skellyChartTitleBar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.skellyChartPlotArea {
	position: relative;
	height: 260px;
	border-radius: 12px;
	box-shadow: 0 0 0 1px rgba(0,0,0,0.05) inset;
	background: rgba(0,0,0,0.02);
	overflow: hidden;
	padding: 14px;
}

/* Subtle “gridlines” */
.skellyChartPlotArea::before {
	content: "";
	position: absolute;
	inset: 14px;
	background-image:
		linear-gradient(to bottom, rgba(0,0,0,0.05) 1px, transparent 1px);
	background-size: 100% 20%;
	pointer-events: none;
}

.skellyChartAxes {
	position: absolute;
	inset: 14px;
	pointer-events: none;
}

.skellyChartAxisY {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 36px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
}

.skellyChartAxisX {
	position: absolute;
	left: 36px;
	right: 0;
	bottom: 0;
	height: 22px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 10px;
}

.skellyChartAxisTick {
	height: 10px;
	border-radius: 6px;
}

/* --- Bar chart --- */
.skellyChartBars {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;

	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	pointer-events: none;
}

.skellyChartBar {
	width: 10%;
	border-radius: 10px 10px 4px 4px;
}

/* --- Line chart --- */
.skellyChartLinePath {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;
	pointer-events: none;
}

/* The “path” is a soft diagonal ribbon; dots sell the illusion */
.skellyChartLinePath::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;

	background:
		linear-gradient(135deg,
			rgba(0,0,0,0.00) 0%,
			rgba(0,0,0,0.00) 12%,
			rgba(0,0,0,0.06) 12%,
			rgba(0,0,0,0.06) 16%,
			rgba(0,0,0,0.00) 16%,
			rgba(0,0,0,0.00) 100%);
	filter: blur(0.2px);
}

.skellyChartDots {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;
	pointer-events: none;
}

.skellyChartDot {
	position: absolute;
	width: 12px;
	height: 12px;
	border-radius: 999px;
}

/* Dot positions (tweak per taste) */
.skellyDot1 { left: 4%;  top: 55%; }
.skellyDot2 { left: 22%; top: 38%; }
.skellyDot3 { left: 40%; top: 62%; }
.skellyDot4 { left: 58%; top: 30%; }
.skellyDot5 { left: 76%; top: 48%; }
.skellyDot6 { left: 92%; top: 22%; }

/* --- Scatter chart --- */
.skellyChartScatterDots {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;
	pointer-events: none;
}

.skellyChartScatterDot {
	position: absolute;
	border-radius: 999px;

	/* center each dot on its (left/top) coordinate */
	transform: translate(-50%, -50%);
}

/* --- Treemap (brick wall) chart --- */
.skellyChartTreemapArea {
	position: absolute;
	inset: 14px;
	pointer-events: none;
}

.skellyChartTreemapBrick {
	position: absolute;
	border-radius: 10px;

	/* “mortar” gap + a little depth */
	box-shadow:
		0 0 0 3px rgba(255,255,255,0.80) inset,
		0 1px 0 rgba(0,0,0,0.04);
}

/* --- Area ramp chart (touching bars / filled silhouette) --- */
.skellyChartAreaRampFill {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;
	pointer-events: none;
}

.skellyChartAreaRampShape {
	position: absolute;
	inset: 0;
	border-radius: 16px;

	/* Helps the silhouette feel “solid” without needing actual colors */
	box-shadow: 0 0 0 2px rgba(255,255,255,0.70) inset;
}

/* --- Bubble chart --- */
.skellyChartBubbleCanvas {
	/* user described a white canvas */
	background: rgba(255,255,255,0.95);
}

/* hide the plot-area gridlines on this variation */
.skellyChartBubbleCanvas::before {
	content: none;
}

.skellyChartBubbleField {
	position: absolute;
	left: 50px;
	right: 14px;
	top: 24px;
	bottom: 36px;
	pointer-events: none;
}

.skellyChartBubble {
	position: absolute;
	border-radius: 999px;

	/* center bubble on its coordinate */
	transform: translate(-50%, -50%);

	/* subtle “bubble” vibe */
	box-shadow:
		0 0 0 2px rgba(255,255,255,0.70) inset,
		0 1px 0 rgba(0,0,0,0.04);
}

/* --- Horizontal split stacked bars --- */
.skellyChartSplitHStackArea {
	position: absolute;
	inset: 14px;
	display: flex;
	flex-direction: column;
	gap: 6px; /* not much space between rows */
	pointer-events: none;
}

/* Row = label + bar */
.skellyChartSplitHStackRow {
	display: grid;
	grid-template-columns: 36px 1fr;
	gap: 10px;
	align-items: center;
}

/* little left “label tick” */
.skellyChartSplitHStackLabel {
	height: 10px;
	border-radius: 6px;
}

/* the bar is one continuous shape; segments touch */
.skellyChartSplitHStackBar {
	height: 14px;
	border-radius: 10px;
	overflow: hidden;
	display: flex;
}

/* segments fill the full height */
.skellyChartSplitHStackSegA,
.skellyChartSplitHStackSegB {
	height: 100%;
}

/* second “color” tone */
.skellyToneB {
	background: #d6d6d6;
}
