ui/tunerenameoverlay.razor.scss
// Rename-a-saved-tune modal (Task 4). Tokens inlined from _tokens.scss (house convention: panels
// self-contain literals — @import isn't resolved by the headless build). NO letter-spacing; font-size
// only on the one title, per the glyph-corruption trap.

TuneRenameOverlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	font-family: Poppins, sans-serif;

	.mono { font-family: "Roboto Mono", monospace; }

	// Full-screen dim that captures clicks (a click on the backdrop cancels). pointer-events:all here is
	// what makes this a real modal — the list underneath can't be clicked through while renaming.
	.backdrop {
		position: absolute;
		inset: 0;
		background-color: rgba( 6, 7, 9, 0.55 );
		pointer-events: all;
	}

	// Centering layer ON TOP of the backdrop. pointer-events:none so a click on empty space falls
	// through to the backdrop (= cancel); the card re-enables events for itself. Sibling of the backdrop,
	// so card clicks never bubble to the cancel handler (no StopPropagation needed).
	.modalwrap {
		position: absolute;
		inset: 0;
		justify-content: center;
		align-items: center;
		pointer-events: none;
	}

	.card {
		width: 380px;
		flex-direction: column;
		gap: 16px;
		padding: 22px 24px;
		background-color: rgba( 15, 17, 21, 0.94 );
		border: 1px solid rgba( 255, 255, 255, 0.10 );
		border-radius: 18px;
		box-shadow: 0 20px 60px rgba( 0, 0, 0, 0.6 );
		pointer-events: all;

		.rhead {
			flex-direction: row;
			justify-content: space-between;
			align-items: baseline;

			.title { font-size: 20px; font-weight: 700; color: #F2F4F7; }
			.ctx { color: #F2F4F7; }
		}

		// TextEntry outer box — the engine paints the editable glyph run inside; we own the frame.
		.renamefield {
			color: #E8EAED;
			background-color: rgba( 255, 255, 255, 0.05 );
			border: 1px solid rgba( 74, 217, 242, 0.35 );
			border-radius: 10px;
			padding: 11px 13px;
			min-height: 44px;
			align-items: center;
		}

		.rfoot {
			flex-direction: row;
			gap: 10px;

			.btn {
				flex-grow: 1;
				justify-content: center;
				align-items: center;
				font-weight: 700;
				border-radius: 10px;
				padding: 11px 0;
				cursor: pointer;
				transition: all 0.12s ease;

				&.ghost {
					color: #F2F4F7;
					background-color: rgba( 255, 255, 255, 0.05 );
					border: 1px solid rgba( 255, 255, 255, 0.07 );
					&:hover { color: #E8EAED; background-color: rgba( 255, 255, 255, 0.09 ); }
				}
				&.primary {
					color: #0A161A;
					background-color: #4AD9F2;
					&:hover { background-color: #58E1F7; }
				}
			}
		}
	}
}