/* Integrations page — dark-portal. Inherits tokens from components.css
   (.dark-portal: --dark-bg #0d0d0d, --dark-surface #141414, --dark-border) and
   marketing-shell.css (--teal #087a6b, --font, --mono). */

.dark-portal {
	--int-accent: #2fbf9a; /* brighter teal for on-dark highlights */
	--int-dim: rgba(255, 255, 255, 0.56);
	--int-faint: rgba(255, 255, 255, 0.34);
}

.breadcrumb-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 96px 32px 0;
}
.dark-portal .breadcrumb a { color: var(--int-dim); }
.dark-portal .breadcrumb a:hover { color: #fff; }
.dark-portal .breadcrumb-sep { color: var(--int-faint); }
.dark-portal .breadcrumb span:last-child { color: rgba(255, 255, 255, 0.8); }

/* ── Hero ── */
.int-hero {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 32px 24px;
}
.int-hero-inner { max-width: 880px; }
.int-eyebrow {
	font-family: var(--mono);
	font-size: 14px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--int-accent);
}
.int-h1 {
	margin-top: 16px;
	font-size: clamp(40px, 6vw, 68px);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.02em;
	color: #fff;
}
.int-h1 em { color: var(--int-accent); font-style: normal; }
.int-sub {
	margin-top: 20px;
	font-size: clamp(18px, 2.2vw, 23px);
	line-height: 1.5;
	color: var(--int-dim);
	max-width: 760px;
}
.int-sub strong { color: rgba(255, 255, 255, 0.92); font-weight: 600; }

.int-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}
.int-stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 16px 22px;
	background: var(--dark-surface);
	border: 1px solid var(--dark-border);
	border-radius: 14px;
	min-width: 140px;
}
.int-stat-num {
	font-size: 32px;
	font-weight: 800;
	color: var(--int-accent);
	letter-spacing: -0.01em;
}
.int-stat-label {
	font-family: var(--mono);
	font-size: 14px;
	color: var(--int-dim);
}

/* ── Browse / controls ── */
.int-browse {
	max-width: 1200px;
	margin: 0 auto;
	padding: 28px 32px 64px;
}
.int-controls {
	position: sticky;
	top: 64px;
	z-index: 5;
	padding: 18px 0 16px;
	background: linear-gradient(180deg, var(--dark-bg) 78%, rgba(13, 13, 13, 0));
}
.int-search-wrap { margin-bottom: 16px; }
.int-search {
	width: 100%;
	max-width: 460px;
	padding: 14px 18px;
	font-family: var(--font);
	font-size: 16px;
	color: #fff;
	background: var(--dark-surface);
	border: 1px solid var(--dark-border);
	border-radius: 100px;
	outline: none;
	transition: border-color 0.15s ease;
}
.int-search::placeholder { color: var(--int-faint); }
.int-search:focus { border-color: var(--int-accent); }

.int-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}
.conn-chip {
	font-family: var(--mono);
	font-size: 14px;
	color: var(--int-dim);
	padding: 9px 16px;
	background: var(--dark-surface);
	border: 1px solid var(--dark-border);
	border-radius: 100px;
	cursor: pointer;
	transition: all 0.15s ease;
	white-space: nowrap;
}
.conn-chip span { color: var(--int-faint); margin-left: 2px; }
.conn-chip:hover { color: #fff; border-color: rgba(255, 255, 255, 0.2); }
.conn-chip.active {
	color: #04140f;
	background: var(--int-accent);
	border-color: var(--int-accent);
	font-weight: 600;
}
.conn-chip.active span { color: rgba(4, 20, 15, 0.6); }

/* ── Grid ── */
.int-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 12px;
	margin-top: 8px;
}
/* .conn-card sets display:flex, which overrides the [hidden] attribute's
   UA display:none — without this, filtered-out cards stay visible. */
.conn-card[hidden] { display: none !important; }
.conn-card {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 74px;
	padding: 14px 18px;
	background: var(--dark-surface);
	border: 1px solid var(--dark-border);
	border-radius: 14px;
	transition: border-color 0.15s ease, transform 0.15s ease, background 0.15s ease;
}
.conn-card:hover {
	border-color: rgba(47, 191, 154, 0.45);
	background: #171c1b;
	transform: translateY(-2px);
}
.conn-text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-width: 0;
	flex: 1;
}
.conn-logo {
	width: 40px;
	height: 40px;
	border-radius: 9px;
	object-fit: contain;
	background: #fff;
	padding: 5px;
	flex-shrink: 0;
}
/* Near-white logos (auto-detected at build time) need a dark tile to be seen. */
.conn-logo-light {
	background: #1b2230;
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.conn-mono {
	width: 40px;
	height: 40px;
	border-radius: 9px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mono);
	font-weight: 600;
	font-size: 15px;
	color: var(--int-accent);
	background: rgba(47, 191, 154, 0.12);
	border: 1px solid rgba(47, 191, 154, 0.25);
}
.conn-name {
	font-size: 16px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.2;
	min-width: 0;
	overflow-wrap: anywhere;
}
.conn-badge {
	align-self: flex-start;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--int-accent);
	padding: 3px 8px;
	border-radius: 100px;
	background: rgba(47, 191, 154, 0.1);
	border: 1px solid rgba(47, 191, 154, 0.3);
	flex-shrink: 0;
}
.int-empty {
	margin-top: 28px;
	font-size: 17px;
	color: var(--int-dim);
}
.int-empty a { color: var(--int-accent); }

/* ── Any-API band ── */
.int-anyapi {
	border-top: 1px solid var(--dark-border);
	background: #0a0f0e;
}
.int-anyapi-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 32px;
}
.int-anyapi-copy { max-width: 720px; }
.int-h2 {
	margin-top: 14px;
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
	line-height: 1.1;
}
.int-anyapi-body {
	margin-top: 18px;
	font-size: 19px;
	line-height: 1.55;
	color: var(--int-dim);
}
.int-anyapi-body strong { color: rgba(255, 255, 255, 0.92); font-weight: 600; }
.int-anyapi-actions {
	margin-top: 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* ── Closing CTA ── */
.int-cta {
	border-top: 1px solid var(--dark-border);
	text-align: center;
}
.int-cta-inner {
	max-width: 720px;
	margin: 0 auto;
	padding: 80px 32px;
}
.int-cta-tag {
	font-family: var(--mono);
	font-size: 14px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--int-accent);
}
.int-cta-h2 {
	margin-top: 16px;
	font-size: clamp(34px, 5vw, 54px);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
	line-height: 1.05;
}
.int-cta-h2 em { color: var(--int-accent); font-style: normal; }
.int-cta-sub {
	margin-top: 18px;
	font-size: 19px;
	color: var(--int-dim);
}
.int-cta-actions {
	margin-top: 30px;
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
}

@media (max-width: 600px) {
	.int-controls { top: 56px; }
	.int-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
	.int-stats { gap: 10px; }
	.int-stat { min-width: 0; flex: 1 1 calc(50% - 10px); padding: 14px 16px; }
	.int-stat-num { font-size: 28px; }
}

/* Dark-portal fix: global .btn-secondary is dark-on-dark; lighten on dark pages. */
.dark-portal .btn-secondary { color: rgba(255, 255, 255, 0.78); border-color: rgba(255, 255, 255, 0.18); }
.dark-portal .btn-secondary:hover { border-color: rgba(255, 255, 255, 0.4); color: #fff; }
