/*********************************************************
 * Pokemon Soldown: "Arcade cabinet" theme
 *
 * Loaded after Showdown's own stylesheets. Rules are scoped under
 * html.soldown (set in testclient.html) so they beat Showdown's
 * .dark overrides without editing Showdown's CSS.
 *
 * Phase 1 covers the global chrome (header, tabs, popups), the Home
 * tab, and the staking UI. The Teambuilder and battle screens still
 * use Showdown's own (dark) styles.
 *********************************************************/

:root {
	--sd-bg: #12122a;
	--sd-panel: #25254a;
	--sd-panel-dark: #1b1b38;
	--sd-ink: #0a0a16;
	--sd-text: #fff4d6;
	--sd-muted: #b9b2d6;
	--sd-red: #e3350d;
	--sd-red-hover: #f2491f;
	--sd-yellow: #ffcb05;
	--sd-blue: #3b4cca;
	--sd-blue-hover: #4d5ee0;
	--sd-green: #5ce07a;
	--sd-warn: #ff8a65;
	--sd-link: #8fb4ff;
	--sd-pixel: 'Press Start 2P', 'Courier New', monospace;
	--sd-shadow: 4px 4px 0 var(--sd-ink);
}

/* Page: dark navy with a faint pixel grid */

html.soldown body {
	background-color: var(--sd-bg);
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
		radial-gradient(ellipse at 50% -10%, #33337a 0%, var(--sd-bg) 70%);
	background-size: 32px 32px, 32px 32px, 100% 100%;
	background-attachment: fixed;
	color: var(--sd-text);
}

/* Header and tabs */

html.soldown .header {
	background: #0b0b1d;
	border-bottom: 3px solid var(--sd-ink);
	box-shadow: 0 3px 0 var(--sd-red);
}
html.soldown .maintabbarbottom {
	background: var(--sd-panel);
	border-color: var(--sd-ink);
}
html.soldown .header .soldown-logo {
	float: left;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 9px 0 0 12px;
	font-family: var(--sd-pixel);
	line-height: 1.35;
	text-shadow: 2px 2px 0 var(--sd-ink);
	user-select: none;
	white-space: nowrap;
}
.soldown-logo span {
	display: block;
}
.soldown-logo-top {
	font-size: 8px;
	color: var(--sd-red);
	letter-spacing: 1px;
}
.soldown-logo-main {
	font-size: 16px;
	color: var(--sd-yellow);
}
/* the crossed swords: 16x16 pixel art shown at 2x (build-tools/soldown-logo-swords.js) */
.soldown-logo-art {
	width: 32px;
	height: 32px;
	image-rendering: pixelated;
	filter: drop-shadow(2px 2px 0 var(--sd-ink));
}
html.soldown .tabbar a.button {
	font-family: var(--sd-pixel);
	font-size: 8px;
	background: var(--sd-panel-dark);
	color: var(--sd-muted);
	border: 2px solid var(--sd-ink);
	border-bottom: 0;
	border-radius: 0;
	box-shadow: none;
	text-shadow: none;
}
html.soldown .tabbar a.button:hover,
html.soldown .tabbar a.button:focus {
	background: var(--sd-panel);
	color: var(--sd-text);
}
html.soldown .tabbar a.button.cur,
html.soldown .tabbar a.button.cur:hover {
	background: var(--sd-panel);
	color: var(--sd-yellow);
}
/* room for the wallet badge, which is wider than Showdown's username
   (keep in sync with TABBAR_RIGHT_MARGIN in js/client-topbar.js),
   and for the logo, which is wider than Showdown's (144px upstream; client-topbar.js reads this margin) */
html.soldown .tabbar.maintabbar {
	margin-left: 224px;
	margin-right: 232px;
}
/* narrower windows: the logo is just the swords, so the tabs keep their room */
@media (max-width: 760px) {
	.soldown-logo .soldown-logo-text {
		display: none;
	}
	html.soldown .tabbar.maintabbar {
		margin-left: 56px;
	}
}
/* phones (under 420px): the logo is hidden and the tabs start at the left edge */
html.soldown .tabbar.maintabbar.minitabbar {
	margin-left: 0;
}
/* battle tabs are titled "address vs. address"; keep them from covering the top bar */
html.soldown .tabbar a.button {
	max-width: 190px;
}
html.soldown .tabbar a.button i.text {
	font-size: 8px;
	font-weight: normal;
}
html.soldown .tabbar a.button span,
html.soldown .tabbar a.button i.text {
	text-overflow: ellipsis;
}

/* Top bar: login button and wallet badge */

html.soldown .userbar {
	top: 10px;
}
html.soldown .userbar button[name=login] {
	font-family: var(--sd-pixel);
	font-size: 8px;
	height: 28px;
	padding: 0 10px;
	background: var(--sd-red);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	text-shadow: none;
}
html.soldown .userbar button[name=login]:hover {
	background: var(--sd-red-hover);
}
html.soldown .userbar button.icon {
	height: 28px;
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
}
.soldown-wallet {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 28px;
	padding: 0 9px;
	vertical-align: top;
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	box-shadow: 2px 2px 0 var(--sd-ink);
	font: 11px Consolas, 'Courier New', monospace;
	cursor: pointer;
}
.soldown-wallet:hover {
	background: #303062;
}
.soldown-wallet:active,
html.soldown .userbar button:active,
.soldown-chip:active {
	transform: translate(2px, 2px);
	box-shadow: none;
}
.soldown-wallet-bal {
	font-family: var(--sd-pixel);
	font-size: 8px;
	color: var(--sd-yellow);
}
@media (max-width: 500px) {
	.soldown-wallet-addr {
		display: none;
	}
}

/* Popups */

html.soldown .ps-overlay {
	background: rgba(6, 6, 16, .6);
}
html.soldown .ps-popup {
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: var(--sd-shadow);
}
html.soldown .ps-popup h3 {
	font-family: var(--sd-pixel);
	font-size: 10px;
	color: var(--sd-yellow);
}
html.soldown .ps-popup button.button,
html.soldown .ps-popup a.button {
	font-family: var(--sd-pixel);
	font-size: 8px;
	line-height: 1.4;
	padding: 7px 10px 6px;
	background: var(--sd-blue);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	text-shadow: none;
	text-decoration: none;
}
html.soldown .ps-popup button.button:hover,
html.soldown .ps-popup a.button:hover {
	background: var(--sd-blue-hover);
}
html.soldown .ps-popup button.button:active,
html.soldown .ps-popup a.button:active {
	transform: translate(2px, 2px);
	box-shadow: none;
}
html.soldown .ps-popup .popupmenu button.option {
	color: var(--sd-text);
	border-radius: 0;
}
html.soldown .ps-popup .popupmenu button.option:hover {
	background: var(--sd-blue);
	color: #fff;
}
html.soldown .ps-popup .popupmenu button.option.cur {
	background: var(--sd-red);
	color: #fff;
}
html.soldown .ps-popup .textbox {
	background: var(--sd-bg);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: none;
}

/* Home: menu panels, buttons, and the stake form */

html.soldown .menugroup {
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: var(--sd-shadow);
	text-shadow: none;
	padding: 12px 0;
}
html.soldown .menugroup .button {
	font-family: var(--sd-pixel);
	font-size: 10px;
	line-height: 1.6;
	padding: 9px 8px 7px;
	background: var(--sd-blue);
	color: #fff;
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 3px 3px 0 var(--sd-ink);
	text-shadow: none;
}
html.soldown .menugroup .button:hover {
	background: var(--sd-blue-hover);
	border-color: var(--sd-ink);
}
html.soldown .menugroup .button:active {
	transform: translate(3px, 3px);
	box-shadow: none;
	background: var(--sd-blue);
}
html.soldown .menugroup .button.big {
	height: auto;
	padding: 12px 8px 10px;
	font-size: 11px;
	background: var(--sd-red);
}
html.soldown .menugroup .button.big:hover {
	background: var(--sd-red-hover);
}
html.soldown .menugroup .button.big small {
	margin-top: 6px;
	font-family: Verdana, Helvetica, Arial, sans-serif;
	font-size: 9px;
	color: var(--sd-yellow);
}
html.soldown .menugroup .button.disabled,
html.soldown .menugroup .button.disabled:hover,
html.soldown .menugroup .button.disabled:active {
	background: #3a3a5c;
	color: var(--sd-muted);
	border: 3px solid var(--sd-ink);
	box-shadow: 3px 3px 0 var(--sd-ink);
	transform: none;
}
html.soldown .battleform .label {
	display: block;
	margin-bottom: 6px;
	font-family: var(--sd-pixel);
	font-size: 8px;
	color: var(--sd-yellow);
	text-shadow: none;
}
html.soldown .select {
	background: var(--sd-panel-dark);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: none;
	text-shadow: none;
}
html.soldown .select:hover {
	background: #2c2c58;
	border-color: var(--sd-ink);
}
html.soldown .select:disabled,
html.soldown .select.preselected {
	background: var(--sd-panel-dark);
	color: var(--sd-muted);
	border-color: var(--sd-ink);
}
html.soldown .select:after {
	border-top-color: var(--sd-yellow);
}
html.soldown .battleform .textbox {
	box-sizing: border-box;
	width: 100%;
	padding: 7px 8px;
	background: var(--sd-bg);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: none;
	font-family: var(--sd-pixel);
	font-size: 10px;
}
.soldown-chips {
	display: flex;
	gap: 6px;
	justify-content: space-between;
}
.soldown-chip {
	flex: 1;
	padding: 5px 0 4px;
	background: var(--sd-panel-dark);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	box-shadow: 2px 2px 0 var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 8px;
	cursor: pointer;
}
.soldown-chip:hover {
	background: var(--sd-blue);
	color: #fff;
}
/* the SOL / token toggle: the picked one is lit up in the money yellow */
.soldown-currency {
	display: flex;
	align-items: center;
	gap: 6px;
}
.soldown-chip.cur,
.soldown-chip.cur:hover {
	background: var(--sd-yellow);
	color: var(--sd-ink);
}
.soldown-preview {
	min-height: 18px;
	color: var(--sd-muted);
	font-size: 10px;
	line-height: 1.7;
}
.soldown-warn {
	color: var(--sd-warn);
}

/* Home: news box, footer */

html.soldown .pm-window h3 {
	/* contain the floated close/minimize buttons, or the scrollable log below shrinks around them */
	display: flow-root;
	background: #0b0b1d;
	color: var(--sd-yellow);
	font-family: var(--sd-pixel);
	font-size: 9px;
	padding: 8px 8px 6px;
	border: 3px solid var(--sd-ink);
	border-radius: 0;
}
html.soldown .pm-window .pm-log {
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	border-top: 0;
	box-shadow: var(--sd-shadow);
}
html.soldown .newsentry h4 {
	font-family: var(--sd-pixel);
	font-size: 9px;
	color: var(--sd-red);
}
html.soldown .mainmenufooter {
	color: var(--sd-muted);
	text-shadow: none;
}
html.soldown .mainmenufooter a {
	color: var(--sd-link);
}
html.soldown .bgcredit {
	display: none;
}

/* Shared staking pieces: titles, pills, amounts, buttons, addresses */

.soldown-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 10px;
	font-family: var(--sd-pixel);
	font-size: 9px;
	font-weight: normal;
	line-height: 1.6;
	color: var(--sd-yellow);
}
.soldown-pill {
	padding: 2px 6px;
	background: var(--sd-blue);
	color: #fff;
	border: 2px solid var(--sd-ink);
	font-family: Verdana, Helvetica, Arial, sans-serif;
	font-size: 10px;
	white-space: nowrap;
}
.soldown-amount {
	font-family: var(--sd-pixel);
	font-size: 8px;
	color: var(--sd-yellow);
	white-space: nowrap;
}
.soldown-addr {
	flex: 1;
	font: 11px Consolas, 'Courier New', monospace;
	color: var(--sd-text);
}
.soldown-identicon {
	display: inline-block;
	flex: none;
	vertical-align: middle;
	background-size: 100% 100%;
	image-rendering: pixelated;
	border: 1px solid var(--sd-ink);
}
.soldown-name {
	white-space: nowrap;
}
.soldown-name .soldown-identicon {
	margin-right: 4px;
	vertical-align: -2px;
}
html.soldown .soldown-btn,
html.soldown .menugroup .soldown-btn {
	width: auto;
	padding: 6px 10px 5px;
	background: var(--sd-red);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	text-shadow: none;
	font-family: var(--sd-pixel);
	font-size: 8px;
	line-height: 1.4;
	cursor: pointer;
}
html.soldown .soldown-btn:hover,
html.soldown .menugroup .soldown-btn:hover {
	background: var(--sd-red-hover);
}
html.soldown .soldown-btn:active,
html.soldown .menugroup .soldown-btn:active {
	transform: translate(2px, 2px);
	box-shadow: none;
}
html.soldown .soldown-btn-alt,
html.soldown .menugroup .soldown-btn-alt {
	background: var(--sd-blue);
}
html.soldown .soldown-btn-alt:hover,
html.soldown .menugroup .soldown-btn-alt:hover {
	background: var(--sd-blue-hover);
}
html.soldown .soldown-btn-big {
	display: block;
	width: 100%;
	padding: 12px 10px 10px;
	font-size: 10px;
}

/* Home: live stakes board and recent payouts */

html.soldown .menugroup.soldown-panel {
	padding: 12px;
	text-align: left;
}
html.soldown .menugroup.soldown-panel:empty {
	display: none;
}
.soldown-stake {
	margin-top: 8px;
	padding: 8px;
	background: var(--sd-panel-dark);
	border: 2px solid var(--sd-ink);
}
.soldown-stake-line {
	display: flex;
	align-items: center;
	gap: 6px;
}
.soldown-stake-line + .soldown-stake-line {
	justify-content: space-between;
	margin-top: 8px;
}
.soldown-empty {
	margin: 0;
	color: var(--sd-muted);
	font-size: 11px;
	line-height: 1.6;
}
.soldown-payout {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px;
	padding: 7px 0;
	border-top: 2px solid var(--sd-ink);
	font-size: 11px;
}
.soldown-payout .fa-trophy {
	color: var(--sd-yellow);
}
.soldown-payout .soldown-addr {
	flex: none;
}
.soldown-payout small {
	flex-basis: 100%;
	padding-left: 20px;
	color: var(--sd-muted);
	font-size: 10px;
}
.soldown-payout a {
	color: var(--sd-link);
}

/* Lobby: server-sent staking boxes (staking.ts stakeBox / doneBox) */

html.soldown .soldown-box {
	max-width: 420px;
	margin: 8px 6px 12px 0;
	padding: 10px 12px;
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 3px solid var(--sd-ink);
	box-shadow: var(--sd-shadow);
	font-size: 11px;
	line-height: 1.6;
}
.soldown-box-title {
	margin: 0 0 8px;
	font-family: var(--sd-pixel);
	font-size: 10px;
	font-weight: normal;
	color: var(--sd-yellow);
}
.soldown-box p {
	margin: 4px 0;
}
.soldown-box code {
	padding: 1px 4px;
	background: var(--sd-bg);
}
.soldown-box .soldown-btn {
	margin-top: 8px;
}
html.soldown .soldown-box-done {
	color: var(--sd-muted);
	border-style: dashed;
	box-shadow: none;
}
.soldown-stake-row {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	border-top: 2px solid var(--sd-ink);
}
.soldown-box .soldown-stake-row .soldown-btn {
	margin-top: 0;
}
.soldown-box-note {
	color: var(--sd-muted);
	font-size: 10px;
}

/* Popups: payment progress and wallet */

.soldown-progress {
	min-width: 270px;
}
.soldown-progress .soldown-title {
	margin-top: 8px;
}
.soldown-steps {
	list-style: none;
	margin: 6px 0 10px;
	padding: 0;
}
.soldown-step {
	padding: 6px 0;
	color: var(--sd-muted);
	font-size: 12px;
}
.soldown-step i {
	width: 16px;
	margin-right: 6px;
	text-align: center;
}
.soldown-step small {
	display: block;
	margin-left: 24px;
	color: var(--sd-muted);
	font-size: 10px;
}
.soldown-step-done {
	color: var(--sd-text);
}
.soldown-step-done i {
	color: var(--sd-green);
}
.soldown-step-active {
	color: var(--sd-yellow);
}
.soldown-step-error,
.soldown-error {
	color: var(--sd-warn);
}
.soldown-error {
	font-size: 12px;
}
.soldown-wallet-popup {
	min-width: 250px;
	padding: 6px 0;
	text-align: center;
}
.soldown-wallet-popup .soldown-identicon {
	display: block;
	margin: 6px auto;
}
.soldown-wallet-popup .soldown-title {
	justify-content: center;
}
.soldown-full-addr {
	display: block;
	padding: 5px 6px;
	background: var(--sd-bg);
	color: var(--sd-text);
	font-size: 10px;
	word-break: break-all;
	user-select: all;
}

/*********************************************************
 * Phase 2: battles
 *
 * Stylesheet-only: the battle frame, log, chat input, controls, and
 * the move/switch buttons. Sprites and animations are untouched.
 *
 * Move buttons: each type sets --sd-type (base color), --sd-type-pattern
 * (an SVG tile), --sd-type-tile (its size), and --sd-type-drift (how far
 * the pattern scrolls per loop on hover). Stellar keeps Showdown's own
 * rainbow gradient. Generated by a script; edit the values below directly.
 *********************************************************/

/* Room, frame, log, chat input */

html.soldown .ps-room.ps-room-opaque {
	background: var(--sd-bg);
	color: var(--sd-text);
}
html.soldown .ps-room .battle {
	border-bottom: 3px solid var(--sd-ink);
}
html.soldown .battle-log {
	background: var(--sd-panel-dark);
	color: var(--sd-text);
	border-color: var(--sd-ink);
}
html.soldown .ps-room .battle-log {
	border-left: 3px solid var(--sd-ink);
}
html.soldown .battle-log .message-log h2 {
	margin: 8px -8px 6px;
	padding: 8px 8px 6px;
	background: var(--sd-ink);
	border: 0;
	color: var(--sd-yellow);
	font-family: var(--sd-pixel);
	font-size: 9px;
	font-weight: normal;
}
html.soldown .battle-log-add {
	background: var(--sd-panel);
	color: var(--sd-text);
	border-color: var(--sd-ink);
}
html.soldown .ps-room .battle-log-add {
	border-top: 3px solid var(--sd-ink);
	border-left: 3px solid var(--sd-ink);
}
html.soldown .battle-log-add .textbox {
	background: var(--sd-bg);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: none;
}
html.soldown .battle-log-add .button {
	font-family: var(--sd-pixel);
	font-size: 8px;
	background: var(--sd-blue);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	text-shadow: none;
}

/* Player names in the battle frame: wallet addresses are too long to wrap */

html.soldown .trainer strong {
	max-width: 112px;
	margin: 0 auto 3px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	word-wrap: normal;
	color: #fff;
	font-family: var(--sd-pixel);
	font-size: 7px;
	line-height: 1.6;
	text-shadow: -1px -1px 0 var(--sd-ink), 1px -1px 0 var(--sd-ink), -1px 1px 0 var(--sd-ink), 1px 1px 0 var(--sd-ink);
}

/* Trainer sidebars in the battle frame: a dark tint instead of a white wash over the background */

html.soldown .battle .leftbar,
html.soldown .battle .rightbar {
	background: rgba(10, 10, 22, .55);
	color: var(--sd-muted);
}
html.soldown .battle .leftbar {
	border-right: 2px solid var(--sd-ink);
}
html.soldown .battle .rightbar {
	border-left: 2px solid var(--sd-ink);
}

/* Turn counter and in-battle message box ("X won the battle!") */

html.soldown .battle .turn {
	padding: 6px 8px 4px;
	background: var(--sd-ink);
	color: var(--sd-yellow);
	border: 2px solid var(--sd-yellow);
	border-radius: 0;
	box-shadow: 3px 3px 0 rgba(10, 10, 22, .6);
	font-family: var(--sd-pixel);
	font-size: 9px;
	font-weight: normal;
}
html.soldown .battle .messagebar {
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	/* let addresses wrap instead of running off the edge */
	overflow-wrap: anywhere;
}

/* Controls area */

html.soldown .ps-room .battle-controls,
html.soldown .battle-controls {
	background: var(--sd-bg);
	color: var(--sd-text);
}
html.soldown .battle-controls .whatdo {
	color: var(--sd-muted);
}
html.soldown .battle-controls .whatdo small {
	border: 2px solid var(--sd-ink);
	border-radius: 0;
}
html.soldown .moveselect button,
html.soldown .switchselect button,
html.soldown .shiftselect button {
	font-family: var(--sd-pixel);
	font-size: 9px;
	font-style: normal;
	font-weight: normal;
	text-shadow: 2px 2px 0 var(--sd-ink);
}
html.soldown .moveselect button {
	color: var(--sd-red);
}
html.soldown .switchselect button,
html.soldown .shiftselect button {
	color: var(--sd-link);
}
html.soldown .battle-controls .button,
html.soldown .battle-controls button.button {
	background: var(--sd-blue);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	text-shadow: none;
}
html.soldown .battle-controls .button:hover {
	background: var(--sd-blue-hover);
}
html.soldown .battle-controls .button:active {
	transform: translate(2px, 2px);
	box-shadow: none;
}
html.soldown .timerbutton-on,
html.soldown .timerbutton-on:hover {
	color: #fff;
	background: var(--sd-red);
}
html.soldown .megaevo {
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	background: var(--sd-panel);
	box-shadow: 2px 2px 0 var(--sd-ink);
}
html.soldown .megaevo:hover {
	background: #303062;
	color: #fff;
}

/* Switch / party buttons */

html.soldown .switchmenu button,
html.soldown .allyparty button {
	background: var(--sd-panel);
	color: var(--sd-text);
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 3px 3px 0 var(--sd-ink);
	text-shadow: none;
}
html.soldown .switchmenu button:hover,
html.soldown .allyparty button:hover {
	background: #303062;
	border-color: var(--sd-ink);
}
html.soldown .switchmenu button:active,
html.soldown .switchmenu button.pressed {
	transform: translate(3px, 3px);
	box-shadow: none;
	background: #303062;
}
html.soldown .switchmenu button .hpbar,
html.soldown .allyparty button .hpbar {
	border-color: var(--sd-ink);
	background: #0b0b1d;
	border-radius: 0;
}
html.soldown .switchmenu button.disabled,
html.soldown .switchmenu button:disabled,
html.soldown .allyparty button.disabled,
html.soldown .allyparty button:disabled {
	background: #1e1e38 !important;
	border-color: var(--sd-ink) !important;
	color: var(--sd-muted) !important;
	box-shadow: none !important;
}

/* Move buttons: arcade frame, white outlined text, type color + pattern */

html.soldown .movemenu .movebutton {
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	color: #fff;
	font-weight: bold;
	text-shadow: -1px -1px 0 var(--sd-ink), 1px -1px 0 var(--sd-ink), -1px 1px 0 var(--sd-ink), 1px 1px 0 var(--sd-ink);
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, .3), 3px 3px 0 var(--sd-ink);
}
html.soldown .movemenu .movebutton small {
	color: #fff;
	font-weight: normal;
}
html.soldown .movemenu .movebutton small.type {
	padding-top: 5px;
	font-family: var(--sd-pixel);
	font-size: 7px;
	letter-spacing: .5px;
	text-transform: uppercase;
}
html.soldown .movemenu .movebutton:not(.type-Stellar),
html.soldown .movemenu .movebutton:not(.type-Stellar):hover,
html.soldown .movemenu .movebutton:not(.type-Stellar):active,
html.soldown .movemenu .movebutton.pressed:not(.type-Stellar) {
	background-color: var(--sd-type, #4a4a6a);
	background-image:
		linear-gradient(rgba(255, 255, 255, .16), rgba(255, 255, 255, 0) 45%, rgba(0, 0, 0, .22)),
		var(--sd-type-pattern, none);
	background-size: 100% 100%, var(--sd-type-tile, auto);
	background-repeat: no-repeat, repeat;
	border-color: var(--sd-ink);
}
html.soldown .movemenu .movebutton:hover {
	filter: brightness(1.12) saturate(1.1);
	animation: sd-type-drift 1.6s linear infinite;
}
html.soldown .movemenu .movebutton:active,
html.soldown .movemenu .movebutton.pressed {
	transform: translate(3px, 3px);
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, .3);
}
@keyframes sd-type-drift {
	from {
		background-position: 0 0, 0 0;
	}
	to {
		background-position: 0 0, var(--sd-type-drift, 0 0);
	}
}
@media (prefers-reduced-motion: reduce) {
	html.soldown .movemenu .movebutton:hover {
		animation: none;
	}
}
html.soldown .movemenu .movebutton:disabled {
	background: #1e1e38 !important;
	border-color: var(--sd-ink) !important;
	color: var(--sd-muted) !important;
	box-shadow: none !important;
	text-shadow: none;
	filter: none;
	animation: none;
}

html.soldown .movemenu button.type-Normal,
html.soldown .soldown-type.type-Normal {
	--sd-type: rgb(154, 153, 112);
	--sd-type-tile: 12px 12px;
	--sd-type-drift: 12px 12px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12'><g fill='white' fill-opacity='.3'><rect x='1' y='1' width='2' height='2'/><rect x='7' y='7' width='2' height='2'/></g></svg>");
}
html.soldown .movemenu button.type-Fire,
html.soldown .soldown-type.type-Fire {
	--sd-type: rgb(232, 120, 40);
	--sd-type-tile: 24px 28px;
	--sd-type-drift: 0 -28px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='28'><path d='M12 2c2 5 7 7 6 13-.6 4-3 7-6 7s-5.6-3-6-7C5.6 9 10 8 9 4c2 2 3 4 3 6 1-2 0-6 0-8z' fill='rgb(255,214,64)' fill-opacity='.55'/><path d='M12 12c1.5 2.5 3 3.5 2.6 6-.3 1.8-1.4 3-2.6 3s-2.3-1.2-2.6-3c-.3-2 1.6-3 2.6-6z' fill='white' fill-opacity='.5'/></svg>");
}
html.soldown .movemenu button.type-Water,
html.soldown .soldown-type.type-Water {
	--sd-type: rgb(84, 128, 232);
	--sd-type-tile: 40px 20px;
	--sd-type-drift: 40px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='20'><g fill='none' stroke='white' stroke-linecap='round'><path d='M0 6q10-6 20 0t20 0' stroke-opacity='.5' stroke-width='2.5'/><path d='M0 16q10-6 20 0t20 0' stroke-opacity='.25' stroke-width='2'/></g></svg>");
}
html.soldown .movemenu button.type-Electric,
html.soldown .soldown-type.type-Electric {
	--sd-type: rgb(240, 196, 30);
	--sd-type-tile: 28px 28px;
	--sd-type-drift: 28px -28px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><path d='M16 2 6 15h6l-3 11 12-15h-6l4-9z' fill='white' fill-opacity='.65' stroke='rgb(120,90,0)' stroke-opacity='.5' stroke-width='1' stroke-linejoin='round'/></svg>");
}
html.soldown .movemenu button.type-Grass,
html.soldown .soldown-type.type-Grass {
	--sd-type: rgb(104, 184, 62);
	--sd-type-tile: 28px 28px;
	--sd-type-drift: 28px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><path d='M4 24C4 12 12 4 24 4c0 12-8 20-20 20z' fill='white' fill-opacity='.22'/><path d='M4 24 24 4' stroke='white' stroke-opacity='.4' stroke-width='1.2'/></svg>");
}
html.soldown .movemenu button.type-Ice,
html.soldown .soldown-type.type-Ice {
	--sd-type: rgb(82, 184, 196);
	--sd-type-tile: 28px 28px;
	--sd-type-drift: 0 28px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><g stroke='white' stroke-opacity='.7' stroke-width='1.5' stroke-linecap='round' fill='none'><path d='M14 5v18M6.2 9.5l15.6 9M6.2 18.5l15.6-9'/><path d='M11.5 6.5 14 9l2.5-2.5M11.5 21.5 14 19l2.5 2.5'/></g></svg>");
}
html.soldown .movemenu button.type-Fighting,
html.soldown .soldown-type.type-Fighting {
	--sd-type: rgb(190, 50, 44);
	--sd-type-tile: 32px 32px;
	--sd-type-drift: 32px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><path d='M16,4L17.91,11.38L24.49,7.51L20.62,14.09L28,16L20.62,17.91L24.49,24.49L17.91,20.62L16,28L14.09,20.62L7.51,24.49L11.38,17.91L4,16L11.38,14.09L7.51,7.51L14.09,11.38Z' fill='white' fill-opacity='.2'/><path d='M18.3,10.46L17.77,14.23L21.54,13.7L18.5,16L21.54,18.3L17.77,17.77L18.3,21.54L16,18.5L13.7,21.54L14.23,17.77L10.46,18.3L13.5,16L10.46,13.7L14.23,14.23L13.7,10.46L16,13.5Z' fill='white' fill-opacity='.25'/></svg>");
}
html.soldown .movemenu button.type-Poison,
html.soldown .soldown-type.type-Poison {
	--sd-type: rgb(158, 64, 156);
	--sd-type-tile: 30px 30px;
	--sd-type-drift: 0 -30px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30'><g fill='white' fill-opacity='.16' stroke='white' stroke-opacity='.5' stroke-width='1.2'><circle cx='9' cy='10' r='6'/><circle cx='22' cy='21' r='4'/><circle cx='23' cy='6' r='2'/><circle cx='8' cy='25' r='2.5'/></g><g fill='white' fill-opacity='.65'><circle cx='7' cy='8' r='1.3'/><circle cx='20.8' cy='19.8' r='.9'/></g></svg>");
}
html.soldown .movemenu button.type-Ground,
html.soldown .soldown-type.type-Ground {
	--sd-type: rgb(206, 168, 76);
	--sd-type-tile: 40px 20px;
	--sd-type-drift: 40px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='20'><g fill='none' stroke='rgb(90,61,18)' stroke-opacity='.45' stroke-width='2'><path d='M0 5c7 3 13-3 20 0s13 3 20 0'/><path d='M0 15c7-3 13 3 20 0s13-3 20 0'/></g><g fill='rgb(90,61,18)' fill-opacity='.4'><rect x='8' y='9' width='2' height='2'/><rect x='30' y='18' width='2' height='2'/><rect x='25' y='1' width='2' height='2'/></g></svg>");
}
html.soldown .movemenu button.type-Flying,
html.soldown .soldown-type.type-Flying {
	--sd-type: rgb(146, 122, 226);
	--sd-type-tile: 28px 20px;
	--sd-type-drift: 28px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='20'><g fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round'><path d='M2 9q4-5 8 0q4-5 8 0' stroke-opacity='.6' stroke-width='1.6'/><path d='M16 17q2.5-3 5 0q2.5-3 5 0' stroke-opacity='.38' stroke-width='1.3'/></g></svg>");
}
html.soldown .movemenu button.type-Psychic,
html.soldown .soldown-type.type-Psychic {
	--sd-type: rgb(236, 76, 128);
	--sd-type-tile: 36px 36px;
	--sd-type-drift: 36px 36px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36'><g fill='none' stroke='white' stroke-width='1.5'><circle cx='18' cy='18' r='4' stroke-opacity='.5'/><circle cx='18' cy='18' r='9' stroke-opacity='.32'/><circle cx='18' cy='18' r='14' stroke-opacity='.18'/></g></svg>");
}
html.soldown .movemenu button.type-Bug,
html.soldown .soldown-type.type-Bug {
	--sd-type: rgb(150, 170, 26);
	--sd-type-tile: 28px 50px;
	--sd-type-drift: 0 50px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='50'><path d='M14 33 0 25V8l14-8 14 8v17zM14 33v17' fill='none' stroke='rgb(50,60,0)' stroke-opacity='.4' stroke-width='1.5'/></svg>");
}
html.soldown .movemenu button.type-Rock,
html.soldown .soldown-type.type-Rock {
	--sd-type: rgb(170, 150, 52);
	--sd-type-tile: 32px 32px;
	--sd-type-drift: 32px 32px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><g fill='white' fill-opacity='.15' stroke='rgb(61,48,16)' stroke-opacity='.45' stroke-width='1.2' stroke-linejoin='round'><path d='M3 6l7-3 6 4-1 7-8 2-5-5z'/><path d='M18 14l8-2 4 6-3 7h-8l-3-6z'/><path d='M5 22l6 1 2 6-5 3-5-4z'/></g></svg>");
}
html.soldown .movemenu button.type-Ghost,
html.soldown .soldown-type.type-Ghost {
	--sd-type: rgb(108, 82, 146);
	--sd-type-tile: 32px 32px;
	--sd-type-drift: 0 -32px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><path d='M8 26V14a8 8 0 0 1 16 0v12l-2.7-2.5L18.7 26 16 23.5 13.3 26l-2.6-2.5z' fill='white' fill-opacity='.22'/><g fill='rgb(20,10,40)' fill-opacity='.5'><circle cx='13' cy='15' r='1.4'/><circle cx='19' cy='15' r='1.4'/></g></svg>");
}
html.soldown .movemenu button.type-Dragon,
html.soldown .soldown-type.type-Dragon {
	--sd-type: rgb(104, 58, 232);
	--sd-type-tile: 20px 20px;
	--sd-type-drift: 20px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='M0 10a10 10 0 0 1 20 0M-10 20a10 10 0 0 1 20 0M10 20a10 10 0 0 1 20 0' fill='none' stroke='white' stroke-opacity='.38' stroke-width='1.5'/></svg>");
}
html.soldown .movemenu button.type-Dark,
html.soldown .soldown-type.type-Dark {
	--sd-type: rgb(98, 76, 62);
	--sd-type-tile: 32px 32px;
	--sd-type-drift: 32px 0;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><mask id='m'><rect width='32' height='32' fill='white'/><circle cx='15.5' cy='11.5' r='6' fill='black'/></mask><circle cx='12' cy='14' r='7' fill='rgb(255,233,168)' fill-opacity='.45' mask='url(%23m)'/><g fill='white' fill-opacity='.55'><rect x='26' y='5' width='2' height='2'/><rect x='5' y='26' width='2' height='2'/><rect x='24' y='24' width='1' height='1'/></g></svg>");
}
html.soldown .movemenu button.type-Steel,
html.soldown .soldown-type.type-Steel {
	--sd-type: rgb(140, 142, 174);
	--sd-type-tile: 24px 24px;
	--sd-type-drift: 24px 24px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24'><g fill='white' fill-opacity='.4' stroke='rgb(50,50,70)' stroke-opacity='.4' stroke-width='.8'><rect x='3' y='4.5' width='9' height='3' rx='1.5' transform='rotate(45 7.5 6)'/><rect x='12' y='16.5' width='9' height='3' rx='1.5' transform='rotate(-45 16.5 18)'/></g></svg>");
}
html.soldown .movemenu button.type-Fairy,
html.soldown .soldown-type.type-Fairy {
	--sd-type: rgb(212, 120, 168);
	--sd-type-tile: 28px 28px;
	--sd-type-drift: 28px -28px;
	--sd-type-pattern: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><g fill='white'><path d='M14 4l2 8 8 2-8 2-2 8-2-8-8-2 8-2z' fill-opacity='.6'/><path d='M24 20l1 3 3 1-3 1-1 3-1-3-3-1 3-1z' fill-opacity='.42'/><circle cx='5' cy='24' r='1' fill-opacity='.65'/></g></svg>");
}

/*********************************************************
 * Battle stage
 *
 * Battle rooms take the whole screen. js/soldown.js (installBattleStage)
 * scales the 640x360 scene and the controls with transforms and sets their
 * positions; these rules frame the stage and turn the battle log, chat
 * input and user list into a drawer opened by the Chat button.
 *********************************************************/

html.soldown .ps-room.soldown-stage {
	overflow-x: hidden;
	overflow-y: auto;
}
html.soldown .ps-room.soldown-stage .battle {
	border: 0;
	box-shadow: 0 0 0 3px var(--sd-ink), 6px 6px 0 3px rgba(10, 10, 22, .55);
}
html.soldown .ps-room.soldown-stage .battle-controls {
	width: 640px;
	transform-origin: top left;
	background: transparent;
}
html.soldown .ps-room.soldown-stage.tiny-layout .battle-controls {
	right: 0;
	width: auto;
}

html.soldown .soldown-chat-drawer {
	display: none;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 20;
	width: 420px;
	max-width: 100%;
	background: var(--sd-panel-dark);
	border-left: 3px solid var(--sd-ink);
	box-shadow: -6px 0 0 rgba(10, 10, 22, .55);
}
html.soldown .showing-chat .soldown-chat-drawer {
	display: block;
}
html.soldown .soldown-chat-drawer .battle-log {
	top: 0;
	left: 0;
	right: 0;
	bottom: 44px;
	height: auto;
	border-left: 0;
}
html.soldown .soldown-chat-drawer .battle-log-add {
	left: 0;
	right: 0;
	border-left: 0;
}
html.soldown .soldown-chat-drawer .battle-userlist {
	left: 0;
}

html.soldown .soldown-stage .battle-chat-toggle {
	display: block;
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 21;
	padding: 8px 10px 7px;
	background: var(--sd-blue);
	color: #fff;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 3px 3px 0 var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 9px;
	text-shadow: none;
}
html.soldown .soldown-stage .battle-chat-toggle:hover {
	background: var(--sd-blue-hover);
}
html.soldown .soldown-stage .battle-chat-toggle:active {
	transform: translate(2px, 2px);
	box-shadow: none;
}
/* when open, the button sits just outside the drawer's left edge */
html.soldown .soldown-stage.showing-chat .battle-chat-toggle {
	right: 436px;
}
html.soldown .soldown-unread {
	display: inline-block;
	min-width: 9px;
	margin-left: 4px;
	padding: 3px 4px 2px;
	background: var(--sd-red);
	border: 1px solid var(--sd-ink);
	color: #fff;
	text-align: center;
}
@media (max-width: 560px) {
	/* the drawer covers the whole room, so the button moves inside its top edge */
	html.soldown .soldown-chat-drawer {
		width: 100%;
		padding-top: 44px;
		box-sizing: border-box;
	}
	html.soldown .soldown-chat-drawer .battle-log,
	html.soldown .soldown-chat-drawer .battle-userlist {
		top: 44px;
	}
	html.soldown .soldown-stage.showing-chat .battle-chat-toggle {
		top: 8px;
		right: 8px;
	}
}

/*
 * Battle HUD: the stat bars as arcade info plates, after PokéRogue's (images/ui/pbinfo_*.png).
 * js/soldown.js (installBattleHud) builds them and places them in singles; Showdown still sizes
 * and animates the HP bar inside. Colors: PokéRogue's plate, HP bar and status badges. Stat
 * stages: orange up, blue down, like the stat change effect.
 */
html.soldown .battle .statbar {
	width: 204px;
	min-height: 0;
	padding: 0;
	font-family: var(--sd-pixel);
	color: #f8f8f8;
}
/* doubles and triples: smaller two-row plates (placed by js/soldown.js), chips below */
html.soldown .battle .statbar.soldown-multi {
	width: 200px;
	transform: scale(0.8);
	transform-origin: 0 0;
}
html.soldown .battle .statbar.soldown-multi .soldown-plate-bar {
	display: flex;
	align-items: center;
	margin-top: 6px;
}
html.soldown .battle .statbar.soldown-multi .hpbar {
	flex: none;
	margin: 0 0 0 2px;
	/* Showdown sizes the fill in pixels of a 150px bar */
	transform: scaleX(0.75);
	transform-origin: 0 0;
}
html.soldown .battle .statbar.soldown-multi .hpbar::before {
	content: none;
}
html.soldown .battle .statbar.soldown-multi .hptext {
	margin-left: -30px;
}
html.soldown .battle .statbar.soldown-multi .soldown-plate-status {
	flex: none;
}
html.soldown .battle .statbar.soldown-multi .soldown-plate-status:empty {
	display: none;
}
html.soldown .battle .rstatbar.soldown-multi .status {
	position: static;
	flex-wrap: wrap;
	margin: 6px 0 0;
}
html.soldown .battle .statbar span {
	padding: 0;
	border: 0;
	border-radius: 0;
}
html.soldown .battle .soldown-plate {
	position: relative;
	z-index: 0;
	padding: 7px 12px 6px;
	filter: drop-shadow(3px 3px 0 var(--sd-ink));
}
html.soldown .battle .soldown-plate::before,
html.soldown .battle .soldown-plate::after {
	content: '';
	position: absolute;
	z-index: -1;
	clip-path: polygon(8px 0, calc(100% - 8px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 12px), 0 12px);
}
html.soldown .battle .soldown-plate::before {
	inset: 0;
	background: var(--sd-ink);
}
html.soldown .battle .soldown-plate::after {
	inset: 3px;
	background: linear-gradient(#4a3f57 0, #4a3f57 2px, #362d3e 2px);
}
html.soldown .battle .statbar strong {
	display: flex;
	align-items: center;
	gap: 4px;
	height: 12px;
	margin: 0;
	font-size: 8px;
	font-weight: normal;
	line-height: 12px;
	text-align: left;
	white-space: nowrap;
	color: #f8f8f8;
	text-shadow: 1px 1px 0 var(--sd-ink);
}
html.soldown .battle .soldown-plate-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
html.soldown .battle .statbar strong img {
	flex: none;
}
html.soldown .battle .statbar strong small {
	flex: none;
	margin-left: auto;
	padding-left: 4px;
	font-size: 8px;
	font-weight: normal;
	color: var(--sd-yellow);
}
html.soldown .battle .statbar strong small b {
	font-size: 6px;
	font-weight: normal;
}
html.soldown .battle .soldown-plate-bar {
	display: flex;
}
html.soldown .battle .statbar .hpbar {
	position: relative;
	width: 151px;
	height: 6px;
	margin: 6px 2px 0 auto;
	padding: 0;
	border: 2px solid #f8f8f8;
	border-radius: 0;
	background: #1d1824;
	box-shadow: 0 0 0 2px var(--sd-ink);
}
html.soldown .battle .statbar .hpbar::before {
	content: 'HP';
	position: absolute;
	top: -2px;
	right: 100%;
	margin-right: 5px;
	padding: 2px 2px 1px;
	font-size: 6px;
	line-height: 7px;
	color: var(--sd-ink);
	background: var(--sd-yellow);
}
/* past the fill, up to where the bar stood when the Pokémon came in: the HP it has lost since */
html.soldown .battle .statbar .hpbar .prevhp,
html.soldown .battle .statbar .hpbar .prevhp-yellow,
html.soldown .battle .statbar .hpbar .prevhp-red {
	height: 6px;
	border-radius: 0;
	background: rgba(248, 248, 248, 0.22);
}
html.soldown .battle .statbar .hpbar .hp {
	height: 3px;
	border: 0 solid #0eb22f;
	border-top: 3px solid #39ff7b;
	border-radius: 0;
	background: #0eb22f;
}
html.soldown .battle .statbar .hpbar .hp-yellow {
	border-color: #9a6110;
	border-top-color: #f3b200;
	background: #9a6110;
}
html.soldown .battle .statbar .hpbar .hp-red {
	border-color: #922030;
	border-top-color: #fb3041;
	background: #922030;
}
html.soldown .battle .soldown-plate-info {
	display: flex;
	align-items: center;
	height: 11px;
	margin-top: 5px;
}
html.soldown .battle .statbar .hptext {
	position: static;
	width: auto;
	height: auto;
	margin-left: auto;
	font-size: 8px;
	line-height: 11px;
	text-align: right;
	color: #f8f8f8;
	text-shadow: 1px 1px 0 var(--sd-ink);
	background: none;
	border-radius: 0;
}
/* status badges, in PokéRogue's colors (images/statuses.png) */
html.soldown .soldown-status {
	display: inline-block;
	padding: 2px 3px 2px 4px;
	border-radius: 2px;
	font-size: 6px;
	line-height: 7px;
	color: #f8f8f8;
	text-shadow: 1px 1px 0 rgba(10, 10, 22, 0.45);
}
html.soldown .soldown-status.brn { background: #e07050; }
html.soldown .soldown-status.par { background: #b8b818; }
html.soldown .soldown-status.psn { background: #c060c0; }
html.soldown .soldown-status.tox { background: #c060c0; color: #f0c8f0; text-shadow: 1px 1px 0 #84367c; }
html.soldown .soldown-status.slp { background: #a0a088; }
html.soldown .soldown-status.frz { background: #88b0e0; }
/* chips: under the opponent's plate, over yours */
html.soldown .battle .statbar .status {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	min-height: 0;
	margin-top: 6px;
	padding: 0 4px;
	font-size: 6px;
}
html.soldown .battle .rstatbar .status {
	position: absolute;
	bottom: 100%;
	left: 0;
	right: 0;
	flex-wrap: wrap-reverse;
	margin: 0 0 6px;
}
html.soldown .battle .statbar .status span {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 3px 4px 2px;
	border: 2px solid var(--sd-ink);
	box-shadow: 2px 2px 0 var(--sd-ink);
	font-size: 6px;
	line-height: 7px;
	white-space: nowrap;
	color: #d6d0e4;
	background: #362d3e;
}
html.soldown .battle .statbar .status span.good { color: var(--sd-green); }
html.soldown .battle .statbar .status span.bad { color: #ff7a7a; }
html.soldown .battle .statbar .status span.soldown-boost b {
	font-weight: normal;
}
html.soldown .battle .statbar .status span.soldown-boost.up {
	color: var(--sd-ink);
	background: #ffab2e;
}
html.soldown .battle .statbar .status span.soldown-boost.down {
	color: #f8f8f8;
	background: var(--sd-blue);
}
html.soldown .battle .statbar .status span.soldown-type {
	padding: 0;
	border: 0;
	box-shadow: none;
	color: #f8f8f8;
	background: none;
	text-shadow: 1px 1px 0 var(--sd-ink);
}
html.soldown .battle .statbar .status img {
	position: static;
	display: block;
}
/* the message bar shows the newest two lines, like PokéRogue's message box, so it stays under
   your plate (the battle log has them all) */
html.soldown .battle .messagebar p:nth-last-child(n+3) {
	display: none !important;
}
/* the popups over a Pokémon: damage, effectiveness, stat changes, abilities */
html.soldown .battle .result strong {
	display: inline-block;
	padding: 4px 6px 3px;
	border: 2px solid var(--sd-ink);
	border-radius: 0;
	box-shadow: 2px 2px 0 var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 7px;
	font-weight: normal;
	line-height: 8px;
	white-space: nowrap;
	color: #f8f8f8;
	text-shadow: 1px 1px 0 rgba(10, 10, 22, 0.45);
}
html.soldown .battle .badresult strong { background: var(--sd-red); }
html.soldown .battle .goodresult strong { background: #1f9d55; }
html.soldown .battle .neutralresult strong { background: #4b4361; }
html.soldown .battle .soldown-upresult strong { color: var(--sd-ink); background: #ffab2e; text-shadow: none; }
html.soldown .battle .soldown-downresult strong { background: var(--sd-blue); }
html.soldown .battle .brnresult strong { background: #e07050; }
html.soldown .battle .parresult strong { background: #b8b818; }
html.soldown .battle .psnresult strong { background: #c060c0; }
html.soldown .battle .slpresult strong { background: #a0a088; }
html.soldown .battle .frzresult strong { background: #88b0e0; }
html.soldown .battle .abilityresult strong {
	padding: 5px 8px 4px;
	color: var(--sd-yellow);
	background: var(--sd-blue);
}
html.soldown .battle .result strong img {
	vertical-align: middle;
}

/*
 * Type pills (tooltips): the type colors are the move buttons' (--sd-type, set further up)
 */
html.soldown .soldown-type {
	display: inline-block;
	padding: 3px 4px 2px;
	border: 2px solid var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 7px;
	font-weight: normal;
	line-height: 8px;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
	text-shadow: 1px 1px 0 rgba(10, 10, 22, 0.6);
	background-color: var(--sd-type, #68687a);
	background-image: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 55%, rgba(0, 0, 0, 0.18));
}
html.soldown .soldown-type.type-Stellar {
	background-image: linear-gradient(90deg, #e05a6a, #e8b04a, #5cc878, #4aa8e0, #a070e0);
}

/*
 * Battle tooltips: the frame of every battle tooltip, and the Pokémon tooltip that js/soldown.js
 * (installBattleTooltips) builds. Tooltips sit outside the scaled battle stage, so these sizes are
 * page pixels.
 */
html.soldown #tooltipwrapper .tooltip {
	width: 340px;
	border: 3px solid var(--sd-ink);
	border-radius: 0;
	color: var(--sd-text);
	background: var(--sd-panel-dark);
	box-shadow: var(--sd-shadow);
}
html.soldown #tooltipwrapper.tooltip-locked .tooltip {
	border-color: var(--sd-yellow);
	background: var(--sd-panel-dark);
}
/* Showdown's own tooltips: moves and the field */
html.soldown #tooltipwrapper .tooltip h2 {
	padding: 7px 8px 6px;
	border-bottom: 2px solid var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 9px;
	font-weight: normal;
	line-height: 1.7;
	color: #fff;
	background: var(--sd-panel);
}
html.soldown #tooltipwrapper .tooltip h2 img {
	vertical-align: middle;
}
html.soldown #tooltipwrapper .tooltip p {
	padding: 3px 8px;
	color: var(--sd-text);
}
html.soldown #tooltipwrapper .tooltip p small,
html.soldown #tooltipwrapper .tooltip p.movetag {
	color: var(--sd-muted);
}
html.soldown #tooltipwrapper .tooltip p.tooltip-section {
	margin-top: 3px;
	padding-top: 6px;
	border-top: 2px solid var(--sd-ink);
}
html.soldown #tooltipwrapper .tooltip p:last-child {
	padding-bottom: 7px;
}
/* the Pokémon tooltip */
html.soldown .soldown-tt {
	padding-bottom: 8px;
	font-size: 12px;
	line-height: 1.35;
}
html.soldown .soldown-tt-head {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 4px 8px 3px 4px;
	border-bottom: 2px solid var(--sd-ink);
	background: var(--sd-panel);
}
html.soldown .soldown-tt-head .picon {
	flex: none;
	width: 40px;
	height: 30px;
}
html.soldown .soldown-tt-title {
	flex: 1;
	min-width: 0;
}
html.soldown .soldown-tt-name {
	display: flex;
	align-items: center;
	gap: 5px;
	font-family: var(--sd-pixel);
	font-size: 10px;
	line-height: 14px;
	white-space: nowrap;
	color: #fff;
	text-shadow: 1px 1px 0 var(--sd-ink);
}
html.soldown .soldown-tt-name > span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
html.soldown .soldown-tt-name img {
	flex: none;
}
html.soldown .soldown-tt-name small,
html.soldown .soldown-tt-illusion small {
	flex: none;
	margin-left: auto;
	font-size: 9px;
	color: var(--sd-yellow);
}
html.soldown .soldown-tt-name small b,
html.soldown .soldown-tt-illusion small b {
	font-size: 7px;
	font-weight: normal;
}
html.soldown .soldown-tt-sub {
	margin-top: 1px;
	font-size: 11px;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-types {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	padding: 7px 8px 0;
}
html.soldown .soldown-tt-aside {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-left: auto;
	font-family: var(--sd-pixel);
	font-size: 7px;
	text-transform: uppercase;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-aside + .soldown-tt-aside {
	margin-left: 0;
}
html.soldown .soldown-tt-illusion {
	display: flex;
	padding: 7px 8px 0;
	font-family: var(--sd-pixel);
	font-size: 7px;
	color: var(--sd-yellow);
}
html.soldown .soldown-tt-label {
	flex: none;
	min-width: 30px;
	font-family: var(--sd-pixel);
	font-size: 7px;
	line-height: 10px;
	text-transform: uppercase;
	color: var(--sd-yellow);
}
html.soldown .soldown-tt-hp {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	padding: 8px 8px 0;
}
html.soldown .soldown-tt-hpbar {
	flex: 1;
	min-width: 80px;
	height: 6px;
	margin: 0 2px;
	border: 2px solid #f8f8f8;
	background: #1d1824;
	box-shadow: 0 0 0 2px var(--sd-ink);
}
html.soldown .soldown-tt-hpbar i {
	display: block;
	height: 3px;
	border-top: 3px solid #39ff7b;
	background: #0eb22f;
}
html.soldown .soldown-tt-hpbar.y i {
	border-top-color: #f3b200;
	background: #9a6110;
}
html.soldown .soldown-tt-hpbar.r i {
	border-top-color: #fb3041;
	background: #922030;
}
html.soldown .soldown-tt-hptext {
	font-family: var(--sd-pixel);
	font-size: 9px;
	color: #fff;
}
html.soldown .soldown-tt-hptext small {
	font-family: Verdana, sans-serif;
	font-size: 11px;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-hp .soldown-tt-note {
	flex-basis: 100%;
	padding: 0 0 0 36px;
}
html.soldown .soldown-tt-rows {
	padding: 6px 8px 0;
}
html.soldown .soldown-tt-row {
	display: flex;
	align-items: baseline;
	gap: 6px;
	padding: 1px 0;
	color: #fff;
}
html.soldown .soldown-tt-row small {
	color: var(--sd-muted);
}
html.soldown .soldown-tt-section {
	margin-top: 8px;
	padding: 6px 8px 0;
	border-top: 2px solid var(--sd-ink);
}
html.soldown .soldown-tt-heading {
	margin-bottom: 5px;
	font-family: var(--sd-pixel);
	font-size: 7px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-stat {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 15px;
}
html.soldown .soldown-tt-stat .soldown-tt-label {
	min-width: 28px;
	color: var(--sd-text);
}
html.soldown .soldown-tt-bar {
	flex: 1;
	height: 8px;
	border: 1px solid var(--sd-ink);
	background: #0f0f24;
}
html.soldown .soldown-tt-bar i {
	display: block;
	height: 100%;
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.28);
}
html.soldown .soldown-tt-num {
	flex: none;
	width: 30px;
	font-family: var(--sd-pixel);
	font-size: 8px;
	text-align: right;
	color: #fff;
}
html.soldown .soldown-tt-num.up {
	color: #ffab2e;
}
html.soldown .soldown-tt-num.down {
	color: #8fa4ff;
}
/* the stat stage (opponent) or the stat before modifiers (yours) */
html.soldown .soldown-tt-extra {
	flex: none;
	width: 26px;
	font-family: var(--sd-pixel);
	font-size: 7px;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-stage {
	display: inline-block;
	padding: 2px 2px 1px;
	border: 1px solid var(--sd-ink);
}
html.soldown .soldown-tt-stage.up {
	color: var(--sd-ink);
	background: #ffab2e;
}
html.soldown .soldown-tt-stage.down {
	color: #f8f8f8;
	background: var(--sd-blue);
}
html.soldown .soldown-tt-move {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 20px;
}
html.soldown .soldown-tt-move .soldown-type {
	flex: none;
	width: 60px;
	padding-left: 0;
	padding-right: 0;
}
html.soldown .soldown-tt-movename {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #fff;
}
html.soldown .soldown-tt-move.borrowed .soldown-tt-movename {
	font-style: italic;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-cat {
	flex: none;
	width: 34px;
	padding: 2px 0 1px;
	border: 1px solid var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 7px;
	line-height: 8px;
	text-align: center;
}
html.soldown .soldown-tt-cat.Physical {
	color: var(--sd-ink);
	background: #f0884a;
}
html.soldown .soldown-tt-cat.Special {
	color: #fff;
	background: #5a78e0;
}
html.soldown .soldown-tt-cat.Status {
	color: var(--sd-ink);
	background: #b0acc8;
}
html.soldown .soldown-tt-pow {
	flex: none;
	width: 24px;
	font-family: var(--sd-pixel);
	font-size: 8px;
	text-align: right;
	color: #fff;
}
html.soldown .soldown-tt-pp {
	flex: none;
	width: 40px;
	font-family: var(--sd-pixel);
	font-size: 7px;
	text-align: right;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-note {
	padding: 5px 8px 0;
	font-size: 11px;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-section .soldown-tt-note {
	padding: 4px 0 0;
}

/*
 * Move effectiveness: the tag js/soldown.js (installMoveEffectiveness) hangs under each damaging
 * move, against the opponent on the field. In doubles, one part per opponent, with its icon.
 */
html.soldown .movemenu.soldown-has-eff .movebutton {
	margin-bottom: 17px;
}
html.soldown .movemenu .movebutton .soldown-eff {
	position: absolute;
	left: 50%;
	top: 100%;
	margin-top: 3px;
	z-index: 1;
	transform: translateX(-50%);
	box-shadow: 2px 2px 0 var(--sd-ink);
}
html.soldown .soldown-eff {
	display: inline-block;
	padding: 3px 5px 2px;
	border: 2px solid var(--sd-ink);
	font-family: var(--sd-pixel);
	font-size: 7px;
	font-weight: normal;
	line-height: 8px;
	letter-spacing: 0;
	white-space: nowrap;
	text-shadow: none;
}
html.soldown .soldown-eff b {
	margin-left: 2px;
	padding: 1px 2px 0;
	font-weight: normal;
	background: var(--sd-ink);
}
html.soldown .soldown-eff.se,
html.soldown .soldown-eff-multi .se {
	color: var(--sd-ink);
	background: #5ce07a;
}
html.soldown .soldown-eff.se b {
	color: #5ce07a;
}
html.soldown .soldown-eff.nve,
html.soldown .soldown-eff-multi .nve {
	color: #f8f8f8;
	background: #6b6788;
}
html.soldown .soldown-eff.nve b {
	color: #d6d0e4;
}
html.soldown .soldown-eff.none,
html.soldown .soldown-eff-multi .none {
	color: #ff8a80;
	background: #2a1f33;
}
html.soldown .soldown-eff-multi .neutral {
	color: #d6d0e4;
	background: #3a3858;
}
html.soldown .soldown-eff.soldown-eff-multi {
	display: flex;
	gap: 2px;
	padding: 0;
	background: var(--sd-ink);
}
html.soldown .soldown-eff-multi > span {
	display: flex;
	align-items: center;
	height: 14px;
	padding-right: 4px;
}
html.soldown .soldown-eff-multi .picon {
	width: 40px;
	height: 30px;
	margin: -8px -9px -9px -10px;
	transform: scale(0.5);
}
html.soldown .movemenu .movebutton:disabled .soldown-eff {
	display: none;
}
/* in move tooltips: the heading's type and category, and a line per opponent */
html.soldown #tooltipwrapper .tooltip .soldown-tt-movehead {
	display: flex;
	gap: 4px;
	margin-top: 4px;
}
html.soldown #tooltipwrapper .tooltip p.soldown-tt-matchup {
	padding-top: 6px;
	color: var(--sd-muted);
}
html.soldown .soldown-tt-matchup .soldown-eff.neutral {
	color: #d6d0e4;
	background: #3a3858;
}

/*
 * Battle backgrounds: PokéRogue's arenas, drawn in layers inside the backdrop by
 * js/soldown.js (drawArena) from fx/soldown-arenas/ (build-tools/soldown-arenas.js).
 * Showdown's own backdrop image is hidden once the arena is drawn.
 */
html.soldown .battle {
	background: var(--sd-bg);
}
html.soldown .battle .backdrop[data-soldown-scene] {
	background-image: none !important;
	opacity: 1 !important;
}
html.soldown .battle .soldown-arena {
	position: absolute;
	background-repeat: no-repeat;
	image-rendering: pixelated;
	pointer-events: none;
}
html.soldown .battle .soldown-arena-mirror {
	transform: scaleX(-1);
}
