@charset "UTF-8";

/* ============================================================
   Glyphicons-based icon font (background-image sprites).
   Curated 2026-05-14: pruned from 197 rules down to the 24 that
   are actually referenced by HTML/JS strings (queue, history,
   modals, storage widgets, etc.). Adding a new icon? Check that
   the corresponding PNG/SVG exists in qInterface/static/style/
   icons/ before adding the rule.

   Re-audit procedure:
     grep -rohE 'icon-[a-z][a-z0-9-]+' qInterface/static qInterface/templates \
       2>/dev/null | sort -u > /tmp/icon-used.txt
     grep -rnE "(['\"\`])icon-" qInterface/static qInterface/templates 2>/dev/null
   Intersect the cleaned union with the .icon-* selectors below;
   classes styled in page-level CSS (history.css, etc.) live there.
   ============================================================ */

:root
{
	--IconSize: 19px;
}

.icon
{
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;

	display: inline-block;
	font-size: var(--FontSizeIcon);
	text-decoration: none;

	border: 1px solid var(--BorderColor1);
	border-radius: 20px;

	background: var(--FG0);
	background-position: center;
	background-size: 85%;
	background-origin: border-box;
	background-repeat: no-repeat;

	text-align: center;

	padding: 3px 2px 2px 2px;

	height: var(--IconSize);
	width: var(--IconSize);
	line-height: var(--IconSize);

	box-shadow: var(--LinkIconShadow);

	transition:
		box-shadow       var(--SidebarTransitionDuration),
		line-height      var(--SidebarTransitionFast),
		background-color var(--SidebarTransitionFast),
		border-color     var(--SidebarTransitionFast),
		color            var(--SidebarTransitionFast);

	transition-timing-function: var(--SidebarTransitionFunction);
}

.icon:hover
{
	color: var(--LinkColorHover);
	border-color: var(--LinkColorHover);
	background-color: var(--LinkColorHoverBG);
}

.icon:active,
:active > .icon:active
{
	background-color: var(--Accent1) !important;
}

[disabled] .icon,
.icon.disabled
{
	pointer-events: none;
	cursor: not-allowed;
	-webkit-pointer-events: none;
	opacity: .3;
}

.icon.enabled
{
	background-color: var(--Accent1);
}


/*
	Curated glyph rules — every selector below appears in at least one
	current HTML/JS string. See header comment for re-audit procedure.
	https://glyphicons.com/sets/basic/
*/

.icon-info		{	background-image: url('icons/glyphicons-basic-932-speech-bubble-info@2x.png');	}
.icon-book-open		{	background-image: url('icons/glyphicons-basic-588-book-open-text@2x.png');	}
.icon-chemistry		{	background-image: url('icons/glyphicons-basic-625-chemistry@2x.png');		}
.icon-chemistry2	{	background-image: url('icons/glyphicons-basic-626-chemistry-alt@2x.png');	}
.icon-adjust		{	background-image: url('icons/glyphicons-basic-140-adjust@2x.png');		}
.icon-alarm		{	background-image: url('icons/glyphicons-basic-54-alarm@2x.png');		}
.icon-restart		{	background-image: url('icons/glyphicons-basic-906-restart@2x.png');		}

.icon-open		{	background-image: url('icons/glyphicons-basic-198-open@2x.png');		}
.icon-saveas		{	background-image: url('icons/glyphicons-basic-200-save-as@2x.png');		}
.icon-save		{	background-image: url('icons/glyphicons-basic-199-save@2x.png');		}
.icon-copy		{	background-image: url('icons/glyphicons-basic-614-copy@2x.png');		}
.icon-files-queue	{	background-image: url('icons/glyphicons-basic-960-files-queue@2x.png');		}

.icon-terminal-empty	{	background-image: url('icons/glyphicons-basic-879-terminal-empty@2x.png');	}

.icon-square-drop-down	{	background-image: url('icons/glyphicons-basic-808-drop-down@2x.png');		}

.icon-square-question2	{	background-image: url('icons/glyphicons-basic-845-square-question@2x.png');		background-size: 150%; background-color: var(--Accent1); }
.icon-alert-triangle2	{	background-image: url('icons/glyphicons-basic-638-triangle-alert@2x.png');		background-color: var(--ErrorColor); }

.icon-multiply		{	background-image: url('icons/glyphicons-basic-373-times@2x.png');			background-position: 2px 3px;	}
.icon-pencil		{	background-image: url('icons/glyphicons-basic-31-pencil@2x.png');		}

.icon-switch-off	{	background-image: url('icons/glyphicons-basic-987-switch-off@2x.png');		}
.icon-switch-on		{	background-image: url('icons/glyphicons-basic-988-switch-on@2x.png');		}
.icon-switch		{	width: calc(var(--IconSize)* 2.5); background-size: 135%; transform: scaleX(-1); }

.icon-trash		{	background-image: url('icons/glyphicons-basic-17-bin@2x.png');			}

.icon-github		{	background-image: url('icons/github.svg');					}
.icon-google		{	background-image: url('icons/google.svg');					}

/* Brand marks are full-bleed squares, unlike the glyphicon sprites the base
   .icon sizing was tuned for: at background-size 85% over border-box the
   corners land under the rounded border and get clipped. Keep them inside
   the circle. */
.icon-github,
.icon-google		{	background-size: 60%; background-origin: content-box; background-position: center; }
