/* DD Lock Visualizer — theme tokens */
.ddcv-root {
	--ddcv-bg: #0b0e11;
	--ddcv-panel: #10151a;
	--ddcv-panel-2: #141a20;
	--ddcv-grid: #1d252c;
	--ddcv-border: #232c34;
	--ddcv-text: #d6dde3;
	--ddcv-text-dim: #6b7684;
	--ddcv-equity: #3ddc97;
	--ddcv-equity-glow: rgba(61, 220, 151, .45);
	--ddcv-trail: #ffb020;
	--ddcv-trail-glow: rgba(255, 176, 32, .4);
	--ddcv-lock: #35c8ff;
	--ddcv-lock-glow: rgba(53, 200, 255, .5);
	--ddcv-font-ui: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
	--ddcv-font-mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;

	all: initial !important;
	isolation: isolate;
	box-sizing: border-box;
	display: block !important;
	font-family: var(--ddcv-font-ui);
	color: var(--ddcv-text) !important;
	background: var(--ddcv-bg) !important;
	border: 1px solid var(--ddcv-border);
	border-radius: 16px;
	padding: 18px;
	max-width: 980px;
	margin: 24px auto;
	background-image:
		linear-gradient(var(--ddcv-grid) 1px, transparent 1px),
		linear-gradient(90deg, var(--ddcv-grid) 1px, transparent 1px);
	background-size: 28px 28px;
	background-position: -1px -1px;
	position: relative;
	z-index: 0;
	line-height: 1.4;
	text-align: left;
	box-shadow: 0 20px 60px -20px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.02);
}
/* Belt-and-braces: some themes apply color/typography rules straight to
   every element inside the content area with !important. Re-assert the
   widget's own palette on every descendant so it can never be overridden
   by surrounding page content. */
.ddcv-root *,
.ddcv-root *::before,
.ddcv-root *::after {
	box-sizing: border-box;
	font-family: inherit;
	text-shadow: none !important;
	text-decoration: none !important;
	letter-spacing: normal;
}
.ddcv-root h3,
.ddcv-root p,
.ddcv-root span,
.ddcv-root div,
.ddcv-root button {
	color: inherit;
	background: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	border: 0;
}

.ddcv-root .ddcv-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 14px;
}

.ddcv-root .ddcv-title {
	display: flex;
	align-items: baseline;
	gap: 10px;
}
.ddcv-root .ddcv-title .ddcv-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--ddcv-equity);
	box-shadow: 0 0 10px var(--ddcv-equity-glow);
	display: inline-block;
}
.ddcv-root .ddcv-title h3 {
	all: unset;
	font-family: var(--ddcv-font-ui);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: .02em;
	color: #fff;
}
.ddcv-root .ddcv-title span.ddcv-sub {
	font-family: var(--ddcv-font-mono);
	font-size: 11px;
	color: var(--ddcv-text-dim);
	text-transform: uppercase;
	letter-spacing: .08em;
}

.ddcv-root .ddcv-tiers {
	display: flex;
	gap: 6px;
	background: var(--ddcv-panel);
	border: 1px solid var(--ddcv-border);
	border-radius: 999px;
	padding: 4px;
}
.ddcv-root .ddcv-tier-btn {
	all: unset;
	cursor: pointer;
	font-family: var(--ddcv-font-mono);
	font-size: 12px;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 999px;
	color: var(--ddcv-text-dim);
	transition: color .18s ease, background .18s ease, box-shadow .18s ease;
}
.ddcv-root .ddcv-tier-btn:hover { color: var(--ddcv-text); }
.ddcv-root .ddcv-tier-btn.is-active {
	color: #06120c;
	background: var(--ddcv-equity);
	box-shadow: 0 0 16px var(--ddcv-equity-glow);
}

.ddcv-root .ddcv-controls {
	display: flex;
	align-items: center;
	gap: 6px;
}
.ddcv-root .ddcv-icon-btn {
	all: unset;
	cursor: pointer;
	width: 32px; height: 32px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 8px;
	background: var(--ddcv-panel);
	border: 1px solid var(--ddcv-border);
	color: var(--ddcv-text);
	transition: background .15s ease, border-color .15s ease, transform .1s ease;
}
.ddcv-root .ddcv-icon-btn:hover { background: var(--ddcv-panel-2); border-color: #2c3742; }
.ddcv-root .ddcv-icon-btn:active { transform: scale(.94); }
.ddcv-root .ddcv-icon-btn svg { width: 14px; height: 14px; }

/* stat chips */
.ddcv-root .ddcv-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin-bottom: 14px;
}
@media (max-width: 640px) {
	.ddcv-root .ddcv-stats { grid-template-columns: repeat(2, 1fr); }
}
.ddcv-root .ddcv-chip {
	background: var(--ddcv-panel);
	border: 1px solid var(--ddcv-border);
	border-radius: 10px;
	padding: 8px 12px;
}
.ddcv-root .ddcv-chip-label {
	font-family: var(--ddcv-font-mono);
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ddcv-text-dim);
	margin-bottom: 3px;
}
.ddcv-root .ddcv-chip-value {
	font-family: var(--ddcv-font-mono);
	font-size: 16px;
	font-weight: 600;
	color: #fff;
	transition: color .2s ease;
}
.ddcv-root .ddcv-chip-value.is-equity { color: var(--ddcv-equity); }
.ddcv-root .ddcv-chip-value.is-trail { color: var(--ddcv-trail); }
.ddcv-root .ddcv-chip-value.is-lock { color: var(--ddcv-lock); }

.ddcv-root .ddcv-status-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--ddcv-font-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	padding: 3px 0;
}
.ddcv-root .ddcv-status-pill .ddcv-pulse {
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--ddcv-trail);
	box-shadow: 0 0 8px var(--ddcv-trail-glow);
	animation: ddcv-pulse 1.6s ease-in-out infinite;
}
.ddcv-root .ddcv-status-pill.is-locked .ddcv-pulse {
	background: var(--ddcv-lock);
	box-shadow: 0 0 8px var(--ddcv-lock-glow);
	animation: none;
}
@keyframes ddcv-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .45; transform: scale(1.5); }
}

/* chart area */
.ddcv-root .ddcv-chart-wrap {
	position: relative;
	background: linear-gradient(180deg, var(--ddcv-panel) 0%, var(--ddcv-bg) 100%);
	border: 1px solid var(--ddcv-border);
	border-radius: 12px;
	overflow: hidden;
	touch-action: none;
	cursor: ew-resize;
}
.ddcv-root canvas.ddcv-canvas {
	display: block;
	width: 100%;
	height: 320px;
}

.ddcv-root .ddcv-scrubber-handle {
	position: absolute;
	bottom: 6px;
	width: 22px;
	height: 22px;
	margin-left: -11px;
	border-radius: 50%;
	background: var(--ddcv-panel-2);
	border: 2px solid var(--ddcv-equity);
	box-shadow: 0 0 14px var(--ddcv-equity-glow);
	cursor: grab;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.ddcv-root .ddcv-scrubber-handle::after {
	content: '';
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--ddcv-equity);
}
.ddcv-root .ddcv-scrubber-handle.is-locked {
	border-color: var(--ddcv-lock);
	box-shadow: 0 0 14px var(--ddcv-lock-glow);
}
.ddcv-root .ddcv-scrubber-handle.is-locked::after { background: var(--ddcv-lock); }

.ddcv-root .ddcv-tooltip {
	position: absolute;
	top: 10px;
	transform: translateX(-50%);
	background: rgba(16, 21, 26, .92);
	border: 1px solid var(--ddcv-border);
	border-radius: 8px;
	padding: 6px 10px;
	font-family: var(--ddcv-font-mono);
	font-size: 11px;
	line-height: 1.5;
	white-space: nowrap;
	pointer-events: none;
	backdrop-filter: blur(4px);
	box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.ddcv-root .ddcv-tooltip .ddcv-tt-row { display: flex; gap: 8px; justify-content: space-between; }
.ddcv-root .ddcv-tooltip .ddcv-tt-k { color: var(--ddcv-text-dim); }
.ddcv-root .ddcv-tooltip .ddcv-tt-v.is-equity { color: var(--ddcv-equity); }
.ddcv-root .ddcv-tooltip .ddcv-tt-v.is-trail { color: var(--ddcv-trail); }
.ddcv-root .ddcv-tooltip .ddcv-tt-v.is-lock { color: var(--ddcv-lock); }

/* day ruler */
.ddcv-root .ddcv-ruler {
	display: flex;
	justify-content: space-between;
	font-family: var(--ddcv-font-mono);
	font-size: 10px;
	color: var(--ddcv-text-dim);
	padding: 8px 4px 0;
	letter-spacing: .04em;
}

.ddcv-root .ddcv-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 10px;
	font-family: var(--ddcv-font-mono);
	font-size: 10px;
	color: var(--ddcv-text-dim);
	letter-spacing: .04em;
}
.ddcv-root .ddcv-legend { display: flex; gap: 14px; }
.ddcv-root .ddcv-legend span { display: inline-flex; align-items: center; gap: 5px; }
.ddcv-root .ddcv-legend i { width: 10px; height: 2px; display: inline-block; border-radius: 2px; }
.ddcv-root .ddcv-legend i.is-equity { background: var(--ddcv-equity); box-shadow: 0 0 6px var(--ddcv-equity-glow); }
.ddcv-root .ddcv-legend i.is-trail { background: var(--ddcv-trail); box-shadow: 0 0 6px var(--ddcv-trail-glow); }
.ddcv-root .ddcv-legend i.is-lock { background: var(--ddcv-lock); box-shadow: 0 0 6px var(--ddcv-lock-glow); }

@media (prefers-reduced-motion: reduce) {
	.ddcv-root .ddcv-status-pill .ddcv-pulse { animation: none; }
}

/* ---------------- Admin settings page ---------------- */
.ddcv-admin-wrap .ddcv-admin-table th,
.ddcv-admin-wrap .ddcv-admin-table td { padding: 8px 10px; }
.ddcv-admin-wrap .ddcv-admin-table input[type="text"],
.ddcv-admin-wrap .ddcv-admin-table input[type="number"] { width: 100%; }
