:root {
	--ground: #05080f;
	--panel: #0b1120;
	--panel-2: #111a2e;
	--panel-3: #0d1526;
	--panel-4: #162036;
	--ink: #e8edf5;
	--dim: #94a3b8;
	--faint: #5b6e8a;
	--amber: #f4a927;
	--amber-2: #f5c07a;
	--cyan: #00e5ff;
	--green: #00e676;
	--red: #ff1744;
	--violet: #8b5cf6;
	--line: rgba(148, 163, 184, 0.12);
	--line-2: rgba(148, 163, 184, 0.2);
	--i: var(--green);
	--p: var(--red);
	--b: var(--violet);
	--font-display: "Orbitron", sans-serif;
	--font-body: "Exo 2", system-ui, sans-serif;
	--font-mono: "JetBrains Mono", ui-monospace, monospace;
}

* { box-sizing: border-box; }

html, body {
	margin: 0;
	min-height: 100%;
	background: var(--ground);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.55;
}

a {
	color: var(--amber);
	text-decoration: none;
}
a:hover { color: var(--amber-2); }

.nav {
	position: sticky;
	top: 0;
	z-index: 40;
	border-bottom: 1px solid var(--line);
	background: rgba(13, 21, 38, 0.94);
	backdrop-filter: blur(8px);
}

.nav-inner {
	max-width: 1240px;
	margin: 0 auto;
	min-height: 64px;
	padding: 0 20px;
	display: flex;
	align-items: center;
	gap: 16px;
}

.brand-link,
.foot-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	color: inherit;
}

.brand-link:hover { color: inherit; }

.logo-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 24px;
	background: var(--amber);
	color: var(--panel);
	font: 800 13px var(--font-display);
	border-radius: 0 0 12px 0;
}

.logo-mark-sm {
	width: 28px;
	height: 20px;
	font-size: 11px;
}

.brand-name {
	font: 700 15px var(--font-display);
	letter-spacing: 0.16em;
	color: var(--ink);
}

.nav-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.status-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border: 1px solid rgba(0, 230, 118, 0.4);
	background: rgba(0, 230, 118, 0.1);
	border-radius: 3px;
	color: var(--green);
	font: 700 10px var(--font-mono);
}

.app {
	max-width: 1240px;
	margin: 0 auto;
	padding: 28px 20px 56px;
}

.section-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
}

.section-tab {
	width: 32px;
	height: 21px;
	flex-shrink: 0;
	background: var(--amber);
	border-radius: 0 0 10px 0;
}

.section-label {
	font: 700 13px var(--font-display);
	letter-spacing: 0.16em;
	color: var(--amber);
	white-space: nowrap;
}

.section-rule {
	height: 2px;
	flex: 1;
	background: linear-gradient(90deg, var(--amber), transparent);
}

.section-head-cyan .section-tab { background: var(--cyan); }
.section-head-cyan .section-label { color: var(--cyan); }
.section-head-cyan .section-rule { background: linear-gradient(90deg, var(--cyan), transparent); }

.mcrbox-banner {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 16px 20px;
	padding: 20px 22px;
	margin-bottom: 22px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-radius: 6px;
}

.mcrbox-banner .section-head { grid-column: 1 / -1; }

.mcrbox-copy {
	display: grid;
	gap: 6px;
}

.mcrbox-copy strong {
	font: 700 15px var(--font-display);
	letter-spacing: 0.04em;
}

.mcrbox-copy span { color: var(--dim); }

.grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.card {
	background: var(--panel-2);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 22px;
}

.muted { color: var(--dim); }

.field-wrap {
	display: grid;
	gap: 6px;
	margin: 14px 0;
}

.field-wrap label {
	font: 700 10px var(--font-display);
	letter-spacing: 0.12em;
	color: var(--faint);
	text-transform: uppercase;
}

.field,
input[type="number"],
input[type="text"] {
	width: 100%;
	padding: 11px 13px;
	border-radius: 8px;
	border: 1px solid var(--line);
	background: var(--panel-2);
	color: var(--ink);
	font: 400 13px var(--font-body);
}

.field-mono {
	font: 600 12px var(--font-mono);
	background: var(--ground);
	border-color: rgba(148, 163, 184, 0.3);
	border-radius: 4px;
}

.field:focus,
input:focus {
	outline: none;
	border-color: var(--cyan);
}

::placeholder { color: var(--faint); opacity: 1; }

#file-select { display: none; }

.file-row,
.btn-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 12px 0;
}

.file-name {
	color: var(--dim);
	font: 500 12px var(--font-mono);
}

.btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	border: none;
	cursor: pointer;
	text-decoration: none;
	padding: 0 14px;
	height: 38px;
	border-radius: 3px 12px 12px 3px;
	font: 700 11.5px var(--font-display);
	letter-spacing: 0.08em;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, filter 0.15s ease;
}

.btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.btn-amber {
	background: var(--amber);
	color: #0b1120;
}
.btn-amber:hover { background: var(--amber-2); color: #0b1120; }

.btn-cyan {
	background: var(--cyan);
	color: #05080f;
}
.btn-cyan:hover { filter: brightness(1.1); color: #05080f; }

.btn-cyan-outline {
	background: transparent;
	border: 1px solid rgba(0, 229, 255, 0.5);
	color: var(--cyan);
}
.btn-cyan-outline:hover { background: rgba(0, 229, 255, 0.08); color: var(--cyan); }

.btn-ghost {
	background: transparent;
	border: 1px solid rgba(148, 163, 184, 0.25);
	color: var(--dim);
}
.btn-ghost:hover {
	border-color: rgba(148, 163, 184, 0.45);
	color: var(--ink);
}

.error { color: var(--red); min-height: 1.2em; font-size: 0.92rem; }

.progress {
	height: 8px;
	margin-top: 14px;
	border-radius: 3px;
	background: var(--ground);
	border: 1px solid var(--line-2);
	overflow: hidden;
}

#progress-bar {
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, var(--amber), var(--cyan));
	color: transparent;
	transition: width 0.2s ease;
}

.loader {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 22px 0;
	color: var(--dim);
	font-family: var(--font-mono);
	font-size: 13px;
}

.spinner {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--line-2);
	border-top-color: var(--cyan);
	animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

.results { margin-top: 32px; }

.table-wrap { overflow-x: auto; }

#table_streams_params {
	width: 100%;
	border-collapse: collapse;
	background: var(--panel);
	border: 1px solid var(--line);
	border-radius: 6px;
	overflow: hidden;
}

#table_streams_params td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	font: 500 11px var(--font-mono);
	color: var(--dim);
	word-break: break-word;
}

#table_streams_params tr:nth-child(even) td { background: var(--panel-3); }

.cls_gops_length {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0 24px;
}

.cls_gops_length td {
	text-align: center;
	background: var(--panel-4);
	color: var(--cyan);
	padding: 8px 4px;
	font: 600 12px var(--font-mono);
	border-right: 2px solid var(--ground);
}

.cls_gops_length td:first-child {
	background: var(--panel);
	color: var(--ink);
	text-align: left;
	padding-left: 10px;
	white-space: nowrap;
}

.advanced-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}

.advanced-head .section-head { flex: 1; margin-bottom: 0; }

.Legend {
	display: flex;
	gap: 14px;
	color: var(--dim);
	font: 600 11px var(--font-mono);
}

.Legend span { display: inline-flex; align-items: center; gap: 6px; }

.swatch {
	width: 10px;
	height: 10px;
	border-radius: 2px;
	display: inline-block;
}

.I { background: var(--i); }
.P { background: var(--p); }
.B { background: var(--b); }

.ct-chart-wrapper {
	position: relative;
	height: 280px;
	margin: 18px 0 28px;
	padding: 28px 8px 8px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-radius: 6px;
}

.ct-chart { height: 100%; }

.ct-label {
	fill: var(--faint) !important;
	color: var(--faint) !important;
	font-family: var(--font-mono) !important;
	font-size: 10px !important;
}

.ct-grid { stroke: rgba(148, 163, 184, 0.16); stroke-dasharray: 2 4; }

.p-profile {
	position: absolute;
	top: 8px;
	left: 14px;
	margin: 0;
	font: 600 11px var(--font-mono);
	color: var(--cyan);
}

.tooltip {
	position: absolute;
	z-index: 2;
	padding: 8px 10px;
	background: rgba(5, 8, 15, 0.94);
	border: 1px solid var(--line-2);
	border-radius: 4px;
	color: var(--ink);
	font: 500 11px var(--font-mono);
	pointer-events: none;
}

.site-foot {
	margin-top: auto;
	border-top: 2px solid var(--amber);
	background: var(--ground);
}

.foot-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 22px 20px 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	color: var(--dim);
	font-size: 13px;
}

.foot-status {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--green);
	font: 600 10px var(--font-mono);
}

.status-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--green);
}

.is-hidden { display: none !important; }

.help-overlay {
	position: fixed;
	inset: 0;
	background: rgba(5, 8, 15, 0.78);
	display: grid;
	place-items: center;
	padding: 20px;
	z-index: 50;
}

.help-panel {
	max-width: 640px;
	max-height: 90vh;
	overflow: auto;
	background: var(--panel-2);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 24px;
}

.help-panel h3 {
	margin: 18px 0 8px;
	font: 700 12px var(--font-display);
	letter-spacing: 0.12em;
	color: var(--amber);
}

.help-panel ol { padding-left: 1.2em; color: var(--dim); }

@media (max-width: 860px) {
	.grid,
	.mcrbox-banner {
		grid-template-columns: 1fr;
	}

	.nav-inner,
	.nav-actions {
		flex-wrap: wrap;
	}

	.nav-inner { padding: 12px 16px; }
	.foot-status { margin-left: 0; }
}
