/* Standard globals */
a { color: #0088cc; text-decoration: none; }

h1 { color: #444444; font-weight: 600; font-size: 2.5em; }
h2 { color: #104894; font-weight: 600; font-size: 2.2em; border-bottom: 0.5px solid #104894; margin-top:1.6em; margin-bottom:.55em; }
h3 { color: #db7000; font-weight: 500; font-size: 1.7em; margin-top:1.3em; }
h4 { color: #444444; font-weight: 600; font-size: 1.4em; margin-top:1.2em; }
h5 { color: #777777; font-weight: 600; font-size: 1.2em; margin-top:1.2em; }
h6 { color: #444444; font-weight: 600; font-size: 1em; font-style: italic; margin-top:1.2em; }

.h1-subtitle {
	margin: 0 0 1.5rem;
	color: #888888;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.2;
}

h1 + h1, h1 + h2, h1 + h3, h1 + h4, h1 + h5, h1 + h6, h2 + h1, h2 + h2, h2 + h3, h2 + h4, h2 + h5, h2 + h6, h3 + h1, h3 + h2, h3 + h3, h3 + h4, h3 + h5, h3 + h6, h4 + h1, h4 + h2, h4 + h3, h4 + h4, h4 + h5, h4 + h6, h5 + h1, h5 + h2, h5 + h3, h5 + h4, h5 + h5, h5 + h6, h6 + h1, h6 + h2, h6 + h3, h6 + h4, h6 + h5, h6 + h6 {
	margin-top:.6em
}

/* Anchor jump offset for headings (0 = align to top). */
:root {
	--toc-anchor-offset: 0px;
	--toc-highlight-adjust: 20px;
}
:is(h1, h2, h3, h4, h5, h6)[id] {
	scroll-margin-top: var(--toc-anchor-offset);
}

body::before { background: none; }
body { color: #333; }

code { padding: 2px 3px; font-size: 85%; }

/* Remove default list indentation */
ol, ul {
    padding-left: 0;
    margin-left: 1.5em; /* Adjust this value to match your body text */
}

/* Add additional indentation for nested lists */
li > ol,
li > ul {
    margin-left: 1.5em; /* Additional indentation for nested items */
}

/* Make sure no links have a text shadow */
.navbar-brand, .nav-link {
	text-shadow: none;
}

/* Header */
.navbar.fixed-top {
}
.navbar-light .navbar-brand, 
.navbar-light .navbar-brand:hover {
	color: #000;
}
.navbar-light .navbar-nav .active>.nav-link,
.navbar-light .navbar-nav .active>.nav-link:hover, 
.navbar-light .navbar-nav .active>.nav-link:focus { 
	font-weight: bold; 
	color: #000;
}
.navbar-light .navbar-nav .nav-link {
	color: #666; 
}
.navbar-light .navbar-nav .nav-link:hover, 
.navbar-light .navbar-nav .nav-link:focus { 
	color: #000; 
	outline: none;
}
.bg-light { 
	background: rgba(255, 255, 255, .9) !important;
	border-bottom: 1px solid rgba(0,0,0,.1);
}
@supports ((-webkit-backdrop-filter: blur(2em)) or (backdrop-filter: blur(2em))) {
	.bg-light { -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); background-color: rgba(255, 255, 255, .7) !important; }
}

/* Fixed an issue on Safari where the popup submenus weren't appearing when expanded. */
@media (min-width: 992px) {
	.dropdown-menu { overflow-y: initial; }
}

/* ToC */
.bg-secondary { 
	background-color: inherit !important; 
	border: none; 
}
.bs-sidebar .nav > li > a { 
    padding: 3px 10px 3px 5px;
	color: #595959; 
}
.bs-sidebar .nav .nav > li > a {
	font-size: 0.9em;
}
.bs-sidebar .nav .nav .nav > li > a {
	font-size: 0.8em;
}
.bs-sidebar .nav > li > a:hover, .bs-sidebar .nav > li > a:focus { 
	color: #000; 
    border: none;
}
.bs-sidebar .nav > li > a.active, .bs-sidebar .nav > li > a.active:hover, .bs-sidebar .nav > li > a.active:focus { 
	font-weight: normal;
	border: none; 
	color: #595959;
}
.bs-sidebar .nav > li > a.manual-active, .bs-sidebar .nav > li > a.manual-active:hover, .bs-sidebar .nav > li > a.manual-active:focus {
	font-weight: bold;
	border: none;
	color: #000;
}
.bs-sidebar {
	padding: 0;
	max-height:90vh;
	overflow-y: auto;
}

/* Content area */
.col-md-9 img { border: none; padding: 0; margin: 0; border-radius: 0; }

/* Tables */
.table {
	margin-bottom: 2em;
}
.table thead tr {
	border-bottom: 1px solid #333;
}
.table thead tr th {
	font-weight:600;
	color: #333;
	padding: 3px 1em 3px 3px;
	vertical-align: bottom;
}
.table thead th {
	border-top: none;
	border-bottom: 1px solid #333;
	margin-bottom: 10px;
}
.table tr {
	border-bottom: 1px solid #e6e6e6;
}
.table tr td {
	line-height: 1.5em;
	padding: .5em 1em .5em 3px;
	vertical-align: top;
}
.table td, .table th {
	border-top: none;
}

blockquote {
	background-color: #f8f8f8;
	border: solid 1px #e1e4e5;
	display: block;
	padding: .5em;
}
blockquote p:last-child {
	margin-bottom: 0;
}

/* Styles for admonitions https://python-markdown.github.io/extensions/admonition/ */
.admonition p { margin-bottom: 0; }
.admonition {
	background-color: #f5f5f7;
	padding: 10px;
	border: 1px solid #696969;
	border-left:thick solid #696969;
	border-radius: 6px;
	color: #000;
}
.admonition.note 						{ border-color: #696969; background-color: #f5f5f7; color: inherit; }
.admonition.note .admonition-title 		{ color: #696969; }
.admonition.tip 						{ border-color: #007c78; background-color: #faffff; color: inherit; }
.admonition.tip .admonition-title 		{ color: #007c78; }
.admonition.warning 					{ border-color: #d00; background-color: #fff2f4; color: inherit; }
.admonition.warning .admonition-title	{ color: #d00; }
.admonition.important					{ border-color: #936d00; background-color: #fffef2; color: inherit; }
.admonition.important .admonition-title	{ color: #936d00; }
.admonition.mas 						{ border-color: #8c28c2; background-color: #fcf8ff; color: inherit; }
.admonition.mas .admonition-title		{ color: #8c28c2; }

/* Custom styles */
.col-md-9 img.shadow {
	border: 1px rgba(0,0,0,0.2) solid;
	margin: 0 0 10px 0;
	box-shadow: 3px 3px 8px rgba(0,0,0,.3);
}
.col-md-9 img.borderlessShadow {
	box-shadow: 3px 3px 8px rgba(0,0,0,.3);
}

img.right { float: right; margin: 2px 0 6px 20px; }

.proPill, .standardPill, .corePill, .updatePill, .sustainerPill, .masPill { display: inline-block; text-transform: uppercase; font-size: 0.7em; font-weight: 500; text-align: center; border: 1px solid; border-radius: 3px; padding: 2px 5px 2px; line-height: 1; margin: 0 0.1em; vertical-align: 1px; }
.proPill { background-color: #edf3fe; color: royalblue; border-color: royalblue; }
.proPill:before { content: "Pro"; }
.standardPill { background-color: #ffdacd; color: #e60000; border-color: #e60000; }
.standardPill:before { content: "Standard"; }
.corePill { background-color: #c9ddc9; color: green; border-color: green; }
.corePill:before { content: "Core"; }
.sustainerPill {
	background: linear-gradient(180deg, #fbfde9 0%, #eef8d7 100%);
	color: #3f7413;
	border-color: #97ad27;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.sustainerPill:before { content: "Sustainer"; }
.masPill { background-color: #eef0f1; color: #5c6366; border-color: #A2AAAD; }
.masPill:before { content: "Mac App Store"; }

/* Ensure pill wrapper links don't show link styling */
a:has(> .proPill), a:has(> .sustainerPill), a:has(> .masPill) { text-decoration: none; color: inherit; }
a:has(> .proPill):hover, a:has(> .sustainerPill):hover, a:has(> .masPill):hover { text-decoration: none; color: inherit; }

.emoji {
	font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"
}

/* Style the heading anchors dynamically added via extra.js */
.anchor-heading .anchor-link {
	display: inline-block;
	padding-left: .25rem;
	text-decoration: none;
	opacity: 0;
	transition: opacity ease-in-out .25s;
}
.anchor-heading .anchor-link:hover {
	opacity: 1 !important;
}
.anchor-heading:hover .anchor-link {
	opacity: .5;
}

/* Dark mode overrides */
@media screen and (prefers-color-scheme: dark) {
	html {
		color-scheme: dark;
	}

	.h1-subtitle {
		color: #adb5bd;
	}

	body {
		background: #0f1318 !important;
		color: #e6e8eb !important;
	}

	a { color: #6bbeff; }
	a:hover,
	a:focus { color: #92ceff; }

	h1 { color: #f2f5f9; }
	h2 { color: #9dc6f0; border-bottom-color: #4f5867; }
	h3 { color: #ff9e3d; }
	h4, h5, h6 { color: #d5dcea; }

	.navbar-light .navbar-brand,
	.navbar-light .navbar-brand:hover,
	.navbar-light .navbar-nav .active > .nav-link,
	.navbar-light .navbar-nav .active > .nav-link:hover,
	.navbar-light .navbar-nav .active > .nav-link:focus,
	.navbar-light .navbar-nav .nav-link,
	.navbar-light .navbar-nav .nav-link:hover,
	.navbar-light .navbar-nav .nav-link:focus {
		color: #d5dcea !important;
	}

	.bg-light {
		background: rgba(17, 20, 24, .9) !important;
		border-bottom: 1px solid rgba(255,255,255,.12) !important;
	}
	@supports ((-webkit-backdrop-filter: blur(2em)) or (backdrop-filter: blur(2em))) {
		.bg-light {
			-webkit-backdrop-filter: saturate(180%) blur(20px);
			backdrop-filter: saturate(180%) blur(20px);
			background-color: rgba(17, 20, 24, .72) !important;
		}
	}

	.bg-secondary {
		background-color: transparent !important;
	}
	.bs-sidebar .nav > li > a,
	.bs-sidebar .nav > li > a.active,
	.bs-sidebar .nav > li > a.active:hover,
	.bs-sidebar .nav > li > a.active:focus {
		color: #aeb8c8;
	}
	.bs-sidebar .nav > li > a:hover,
	.bs-sidebar .nav > li > a:focus,
	.bs-sidebar .nav > li > a.manual-active,
	.bs-sidebar .nav > li > a.manual-active:hover,
	.bs-sidebar .nav > li > a.manual-active:focus {
		color: #ffffff;
	}

	code,
	pre,
	pre code {
		background: #10151c !important;
		color: #e6e8eb !important;
		border-color: #3f4756;
	}

	.table thead tr,
	.table thead th { border-bottom-color: #4f5867; }
	.table thead tr th { color: #d5dcea; }
	.table tr { border-bottom-color: #3f4756; }
	.table {
		--bs-table-color: #e6e8eb !important;
		--bs-table-bg: transparent !important;
		--bs-table-border-color: #4f5867 !important;
	}
	.table-striped > tbody > tr:nth-of-type(2n+1) > * {
		--bs-table-bg-type: rgba(242, 242, 242, 0.05) !important;
	}

	blockquote {
		background-color: #161c25;
		border-color: #4f5867;
		color: #d5dcea;
	}

	.admonition {
		background-color: #161c25;
		border-color: #4f5867;
		color: #e6e8eb;
	}
	.admonition.note { border-color: #717b8d; background-color: #161c25; }
	.admonition.note .admonition-title { color: #b7c1d1; }
	.admonition.tip { border-color: #2ca19d; background-color: #132427; }
	.admonition.tip .admonition-title { color: #66d4d0; }
	.admonition.warning { border-color: #e06d6d; background-color: #2a171b; }
	.admonition.warning .admonition-title { color: #ff9797; }
	.admonition.important { border-color: #c6a358; background-color: #2b2413; }
	.admonition.important .admonition-title { color: #ffd27d; }
	.admonition.mas { border-color: #af79cc; background-color: #241a2b; }
	.admonition.mas .admonition-title { color: #d3a6ea; }

	.col-md-9 img,
	main img,
	article img {
		box-sizing: border-box;
		border: 14px solid rgba(255, 255, 255, 0.28) !important;
		border-radius: 5px !important;
		background: #cfd7e4 !important;
		padding: 0 !important;
	}

	.col-md-9 img.shadow {
		box-shadow: 0 10px 24px rgba(0,0,0,0.35);
	}
	.col-md-9 img.borderlessShadow {
		box-shadow: 0 10px 24px rgba(0,0,0,0.35);
	}
}

/* Dark mode readability refinements (navbar + TOC) */
@media screen and (prefers-color-scheme: dark) {
	.navbar.fixed-top,
	.navbar.navbar-light.bg-light {
		background: rgba(12, 16, 22, 0.96) !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
		box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
	}

	.navbar-light .navbar-brand,
	.navbar-light .navbar-brand:hover {
		color: #f3f6fb !important;
	}

	.navbar-light .navbar-nav .nav-link,
	.navbar-light .navbar-nav .active > .nav-link,
	.navbar-light .navbar-nav .active > .nav-link:hover,
	.navbar-light .navbar-nav .active > .nav-link:focus {
		color: #eaf0fa !important;
	}

	.navbar-light .navbar-nav .nav-link:hover,
	.navbar-light .navbar-nav .nav-link:focus,
	.navbar-light .navbar-nav .active > .nav-link {
		color: #ffffff !important;
	}

	.navbar-toggler {
		border-color: #70798a !important;
	}

	.navbar-toggler-icon {
		filter: invert(1) brightness(1.6);
	}

	.card.bg-body-tertiary,
	#toc-collapse.card.bg-body-tertiary {
		background-color: #1b222c !important;
		border: 1px solid #4f5867 !important;
	}

	.bs-sidebar .nav > li > a,
	.bs-sidebar .nav > li > a.active,
	.bs-sidebar .nav > li > a.active:hover,
	.bs-sidebar .nav > li > a.active:focus {
		color: #c7d0dd !important;
	}

	.bs-sidebar .nav > li > a:hover,
	.bs-sidebar .nav > li > a:focus,
	.bs-sidebar .nav > li > a.manual-active,
	.bs-sidebar .nav > li > a.manual-active:hover,
	.bs-sidebar .nav > li > a.manual-active:focus {
		color: #ffffff !important;
	}
}

/* Opt-out class for dark-mode image framing */
@media screen and (prefers-color-scheme: dark) {
	.col-md-9 img.no-frame,
	main img.no-frame,
	article img.no-frame {
		border: none !important;
		background: transparent !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		padding: 0 !important;
	}
}

@media screen and (prefers-color-scheme: dark) {
	.proPill {
		background-color: rgba(65, 105, 225, 0.14);
		color: #b8cbff;
		border-color: #8cb1ff;
	}
	.standardPill {
		background-color: rgba(230, 0, 0, 0.14);
		color: #ffb0b0;
		border-color: #ff7d7d;
	}
	.corePill {
		background-color: rgba(0, 128, 0, 0.16);
		color: #a6e8a6;
		border-color: #7edb7e;
	}
	.updatePill {
		background-color: rgba(255, 0, 255, 0.10);
		color: #f2a6ff;
		border-color: #db6cff;
	}
	.sustainerPill {
		background: linear-gradient(180deg, rgba(151, 173, 39, 0.22) 0%, rgba(63, 116, 19, 0.28) 100%);
		color: #d7f29a;
		border-color: #bfdc59;
		box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
	}
	.masPill {
		background-color: rgba(162, 170, 173, 0.16);
		color: #c8cdd0;
		border-color: #A2AAAD;
	}

}
