.admin {
	padding: 4px;
	border-radius: 4px;
	background: green;
	margin: 6px;
	width: 200px;
	display: inline-block;
}
.admin.protected {
	background: red;
}
.admin INPUT[type="submit"] {
	width: 100%;
}
.admin.protected INPUT[type="submit"] {
	width: 90%;
}


.bbcode {
	overflow-wrap: anywhere;
}
.bbcode BLOCKQUOTE {
	border: 1px solid black;
	padding: 8px;
	background: #DDD;
}
.bbcode .anchor A.alink {
	visibility: hidden;
}
.bbcode .anchor:hover A.alink {
	visibility: visible;
}

.comment {
	text-align: left;
	position: relative;
	overflow-wrap: anywhere;
}
.comment IMG {
	max-width: 100%;
}
.comment .info {
	visibility: hidden;
	text-align: center;
	padding: var(--block-padding);
	background: var(--block);
	border: 1px solid var(--block-border);
	position: absolute;
	top: 0;
	left: -180px;
	width: 180px;
	z-index: 1;
	box-shadow: 0 0 4px #000;
	border-radius: 4px;
}
.comment:hover .info {
	visibility: visible;
}

.comment_add INPUT:not([type="checkbox"]):not([type="radio"]),
.comment_add TEXTAREA,
.comment_add BUTTON,
.comment_add SELECT {
	width: 100%;
}

#comment-list-recent .more {
	display: block;
	padding-top: 8px;
}
.comment_big_list {
	display: flex;
	gap: 1em;
}
.comment_big_list .thumb {
	flex: 0;
}
.comment_big_list .comment_list {
	flex: 1;
	border-left: 1px solid var(--block-border);
}
.comment_big_list .comment {
	margin-left: 0;
}

/* checkbox, title, doc link */
.ext-list TD:nth-child(1) {
    width: 1em;
}
.ext-list TD:nth-child(2) {
    width: 12em;
}
.ext-list TD:nth-child(3) {
    width: 1em;
}

#handle_pixel_media IMG {
    max-width: 100%;
}

.command_example {
	margin: 12pt;
	padding-left: 16pt;
}

.command_example code {
    padding:4pt;
    border: dashed 2px black;
    background: inherit;
}

.command_example p {
    padding-left: 16pt;
}

@media (min-width: 750px) {
    .command_example code {
        display: table-cell;
        width: 256px;
    }

    .command_example p {
        display: table-cell;
    }
}

SECTION#image-list {
	box-shadow: none;
}
SECTION#image-list .blockbody {
	background: none;
	border: none;
	padding: 0px;
	text-align: left;
}
.shm-image-list {
	display: grid;
	grid-template-columns: repeat( auto-fill, calc(var(--thumb-width) + 42px) );
	place-items: center;
}
.shm-image-list .thumb {
	margin-bottom: 8px;
}

.setupblocks {
	column-width: 400px;
	column-gap: 1em;
	max-width: 1200px;
	margin: auto;
}
.setupblocks > .setupblock:first-of-type { margin-top: 0; }

.setupblock {
	break-inside: avoid;
	text-align: center;
}
.setupblock TEXTAREA {
	width: 100%;
	font-size: 0.75rem;
	resize: vertical;
}
.setupblock SELECT[multiple] {
	width: 100%;
}

.advanced_settings INPUT {
	width: 100%;
}

#Setupmain {
	box-shadow: none;
}
#Setupmain>.blockbody {
	background: none;
	border: none;
	margin: 0;
	padding: 0;
}
.setupblock .form {
	width: 100%;
}
.setupblock .form TH {
	font-weight: normal;
}
.setupblock .advanced {
    color: var(--danger-color);
    background: var(--danger-background);
}
.setupsubmit {
	margin-top: 1em;
	padding: 1em;
	width: 100%;
}

:root {
	--added-background: lightgreen;
	--removed-background: lightcoral;

	--flash-color: #882;
	--flash-border: #660;
	--blink-base-color: #FF70;
	--blink-blink-color: #FF7F;
}

@media (prefers-color-scheme: dark) {
	:root {
		--added-background: green;
		--removed-background: coral;
	}
}

INPUT, TEXTAREA, SELECT, BUTTON {
	box-sizing: border-box;
	font-size: 1em;
}

TABLE.form {width: 300px;}
TABLE.zebra {width: 100%;}

TABLE.form TD, TABLE.form TH {vertical-align: middle;}
TABLE.form TBODY TR TD {text-align: left;}
TABLE.form TBODY TR TH {text-align: right; padding-right: 4px; width: 1%; white-space: nowrap;}
TABLE.form TBODY TR.header TD,
TABLE.form TBODY TR.header TH {text-align: center; width: auto;}
TABLE.form TD + TH {padding-left: 8px;}
TABLE.form INPUT:not([type="checkbox"]):not([type="radio"]),
TABLE.form SELECT,
TABLE.form TEXTAREA,
TABLE.form BUTTON {width: 100%;}

H1, H2, H3 {
    overflow-wrap: anywhere;
}

*[onclick],
H3[class~="shm-toggler"] {
    cursor: pointer;
}

@keyframes blink {
    0% {background-color: var(--blink-base-color);}
    25% {background-color: var(--blink-blink-color);}
    50% {background-color: var(--blink-base-color);}
    75% {background-color: var(--blink-blink-color);}
    100% {background-color: var(--blink-base-color);}
}
.blink {
    animation: blink 2s linear 1;
}

#flash {
    color: #444;
    background-color: var(--flash-color);
    margin-bottom: 1rem;
    border-radius: var(--border-radius);
    border: 1px solid var(--flash-border);
}
#flash B {
    display: block;
    padding: 8px;
    border-radius: var(--border-radius);
}

.tag {
    overflow-wrap: anywhere;
}

.prose {
    text-align: left;
}
.prose P:first-child {
    margin-top: 0;
}
.prose P:last-child {
    margin-bottom: 0;
}

TABLE#large_upload_form.form {
	width: 100%;
}

.mini_upload INPUT:not([type="checkbox"]):not([type="radio"]),
.mini_upload TEXTAREA,
.mini_upload BUTTON,
.mini_upload SELECT {
	width: 100%;
}

TABLE.form.image_info {
    width: 550px;
    max-width: 100%;
}

.image_info .edit {
    display: block;
}
.image_info .view {
    display: none;
}

.image_info.infomode-view .edit {
    display: none;
}
.image_info.infomode-view .view {
    display: block;
}

.image_info TEXTAREA {
    min-width: 100%;
    min-height: 3rem;
}
.image_info .image-info-sidebar-box {
    vertical-align: top;
}

.post_controls FORM {
    margin-bottom: 0.75em;
}
.post_controls FORM:last-child {
    margin-bottom: 0;
}

.autocomplete_completions {
    position: absolute;
    z-index: 1000;
    border: 1px solid #ccc;
    color: #000;
    background-color: #fff;
    padding: 5px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 1em;
    white-space: nowrap;
    overflow: hidden;
    text-align: left;
}
.autocomplete_completions LI {
    padding: 0.15em;
}
.autocomplete_completions .selected {
    background-color: #ccc;
    outline: none;
}

/* Badges on the user profile page.
 * Same colours as in /gallery/, so the look does not change. The gradients
 * are saturated enough to read against both the light and the dark theme,
 * which is why they are not built from the theme tokens.
 */

.admin-badge,
.moderator-badge {
	color: #fff;
	padding: 8px 15px;
	border-radius: 5px;
	display: inline-block;
	margin: 5px 0;
	font-size: 14px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.admin-badge {
	background: linear-gradient(135deg, #ec4899 0%, #8b5cf6 100%);
	font-weight: bold;
}

.moderator-badge {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

#handle_image_media IMG.fit-full {
    max-width: none;
    max-height: none;
}

#handle_image_media IMG.fit-width {
    max-width: 100%;
    max-height: none;
}

#handle_image_media IMG.fit-both {
    max-width: 100%;
    max-height: 95vh;
}

/* Adult Blur - fixed styles.
 *
 * Whatever depends on configuration (the tag, which goes inside the
 * selector, and the blur strength) is injected by main.php into the head
 * of every page. Only the unchanging parts live here.
 *
 * COLOURS: these use the theme's tokens, which `themes/default/style.css`
 * declares in `:root` and redefines under
 * `@media (prefers-color-scheme: dark)`. That way the notice follows the
 * system just like the rest of the page, without us duplicating a dark
 * palette here or listening for the change.
 *
 * The only exceptions are the colours that sit ON TOP of an image (the
 * thumbnail badge and the veil): there is no theme underneath those, there
 * is a drawing, so they have to read the same in both schemes and are
 * deliberately hardcoded.
 */

/* --- Badge on the thumbnail ----------------------------------------- */
/* The selector and the text come from main.php; this is how it looks. */
.shm-thumb-link::after {
	position: absolute;
	top: 5px;
	right: 5px;
	background-color: rgba(255, 0, 0, 0.85);
	color: #fff;
	padding: 3px 8px;
	border-radius: 3px;
	font-size: 11px;
	font-weight: bold;
	z-index: 10;
	pointer-events: none;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Faint veil showing that the image is blurred.
 * Deliberately without `content`: a pseudo-element with no content
 * generates no box, so these rules cost nothing on normal thumbnails.
 * The `content` is set by the injected rule, only on affected ones. */
.shm-thumb-link::before {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.1);
	pointer-events: none;
	z-index: 1;
	opacity: 0;
	transition: opacity .3s ease;
	border-radius: 12px;
}

/* --- Moderator control on the thumbnail ------------------------------ */
/* Hidden until the thumbnail is hovered, so listings stay clean. Added by
 * script.js, and only for moderators. Hardcoded colours again: this sits
 * on top of a drawing, not on the page background. */
.adult-toggle {
	position: absolute;
	left: 50%;
	bottom: 8px;
	transform: translateX(-50%);
	display: none;
	z-index: 40;
	padding: 8px 12px;
	border: 0;
	border-radius: 6px;
	background: rgba(0, 0, 0, 0.72);
	color: #fff;
	font: inherit;
	font-size: 13px;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
	transition: transform 140ms cubic-bezier(.2, .9, .2, 1), box-shadow 140ms ease;
}
.shm-thumb-link:hover .adult-toggle {
	display: inline-flex;
	transform: translateX(-50%) translateY(-6px) scale(1.02);
}
.adult-toggle:active {
	transform: translateX(-50%) translateY(-2px) scale(0.98);
}
.adult-toggle:disabled {
	opacity: 0.6;
	cursor: progress;
}
/* The button needs the link to be a positioning context. main.php already
 * sets that on adult posts; this covers the ones that are not marked yet,
 * which is precisely where "Mark as 18+" has to appear. */
.shm-thumb-link {
	position: relative;
}

/* --- Adult content notice ------------------------------------------- */
.adult-notice {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
}

/* Dims the page behind. Works in both schemes because it does not paint,
 * it only darkens. */
.adult-notice-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

.adult-notice-dialog {
	position: relative;
	z-index: 10000;
	max-width: 700px;
	margin: 1rem;
	background: var(--block);
	color: var(--text);
	border: 1px solid var(--block-border);
	border-radius: var(--border-radius);
	padding: calc(var(--block-padding) * 2.5);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}
.adult-notice-dialog h2 { margin-top: 0; }
.adult-notice-dialog p { margin-top: 6px; line-height: 1.4; }

/* --- Choice buttons ------------------------------------------------- */
.adult-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 12px;
}

/* On the profile page everything else is centred with text-align, which a
 * flex container ignores, so the buttons sat off to the left. */
.adult-profile-pref .adult-actions {
	justify-content: center;
}

.adult-btn {
	padding: 6px 12px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--block);
	color: var(--text);
	border: 1px solid var(--block-border);
	border-radius: calc(var(--border-radius) / 3);
	cursor: pointer;
	font: inherit;
	transition: transform 140ms ease, box-shadow 140ms ease,
	            background-color 120ms ease, border-color 120ms ease;
}

/* The CAUTIOUS option is the one that stands out, as in /gallery/: on an
 * age gate the big button must not be the one that reveals the content.
 *
 * Swapping text and background gives a primary button with guaranteed
 * contrast in both schemes without inventing a colour: dark on a light
 * page, light on a dark one. */
.adult-btn-safe {
	background: var(--text);
	color: var(--page);
	border-color: var(--text);
	font-weight: bold;
}

.adult-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
	border-color: var(--text);
}
.adult-btn:active {
	transform: translateY(0) scale(0.99);
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}
.adult-btn:focus-visible {
	outline: 3px solid var(--link-default);
	outline-offset: 2px;
}

/* Marks the option that is currently in effect. */
.adult-btn-current {
	box-shadow: inset 0 0 0 2px var(--link-default);
}

/* Hardcoded red: it is a warning, and it matches the badge painted over
 * the thumbnails, so it must look the same in both schemes. */
.adult-btn-badge {
	display: inline-block;
	background: #d9534f;
	color: #fff;
	border-radius: 3px;
	padding: 0 6px;
	line-height: 18px;
	font-weight: 700;
	font-size: 0.85em;
}

#reportedimage .reason {
	max-width: 30em;
	overflow-wrap: anywhere;
}
#reportedimage .formstretch INPUT {
	width: 100%;
}

:root {
	color-scheme: light dark;

	--page: #EEE;
	--text: #000;
	--link-default: #0000EE;
	--link-visited: #551A8B;

	--title: #BBB;
	--title-border: #AAA;

	--header: #CCC;
	--header-border: #BBB;

	--block: #DDD;
	--block-border: #CCC;

	--danger-color: #000;
	--danger-background: #FAA;

	--zebra-border: #CCC;
	--zebra-header: #DDD;
	--zebra-odd: #EFEFEF;
	--zebra-even: #E0E0E0;

	--border-radius: 0.75rem;
	--block-padding: 0.5rem;
}

@media (prefers-color-scheme: dark) {
	:root {
		--page: #222;
		--text: #CCC;
		--link-default: #BBF;
		--link-visited: #EAF;

		--title: #333;
		--title-border: #555;

		--header: #444;
		--header-border: #666;

		--block: #555;
		--block-border: #777;

		--danger-color: #CCC;
		--danger-background: #955;

		--zebra-border: #777;
		--zebra-header: #444;
		--zebra-odd: #555;
		--zebra-even: #666;
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                  things common to all pages                    *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
:root {
	font-size: 14px;
	font-family: sans-serif;
}

* {
    box-sizing: border-box;
}

H1, H2, H3 {
	margin: 0;
	text-align: center;
	/* not sure why top-padding appears visually larger than other padding in headers...
	reducing top-padding to compensate */
	padding: calc(var(--block-padding) * 0.5) var(--block-padding) var(--block-padding) var(--block-padding);
}

BODY {
	background: var(--page);
	color: var(--text);
	margin: 1rem;
}
BODY.layout-grid {
	display: grid;
	grid-template-columns: 15rem auto;
	grid-gap: 1rem;
}

HEADER {
	grid-column: 1 / 3;
	grid-row: 1;
}
HEADER H1 {
	max-height: 3rem;
	overflow: hidden;
	background: var(--title);
	border: 1px solid var(--title-border);
	border-radius: var(--border-radius);
}
HEADER H1 A {
	color: var(--text);
}

SECTION {
	margin-bottom: 1rem;
	border-radius: var(--border-radius);
}
SECTION:last-child {
	margin-bottom: 0;
}
SECTION>H3 {
	background: var(--header);
	border: 1px solid var(--header-border);
}
SECTION>:first-child {
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius);
}
SECTION>:last-child {
	border-bottom-left-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}
SECTION>.blockbody {
	background: var(--block);
	border: 1px solid var(--block-border);
	border-top: none;
	padding: var(--block-padding);
}
H1, SECTION, FOOTER {
	box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}
FOOTER {
	grid-column: 1 / 3;
	grid-row: 3;
	clear: both;
	font-size: 0.7rem;
	text-align: center;
	background: var(--title);
	border: 1px solid var(--title-border);
	border-radius: var(--border-radius);
	padding: var(--block-padding);
	margin-top: 0;
}

THEAD {
	font-weight: bold;
}
TD {
	vertical-align: top;
	text-align: center;
}

TABLE.zebra {border-spacing: 0; border: 2px solid var(--zebra-border);}
TABLE.zebra TD, TABLE.zebra TH {vertical-align: middle; padding: 4px;}
TABLE.zebra THEAD {position: sticky;top: 0;}
TABLE.zebra THEAD TR:last-of-type TD, TABLE.zebra THEAD TR:last-of-type TH {border-bottom: 2px solid var(--zebra-border);}
TABLE.zebra TFOOT TR:first-of-type TD, TABLE.zebra TFOOT TR:first-of-type TH {border-top: 2px solid var(--zebra-border);}
TABLE.zebra TBODY TR TD, TABLE.zebra TBODY TR TH {border-bottom: 1px solid var(--zebra-header);}
TABLE.zebra TR:nth-child(odd) {background: var(--zebra-odd);}
TABLE.zebra TR:nth-child(even) {background: var(--zebra-even);}
TABLE.zebra INPUT:not([type="checkbox"]):not([type="radio"]),
TABLE.zebra SELECT,
TABLE.zebra TEXTAREA,
TABLE.zebra BUTTON {width: 100%;}

A {
	text-decoration: none;
	color: var(--link-default);
}
A:hover {
	text-decoration: underline;
}
A:visited {
	color: var(--link-visited);
}

UL {
	text-align: left;
}

CODE {
	background: var(--header);
	font-size: 0.9rem;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*             the navigation bar, and all its blocks             *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

NAV {
	grid-column: 1;
	grid-row: 2;
	text-align: center;
}
NAV .blockbody {
	font-size: 0.85rem;
	text-align: center;
	overflow: hidden;
}
NAV TABLE {
	width: 100%;
}
NAV INPUT:not([type="checkbox"]):not([type="radio"]),
NAV TEXTAREA,
NAV BUTTON,
NAV SELECT {
	width: 100%;
}

TABLE.tag_list {
	border-collapse: collapse;
}
TABLE.tag_list>THEAD {
	display: none;
}
TABLE.tag_list>TBODY>TR>TD {
	display: inline;
	padding: 0;
}
TABLE.tag_list>TBODY>TR>TD:after {
	content: " ";
}

.more:after {
	content: " >>>";
}

.tag_count:before {
	content: "(";
}
.tag_count:after {
	content: ")";
}

#paginator {
	box-shadow: none;
}
#paginator .blockbody {
	background: none;
	border: none;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                 the main part of each page                     *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

ARTICLE {
	grid-column: 2;
	grid-row: 2;
	text-align: center;
}
ARTICLE TABLE {
	width: 90%;
	margin: auto;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                       mobile screens                           *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

@media screen and (width <= 800px) {
	BODY.layout-grid {
		grid-template-columns: auto;
	}
	HEADER {
		grid-column: 1;
		grid-row: 1;
	}
	ARTICLE {
		grid-column: 1;
		grid-row: 2;
		margin-right: 0;
	}
	NAV {
		grid-column: 1;
		grid-row: 3;
		margin: auto;
	}
	FOOTER {
		grid-column: 1;
		grid-row: 4;
	}
	#image-list .blockbody {
		margin: 0;
	}
	.shm-image-list {
		justify-content: center;
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                     specific page types                        *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#short-wiki-description > .blockbody {
	padding-bottom: 15px;
}
#short-wiki-description h2 {
	margin: 0 0 0.4em;
}

#pagelist {
	margin-top: 32px;
}

.comment {
	padding: var(--block-padding);
	border-bottom: 1px solid var(--block-border);
}
.comment:first-child {
	padding-top: 0;
}
.comment:last-child {
	border-bottom: none;
}
.thumb IMG {
	border: 1px solid var(--block-border);
	background: var(--block);
	padding: var(--block-padding);
	border-radius: var(--border-radius);
	box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}

/* example of how to apply specific styles to specific thumbs for specific userclasses */
/*
BODY[data-userclass="anonymous"] .thumb[data-rating="e"] IMG {
	filter: blur(5px);
}
*/

/*# sourceMappingURL=flockmod.1786363414.08c43d0466169e030e998ec0754f657d.css.map */