:root {
	--nt-tool-bg: #05070d;
	--nt-tool-panel: #080c14;
	--nt-tool-card: #0c1018;
	--nt-tool-field: #020409;
	--nt-tool-text: #e6f7ff;
	--nt-tool-muted: #a8b3bc;
	--nt-tool-soft: #cde9ff;
	--nt-tool-blue: #64d8ff;
	--nt-tool-green: #39ff14;
	--nt-tool-border: rgba(57, 255, 20, 0.3);
	--nt-tool-shadow: 0 0 20px rgba(57, 255, 20, 0.18);
	--nt-tool-entropy-gradient: linear-gradient(90deg, #ef4444, #f59e0b, #39ff14);
	--nt-tool-ttc-critical: #ef4444;
	--nt-tool-ttc-warning: #f59e0b;
	--nt-tool-ttc-medium: #f97316;
	--nt-tool-ttc-safe: #22c55e;
	--nt-tool-ttc-legacy: #eab308;
}

.nt-pwdgen-wrapper {
	--nt-pwdgen-page-width: min(1120px, calc(100vw - 32px));

	box-sizing: border-box;
	width: var(--nt-pwdgen-page-width) !important;
	max-width: none !important;
	margin-top: 1.4rem;
	margin-right: 0 !important;
	margin-bottom: 1.4rem;
	margin-left: calc(50% - min(560px, calc(50vw - 16px))) !important;
	padding: 16px;
	transform: none !important;
	color: var(--nt-tool-text);
	background:
		radial-gradient(circle at top left, rgba(100, 216, 255, 0.12), transparent 34%),
		linear-gradient(145deg, rgba(5, 7, 13, 0.98), rgba(0, 0, 0, 0.96));
	border: 1px solid rgba(100, 216, 255, 0.18);
	border-radius: 10px;
	box-shadow: 0 0 28px rgba(0, 0, 0, 0.72);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.nt-pwdgen-wrapper *,
.nt-pwdgen-wrapper *::before,
.nt-pwdgen-wrapper *::after {
	box-sizing: border-box;
}

.nt-pwdgen-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 16px;
	align-items: end;
	margin-bottom: 12px;
}

.nt-pwdgen-kicker,
.nt-pwdgen-card-eyebrow {
	margin: 0;
	color: var(--nt-tool-blue);
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0;
	text-transform: uppercase;
}

.nt-pwdgen-hero h2 {
	grid-column: 1;
	margin: 0;
	color: var(--nt-tool-soft);
	font-size: clamp(1.9rem, 4.6vw, 3.25rem);
	line-height: 0.98;
	text-transform: uppercase;
}

.nt-pwdgen-hero p {
	grid-column: 1;
	max-width: 760px;
	margin: 0;
	color: var(--nt-tool-muted);
	font-size: 0.86rem;
	line-height: 1.4;
}

.nt-pwdgen-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.nt-pwdgen-hero > .nt-pwdgen-pills {
	grid-column: 2;
	grid-row: 2 / span 2;
	justify-content: flex-end;
}

.nt-pwdgen-pills span {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 4px 9px;
	color: #c8ffc0;
	background: rgba(57, 255, 20, 0.08);
	border: 1px solid rgba(57, 255, 20, 0.24);
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 800;
}

.nt-pwdgen-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.96fr) minmax(440px, 0.84fr);
	gap: 10px;
	align-items: start;
}

.nt-pwdgen-card-primary {
	grid-column: 1 / -1;
}

.nt-pwdgen-card {
	position: relative;
	overflow: hidden;
	min-width: 0;
	padding: 14px 16px;
	color: var(--nt-tool-text);
	background:
		radial-gradient(circle at top left, rgba(57, 255, 20, 0.08), transparent 44%),
		linear-gradient(145deg, rgba(12, 16, 24, 0.98), rgba(2, 4, 9, 0.98));
	border: 1px solid var(--nt-tool-border);
	border-radius: 9px;
	box-shadow: var(--nt-tool-shadow);
}

.nt-pwdgen-card-primary {
	display: grid;
	grid-template-columns: minmax(165px, 0.52fr) minmax(290px, 1fr) minmax(245px, 0.82fr) minmax(235px, 0.74fr);
	gap: 10px 16px;
	align-items: start;
	border-color: rgba(57, 255, 20, 0.42);
}

.nt-pwdgen-card-primary .nt-pwdgen-card-header,
.nt-pwdgen-card-primary .nt-pwdgen-field-group,
.nt-pwdgen-card-primary .nt-pwdgen-charset-group,
.nt-pwdgen-card-primary .nt-pwdgen-controls,
.nt-pwdgen-card-primary .nt-pwdgen-status,
.nt-pwdgen-card-primary .nt-pwdgen-entropy {
	margin: 0;
}

.nt-pwdgen-card-primary .nt-pwdgen-card-header {
	grid-column: 1;
}

.nt-pwdgen-card-primary .nt-pwdgen-field-group {
	grid-column: 2;
}

.nt-pwdgen-card-primary .nt-pwdgen-charset-group {
	grid-column: 3;
	grid-row: 1 / span 4;
	padding: 0 14px;
	background: transparent;
	border-top: 0;
	border-right: 0;
	border-bottom: 0;
	border-left: 1px solid rgba(57, 255, 20, 0.18);
	border-radius: 0;
}

.nt-pwdgen-card-primary .nt-pwdgen-controls,
.nt-pwdgen-card-primary .nt-pwdgen-status {
	grid-column: 2;
}

.nt-pwdgen-card-primary .nt-pwdgen-entropy {
	grid-column: 4;
	grid-row: 1 / span 4;
	align-self: stretch;
	padding-top: 0;
	padding-left: 14px;
	border-top: 0;
	border-left: 1px solid rgba(57, 255, 20, 0.18);
}

.nt-pwdgen-card-primary .nt-pwdgen-charset-group .nt-pwdgen-note {
	display: none;
}

.nt-pwdgen-card > * {
	position: relative;
	z-index: 1;
}

.nt-pwdgen-card-header {
	margin-bottom: 10px;
}

.nt-pwdgen-title {
	margin: 2px 0 5px;
	color: var(--nt-tool-text);
	font-size: 1.08rem;
	line-height: 1.2;
}

.nt-pwdgen-subtitle,
.nt-pwdgen-note,
.nt-pwdgen-status,
.nt-pwdgen-entropy-text,
.nt-pwdgen-entropy-note,
.nt-pwdgen-ttc-note,
.nt-pwdgen-list-text,
.nt-pwdgen-tooltips-intro,
.nt-pwdgen-tooltip {
	color: var(--nt-tool-muted);
	font-size: 0.8rem;
	line-height: 1.38;
}

.nt-pwdgen-field-group {
	margin-bottom: 10px;
}

.nt-pwdgen-label,
.nt-pwdgen-entropy-label {
	display: block;
	margin-bottom: 6px;
	color: var(--nt-tool-soft);
	font-size: 0.78rem;
	font-weight: 800;
}

.nt-pwdgen-output {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	padding: 0.55rem 0.65rem;
	color: var(--nt-tool-text);
	background: var(--nt-tool-field);
	border: 1px solid rgba(205, 233, 255, 0.28);
	border-radius: 6px;
	font: 0.86rem/1.35 Menlo, Consolas, monospace;
}

.nt-pwdgen-output:focus-visible,
.nt-pwdgen-btn:focus-visible,
.nt-pwdgen-link-btn:focus-visible,
.nt-pwdgen-tooltip a:focus-visible,
.nt-pwdgen-target-volume input:focus-visible {
	outline: 2px solid var(--nt-tool-green);
	outline-offset: 2px;
}

.nt-pwdgen-output-row,
.nt-pwdgen-controls,
.nt-pwdgen-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: stretch;
}

.nt-pwdgen-btn,
.nt-pwdgen-link-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 0.44rem 0.75rem;
	color: var(--nt-tool-soft);
	background: rgba(7, 12, 19, 0.94);
	border: 1px solid rgba(57, 255, 20, 0.3);
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.8rem;
	font-weight: 850;
	line-height: 1.2;
	text-decoration: none;
	transition: background 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.nt-pwdgen-btn-primary,
.nt-pwdgen-btn:hover,
.nt-pwdgen-link-btn:hover,
.nt-pwdgen-btn-success {
	color: #001a08;
	background: var(--nt-tool-green);
	box-shadow: 0 0 12px rgba(57, 255, 20, 0.5);
}

.nt-pwdgen-btn:hover,
.nt-pwdgen-link-btn:hover {
	transform: translateY(-1px);
}

.nt-pwdgen-btn-error {
	color: #fff;
	background: var(--nt-tool-ttc-critical);
	border-color: var(--nt-tool-ttc-critical);
}

.nt-pwdgen-btn-sm {
	min-height: 30px;
	padding: 0.35rem 0.65rem;
	font-size: 0.76rem;
}

.nt-pwdgen-charset-group,
.nt-pwdgen-entropy,
.nt-pwdgen-tooltips,
.nt-pwdgen-companion {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(57, 255, 20, 0.18);
}

.nt-pwdgen-charset-group {
	min-inline-size: 0;
	border-right: 0;
	border-bottom: 0;
	border-left: 0;
}

.nt-pwdgen-charset-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 7px 10px;
	margin-top: 8px;
}

.nt-pwdgen-charset-option {
	display: flex;
	gap: 7px;
	align-items: center;
	color: var(--nt-tool-soft);
	font-size: 0.78rem;
}

.nt-pwdgen-charset-option input {
	accent-color: var(--nt-tool-green);
}

.nt-pwdgen-entropy-header,
.nt-pwdgen-entropy-info {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 6px 14px;
}

.nt-pwdgen-entropy-bar-bg {
	height: 8px;
	margin: 8px 0;
	overflow: hidden;
	background: rgba(205, 233, 255, 0.12);
	border-radius: 999px;
}

.nt-pwdgen-entropy-bar-fill {
	width: 0%;
	height: 100%;
	background: var(--nt-tool-entropy-gradient);
	box-shadow: 0 0 12px rgba(57, 255, 20, 0.6);
	transition: width 0.18s ease-out;
}

.nt-pwdgen-entropy-info {
	color: var(--nt-tool-muted);
	font-size: 0.76rem;
}

.nt-pwdgen-entropy-info-label,
.nt-pwdgen-keynote {
	color: var(--nt-tool-soft);
	font-weight: 800;
}

.nt-pwdgen-list {
	display: grid;
	gap: 8px;
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
}

.nt-pwdgen-list li {
	margin: 0;
	padding: 10px;
	background: rgba(0, 0, 0, 0.36);
	border: 1px solid rgba(100, 216, 255, 0.08);
	border-radius: 7px;
}

.nt-pwdgen-list p {
	margin-bottom: 0;
}

.nt-pwdgen-target-volume input {
	width: 100%;
	accent-color: var(--nt-tool-green);
}

.nt-pwdgen-ttc-table {
	width: 100%;
	margin-top: 10px;
	border-collapse: collapse;
	font-size: 0.78rem;
}

.nt-pwdgen-ttc-table th,
.nt-pwdgen-ttc-table td {
	padding: 0.42rem 0.5rem;
	text-align: left;
	border-bottom: 1px solid rgba(57, 255, 20, 0.16);
}

.nt-pwdgen-ttc-table th {
	color: var(--nt-tool-soft);
}

.nt-pwdgen-ttc-table td {
	color: var(--nt-tool-muted);
}

.nt-pwdgen-ttc-row {
	position: relative;
	--nt-ttc-width: 0%;
}

.nt-pwdgen-ttc-row::before {
	position: absolute;
	left: 0.55rem;
	right: 0.55rem;
	bottom: 0.1rem;
	width: var(--nt-ttc-width);
	height: 3px;
	border-radius: 999px;
	content: "";
	opacity: 0.9;
}

.nt-pwdgen-ttc-row:nth-child(1)::before { background-color: var(--nt-tool-ttc-critical); }
.nt-pwdgen-ttc-row:nth-child(2)::before { background-color: var(--nt-tool-ttc-warning); }
.nt-pwdgen-ttc-row:nth-child(3)::before { background-color: var(--nt-tool-ttc-medium); }
.nt-pwdgen-ttc-row:nth-child(4)::before { background-color: var(--nt-tool-ttc-safe); }
.nt-pwdgen-ttc-row:nth-child(5)::before { background-color: var(--nt-tool-ttc-legacy); }

.nt-pwdgen-tooltips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: flex-start;
}

.nt-pwdgen-tooltips-intro,
.nt-pwdgen-warning {
	flex: 1 0 100%;
}

.nt-pwdgen-tooltip {
	display: none;
	flex: 1 0 100%;
	margin-top: 0;
	padding: 11px 12px;
	background: rgba(0, 0, 0, 0.38);
	border: 1px solid rgba(57, 255, 20, 0.2);
	border-radius: 7px;
}

.nt-pwdgen-tooltip.is-visible {
	display: block;
}

.nt-pwdgen-tooltip p {
	margin-top: 0;
}

.nt-pwdgen-tooltip a {
	color: var(--nt-tool-green);
	font-weight: 800;
}

.nt-pwdgen-warning {
	color: #ffd84a;
	font-size: 0.78rem;
}

.nt-pwdgen-model-card {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(260px, 0.62fr) minmax(0, 1.38fr);
	gap: 12px 18px;
	align-items: start;
}

.nt-pwdgen-model-card .nt-pwdgen-card-header,
.nt-pwdgen-model-card .nt-pwdgen-ttc-note,
.nt-pwdgen-model-card .nt-pwdgen-target-volume {
	grid-column: 1;
	margin: 0;
}

.nt-pwdgen-model-card .nt-pwdgen-ttc-table {
	grid-column: 2;
	grid-row: 1 / span 3;
	margin-top: 0;
}

.nt-pwdgen-model-card .nt-pwdgen-companion {
	display: none;
}

.nt-pwdgen-model-card .nt-pwdgen-tooltips {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 8px 10px;
	margin-top: 0;
	padding-top: 10px;
	border-top: 1px solid rgba(57, 255, 20, 0.16);
}

.nt-pwdgen-model-card .nt-pwdgen-tooltips-intro {
	flex: 0 0 auto;
	margin: 0;
	font-size: 0.74rem;
	font-weight: 800;
}

.nt-pwdgen-model-card .nt-pwdgen-btn {
	min-height: 29px;
	padding: 0.36rem 0.62rem;
	font-size: 0.76rem;
}

.nt-pwdgen-model-card .nt-pwdgen-tooltip {
	flex: 1 0 100%;
	padding: 8px 9px;
	font-size: 0.74rem;
	line-height: 1.35;
}

.nt-pwdgen-model-card .nt-pwdgen-tooltip p {
	margin-bottom: 6px;
}

.nt-pwdgen-model-card .nt-pwdgen-warning {
	flex: 1 1 240px;
	margin: 0 0 0 auto;
	font-size: 0.7rem;
	line-height: 1.32;
	text-align: right;
}

.nt-pwdgen-recommendations-card {
	grid-column: 1 / -1;
	display: block;
}

.nt-pwdgen-education-card {
	grid-column: 1 / -1;
	display: block;
}

.nt-pwdgen-recommendations-card .nt-pwdgen-card-header,
.nt-pwdgen-education-card .nt-pwdgen-card-header {
	margin-bottom: 10px;
}

.nt-pwdgen-recommendations-card .nt-pwdgen-card-eyebrow {
	color: #d8c36a;
}

.nt-pwdgen-recommendations-card .nt-pwdgen-title,
.nt-pwdgen-education-card .nt-pwdgen-title {
	color: #d8c36a;
}

.nt-pwdgen-recommendations-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.nt-pwdgen-recommendation-item {
	min-width: 0;
	padding: 13px 14px;
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(57, 255, 20, 0.18);
	border-radius: 7px;
}

.nt-pwdgen-recommendation-item strong {
	display: block;
	color: var(--nt-tool-text);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.35;
}

.nt-pwdgen-recommendation-item p {
	margin: 10px 0 0;
	color: #d7ecff;
	font-size: 0.92rem;
	line-height: 1.45;
}

.nt-pwdgen-education-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

.nt-pwdgen-education-grid details {
	min-width: 0;
	margin: 0;
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(57, 255, 20, 0.18);
	border-radius: 7px;
}

.nt-pwdgen-education-grid summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	min-height: 40px;
	padding: 12px 14px;
	color: #e0cf75;
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.25;
	list-style: none;
}

.nt-pwdgen-education-grid summary::-webkit-details-marker {
	display: none;
}

.nt-pwdgen-education-grid summary::after {
	color: var(--nt-tool-blue);
	content: "\25BE";
	font-size: 0.72rem;
	line-height: 1;
}

.nt-pwdgen-education-grid details[open] summary::after {
	transform: rotate(180deg);
}

.nt-pwdgen-education-grid .nt-pwdgen-list-text {
	margin: 0;
	padding: 0 14px 15px;
	color: #d7ecff;
	font-size: 1rem;
	line-height: 1.48;
}

.nt-pwdgen-recommendations-card .nt-pwdgen-keynote {
	display: block;
	font-size: 0.86rem;
	line-height: 1.28;
}

.nt-pwdgen-recommendations-card .nt-pwdgen-list-text {
	margin-top: 6px;
	font-size: 0.72rem;
	line-height: 1.32;
}

.nt-pwdgen-trust-strip {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 12px;
	color: #d8c36a;
	background: rgba(0, 0, 0, 0.3);
	border: 1px solid rgba(57, 255, 20, 0.22);
	border-radius: 8px;
	font-size: 0.78rem;
	font-weight: 800;
}

.nt-pwdgen-trust-strip span + span::before {
	margin-right: 12px;
	color: var(--nt-tool-blue);
	content: "\00B7";
}

@media (max-width: 1040px) {
	.nt-pwdgen-card-primary,
	.nt-pwdgen-model-card,
	.nt-pwdgen-recommendations-card {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nt-pwdgen-grid {
		grid-template-columns: 1fr;
	}

	.nt-pwdgen-model-card,
	.nt-pwdgen-recommendations-card {
		grid-column: 1;
	}

	.nt-pwdgen-card-primary .nt-pwdgen-charset-group,
	.nt-pwdgen-card-primary .nt-pwdgen-controls,
	.nt-pwdgen-card-primary .nt-pwdgen-status,
	.nt-pwdgen-card-primary .nt-pwdgen-entropy,
	.nt-pwdgen-model-card .nt-pwdgen-ttc-table,
	.nt-pwdgen-model-card .nt-pwdgen-companion,
	.nt-pwdgen-model-card .nt-pwdgen-tooltips {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.nt-pwdgen-recommendations-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.nt-pwdgen-education-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nt-pwdgen-card-primary .nt-pwdgen-entropy,
	.nt-pwdgen-model-card .nt-pwdgen-companion,
	.nt-pwdgen-model-card .nt-pwdgen-tooltips {
		padding-top: 14px;
		padding-left: 0;
		border-top: 1px solid rgba(57, 255, 20, 0.18);
		border-left: 0;
	}
}

@media (max-width: 760px) {
	.nt-pwdgen-wrapper {
		width: min(100%, calc(100vw - 20px));
		padding: 14px;
	}

	.nt-pwdgen-grid {
		grid-template-columns: 1fr;
	}

	.nt-pwdgen-card-primary,
	.nt-pwdgen-model-card,
	.nt-pwdgen-recommendations-card,
	.nt-pwdgen-education-card,
	.nt-pwdgen-recommendations-grid,
	.nt-pwdgen-education-grid {
		grid-template-columns: 1fr;
	}

	.nt-pwdgen-card-primary .nt-pwdgen-card-header,
	.nt-pwdgen-card-primary .nt-pwdgen-field-group,
	.nt-pwdgen-card-primary .nt-pwdgen-charset-group,
	.nt-pwdgen-card-primary .nt-pwdgen-controls,
	.nt-pwdgen-card-primary .nt-pwdgen-status,
	.nt-pwdgen-card-primary .nt-pwdgen-entropy,
	.nt-pwdgen-model-card .nt-pwdgen-card-header,
	.nt-pwdgen-model-card .nt-pwdgen-ttc-note,
	.nt-pwdgen-model-card .nt-pwdgen-target-volume,
	.nt-pwdgen-model-card .nt-pwdgen-ttc-table,
	.nt-pwdgen-model-card .nt-pwdgen-companion,
	.nt-pwdgen-model-card .nt-pwdgen-tooltips,
	.nt-pwdgen-recommendations-card .nt-pwdgen-card-header,
	.nt-pwdgen-recommendations-grid,
	.nt-pwdgen-education-grid,
	.nt-pwdgen-trust-strip {
		grid-column: 1;
		grid-row: auto;
	}

	.nt-pwdgen-model-card .nt-pwdgen-warning {
		flex-basis: 100%;
		margin-left: 0;
		text-align: left;
	}

	.nt-pwdgen-charset-grid {
		grid-template-columns: 1fr;
	}

	.nt-pwdgen-hero h2 {
		font-size: 2.3rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nt-pwdgen-wrapper *,
	.nt-pwdgen-wrapper *::before,
	.nt-pwdgen-wrapper *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}
