:root {
	color-scheme: light dark;

	--clr-bg:              light-dark(#f2f3f6, #10121c);
	--clr-surface:         light-dark(#ffffff, #191c2a);
	--clr-surface-alt:     light-dark(#f7f8fa, #212538);
	--clr-border:          light-dark(#d8dce8, #2c3050);
	--clr-text:            light-dark(#1c1e2b, #dde0f0);
	--clr-text-muted:      light-dark(#6b7280, #8890b0);
	--clr-link:            light-dark(#6d28c9, #b795ff);
	--clr-link-hover:      light-dark(#581fa6, #cdb2ff);
	--clr-on-link:         light-dark(#ffffff, #1c1233);

	--clr-header-bg:       light-dark(#14172a, #0a0c14);
	--clr-header-text:     light-dark(#e6e9f4, #dde0f0);
	--clr-header-link:     light-dark(#b8c0d8, #9098b8);
	--clr-header-link-hover: light-dark(#ffffff, #dde0f0);

	--clr-danger:          light-dark(#b03328, #e07070);
	--clr-danger-bg:       light-dark(#fdf2f1, #2a1212);
	--clr-danger-border:   light-dark(#f5c4bf, #6a2020);
	--clr-warning:         light-dark(#b85c10, #f0a040);
	--clr-warning-bg:      light-dark(#fef7ec, #221608);
	--clr-warning-border:  light-dark(#f5c88a, #604010);
	--clr-success:         light-dark(#1e7e44, #60c87a);
	--clr-success-bg:      light-dark(#f0faf4, #0e2018);
	--clr-success-border:  light-dark(#a3d9b4, #20583a);

	--clr-badge-pending:   light-dark(#c07810, #f0a030);
	--clr-badge-pending-bg: light-dark(#fff4d6, #2a1e04);
	--clr-badge-detected:  light-dark(#a82020, #e07070);
	--clr-badge-detected-bg: light-dark(#ffe8e8, #2a0808);
	--clr-badge-mod-author-bg: light-dark(#6d28c9, #4c2a86);

	--clr-notification:    light-dark(#c0392b, #e07070);
	--clr-star:            light-dark(#c9920a, #e8b030);

	/* Decorative heading-accent colours for the mod page's section markers and chart backgrounds. */
	--clr-accent-1: light-dark(#b45309, #cf7920);
	--clr-accent-2: light-dark(#0891b2, #199fba);
	--clr-accent-3: light-dark(#be185d, #e05590);
	--clr-accent-4: light-dark(#1d4ed8, #4285e8);
	--clr-accent-5: light-dark(#6d28c9, #9a66f2);
	--clr-accent-6: light-dark(#15803d, #2fa14e);
	--clr-accent-7: light-dark(#b91c1c, #e05a52);
	--clr-accent-8: light-dark(#0d9488, #109e8f);

	--radius-small: 4px;
	--radius-large: 8px;
	--shadow-sm: 0 1px 3px light-dark(rgba(0,0,0,.08), rgba(0,0,0,.35));
	--shadow-md: 0 2px 8px light-dark(rgba(0,0,0,.12), rgba(0,0,0,.5));

	--content-width: 1000px;
	--header-height: 48px;
}

html.force-dark  { color-scheme: dark; }
html.force-light { color-scheme: light; }

/* The one card look used across the site (hero, forms, list rows, panels…) — apply this class
   alongside a component's own class rather than re-deriving the same four declarations. */
.surface-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-large); box-shadow: var(--shadow-sm); }
.subtitle-info { font-size: 0.82rem; color: var(--clr-text-muted); margin-bottom: 0.4rem; background: var(--clr-bg); }
/* The header/cell/hover treatment shared by every data table on the site (thread list, user
   list, tag requests, audit log). Table-specific rules (column widths, cell content) stay on
   the table's own class. */
.data-table { width: 100%; border-collapse: collapse; background: var(--clr-surface); border-radius: var(--radius-large); overflow: hidden; box-shadow: var(--shadow-sm); }
.data-table th { text-align: left; padding: 0.5rem 0.75rem; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--clr-text-muted); background: var(--clr-surface-alt); border-bottom: 1px solid var(--clr-border); }
.data-table td { padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--clr-border); vertical-align: middle; }
.data-table tr:last-child td { border-bottom: none; }
.data-table tr:hover td { background: var(--clr-surface-alt); }


:where(:not(ul):not(ol)), *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }

html { background: var(--clr-bg); }

body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 15px; line-height: 1.6; background: transparent; isolation: isolate; color: var(--clr-text); min-height: 100vh; }

#hex-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; height: 100lvh; z-index: -1; pointer-events: none; display: block; }

a { color: var(--clr-link); text-decoration: none; }
a:hover { color: var(--clr-link-hover); text-decoration: underline; }

h1 { font-size: 1.6rem; font-weight: 700; margin-bottom: 1rem; }
h2 { font-size: 1.2rem; font-weight: 600; margin: 1.25rem 0 0.6rem; }
h3 { font-size: 1rem; font-weight: 600; margin: 1rem 0 0.5rem; }

p { margin: 0.5rem 0; }

hr { border: none; border-top: 1px solid var(--clr-border); margin: 1rem 0; }

code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; font-size: 0.875em; background: var(--clr-surface-alt); border: 1px solid var(--clr-border); border-radius: var(--radius-small); padding: 0.1em 0.35em; color: var(--clr-text); word-break: break-word; }

blockquote { border-left: 3px solid var(--clr-border); padding-left: 0.75rem; color: var(--clr-text-muted); margin: 0.5rem 0; }

[hidden] { display: none !important; }

input[type=text],
input[type=url],
input[type=search],
input[type=file],
select,
textarea { font-family: inherit; font-size: inherit; color: var(--clr-text); background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-small); padding: 0.35rem 0.6rem; outline: none; transition: border-color 0.15s; }
input[type=text]:focus,
input[type=url]:focus,
input[type=search]:focus,
select:focus,
textarea:focus { border-color: var(--clr-link); box-shadow: 0 0 0 2px color-mix(in srgb, var(--clr-link) 20%, transparent); }
input[type=file] { padding: 0.25rem; }

textarea { resize: vertical; width: 100%; }

label { display: inline-flex; align-items: center; gap: 0.3rem; cursor: pointer; }

button { font-family: inherit; font-size: inherit; cursor: pointer; background: var(--clr-surface-alt); color: var(--clr-text); border: 1px solid var(--clr-border); border-radius: var(--radius-small); padding: 0.35rem 0.8rem; transition: background 0.15s, border-color 0.15s; }
button:hover { background: var(--clr-border); }
button[type=submit]:not(.destructive-action):not(.positive-action):not(.tag-remove-btn):not(.moderation-toggle):not(.no-button-background) { background: var(--clr-link); color: var(--clr-on-link); border-color: var(--clr-link); }
button[type=submit]:not(.destructive-action):not(.positive-action):not(.tag-remove-btn):not(.moderation-toggle):not(.no-button-background):hover { background: var(--clr-link-hover); border-color: var(--clr-link-hover); }

/* Links acting as a primary action, styled to match button[type=submit]. */
a.button { display: inline-block; cursor: pointer; background: var(--clr-link); color: var(--clr-on-link); border: 1px solid var(--clr-link); border-radius: var(--radius-small); padding: 0.35rem 0.8rem; text-decoration: none; transition: background 0.15s, border-color 0.15s; }
a.button:hover { background: var(--clr-link-hover); border-color: var(--clr-link-hover); text-decoration: none; }

/* Discord feed: the add-a-channel row wraps instead of squeezing four controls onto one line. */

button.destructive-action { color: var(--clr-danger); border-color: var(--clr-danger-border); }
button.destructive-action:hover { background: var(--clr-danger-bg); }

button.positive-action { color: var(--clr-success); border-color: var(--clr-success-border); }
button.positive-action:hover { background: var(--clr-success-bg); }

.error { color: var(--clr-danger); background: var(--clr-danger-bg); border: 1px solid var(--clr-danger-border); border-radius: var(--radius-small); padding: 0.5rem 0.75rem; }
.success-message { color: var(--clr-success); background: var(--clr-success-bg); border: 1px solid var(--clr-success-border); border-radius: var(--radius-small); padding: 0.5rem 0.75rem; }

.status-badge { display: inline-block; font-size: 0.75em; font-weight: 600; padding: 0.1em 0.45em; border-radius: var(--radius-small); vertical-align: middle; line-height: 1.5; }
.status-badge--vt-pending { background: var(--clr-badge-pending-bg); color: var(--clr-badge-pending); border: 1px solid var(--clr-badge-pending); }
.status-badge--vt-detected { background: var(--clr-badge-detected-bg); color: var(--clr-badge-detected); border: 1px solid var(--clr-badge-detected); }
.status-badge--vt-clean { background: var(--clr-success-bg); color: var(--clr-success); border: 1px solid var(--clr-success-border); }
.status-badge--upload-missing { background: var(--clr-badge-pending-bg); color: var(--clr-badge-pending); border: 1px solid var(--clr-badge-pending); }
.status-badge--latest { background: color-mix(in srgb, var(--clr-link) 15%, transparent); color: var(--clr-link); border: 1px solid var(--clr-link); }
/* Badges that link to the VirusTotal report keep badge colors, not link colors */
a.status-badge { text-decoration: none; }
a.status-badge:hover { text-decoration: underline; }
/* Moderator VT-verdict override button, inline with the badges */
.vt-override-form { display: inline-block; vertical-align: middle; }
.vt-override-form button { font-size: 0.7em; padding: 0.1em 0.45em; }

.mod-author-badge { display: inline-block; background: var(--clr-badge-mod-author-bg); color: #fff; font-size: 0.72em; font-weight: 700; padding: 0.1em 0.45em; border-radius: var(--radius-small); vertical-align: middle; }
.author-rank-icon { width: 1.3em; height: 1.3em; vertical-align: middle; margin-left: 0.3em; }

/* Section heading band: readable over the animated page background — shared by several
   non-admin pages too (see admin.css for the moderation-only tag-request rules). */
.section-heading { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; padding: 0.6rem 1rem; font-size: 1rem; font-weight: 700; background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-large); box-shadow: var(--shadow-sm); }

.pagination-nav { display: flex; gap: 1rem; margin-top: 1rem; align-items: baseline; }
.pagination-info { color: var(--clr-text-muted); font-size: 0.85rem; }

.notice { border-radius: var(--radius-small); padding: 0.75rem 1rem; margin: 0 0 1rem; font-size: 0.9rem; line-height: 1.5; }
.notice-warning { background: var(--clr-warning-bg); border: 1px solid var(--clr-warning-border); color: var(--clr-warning); }
.notice-info { background: var(--clr-surface-alt); border: 1px solid var(--clr-border); color: var(--clr-text-muted); }
.notice-success { background: var(--clr-success-bg); border: 1px solid var(--clr-success-border); color: var(--clr-success); }

.page-card { padding: 1.25rem 1.5rem; margin-bottom: 1rem; }
.page-card h2 { font-size: 1rem; font-weight: 700; margin-bottom: 0.9rem; padding-bottom: 0.6rem; border-bottom: 1px solid var(--clr-border); color: var(--clr-text); }
.page-card.page-card--danger { border-color: var(--clr-danger-border); background: var(--clr-danger-bg); }
.page-card.page-card--danger h2 { border-color: var(--clr-danger-border); color: var(--clr-danger); }

.status-pill { display: inline-block; padding: 0.12rem 0.6rem; border-radius: 999px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.status-pill--approved { color: var(--clr-success); background: var(--clr-success-bg); border: 1px solid var(--clr-success-border); }
.status-pill--rejected { color: var(--clr-danger); background: var(--clr-danger-bg); border: 1px solid var(--clr-danger-border); }
.status-pill--pending { color: var(--clr-warning); background: var(--clr-warning-bg); border: 1px solid var(--clr-warning-border); }

/* Tables that restack into cards on phones: each row becomes a bordered card, each cell a
 * label/value pair from its data-label attribute. Opt-in via the class — other wide tables
 * keep the site-wide horizontal-scroll fallback. */
@media (max-width: 768px) {
	table.stacked-mobile { display: block; background: none; box-shadow: none; border-radius: 0; overflow: visible; }
	table.stacked-mobile thead { display: none; }
	table.stacked-mobile tbody { display: flex; flex-direction: column; gap: 0.6rem; }
	table.stacked-mobile tr { display: block; background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-large); padding: 0.6rem 0.8rem; box-shadow: var(--shadow-sm); }
	table.stacked-mobile td { display: block; border: none; padding: 0.3rem 0; }
	table.stacked-mobile td:empty { display: none; }
	table.stacked-mobile td[data-label]::before { content: attr(data-label); display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--clr-text-muted); margin-bottom: 0.15rem; }
	table.stacked-mobile .request-slug-input { flex: 1; min-width: 8rem; }
	table.stacked-mobile .mod-reject-reason { flex: 1; min-width: 8rem; width: auto; }
}

.condensed-checkbox-line { display: flex; align-items: center; gap: 0.45rem; font-weight: 400; cursor: pointer; }
.condensed-checkbox-line input { flex-shrink: 0; }

.settings-form { display: grid; grid-template-columns: max-content 1fr; align-items: center; gap: 0.5rem 1rem; margin-top: 0.75rem; }
.settings-form label { font-weight: 500; white-space: nowrap; display: inline; }
.settings-form input { max-width: 200px; }
.settings-form label small { font-weight: 400; color: var(--clr-text-muted); display: block; }
.settings-form input[type="hidden"] { display: none; }
.settings-form .settings-form-actions { grid-column: 2; margin-top: 0.25rem; }
.inline-form { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem 0.6rem; margin-top: 0.75rem; }
.inline-form label { font-weight: 500; }
.inline-form input[type="hidden"] { display: none; }
.simple-form { margin-top: 0.75rem; }
.simple-form label { display: block; font-weight: 500; margin-bottom: 0.3rem; }
.simple-form input { display: block; margin-bottom: 0.5rem; }
.simple-form p { margin: 0.4rem 0 0.6rem; font-size: 0.85rem; color: var(--clr-text-muted); }
.simple-form input[type="hidden"] { display: none; }

.generic-display-table { border-collapse: collapse; margin-top: 0.5rem; margin-bottom: 1.5rem; width: 100%; }
.generic-display-table th,
.generic-display-table td { text-align: left; padding: 0.45rem 0.75rem; border-bottom: 1px solid var(--clr-border); vertical-align: middle; }
.generic-display-table th { font-weight: 600; color: var(--clr-text-muted); font-size: 0.85rem; }

.page-card--highlight { border-left: 3px solid var(--clr-link); }

.dialog-overlay { border: 1px solid color-mix(in srgb, var(--clr-border) 60%, transparent); border-radius: 12px; padding: 0; width: min(480px, 96vw); flex-direction: column; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.1); background: var(--clr-surface); color: var(--clr-text); margin: auto; }
.dialog-overlay[open] { display: flex; }
.dialog-overlay::backdrop { background: rgba(0, 0, 0, 0.45); backdrop-filter: blur(2px); }
.dialog-overlay-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem 0.85rem; border-bottom: 1px solid var(--clr-border); flex-shrink: 0; }
.dialog-overlay-title { font-weight: 600; font-size: 1rem; }
.dialog-overlay-mode { display: flex; gap: 0.15rem; background: var(--clr-bg); border: 1px solid var(--clr-border); border-radius: var(--radius-small); padding: 0.2rem; }
.dialog-overlay-mode label { display: flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.55rem; border-radius: calc(var(--radius-small) - 1px); font-size: 0.8rem; cursor: pointer; color: var(--clr-text-muted); transition: background 0.1s, color 0.1s; }
.dialog-overlay-mode label:has(input:checked) { background: var(--clr-surface); color: var(--clr-text); box-shadow: var(--shadow-sm); }
.dialog-overlay-mode input[type=radio] { display: none; }
.dialog-overlay-search { margin: 0.85rem 1.25rem 0.5rem; padding: 0.45rem 0.75rem; border: 1px solid var(--clr-border); border-radius: var(--radius-small); background: var(--clr-bg); color: var(--clr-text); font-size: 0.875rem; width: calc(100% - 2.5rem); box-sizing: border-box; flex-shrink: 0; }
.dialog-overlay-search:focus { outline: none; border-color: var(--clr-link); box-shadow: 0 0 0 2px color-mix(in srgb, var(--clr-link) 20%, transparent); }
.dialog-overlay-list { overflow-y: auto; flex: 1; padding: 0.5rem 1.25rem 0.75rem; display: flex; flex-wrap: wrap; gap: 0.4rem; align-content: flex-start; }
.dialog-overlay-item { display: contents; }
.dialog-overlay-item input[type=checkbox] { display: none; }
.dialog-overlay-item input[type=checkbox]:checked + .tag { background: var(--clr-link); color: var(--clr-on-link); border-color: var(--clr-link); }
/* Tri-state items (index page tag filter) */
.dialog-overlay-item[data-state] { cursor: pointer; }
.dialog-overlay-item[data-state="included"] .tag { background: var(--clr-link); color: var(--clr-on-link); border-color: var(--clr-link); }
.dialog-overlay-item[data-state="excluded"] .tag { background: color-mix(in srgb, var(--clr-danger) 10%, var(--clr-surface-alt)); color: var(--clr-danger); border-color: color-mix(in srgb, var(--clr-danger) 35%, var(--clr-border)); text-decoration: line-through; }
.dialog-overlay-footer { display: flex; justify-content: flex-end; align-items: center; gap: 0.6rem; padding: 0.85rem 1.25rem; border-top: 1px solid var(--clr-border); flex-shrink: 0; background: var(--clr-surface-alt); border-radius: 0 0 12px 12px; }
.dialog-overlay-body { padding: 1rem 1.25rem 0.75rem; }
.dialog-overlay-form input[type=url] { width: 100%; box-sizing: border-box; }
.dialog-overlay-hint { font-size: 0.8rem; color: var(--clr-text-muted); margin-top: 0.5rem; }
.dialog-overlay > .dialog-overlay-hint { padding: 0 1.25rem; }

/* Contact forms */
.contact-form { display: flex; flex-direction: column; gap: 0.75rem; }
/* Standalone contact page: card the form (mod-page embeds already sit on a surface) */
main > .contact-form { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-large); padding: 1.25rem 1.5rem; box-shadow: var(--shadow-sm); }
.contact-form label { flex-direction: column; align-items: flex-start; gap: 0.25rem; width: 100%; }
.contact-form input[type=text],
.contact-form select { width: 100%; }

.message-route-badge { display: inline-block; background: #6f42c1; color: #fff; font-size: 0.75em; font-weight: 600; padding: 0.1em 0.45em; border-radius: var(--radius-small); }

.mod-send-message { margin: 1rem 0; }
.mod-send-message > summary { cursor: pointer; font-weight: 600; margin-bottom: 0.5rem; }
.mod-send-message .contact-form { margin-top: 0.5rem; }

.contact-message { padding: 0.9rem 1rem; margin: 0.6rem 0; }
.contact-message--unread { border-color: var(--clr-link); }
.contact-message--unread .contact-message-subject { font-weight: 700; }
.contact-message--handled { border-color: var(--clr-border); }

.thread-status-badge { display: inline-block; font-size: 0.7rem; font-weight: 600; padding: 0.15em 0.55em; border-radius: 999px; vertical-align: middle; text-transform: uppercase; letter-spacing: 0.04em; }
.thread-status-badge--acknowledged { background: color-mix(in srgb, #3b82f6 15%, transparent); color: #3b82f6; border: 1px solid color-mix(in srgb, #3b82f6 35%, transparent); }
.thread-status-badge--done { background: var(--clr-success-bg); color: var(--clr-success); border: 1px solid var(--clr-success-border); }
.thread-status-badge--wont-do { background: var(--clr-surface-alt); color: var(--clr-text-muted); border: 1px solid var(--clr-border); }
.thread-opening-post--resolved { opacity: 0.75; }

.generic-search-form { display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem; }

.danger-form { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.danger-form label { font-size: 0.82rem; }
.danger-form button { font-size: 0.82rem; padding: 0.2rem 0.5rem; }

.notif-table { border-collapse: collapse; margin-top: 0.25rem; }
.notif-table th { font-weight: 600; padding: 0.2rem 0.75rem 0.4rem; text-align: center; }
.notif-table th:first-child { text-align: left; }
.notif-table td { padding: 0.25rem 0.75rem; vertical-align: middle; }
.notif-table td:not(:first-child) { text-align: center; }

.scheme-toggle { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.scheme-btn { display: flex; align-items: center; gap: 0.45rem; padding: 0.35rem 0.85rem; background: var(--clr-surface-alt); border: 1px solid var(--clr-border); border-radius: var(--radius-small); color: var(--clr-text-muted); cursor: pointer; font-size: 0.875rem; transition: color 0.1s, border-color 0.1s, background 0.1s; }
.scheme-btn:hover { color: var(--clr-text); border-color: var(--clr-link); }
.scheme-btn--active { color: var(--clr-link); border-color: var(--clr-link); background: color-mix(in srgb, var(--clr-link) 10%, var(--clr-surface)); }
.scheme-btn svg { width: 1rem; height: 1rem; flex-shrink: 0; }

@media (max-width: 768px) {
	main { padding: 1rem 0.75rem 2px; }

	h1 { font-size: 1.35rem; overflow-wrap: anywhere; }

	/* 16px inputs prevent iOS zoom-on-focus */
	input[type=text],
	input[type=url],
	input[type=search],
	input[type=file],
	select,
	textarea { font-size: 16px; }

	/* clamp inputs with inline widths (e.g. width:20rem) to the viewport */
	input[type=text],
	input[type=url],
	input[type=search] { max-width: 100%; }

	/* wide tables scroll inside their own box instead of stretching the page */
	.user-list,
	.audit-log,
	.tag-request-list,
	.notif-table,
	.generic-display-table,
	.points-ranks-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

	.mod-title-row { gap: 0.35rem 0.5rem; }

	/* Actions collapse to: Download + Install side by side (equal width, easy tap
	   targets), then the reference-link line drops to its own row below instead of
	   wrapping into the buttons — mixing button chrome and dot-separated text in one
	   wrapping line is what made this look messy on narrow screens. */
	.mod-actions { gap: 0.6rem; }
	.mod-actions a.mod-download-btn { flex: 1 1 calc(50% - 0.3rem); justify-content: center; }
	.mod-action-links { flex-basis: 100%; row-gap: 0.5rem; font-size: 0.9rem; }

	/* search / filter bar stacks */
	.mod-search-bar { flex-direction: column; align-items: stretch; }
	.mod-search-form { padding: 0.6rem 0.75rem; }
	.mod-search-form input[type=search] { flex-basis: 100%; }
	.submit-mod-btn { justify-content: center; }

	.sort-bar { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.sort-bar-label,
	.sort-bar-option { white-space: nowrap; }

	/* active-filter summary drops below the tabs, left-aligned */
	.tabs-filters { margin-left: 0; flex-basis: 100%; }

	/* settings form collapses to one column */
	.settings-form { grid-template-columns: 1fr; }
	.settings-form label { white-space: normal; }
	.settings-form input { max-width: 100%; }
	.settings-form .settings-form-actions { grid-column: 1; }

	/* post controls drop below the author line instead of squeezing right */
	.post-controls { margin-left: 0; width: 100%; }

	.mod-readme { padding: 0.9rem; }
	.readme-editor { min-height: 320px; }

	.upload-dropzone { min-height: 150px; padding: 1.25rem; }

	#lightbox-prev, #lightbox-next { font-size: 2.6rem; padding: 0 0.75rem; }
}

@media (pointer: coarse) {
	button:not(.tag-remove-btn):not(.star-btn):not(.no-button-background):not(.gallery-delete-btn):not(.source-url-edit-btn) { min-height: 40px; }
	.mod-cog-menu > summary { width: 2.25rem; height: 2.25rem; }
	/* no hover on touch — keep gallery delete buttons visible */
	.gallery-item .gallery-delete-btn { display: flex; }
}

/* Readable by screen readers and crawlers, takes no space on the page. */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
