/*
     ___
    / __|_ __ _____ ___ _ __ _ __  ___ __ _
    \__ \ V  V / -_) -_) '_ \ '_ \/ -_) _` |
    |___/\_/\_/\___\___| .__/ .__/\___\__,_|
                        |_|  |_|

    Platform  : Sweeppea Renaissance
    Version   : 4.0
    Path      : /lambda-functions/api-v3/documentation/assets/docs.css

    The Stylesheet Of The API v3 Documentation (apidocs.sweeppea.com).

    One File, No Framework. Every Color Is A Token On :root, Redefined For Dark
    Mode, So A Component Never Hard-Codes A Color. The Layout Is A Three Column
    Grid (Navigation / Article / On This Page) That Drops The Right Column On
    Laptops And Turns The Navigation Into A Drawer On Tablets And Phones.

    (c) Sweeppea, all rights reserved.
*/

/* ------------------------------------------------------------------ */
/* ---                          Tokens                            --- */
/* ------------------------------------------------------------------ */

:root {
	--brand          : #0070b8;
	--brand-strong   : #005a94;
	--brand-soft     : #e8f2fa;
	--brand-ink      : #0f3538;

	--bg             : #ffffff;
	--bg-subtle      : #f7f8fa;
	--bg-muted       : #f1f3f6;
	--surface        : #ffffff;
	--border         : #e5e7eb;
	--border-strong  : #d4d8de;

	--text           : #1f2933;
	--text-muted     : #5b6673;
	--text-subtle    : #8a94a1;
	--heading        : #0f1720;

	--code-bg        : #0f1720;
	--code-text      : #e6edf3;
	--code-border    : #1f2a36;
	--inline-code-bg : #eef1f5;
	--inline-code-fg : #0f3538;

	--get            : #0f9d58;
	--post           : #0070b8;
	--put            : #c77700;
	--patch          : #7b4fd6;
	--delete         : #d93025;

	--info-bg        : #eef6fd;
	--info-border    : #0070b8;
	--warn-bg        : #fff7e8;
	--warn-border    : #e08a00;
	--success-bg     : #eefaf3;
	--success-border : #0f9d58;
	--danger-bg      : #fdeeee;
	--danger-border  : #d93025;

	--tok-string     : #a5e3a0;
	--tok-number     : #f2b36f;
	--tok-key        : #8cc8ff;
	--tok-keyword    : #d7a6ff;
	--tok-comment    : #7d8a99;
	--tok-punct      : #aab4c0;

	--shadow-sm      : 0 1px 2px rgba(15, 23, 32, 0.06);
	--shadow-md      : 0 8px 30px rgba(15, 23, 32, 0.12);

	--radius         : 10px;
	--radius-sm      : 6px;

	--topbar-h       : 60px;
	--sidebar-w      : 280px;
	--toc-w          : 220px;
	--content-max    : 820px;

	--font-sans      : 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--font-mono      : 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;

	color-scheme     : light;
}

/* Dark Mode — The System Preference, Unless The Reader Picked Light */
@media (prefers-color-scheme: dark) {

	:root:not([data-theme="light"]) {
		--brand          : #4aa8ec;
		--brand-strong   : #7cc0f2;
		--brand-soft     : #10263a;
		--brand-ink      : #9fd3f7;

		--bg             : #0b1016;
		--bg-subtle      : #0f151d;
		--bg-muted       : #141c26;
		--surface        : #0f151d;
		--border         : #1f2a36;
		--border-strong  : #2b3846;

		--text           : #d6dde5;
		--text-muted     : #9aa6b2;
		--text-subtle    : #6f7c89;
		--heading        : #f1f5f9;

		--code-bg        : #070b10;
		--code-border    : #1a2430;
		--inline-code-bg : #17212c;
		--inline-code-fg : #b9dcf5;

		--info-bg        : #0f2233;
		--warn-bg        : #2a1f0c;
		--success-bg     : #0d2419;
		--danger-bg      : #2c1212;

		--shadow-sm      : 0 1px 2px rgba(0, 0, 0, 0.4);
		--shadow-md      : 0 10px 34px rgba(0, 0, 0, 0.55);

		color-scheme     : dark;
	}
}

:root[data-theme="dark"] {
	--brand          : #4aa8ec;
	--brand-strong   : #7cc0f2;
	--brand-soft     : #10263a;
	--brand-ink      : #9fd3f7;

	--bg             : #0b1016;
	--bg-subtle      : #0f151d;
	--bg-muted       : #141c26;
	--surface        : #0f151d;
	--border         : #1f2a36;
	--border-strong  : #2b3846;

	--text           : #d6dde5;
	--text-muted     : #9aa6b2;
	--text-subtle    : #6f7c89;
	--heading        : #f1f5f9;

	--code-bg        : #070b10;
	--code-border    : #1a2430;
	--inline-code-bg : #17212c;
	--inline-code-fg : #b9dcf5;

	--info-bg        : #0f2233;
	--warn-bg        : #2a1f0c;
	--success-bg     : #0d2419;
	--danger-bg      : #2c1212;

	--shadow-sm      : 0 1px 2px rgba(0, 0, 0, 0.4);
	--shadow-md      : 0 10px 34px rgba(0, 0, 0, 0.55);

	color-scheme     : dark;
}

/* ------------------------------------------------------------------ */
/* ---                          Base                              --- */
/* ------------------------------------------------------------------ */

*,
*::before,
*::after {
	box-sizing : border-box;
}

html {
	-webkit-text-size-adjust : 100%;
	text-size-adjust         : 100%;
	scroll-padding-top       : calc(var(--topbar-h) + 16px);
}

body {
	margin                  : 0;
	background              : var(--bg);
	color                   : var(--text);
	font-family             : var(--font-sans);
	font-size               : 15px;
	line-height             : 1.65;
	-webkit-font-smoothing  : antialiased;
	-moz-osx-font-smoothing : grayscale;
	text-rendering          : optimizeLegibility;
}

a {
	color           : var(--brand);
	text-decoration : none;
}

a:hover {
	color           : var(--brand-strong);
	text-decoration : underline;
}

:focus-visible {
	outline        : 2px solid var(--brand);
	outline-offset : 2px;
	border-radius  : 4px;
}

img,
svg {
	max-width : 100%;
}

.skip-link {
	position      : absolute;
	left          : 12px;
	top           : -60px;
	z-index       : 100;
	padding       : 8px 14px;
	background    : var(--brand);
	color         : #ffffff;
	border-radius : var(--radius-sm);
}

.skip-link:focus {
	top : 12px;
}

.sr-only {
	position   : absolute;
	width      : 1px;
	height     : 1px;
	overflow   : hidden;
	clip       : rect(0 0 0 0);
	white-space: nowrap;
}

/* ------------------------------------------------------------------ */
/* ---                          Top Bar                           --- */
/* ------------------------------------------------------------------ */

.topbar {
	position                : sticky;
	top                     : 0;
	z-index                 : 40;
	height                  : var(--topbar-h);
	display                 : flex;
	align-items             : center;
	gap                     : 16px;
	padding                 : 0 20px;
	background              : var(--bg);
	border-bottom           : 1px solid var(--border);
}


.brand {
	display     : flex;
	align-items : center;
	gap         : 10px;
	color       : var(--heading);
	font-weight : 700;
	white-space : nowrap;
}

.brand:hover {
	color           : var(--heading);
	text-decoration : none;
}

.brand__mark {
	width           : 30px;
	height          : 30px;
	border-radius   : 8px;
	background      : linear-gradient(135deg, var(--brand), var(--brand-ink));
	color           : #ffffff;
	display         : flex;
	align-items     : center;
	justify-content : center;
	font-size       : 15px;
	font-weight     : 800;
}

.brand__name {
	font-size : 15px;
}

.brand__tag {
	font-size     : 11px;
	font-weight   : 600;
	color         : var(--brand);
	background    : var(--brand-soft);
	border-radius : 999px;
	padding       : 2px 8px;
}

.topbar__search {
	flex          : 1;
	max-width     : 420px;
	margin-left   : auto;
	display       : flex;
	align-items   : center;
	gap           : 10px;
	height        : 38px;
	padding       : 0 12px;
	border        : 1px solid var(--border);
	border-radius : 9px;
	background    : var(--bg-subtle);
	color         : var(--text-subtle);
	font          : inherit;
	font-size     : 14px;
	cursor        : pointer;
	text-align    : left;
}

.topbar__search:hover {
	border-color : var(--border-strong);
}

.topbar__search span {
	flex : 1;
}

.topbar__search [data-icon] {
	flex    : 0 0 16px;
	display : inline-flex;
}

.topbar__search [data-icon] svg {
	width  : 16px;
	height : 16px;
}

.search__field [data-icon] {
	display : inline-flex;
}

.kbd {
	font-family   : var(--font-mono);
	font-size     : 11px;
	color         : var(--text-muted);
	border        : 1px solid var(--border-strong);
	border-bottom-width : 2px;
	border-radius : 5px;
	padding       : 1px 6px;
	background    : var(--surface);
}

.topbar__links {
	display     : flex;
	align-items : center;
	gap         : 4px;
}

.topbar__link {
	color         : var(--text-muted);
	font-size     : 14px;
	font-weight   : 500;
	padding       : 6px 10px;
	border-radius : var(--radius-sm);
	white-space   : nowrap;
}

.topbar__link:hover {
	color           : var(--heading);
	background      : var(--bg-muted);
	text-decoration : none;
}

.icon-btn {
	width           : 38px;
	height          : 38px;
	flex            : 0 0 38px;
	display         : inline-flex;
	align-items     : center;
	justify-content : center;
	border          : 1px solid var(--border);
	border-radius   : 9px;
	background      : var(--surface);
	color           : var(--text-muted);
	cursor          : pointer;
}

.icon-btn:hover {
	color      : var(--heading);
	background : var(--bg-muted);
}

.icon-btn svg {
	width  : 18px;
	height : 18px;
}

.menu-btn {
	display : none;
}

/* ------------------------------------------------------------------ */
/* ---                          Layout                            --- */
/* ------------------------------------------------------------------ */

.layout {
	display               : grid;
	grid-template-columns : var(--sidebar-w) minmax(0, 1fr) var(--toc-w);
	max-width             : 1480px;
	margin                : 0 auto;
}

.sidebar {
	position   : sticky;
	top        : var(--topbar-h);
	height     : calc(100vh - var(--topbar-h));
	overflow-y : auto;
	padding    : 20px 12px 40px 20px;
	border-right : 1px solid var(--border);
	overscroll-behavior : contain;
	scrollbar-width : thin;
}

.content {
	min-width : 0;
	padding   : 40px 48px 80px;
}

.doc {
	max-width : var(--content-max);
	margin    : 0 auto;
}

.toc {
	position   : sticky;
	top        : var(--topbar-h);
	height     : calc(100vh - var(--topbar-h));
	overflow-y : auto;
	padding    : 40px 20px 40px 8px;
	font-size  : 13px;
}

.backdrop {
	display : none;
}

.sidebar__head {
	display : none;
}

/* ------------------------------------------------------------------ */
/* ---                        Navigation                          --- */
/* ------------------------------------------------------------------ */

.nav-group {
	margin-bottom : 6px;
}

.nav-group__title {
	width           : 100%;
	display         : flex;
	align-items     : center;
	gap             : 8px;
	padding         : 8px 10px;
	border          : 0;
	background      : none;
	color           : var(--heading);
	font            : inherit;
	font-size       : 13px;
	font-weight     : 600;
	cursor          : pointer;
	border-radius   : var(--radius-sm);
	text-align      : left;
}

.nav-group__title:hover {
	background : var(--bg-muted);
}

.nav-group__icon {
	width      : 20px;
	text-align : center;
	font-size  : 14px;
}

.nav-group__chevron {
	margin-left : auto;
	width       : 14px;
	height      : 14px;
	color       : var(--text-subtle);
	transition  : transform 0.2s ease;
}

.nav-group.is-collapsed .nav-group__chevron {
	transform : rotate(-90deg);
}

.nav-group__items {
	list-style : none;
	margin     : 2px 0 8px;
	padding    : 0 0 0 16px;
	border-left: 1px solid var(--border);
	margin-left: 19px;
}

.nav-group.is-collapsed .nav-group__items {
	display : none;
}

.nav-link {
	display         : flex;
	align-items     : center;
	gap             : 8px;
	padding         : 5px 10px;
	margin-left     : -1px;
	border-left     : 2px solid transparent;
	color           : var(--text-muted);
	font-size       : 13.5px;
	line-height     : 1.45;
	border-radius   : 0 var(--radius-sm) var(--radius-sm) 0;
}

.nav-link:hover {
	color           : var(--heading);
	background      : var(--bg-muted);
	text-decoration : none;
}

.nav-link.is-active {
	color        : var(--brand);
	font-weight  : 600;
	border-color : var(--brand);
	background   : var(--brand-soft);
}

.nav-link__label {
	flex      : 1;
	min-width : 0;
}

.nav-link.is-disabled {
	color  : var(--text-subtle);
	cursor : not-allowed;
}

.nav-link.is-disabled:hover {
	background : none;
}

.nav-link__soon {
	font-size     : 10px;
	font-weight   : 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color         : var(--text-subtle);
}

.nav-link__external {
	width  : 12px;
	height : 12px;
	color  : var(--text-subtle);
}

.nav-top {
	list-style : none;
	margin     : 0 0 14px;
	padding    : 0;
}

.nav-top .nav-link {
	border-left   : 0;
	border-radius : var(--radius-sm);
	font-weight   : 500;
	margin-left   : 0;
}

/* ------------------------------------------------------------------ */
/* ---                      Method Badges                         --- */
/* ------------------------------------------------------------------ */

.method {
	display        : inline-flex;
	align-items    : center;
	justify-content: center;
	min-width      : 44px;
	padding        : 1px 6px;
	border-radius  : 5px;
	font-family    : var(--font-mono);
	font-size      : 10px;
	font-weight    : 700;
	letter-spacing : 0.03em;
	line-height    : 1.6;
	color          : #ffffff;
	background     : var(--post);
	flex           : 0 0 auto;
}

.method--get    { background : var(--get); }
.method--post   { background : var(--post); }
.method--put    { background : var(--put); }
.method--patch  { background : var(--patch); }
.method--delete { background : var(--delete); }

.nav-link .method {
	min-width : 38px;
	font-size : 9px;
}

/* ------------------------------------------------------------------ */
/* ---                        Article                             --- */
/* ------------------------------------------------------------------ */

.breadcrumb {
	display     : flex;
	flex-wrap   : wrap;
	align-items : center;
	gap         : 6px;
	margin      : 0 0 10px;
	font-size   : 13px;
	color       : var(--text-subtle);
}

.breadcrumb a {
	color : var(--text-muted);
}

.doc h1 {
	margin         : 0 0 12px;
	color          : var(--heading);
	font-size      : clamp(28px, 4vw, 38px);
	line-height    : 1.15;
	letter-spacing : -0.02em;
	font-weight    : 800;
}

.lead {
	margin    : 0 0 28px;
	font-size : 17px;
	color     : var(--text-muted);
}

.doc h2 {
	margin         : 48px 0 14px;
	padding-top    : 4px;
	color          : var(--heading);
	font-size      : 22px;
	line-height    : 1.3;
	letter-spacing : -0.01em;
	font-weight    : 700;
}

.doc h3 {
	margin      : 28px 0 10px;
	color       : var(--heading);
	font-size   : 17px;
	font-weight : 650;
}

.doc h2 .anchor,
.doc h3 .anchor {
	margin-left : 8px;
	color       : var(--text-subtle);
	opacity     : 0;
	font-weight : 400;
}

.doc h2:hover .anchor,
.doc h3:hover .anchor,
.doc .anchor:focus {
	opacity : 1;
}

.doc p,
.doc ul,
.doc ol {
	margin : 0 0 14px;
}

.doc ul,
.doc ol {
	padding-left : 22px;
}

.doc li {
	margin-bottom : 6px;
}

.doc li > ul,
.doc li > ol {
	margin-top : 6px;
}

.doc strong {
	color       : var(--heading);
	font-weight : 600;
}

.doc hr {
	border     : 0;
	border-top : 1px solid var(--border);
	margin     : 32px 0;
}

.doc :not(pre) > code {
	font-family   : var(--font-mono);
	font-size     : 0.86em;
	padding       : 0.15em 0.4em;
	border-radius : 5px;
	background    : var(--inline-code-bg);
	color         : var(--inline-code-fg);
	word-break    : break-word;
}

/* ------------------------------------------------------------------ */
/* ---                     Endpoint Header                        --- */
/* ------------------------------------------------------------------ */

.endpoint {
	display       : flex;
	align-items   : center;
	gap           : 12px;
	margin        : 0 0 32px;
	padding       : 12px 12px 12px 14px;
	border        : 1px solid var(--border);
	border-radius : var(--radius);
	background    : var(--bg-subtle);
	box-shadow    : var(--shadow-sm);
}

.endpoint .method {
	font-size : 11px;
	min-width : 56px;
	padding   : 3px 8px;
}

.endpoint__url {
	flex        : 1;
	min-width   : 0;
	font-family : var(--font-mono);
	font-size   : 14px;
	color       : var(--heading);
	overflow-x  : auto;
	white-space : nowrap;
	scrollbar-width : none;
}

.endpoint__url::-webkit-scrollbar {
	display : none;
}

.doc .endpoint .endpoint__url {
	padding    : 0;
	background : none;
	color      : var(--heading);
	font-size  : 14px;
}

.endpoint__base {
	color : var(--text-subtle);
}

/* ------------------------------------------------------------------ */
/* ---                          Tables                            --- */
/* ------------------------------------------------------------------ */

.table-wrap {
	margin        : 16px 0 24px;
	border        : 1px solid var(--border);
	border-radius : var(--radius);
	overflow-x    : auto;
	-webkit-overflow-scrolling : touch;
}

.table-wrap table {
	width           : 100%;
	border-collapse : collapse;
	font-size       : 14px;
	line-height     : 1.55;
}

.table-wrap th {
	position      : sticky;
	top           : 0;
	padding       : 10px 14px;
	text-align    : left;
	font-size     : 12px;
	font-weight   : 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color         : var(--text-muted);
	background    : var(--bg-subtle);
	border-bottom : 1px solid var(--border);
	white-space   : nowrap;
}

.table-wrap td {
	padding        : 12px 14px;
	vertical-align : top;
	border-bottom  : 1px solid var(--border);
}

.table-wrap tr:last-child td {
	border-bottom : 0;
}

.table-wrap tbody tr:hover td {
	background : var(--bg-subtle);
}

/* The First Column Is The Name Of A Field — It Never Wraps */
.table-wrap td:first-child {
	white-space : nowrap;
}

.table-wrap td:first-child code {
	font-weight : 600;
}

.req {
	display       : inline-block;
	font-size     : 11px;
	font-weight   : 600;
	border-radius : 999px;
	padding       : 1px 8px;
	white-space   : nowrap;
}

.req--yes {
	color      : var(--danger-border);
	background : var(--danger-bg);
}

.req--no {
	color      : var(--text-muted);
	background : var(--bg-muted);
}

.req--maybe {
	color      : var(--warn-border);
	background : var(--warn-bg);
}

/* ------------------------------------------------------------------ */
/* ---                          Callouts                          --- */
/* ------------------------------------------------------------------ */

.callout {
	display       : flex;
	gap           : 12px;
	margin        : 18px 0 22px;
	padding       : 14px 16px;
	border        : 0;
	border-left   : 4px solid var(--info-border);
	border-radius : var(--radius-sm);
	background    : var(--info-bg);
	font-size     : 14px;
}

.callout__icon {
	flex   : 0 0 18px;
	width  : 18px;
	height : 18px;
	margin-top : 3px;
	color  : var(--info-border);
}

.callout__body {
	flex      : 1;
	min-width : 0;
}

.callout__body ul,
.callout__body ol {
	padding-left : 18px;
}

.callout__body > :last-child {
	margin-bottom : 0;
}

.callout__title {
	display     : block;
	margin      : 0 0 4px;
	color       : var(--heading);
	font-weight : 650;
}

.callout--warning {
	background        : var(--warn-bg);
	border-left-color : var(--warn-border);
}

.callout--warning .callout__icon {
	color : var(--warn-border);
}

.callout--success {
	background        : var(--success-bg);
	border-left-color : var(--success-border);
}

.callout--success .callout__icon {
	color : var(--success-border);
}

.callout--danger {
	background        : var(--danger-bg);
	border-left-color : var(--danger-border);
}

.callout--danger .callout__icon {
	color : var(--danger-border);
}

/* "Important Notes" — A Quiet Box Around The List */
.notes {
	margin        : 16px 0 24px;
	padding       : 16px 18px;
	border        : 1px solid var(--border);
	border-radius : var(--radius);
	background    : var(--bg-subtle);
	font-size     : 14px;
}

.notes ul {
	margin       : 0;
	padding-left : 20px;
}

.notes li:last-child {
	margin-bottom : 0;
}

/* ------------------------------------------------------------------ */
/* ---                           Code                             --- */
/* ------------------------------------------------------------------ */

.code {
	position      : relative;
	margin        : 14px 0 24px;
	border        : 1px solid var(--code-border);
	border-radius : var(--radius);
	background    : var(--code-bg);
	overflow      : hidden;
	box-shadow    : var(--shadow-sm);
}

.code__bar {
	display       : flex;
	align-items   : center;
	gap           : 4px;
	min-height    : 42px;
	padding       : 0 8px 0 6px;
	border-bottom : 1px solid var(--code-border);
	background    : rgba(255, 255, 255, 0.02);
}

.code__label {
	padding     : 0 8px;
	font-size   : 12px;
	font-weight : 600;
	color       : #9aa6b2;
}

.code__tab {
	position      : relative;
	padding       : 11px 10px;
	border        : 0;
	background    : none;
	color         : #8a96a3;
	font          : inherit;
	font-size     : 12.5px;
	font-weight   : 600;
	cursor        : pointer;
	white-space   : nowrap;
}

.code__tab:hover {
	color : #e6edf3;
}

.code__tab[aria-selected="true"] {
	color : #ffffff;
}

.code__tab[aria-selected="true"]::after {
	content    : '';
	position   : absolute;
	left       : 10px;
	right      : 10px;
	bottom     : -1px;
	height     : 2px;
	border-radius : 2px;
	background : #4aa8ec;
}

.code__copy {
	margin-left   : auto;
	display       : inline-flex;
	align-items   : center;
	gap           : 6px;
	padding       : 5px 10px;
	border        : 1px solid #2b3846;
	border-radius : 7px;
	background    : transparent;
	color         : #aab4c0;
	font          : inherit;
	font-size     : 12px;
	font-weight   : 500;
	cursor        : pointer;
}

.code__copy:hover {
	color      : #ffffff;
	border-color : #3c4b5c;
	background : rgba(255, 255, 255, 0.05);
}

.code__copy svg {
	width  : 13px;
	height : 13px;
}

.code__copy.is-copied {
	color        : #7ee2a8;
	border-color : #2f6b4a;
}

.code pre {
	margin      : 0;
	padding     : 16px 18px;
	overflow    : auto;
	max-height  : 560px;
	font-family : var(--font-mono);
	font-size   : 13px;
	line-height : 1.7;
	color       : var(--code-text);
	tab-size    : 4;
	-webkit-overflow-scrolling : touch;
	scrollbar-width : thin;
}

.code pre[hidden] {
	display : none;
}

.code code {
	font-family : inherit;
	background  : none;
	padding     : 0;
	color       : inherit;
	white-space : pre;
}

/* Syntax Tokens (Built-In Highlighter, No Third Party Library) */
.tok-string  { color : var(--tok-string); }
.tok-number  { color : var(--tok-number); }
.tok-key     { color : var(--tok-key); }
.tok-keyword { color : var(--tok-keyword); }
.tok-comment { color : var(--tok-comment); font-style : italic; }
.tok-punct   { color : var(--tok-punct); }

/* ------------------------------------------------------------------ */
/* ---                     Cards (Home Page)                      --- */
/* ------------------------------------------------------------------ */

.hero {
	margin        : 0 0 36px;
	padding       : 36px;
	border-radius : 16px;
	background    : radial-gradient(1200px 300px at 0% 0%, rgba(0, 112, 184, 0.18), transparent 60%), linear-gradient(135deg, var(--bg-subtle), var(--bg));
	border        : 1px solid var(--border);
}

.hero .lead {
	max-width : 620px;
}

.hero__actions {
	display   : flex;
	flex-wrap : wrap;
	gap       : 10px;
}

.btn {
	font-family   : inherit;
	cursor        : pointer;
	line-height   : 1.4;
	display       : inline-flex;
	align-items   : center;
	gap           : 8px;
	padding       : 10px 16px;
	border-radius : 9px;
	font-size     : 14px;
	font-weight   : 600;
	border        : 1px solid var(--border-strong);
	color         : var(--heading);
	background    : var(--surface);
}

.btn:hover {
	text-decoration : none;
	color           : var(--heading);
	border-color    : var(--text-subtle);
}

.btn--primary {
	background   : var(--brand);
	border-color : var(--brand);
	color        : #ffffff;
}

.btn--primary:hover {
	background   : var(--brand-strong);
	border-color : var(--brand-strong);
	color        : #ffffff;
}

.cards {
	display               : grid;
	grid-template-columns : repeat(auto-fill, minmax(220px, 1fr));
	gap                   : 14px;
	margin                : 16px 0 28px;
}

.card {
	display       : flex;
	flex-direction: column;
	gap           : 6px;
	padding       : 18px;
	border        : 1px solid var(--border);
	border-radius : var(--radius);
	background    : var(--surface);
	color         : var(--text);
	transition    : border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

a.card:hover {
	text-decoration : none;
	color           : var(--text);
	border-color    : var(--brand);
	box-shadow      : var(--shadow-md);
	transform       : translateY(-1px);
}

.card__icon {
	display         : inline-flex;
	align-items     : center;
	justify-content : center;
	width           : 36px;
	height          : 36px;
	margin-bottom   : 4px;
	border-radius   : 9px;
	background      : var(--brand-soft);
	color           : var(--brand);
}

.card__icon svg {
	width  : 20px;
	height : 20px;
}

.card__title {
	color       : var(--heading);
	font-weight : 650;
	font-size   : 15px;
}

.card__text {
	color     : var(--text-muted);
	font-size : 13.5px;
	margin    : 0;
}

.card__meta {
	margin-top : auto;
	padding-top: 6px;
	font-size  : 12px;
	color      : var(--brand);
	font-weight: 600;
}

.card.is-current {
	border-color : var(--brand);
	background   : var(--brand-soft);
}

/* ------------------------------------------------------------------ */
/* ---                     On This Page (TOC)                     --- */
/* ------------------------------------------------------------------ */

.toc__title {
	margin        : 0 0 10px;
	font-size     : 11px;
	font-weight   : 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color         : var(--text-subtle);
}

.toc ul {
	list-style  : none;
	margin      : 0;
	padding     : 0;
	border-left : 1px solid var(--border);
}

.toc a {
	display     : block;
	margin-left : -1px;
	padding     : 4px 0 4px 12px;
	border-left : 2px solid transparent;
	color       : var(--text-muted);
	line-height : 1.45;
}

.toc a:hover {
	color           : var(--heading);
	text-decoration : none;
}

.toc a.is-active {
	color        : var(--brand);
	border-color : var(--brand);
	font-weight  : 600;
}

.toc .toc__sub a {
	padding-left : 24px;
	font-size    : 12.5px;
}

/* ------------------------------------------------------------------ */
/* ---                      Previous / Next                       --- */
/* ------------------------------------------------------------------ */

.pager {
	display               : grid;
	grid-template-columns : 1fr 1fr;
	gap                   : 14px;
	margin                : 56px 0 0;
	padding-top           : 24px;
	border-top            : 1px solid var(--border);
}

.pager a {
	display       : flex;
	flex-direction: column;
	gap           : 2px;
	padding       : 14px 16px;
	border        : 1px solid var(--border);
	border-radius : var(--radius);
	color         : var(--heading);
	font-weight   : 600;
}

.pager a:hover {
	text-decoration : none;
	border-color    : var(--brand);
}

.pager small {
	font-weight : 500;
	font-size   : 12px;
	color       : var(--text-subtle);
}

.pager__next {
	grid-column : 2;
	text-align  : right;
}

.page-footer {
	margin-top : 40px;
	font-size  : 13px;
	color      : var(--text-subtle);
}

/* ------------------------------------------------------------------ */
/* ---                     Search Palette                         --- */
/* ------------------------------------------------------------------ */

.search {
	position        : fixed;
	inset           : 0;
	z-index         : 90;
	display         : none;
	align-items     : flex-start;
	justify-content : center;
	padding         : 10vh 16px 16px;
	background      : rgba(8, 12, 18, 0.55);
}

.search.is-open {
	display : flex;
}

.search__panel {
	width         : 100%;
	max-width     : 620px;
	max-height    : 70vh;
	display       : flex;
	flex-direction: column;
	border        : 1px solid var(--border);
	border-radius : 14px;
	background    : var(--surface);
	box-shadow    : var(--shadow-md);
	overflow      : hidden;
}

.search__field {
	display       : flex;
	align-items   : center;
	gap           : 10px;
	padding       : 0 16px;
	border-bottom : 1px solid var(--border);
}

.search__field svg {
	width  : 18px;
	height : 18px;
	color  : var(--text-subtle);
	flex   : 0 0 18px;
}

.search__input {
	flex       : 1;
	height     : 54px;
	border     : 0;
	outline    : 0;
	background : none;
	color      : var(--heading);
	font       : inherit;
	font-size  : 16px;
}

.search__results {
	list-style : none;
	margin     : 0;
	padding    : 8px;
	overflow-y : auto;
}

.search__group {
	padding       : 10px 10px 4px;
	font-size     : 11px;
	font-weight   : 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color         : var(--text-subtle);
}

.search__item a {
	display       : flex;
	align-items   : center;
	gap           : 10px;
	padding       : 10px;
	border-radius : 9px;
	color         : var(--text);
}

.search__item a:hover,
.search__item.is-active a {
	background      : var(--brand-soft);
	text-decoration : none;
	color           : var(--heading);
}

.search__path {
	margin-left : auto;
	font-family : var(--font-mono);
	font-size   : 12px;
	color       : var(--text-subtle);
	white-space : nowrap;
	overflow    : hidden;
	text-overflow : ellipsis;
	max-width   : 45%;
}

.search__empty {
	padding    : 28px 16px;
	text-align : center;
	color      : var(--text-muted);
}

.search__hint {
	display       : flex;
	gap           : 14px;
	padding       : 10px 16px;
	border-top    : 1px solid var(--border);
	font-size     : 12px;
	color         : var(--text-subtle);
}

/* ------------------------------------------------------------------ */
/* ---                      Responsive                            --- */
/* ------------------------------------------------------------------ */

/* Laptops: The "On This Page" Column Goes */
@media (max-width: 1240px) {

	.layout {
		grid-template-columns : var(--sidebar-w) minmax(0, 1fr);
	}

	.toc {
		display : none;
	}
}

/* Tablets And Phones: The Navigation Becomes A Drawer */
@media (max-width: 1024px) {

	.layout {
		display : block;
	}

	.menu-btn {
		display : inline-flex;
	}

	.sidebar {
		position   : fixed;
		top        : 0;
		left       : 0;
		bottom     : 0;
		z-index    : 80;
		width      : min(320px, 86vw);
		height     : 100%;
		padding-top: 20px;
		background : var(--bg);
		border-right : 1px solid var(--border);
		box-shadow : var(--shadow-md);
		transform  : translateX(-105%);
		transition : transform 0.25s ease;
		visibility : hidden;
	}

	.sidebar__head {
		display         : flex;
		align-items     : center;
		justify-content : space-between;
		margin          : -4px 0 16px;
		padding-bottom  : 12px;
		border-bottom   : 1px solid var(--border);
	}

	body.nav-open .sidebar {
		transform  : translateX(0);
		visibility : visible;
	}

	body.nav-open {
		overflow : hidden;
	}

	.backdrop {
		position   : fixed;
		inset      : 0;
		z-index    : 70;
		background : rgba(8, 12, 18, 0.5);
	}

	body.nav-open .backdrop {
		display : block;
	}

	.content {
		padding : 32px 28px 64px;
	}

	.topbar__links {
		display : none;
	}
}

/* Phones */
@media (max-width: 640px) {

	body {
		font-size : 15px;
	}

	.topbar {
		gap     : 10px;
		padding : 0 12px;
	}

	.brand__tag {
		display : none;
	}

	.topbar__search {
		flex      : 0 0 38px;
		width     : 38px;
		padding   : 0;
		justify-content : center;
		margin-left : auto;
	}

	.topbar__search span:not([data-icon]),
	.topbar__search .kbd {
		display : none;
	}

	.content {
		padding : 24px 16px 56px;
	}

	.doc h2 {
		margin-top : 38px;
		font-size  : 20px;
	}

	.hero {
		padding : 24px 18px;
	}

	.endpoint {
		flex-wrap : wrap;
		gap       : 8px;
	}

	.endpoint__url {
		flex      : 1 1 100%;
		order     : 3;
		font-size : 13px;
	}

	.endpoint .icon-btn {
		margin-left : auto;
	}

	.doc .endpoint .endpoint__url {
		white-space : normal;
		word-break  : break-all;
		overflow-x  : visible;
		font-size   : 13px;
	}

	.code pre {
		padding   : 14px;
		font-size : 12.5px;
	}

	/* Parameter Tables Stack Into One Card Per Row */
	.table-wrap.is-stackable {
		border     : 0;
		overflow   : visible;
	}

	.is-stackable table,
	.is-stackable tbody,
	.is-stackable tr,
	.is-stackable td {
		display : block;
		width   : 100%;
	}

	.is-stackable thead {
		display : none;
	}

	.is-stackable tr {
		margin-bottom : 10px;
		padding       : 12px 14px;
		border        : 1px solid var(--border);
		border-radius : var(--radius);
		background    : var(--surface);
	}

	.is-stackable td,
	.is-stackable td:first-child {
		padding       : 3px 0;
		border        : 0;
		white-space   : normal;
		overflow-wrap : anywhere;
	}

	.is-stackable td:first-child {
		margin-bottom : 4px;
		font-size     : 15px;
	}

	.is-stackable tbody tr:hover td {
		background : none;
	}

	.is-stackable td[data-th]:not(:first-child)::before {
		content        : attr(data-th);
		display        : inline-block;
		min-width      : 88px;
		margin-right   : 8px;
		font-size      : 11px;
		font-weight    : 600;
		letter-spacing : 0.04em;
		text-transform : uppercase;
		color          : var(--text-subtle);
	}

	.is-stackable td:last-child:not(:first-child)::before {
		display       : block;
		margin-bottom : 2px;
	}

	.pager {
		grid-template-columns : 1fr;
	}

	.pager__next {
		grid-column : 1;
	}

	.search {
		padding : 0;
	}

	.search__panel {
		max-width     : none;
		max-height    : 100vh;
		height        : 100%;
		border-radius : 0;
		border        : 0;
	}

	.search__path {
		display : none;
	}
}

/* Motion */
@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		transition : none !important;
		animation  : none !important;
		scroll-behavior : auto !important;
	}
}

/* Print: Just The Article */
@media print {

	.topbar,
	.sidebar,
	.toc,
	.pager,
	.code__bar,
	.backdrop {
		display : none !important;
	}

	.layout {
		display : block;
	}

	.content {
		padding : 0;
	}

	.code pre {
		max-height  : none;
		white-space : pre-wrap;
	}
}
