/* UncoverWP generators */
.uwp-gen {
	--g-accent: #1a7f5a; --g-accent-dk: #145f44; --g-accent-lt: #e8f5ef;
	--g-text: #1a1d23; --g-muted: #5f6672; --g-border: #e3e6ea;
	font-family: 'DM Sans', system-ui, sans-serif; color: var(--g-text);
	background: #fff; border-radius: 18px; padding: 1.4rem; text-align: left;
	box-shadow: 0 20px 50px rgba(0,0,0,.22);
}
.uwp-gen *, .uwp-gen *::before, .uwp-gen *::after { box-sizing: border-box; }
.uwp-gen label { font-size: .88rem; }
.uwp-gen__btn {
	border: 0; border-radius: 999px; background: var(--g-accent); color: #fff; cursor: pointer;
	font: inherit; font-weight: 600; font-size: .95rem; padding: .75rem 1.4rem; white-space: nowrap;
}
.uwp-gen__btn:hover { background: var(--g-accent-dk); }
.uwp-gen__btn:disabled { opacity: .5; cursor: default; }
.uwp-gen__btn--line { background: #fff; color: var(--g-accent); border: 2px solid var(--g-accent); }
.uwp-gen__btn--line:hover { background: var(--g-accent-lt); }
.uwp-gen__btn:focus-visible, .uwp-gen input:focus-visible, .uwp-gen select:focus-visible, .uwp-gen textarea:focus-visible { outline: 2px solid var(--g-accent); outline-offset: 2px; }

/* Slug generator */
.uwp-sg__input {
	width: 100%; font: inherit; font-size: 1.1rem; padding: 1rem 1.1rem;
	border: 1.5px solid var(--g-border); border-radius: 12px; color: var(--g-text);
}
.uwp-sg__input:focus { border-color: var(--g-accent); outline: none; }
.uwp-sg__opts { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; align-items: center; margin: .9rem 0 1.1rem; color: var(--g-muted); }
.uwp-sg__opts label { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.uwp-sg__opts select { font: inherit; padding: .25rem .4rem; border-radius: 6px; border: 1px solid var(--g-border); }
.uwp-sg__result { background: var(--g-accent-lt); border-radius: 12px; padding: 1rem 1.1rem; display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.uwp-sg__result-main { flex: 1; min-width: 0; }
.uwp-sg__slug { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1.15rem; font-weight: 600; color: var(--g-accent-dk); word-break: break-all; }
.uwp-sg__slug.is-empty { color: #9aa5a0; font-weight: 400; }
.uwp-sg__url { display: block; font-size: .85rem; color: var(--g-muted); margin-top: .2rem; word-break: break-all; }
.uwp-sg__count { display: block; font-size: .8rem; color: var(--g-muted); margin-top: .35rem; }
.uwp-sg__count.is-warn { color: #9a5b00; }
.uwp-sg__count.is-warn::after { content: '  (over 60 characters: consider shortening)'; }

/* htaccess generator */
.uwp-hg__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 1.25rem; }
.uwp-hg__group { border: 1px solid var(--g-border); border-radius: 12px; padding: .9rem 1rem; }
.uwp-hg__group + .uwp-hg__group { margin-top: .8rem; }
.uwp-hg__group legend { font-weight: 700; font-size: .9rem; padding: 0 .3rem; }
.uwp-hg__row { display: flex; gap: .55rem; align-items: flex-start; padding: .3rem 0; cursor: pointer; }
.uwp-hg__row input[type="checkbox"] { margin-top: .25rem; accent-color: var(--g-accent); }
.uwp-hg__row span small { display: block; color: var(--g-muted); font-size: .78rem; line-height: 1.4; }
.uwp-hg__field { display: block; margin-top: .4rem; }
.uwp-hg__field input, .uwp-hg__field select, .uwp-hg__field textarea {
	width: 100%; font: inherit; font-size: .9rem; padding: .55rem .7rem; margin-top: .25rem;
	border: 1px solid var(--g-border); border-radius: 8px; color: var(--g-text); background: #fff;
}
.uwp-hg__field textarea { min-height: 84px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82rem; }
.uwp-hg__out { display: flex; flex-direction: column; min-width: 0; }
.uwp-hg__code {
	flex: 1; margin: 0; min-height: 360px; max-height: 560px; overflow: auto;
	background: #0f1a14; color: #d8f5e6; border-radius: 12px; padding: 1rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; line-height: 1.55; white-space: pre;
}
.uwp-hg__actions { display: flex; gap: .6rem; margin-top: .8rem; flex-wrap: wrap; }
.uwp-hg__warn { font-size: .8rem; color: var(--g-muted); margin: .7rem 0 0; }

@media (max-width: 820px) {
	.uwp-hg__grid { grid-template-columns: 1fr; }
	.uwp-hg__code { min-height: 260px; }
}
@media (max-width: 600px) {
	.uwp-gen { padding: 1rem; }
	.uwp-sg__result .uwp-gen__btn { width: 100%; }
}
