/* -------------------------------------------------------------------------- */
/*                                Falcon Button                               */
/* -------------------------------------------------------------------------- */
/* prettier-ignore */
/*# sourceMappingURL=user.css.map */
.ace-github-dark .ace_gutter {
  background: #0b1727;
  color: #7388b5
}

.ace-github-dark .ace_print-margin {
  width: 1px;
  background: #00204b
}

.ace-github-dark {
  background-color: #0b1727;
  color: #FFFFFF
}

.ace-github-dark .ace_constant.ace_other,
.ace-github-dark .ace_cursor {
  color: #FFFFFF
}

.ace-github-dark .ace_marker-layer .ace_selection {
  background: #003F8E
}

.ace-github-dark.ace_multiselect .ace_selection.ace_start {
  box-shadow: 0 0 3px 0px #0b1727;
}

.ace-github-dark .ace_marker-layer .ace_step {
  background: rgb(127, 111, 19)
}

.ace-github-dark .ace_marker-layer .ace_bracket {
  margin: -1px 0 0 -1px;
  border: 1px solid #404F7D
}

.ace-github-dark .ace_marker-layer .ace_active-line {
  background: #00346E
}

.ace-github-dark .ace_gutter-active-line {
  background-color: #0b1727
}

.ace-github-dark .ace_marker-layer .ace_selected-word {
  border: 1px solid #003F8E
}
.d2h-file-header {
	padding:2px 2px;
}

/* Confirmation toast - same layout as Toastify, stays visible until user responds (Task 6.3) */
.confirm-toast {
	/* Match Toastify layout */
	padding: 12px 20px;
	color: #212529;
	display: inline-block;
	box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3);
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	position: fixed;
	opacity: 0;
	transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
	border-radius: 2px;
	max-width: calc(50% - 20px);
	z-index: 2147483647;
	right: 15px;
	top: 15px;
	cursor: default;
}
.confirm-toast.show {
	opacity: 1;
}
.confirm-toast-message {
	margin-bottom: 12px;
	font-size: 1em;
	color: #212529;
}
.confirm-toast-actions {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}
.confirm-toast-actions .btn {
	font-size: 0.875em;
	padding: 4px 12px;
	border-radius: 2px;
	cursor: pointer;
	border: 1px solid transparent;
	font-weight: 500;
}
.confirm-toast-cancel {
	background: #fff;
	color: #6c757d;
	border-color: #dee2e6;
}
.confirm-toast-cancel:hover {
	background: #e9ecef;
	color: #495057;
	border-color: #adb5bd;
}
.confirm-toast-confirm {
	background: #dc3545;
	color: #fff;
	border-color: #dc3545;
}
.confirm-toast-confirm:hover {
	background: #c82333;
	color: #fff;
	border-color: #bd2130;
}

/* Market logos: gray marks like Falcon b&w strip (works on light + dark) */
html[data-bs-theme=dark] .landing-cta-img[src*="/logos/markets/"] {
	filter: brightness(1.35);
}

/* Welcome feature GIFs removed — Research Agent marketing no longer uses Manim strips */

/* ===== home (`/`) — compact algo testimonials ===== */
.ots-algo-stories__slider .swiper-slide > div {
	padding-top: 0.15rem;
	padding-bottom: 0.15rem;
}

.ots-algo-stories__slider .swiper-nav [class*=swiper-] {
	width: 1.5rem;
	height: 1.5rem;
	margin-top: -0.75rem;
}

.ots-algo-stories__slider .swiper-button-prev:after,
.ots-algo-stories__slider .swiper-button-next:after {
	font-size: 0.7rem;
}

/* ===== home (`/`) — hero Agent download pane (replaces intro video) ===== */
/* Do not use Falcon .img-landing-banner here — it adds hover translateY + huge negative margin. */
.ots-hero-download {
	position: relative;
	width: 80%;
	max-width: 80%;
	margin-left: auto;
	margin-right: auto;
	overflow: hidden;
	scrollbar-width: none;
	-ms-overflow-style: none;
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.35);
	transform: none !important;
	margin-bottom: 0 !important;
	transition: none !important;
}

.ots-hero-download::-webkit-scrollbar {
	display: none;
}

.ots-hero-download:hover,
.ots-hero-download:focus {
	transform: none !important;
}

.ots-hero-download::after {
	display: none !important;
	content: none !important;
}

html[data-bs-theme=dark] .ots-hero-download {
	background: rgba(11, 23, 39, 0.97);
}

/* ===== public home (`welcome.ftl`, also `/welcome-stage`) ===== */
.ots-ws-skip {
	z-index: 1100;
}

.ots-ws-navbar {
	min-height: 72px;
}

.ots-ws-code,
.ots-ws-code pre {
	min-width: 0;
	max-width: 100%;
}

.ots-ws-code pre {
	white-space: pre;
	overflow-x: auto;
	line-height: 1.6;
}

.ots-ws-page main > section,
.ots-ws-page main > footer {
	position: relative;
}

.ots-ws-section-tag {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 5;
	padding: 0.15rem 0.6rem;
	border-radius: 0.375rem;
	background: var(--falcon-danger);
	color: #fff;
	font-family: var(--falcon-font-sans-serif);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.4;
	box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.25);
	pointer-events: none;
}

.ots-ws-section-tag--hero {
	top: calc(72px + 0.5rem);
}

.ots-ws-section-tag--nav {
	top: 0.15rem;
	left: 0.15rem;
	font-size: 0.65rem;
}

.ots-ws-screens .carousel-inner {
	background: var(--falcon-card-bg);
}

.ots-ws-screens .carousel-item img {
	width: 100%;
	height: auto;
	aspect-ratio: 1280 / 607;
	object-fit: contain;
}

.ots-ws-screens__caption {
	padding: 0.6rem 1rem;
	background: rgba(11, 23, 39, 0.92);
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.8125rem;
	text-align: center;
}

.ots-ws-screens__caption strong {
	color: #fff;
}

.ots-ws-screens .carousel-control-prev,
.ots-ws-screens .carousel-control-next {
	width: 3.5rem;
	bottom: 4.5rem;
	opacity: 1;
}

.ots-ws-screens .carousel-control-prev-icon,
.ots-ws-screens .carousel-control-next-icon {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background-color: rgba(11, 23, 39, 0.7);
	background-size: 45%;
}

.ots-ws-download {
	background-image: linear-gradient(180deg, rgba(11, 23, 39, 0.55), rgba(11, 23, 39, 0.72)), url("/img/welcome/hero-bg.jpg");
	background-size: cover;
	background-position: center;
}

@media (min-width: 992px) {
	#banner .ots-ws-hero-dl {
		padding: 0.4rem 0.75rem;
		font-size: 0.8125rem;
		line-height: 1.2;
		flex-shrink: 0;
	}

	#banner .ots-ws-hero-note {
		flex: 1 1 auto;
		min-width: 0;
		line-height: 1.35;
	}
}

.ots-ws-mini {
	max-width: 28rem;
}

.ots-ws-mini__frame {
	height: 24rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ots-ws-mini .carousel-item img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 24rem;
	object-fit: contain;
	border-radius: 0.5rem;
	box-shadow: var(--falcon-box-shadow);
	background: var(--falcon-card-bg);
}

.ots-ws-mini__text {
	min-height: 5.5rem;
	margin: 0.85rem auto 0;
	padding: 0 0.5rem;
	text-align: center;
	font-size: 0.95rem;
	line-height: 1.45;
}

.ots-ws-mini .carousel-control-prev,
.ots-ws-mini .carousel-control-next {
	width: 2.75rem;
	top: 0;
	bottom: auto;
	height: 24rem;
	opacity: 1;
}

.ots-ws-mini .carousel-control-prev-icon,
.ots-ws-mini .carousel-control-next-icon {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background-color: rgba(11, 23, 39, 0.7);
	background-size: 45%;
}

.ots-ws-mini .carousel-indicators [data-bs-target] {
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	border: 0;
	margin: 0 0.25rem;
}

.ots-ws-mini--compact {
	max-width: 100%;
}

.ots-ws-mini--compact .ots-ws-mini__frame {
	height: auto;
}

.ots-ws-mini--compact .carousel-item img {
	width: 100%;
	max-height: none;
	height: auto;
}

.ots-ws-mini--compact .ots-ws-mini__text {
	min-height: 4.25rem;
	font-size: 0.85rem;
}

.ots-ws-mini--compact .carousel-control-prev,
.ots-ws-mini--compact .carousel-control-next {
	top: 0;
	bottom: 6.2rem;
	height: auto;
}

/* Half the py-6 join (4rem + 4rem) between home panels 3–7. */
.ots-ws-page #download,
.ots-ws-page #how-it-works,
.ots-ws-page #strategy,
.ots-ws-page #faq {
	padding-bottom: 2rem !important;
}

.ots-ws-page #how-it-works,
.ots-ws-page #strategy,
.ots-ws-page #faq,
.ots-ws-page #go-live {
	padding-top: 2rem !important;
}

/* Was mb-5 (3rem) under the last panel of section 3. Half of that, so the 3–4 join is half. */
.ots-ws-panel-follow {
	margin-bottom: 1.5rem !important;
}

.ots-ws-base {
	background:
		radial-gradient(ellipse 80% 50% at 50% 0%, rgba(44, 123, 229, 0.14), transparent 70%),
		var(--falcon-card-bg);
}

.ots-ws-base__step {
	position: relative;
	padding: 1.25rem 1.15rem 1.35rem;
	border: 1px solid var(--falcon-border-color);
	border-radius: 1rem;
	background: var(--falcon-card-bg);
	box-shadow: 0 0.5rem 1.25rem rgba(11, 23, 39, 0.06);
}

.ots-ws-base__num {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--falcon-primary);
	opacity: 0.28;
}

.ots-ws-base__why {
	padding: 1.5rem 1.25rem 0.25rem;
	border-top: 1px solid var(--falcon-border-color);
}

.ots-ws-base code {
	color: var(--falcon-primary);
	background: var(--falcon-primary-bg-subtle);
	padding: 0.05em 0.35em;
	border-radius: 0.25rem;
}

.ots-ws-faq .accordion-item {
	border: 1px solid var(--falcon-border-color);
	border-radius: 1rem;
	overflow: hidden;
	background: var(--falcon-card-bg);
	margin-bottom: 0.75rem;
	box-shadow: 0 0.35rem 1rem rgba(11, 23, 39, 0.05);
}

.ots-ws-faq .accordion-item:last-child {
	margin-bottom: 0;
}

.ots-ws-faq .accordion-button {
	background: var(--falcon-card-bg);
	box-shadow: none;
}

.ots-ws-faq .accordion-button:not(.collapsed) {
	background: var(--falcon-primary-bg-subtle);
	color: var(--falcon-primary);
	box-shadow: none;
}

.ots-ws-faq .accordion-button:focus {
	box-shadow: none;
}

.ots-ws-faq .accordion-body {
	line-height: 1.65;
}

.ots-ws-live {
	background:
		radial-gradient(ellipse 70% 42% at 50% 0%, rgba(44, 123, 229, 0.16), transparent 70%),
		var(--falcon-card-bg);
}

.ots-ws-live__price {
	width: 100%;
	max-width: none;
	padding: 1.75rem 1.5rem 1.35rem;
	border-radius: 1rem;
	text-align: center;
	color: #fff;
	background: linear-gradient(165deg, #2c7be5 0%, #1a4f9c 100%);
	box-shadow: 0 0.75rem 1.75rem rgba(26, 79, 156, 0.28);
}

.ots-ws-live__price .fs-9,
.ots-ws-live__price small {
	color: rgba(255, 255, 255, 0.88);
}

.ots-ws-live__price .btn-primary {
	background: #fff;
	border-color: #fff;
	color: #1a4f9c;
}

.ots-ws-live__price .btn-primary:hover,
.ots-ws-live__price .btn-primary:focus {
	background: #e8f1fc;
	border-color: #e8f1fc;
	color: #1a4f9c;
}

.ots-ws-live__tag {
	display: inline-block;
	margin: -2.55rem 0 1rem;
	padding: 0.4rem 0.95rem;
	border-radius: 999px;
	background: #fff;
	color: #1a4f9c;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	box-shadow: 0 0.35rem 0.9rem rgba(11, 23, 39, 0.22);
}

.ots-ws-live__prices {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 0.65rem;
	margin: 0 0 1rem;
}

.ots-ws-live__was {
	color: rgba(255, 255, 255, 0.55);
	font-size: 1.35rem;
	font-weight: 500;
	text-decoration: line-through;
}

.ots-ws-live__now {
	color: #fff;
	font-size: 2.75rem;
	font-weight: 600;
	line-height: 1;
}

.ots-ws-cta {
	max-width: 38rem;
}

.ots-ws-cta li {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	margin-bottom: 0.85rem;
	color: rgba(255, 255, 255, 0.88);
	font-size: 0.95rem;
	line-height: 1.5;
}

.ots-ws-cta li:last-child {
	margin-bottom: 0;
}

.ots-ws-cta__time {
	flex: 0 0 4.25rem;
	margin-top: 0.15rem;
	padding: 0.15rem 0.35rem;
	border-radius: 999px;
	background: rgba(44, 123, 229, 0.9);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.ots-ws-screens .carousel-indicators [data-bs-target] {
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	border: 0;
	margin: 0 0.25rem;
}

.ots-ws-code pre.ots-ws-code__body {
	margin: 0;
	border-radius: 0;
	max-height: 26rem;
	overflow: auto;
	font-size: 0.75rem;
	line-height: 1.55;
	text-align: left;
	tab-size: 4;
	background: #272822;
	color: #f8f8f2;
}

.ots-ws-code .token.comment { color: #8292a2; font-style: italic; }
.ots-ws-code .token.string { color: #a6e22e; }
.ots-ws-code .token.keyword { color: #f92672; }
.ots-ws-code .token.boolean,
.ots-ws-code .token.number { color: #ae81ff; }
.ots-ws-code .token.function,
.ots-ws-code .token.class-name { color: #e6db74; }
.ots-ws-code .token.annotation { color: #66d9ef; }
.ots-ws-code .token.operator { color: #f92672; }
.ots-ws-code .token.punctuation { color: #f8f8f2; }

.ots-ws-dot {
	display: inline-block;
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	margin-right: 0.3rem;
}

/* Open popup: stay within the viewport; tree scrolls, buttons stay put */
#strategyOpenMenu.dropdown-menu.show {
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - 8rem);
	overflow: hidden;
}
#strategyOpenMenu .strategy-open-popup,
#strategyOpenMenu .strategy-open-popup-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	max-height: inherit;
	min-height: 0;
	overflow: hidden;
}
#strategyOpenMenu .strategy-open-tree-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
}

.setup-interval-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.5rem;
}
.setup-interval-grid > .btn {
	width: 100%;
	padding-left: 0.25rem;
	padding-right: 0.25rem;
}

@media (min-width: 992px) {
	.settings-layout > .settings-main {
		flex: 0 0 74%;
		max-width: 74%;
	}
	.settings-layout > .settings-aside {
		flex: 0 0 26%;
		max-width: 26%;
	}
}

.avatar-profile .overlay-icon {
	cursor: default;
}
.avatar-profile .settings-avatar-icons {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	line-height: 1;
}
.avatar-profile .settings-avatar-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	line-height: 1;
	cursor: pointer;
	font-size: 1rem;
}
.avatar-profile .settings-avatar-icon:disabled {
	opacity: 0.65;
	cursor: default;
}

.settings-avatar-credit {
	width: 10.5rem;
	margin-top: -1.25rem;
	margin-bottom: 1rem;
	margin-left: var(--falcon-card-cap-padding-x);
	text-align: center;
}

/* Automations: buy/sell match chart markers */
:root {
	--ots-buy: #2196F3;
	--ots-sell: #e91e63;
}

.badge-ots-buy {
	background-color: var(--ots-buy) !important;
	color: #fff !important;
}
.badge-ots-sell {
	background-color: var(--ots-sell) !important;
	color: #fff !important;
}

.btn-ots-buy,
.btn-ots-sell {
	color: #fff;
}
.btn-ots-buy {
	background-color: var(--ots-buy);
	border-color: var(--ots-buy);
}
.btn-ots-buy:hover,
.btn-ots-buy:focus,
.btn-ots-buy:active {
	background-color: #1976d2;
	border-color: #1976d2;
	color: #fff;
}
.btn-ots-sell {
	background-color: var(--ots-sell);
	border-color: var(--ots-sell);
}
.btn-ots-sell:hover,
.btn-ots-sell:focus,
.btn-ots-sell:active {
	background-color: #c2185b;
	border-color: #c2185b;
	color: #fff;
}

.automations-list-table {
	width: 100%;
}
.automations-list-table th,
.automations-list-table td {
	white-space: nowrap;
	vertical-align: middle;
	padding: 0.55rem 0.9rem;
}
.automations-list-table .automations-name {
	width: 11rem;
	width: 30%;
	overflow: hidden;
	text-overflow: ellipsis;
}
.automations-list-actions {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.4rem;
}

.automations-event-chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.2s ease;
}
.automations-event-chevron.is-open {
	transform: rotate(180deg);
}

.ots-public-nav {
	background-color: #0b1727;
	background-image: url("/img/welcome/hero-bg.jpg");
	background-position: center;
	background-size: cover;
}

.ots-public-doc {
	padding-top: 6.5rem;
	padding-bottom: 3rem;
}

.ots-public-doc .sticky-top {
	top: 6.5rem;
}

.ots-credential-decoy {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ots-secret-text {
	-webkit-text-security: disc;
}
