html { height: 100%; }
body { background: #f6f8f9; line-height: 1.42857143; transition: background-color 150ms; }
body.selectable { -moz-user-select: text; -khtml-user-select: text; -webkit-user-select: text; -ms-user-select: text; user-select: text; }
.text-selectable { -moz-user-select: text; -khtml-user-select: text; -webkit-user-select: text; -ms-user-select: text; user-select: text; }

html, body, button, input, select, textarea, .pure-g [class *= "pure-u"] {
	color: #555459;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	font-size: 13px;
	font-weight: normal;
	letter-spacing: 0.01em;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-webkit-font-feature-settings: "kern" 1;
	-moz-font-feature-settings: "kern" 1;
}

@media	only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 13/10), only screen and (min-resolution: 120dpi) {
	html, body, button, input, select, textarea, .pure-g [class *= "pure-u"] {
		font-size: 12px;
	}
}

@media (max-width: 700px) {
	.hide-on-mobile {
	  display: none;
	}
  }

/* Resets */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	display: none;
}

a[disabled] { cursor: not-allowed; pointer-events: none; opacity: 0.4; }
a.unclickable { pointer-events: none; }

body {
	--tags-border-color: #c5c5c5;
	--tags-focus-border-color: #2780f8;
}

div.nice-select { float: none; margin: 0.25em 0; border-color: #c5c5c5; font-size: 100%; height: auto; line-height: normal; padding: 0.752em 2em 0.752em 0.75em; }
div.nice-select .current { width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: inline-block; vertical-align: middle; }
div.nice-select:hover { border-color: #b0b0b0; }
div.nice-select::after { border-right-color: #7d7d7d; border-bottom-color: #7d7d7d; }
div.nice-select .nice-select-dropdown { width: 100%; box-shadow: 0 0 0 1px rgb(68 68 68 / 30%); }
div.nice-select > .nice-select-dropdown > .nice-select-search-box input[type="text"] { box-sizing: border-box; background-color: #fff; border: 1px solid #e8e8e8; border-radius: 3px; color: #444; display: inline-block !important; vertical-align: middle; padding: 7px 12px; margin: 0 10px 0 0; width: 100% !important; min-height: 36px; line-height: 22px; height: auto; font-size: 14px; }
div.nice-select ul { margin: 0; }
div.nice-select .option { overflow: hidden; text-overflow: ellipsis; color: #595c6a; }
div.nice-select .optgroup { padding: 11px 19px 11px 11px; background: #f4f5f7; color: #636e84; cursor: default; }
div.nice-select .option.disabled { color: #bbb; }

.video-large { margin: 0 0 2em; clear: both; }
.video { margin: 2em 0; }

hr { margin: 2em 0; border: none; height: 1px; background: #eee; }

pre { display: inline-block; margin: 0 0.25em; vertical-align: middle; }

.root.dash #layout,
.root.prodreports #layout,
.root.dash #hero .inner { max-width: 960px; } /* Absolute width for graphing */
.root.affiliates #layout,
.root.affiliates #hero .inner,
.root.students #layout,
.root.students #hero .inner { max-width: 940px; } /* Absolute width for graphing */

.root.wide_root #layout { max-width: 76em; }

/* Main layout styles */
#layout { position: relative; margin: 1em auto 0.5em auto; max-width: 64em; width: 90%; transition: max-width 0ms; }
#body { margin: 2em 0 0.5em; line-height: 1.6em; }

.footer { text-align: center; font-size: 90%; color: #9d9d9d; margin: 0; padding: 1em 0; clear: both; }

.ready #body { transition: margin-left 150ms, margin-right 150ms; }

.page-container {	}
.page-container-leaving {	}
.page-container-entering, .page-container-entered {	}
.page-container-exiting {	}

.inner { width: 90%; position: relative; margin: 0 auto; max-width: 64em; }

.header { position: relative; top: 0; width: 100%; z-index: 100; margin: 0; color: #2f3239; background: #33383e; line-height: 77px; min-height: 77px; box-shadow: 0 1px 1px rgba(0,0,0,.1); }
.header .inner { max-width: 64em; width: 90%; }
.header h1 { margin: 0; padding: 0; width: 6.5em; display: inline-block; vertical-align: top; }
.header h1 a { width: 150px; height: 77px; text-decoration: none; display: block; margin: 0; background: url(../../assets/logo-light.png) no-repeat left center; outline: none; background-size: contain; position: relative; transform: scale(0.98); will-change: transform; transform-style: preserve-3d; transition: transform 150ms; }
.header h1 a:hover { transform: scale(1); }
.header h1 .logo-tc { display: none; }
.header h1 em { font-size: 12px; color: #0dc0c1; border: 1px solid #0dc0c1; line-height: normal; padding: 0.1em 0.4em; font-style: normal; border-radius: 0.25em; position: absolute; top: 50%; right: -3.5em; transform: translate(0, -42%); }
.header h1 span.logo-courses { display: none; }
body.root.learn .header h1 span.logo-courses,
body.root.course_editor .header h1 span.logo-courses { display: inline-block; font-size: 12px; color: #b78ae8; border: 1px solid #b78ae8; line-height: normal; padding: 0.1em 0.4em; font-style: normal; border-radius: 0.25em; position: absolute; top: 50%; right: -4em; transform: translate(0, -42%); }
body.root.learn .header h1 em + span.logo-courses,
body.root.course_editor .header h1 em + span.logo-courses { right: -7em; }
body.root.learn .header h1.tc-learn-plus span.logo-courses,
body.root.course_editor .header h1.tc-learn-plus span.logo-courses { right: -5em; }
body.root.learn .header h1.tc-learn-plus em + span.logo-courses,
body.root.course_editor .header h1.tc-learn-plus em + span.logo-courses { right: -7.5em; }
body.root.learn .header h1.tc-pro.tc-learn-plus span.logo-courses,
body.root.course_editor .header h1.tc-pro.tc-learn-plus span.logo-courses { right: -8em; }

.header h1 em.tc-launch-plan-link-header { right: -4.4em; }
body.root.learn .header h1 em.tc-launch-plan-link-header + span.logo-courses,
body.root.course_editor .header h1 em.tc-launch-plan-link-header + span.logo-courses { right: -8em; }
body.root.learn .header h1.tc-learn-plus em.tc-launch-plan-link-header + span.logo-courses,
body.root.course_editor .header h1.tc-learn-plus em.tc-launch-plan-link-header + span.logo-courses { right: -9em; }
.header h1 span.logo-courses em { position: static; padding: 0; transform: none; border: none; color: #b78ae8; font-weight: bold; margin-left: 0.25em; }

.header.contains_detail .user-box,
.header.contains_detail .menu-main-wrap { opacity: 0; }

.header.header-minimal {	}
.header.header-minimal .inner { text-align: center; }
.header.header-minimal .menu-main-wrap,
.header.header-minimal .user-box { display: none; }

.header.header-unavailable {	}
.header.header-unavailable .menu-main-wrap,
.header.header-unavailable .user-box,
.header.header-unavailable h1,
.header.header-unavailable h1 a { cursor: default; pointer-events: none; }

/* Main menu */
.menu-main-wrap { display: inline-block; width: calc(100% - 11.5em - 8.5em); vertical-align: top; opacity: 1; transition: opacity 150ms; }
#menu-main { text-align: right; }
#menu-main li { display: inline-block; margin: 0 0.75em 0 0; line-height: 68px; text-align: center; }
#menu-main a { color: #bdc0c4; text-decoration: none; transition: color 250ms; font-weight: 600; font-size: 90%; opacity: 0.8; border-radius: 0.4em; padding: 0.6em 0.8em; line-height: 1em; display: inline-block; vertical-align: middle; position: relative; cursor: pointer; }
#menu-main a span { white-space: nowrap; position: absolute; bottom: -5px; font-size: 90%; transform: translateX(-50%); opacity: 0; transition: transition 150ms, opacity 90ms; }
#menu-main a i { display: block; margin: 0 auto; font-family: Font Awesome\ 5 Pro; font-size: 14px; line-height: 1; font-weight: 900; font-style: normal; font-size: 150%; text-rendering: auto; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); vertical-align: middle; transition: transform 150ms; }
#menu-main a i.fa.fa-angle-down { margin-left: 0.5em; } 
#menu-main #menu-main-item-dash i::before { content: "\f0db"; }
#menu-main #menu-main-item-products i::before { content: "\f00b"; }
#menu-main #menu-main-item-coupons i::before { content: "\f3ff"; }
#menu-main #menu-main-item-manage i::before { content: "\f187"; }
#menu-main #menu-main-item-transactions i::before { content: "\f007"; }
#menu-main #menu-main-item-settings i::before { content: "\f013"; }
#menu-main a:hover, #menu-main li.active a, body.root.course_editor #menu-main-item-learn, body.root.landingpage_editor #menu-main-item-pages, body.root.funnel_editor #menu-main-item-funnels { color: #fff; opacity: 1; background-color: rgba(0,0,0,0.025); }
#menu-main[data-section="affiliates"] #menu-main-item-affiliates,
#menu-main[data-section="contracts"] #menu-main-item-affiliates,
#menu-main[data-section="transactions"] #menu-main-item-transactions,
#menu-main[data-section="subscriptions"] #menu-main-item-transactions { color: #fff; opacity: 1; background-color: rgba(0,0,0,0.025); }
#menu-main a:hover i { transform: translate(0, -4px); }
#menu-main a:hover span { opacity: 1; }
#menu-main li.active a {	}
#menu-main li ul.active { display: block; opacity: 1; visibility: visible; top: 6em; }
#menu-main li ul { margin: 0; padding: 0; list-style: none; background: #fff; border-radius: 3px; border: 1px solid #d0d2db; box-shadow: 0px 0px 3px rgba(98, 98, 98, 0.2); position: absolute; width: 12em; left: -6em; top: 6em; top: 55px; opacity: 0; visibility: hidden; transition: top 250ms, opacity 250ms;	}
#menu-main li ul:before {
	position: absolute;
	top: -7px;
	right: 32px;
	display: inline-block;
	border-right: 7px solid rgba(0, 0, 0, 0);
	border-bottom: 7px solid #CCC;
	border-left: 7px solid rgba(0, 0, 0, 0);
	border-bottom-color: rgba(255, 255, 255, 1);
	content: '';
}
#menu-main li ul li { line-height: normal; margin: 0; display: block; }
#menu-main li ul li a { display: block; text-align: left; line-height: normal; padding: 0.75em; text-decoration: none; font-size: 100%; color: #5b5b5b; opacity: 1; border-radius: 0; box-shadow: none; }
#menu-main li ul li:last-child a { border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; }
#menu-main li ul li a:hover { color: #555e72; background-color: #f5f6f9; box-shadow: none; }
#menu-main li ul li i { width: 1.28571429em; text-align: center; color: #555e72; margin: 0 0.5em 0 0; font-family: Font Awesome\ 5 Pro; font-size: 14px; line-height: 1; font-weight: 900; font-style: normal; font-size: inherit; text-rendering: auto; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); vertical-align: middle; display: inline-block; }
#menu-main li ul li span { vertical-align: middle; display: inline-block; }
#menu-main li ul li .menu-main-sub-badge { display: inline-block; vertical-align: middle; margin: 0 0 0 0.6em; padding: 0.25em 0.45em; border: 0; border-radius: 4px; background: #10cfbd; color: #fff; font-size: 10px; font-style: normal; font-weight: normal; line-height: 1; text-transform: none; transform: none; position: static; }

#menu-main a#menu-main-item-watch-the-welcome-video { background: none; font-size: 90%; color: #d96e0d; text-decoration: underline; }
#menu-main a#menu-main-item-watch-the-welcome-video:hover { color: #8e4504; background: none; box-shadow: none; }

#menu-main.menu-nopaymentprocessors { display: none; }
#menu-main.menu-nopaymentprocessors.menu-paymentskipped { display: block; }
#menu-main.menu-nopaymentprocessors a#menu-main-item-settings { padding-right: 1.2em; }
#menu-main.menu-nopaymentprocessors a#menu-main-item-settings::before { content: ""; display: block; width: 8px; height: 8px; border-radius: 50%; background-color: #a20707; position: absolute; top: 5px; right: 5px; }

.user-box { position: relative; display: inline-block; vertical-align: top; width: 6em; opacity: 1; transition: opacity 150ms; }
.user-box .user-box-avatar-link { display: block; text-align: center; transition: background-color 250ms; color: #fff; }
.user-box .user-box-avatar-link i { position: absolute; right: 0.5em; bottom: 38%; color: #bdc0c4; }
.user-box .user-box-avatar-link:hover, #user-box.active { background-color: rgba(0,0,0,0.1); }
.user-box .user-box-avatar-link:hover i, #user-box.active i { color: #fff; }
.user-box .user-box-avatar { display: inline-block; vertical-align: middle; background-color: #000; border: 2px solid #4b535d; border-radius: 50%; width: 40px; height: 40px; margin: 0 auto; cursor: pointer; box-sizing: border-box; transition: border-color 250ms; }
.user-box .user-box-avatar-link:hover .user-box-avatar { border-color: #626b77; }
#user-box.active .user-box-avatar { border-color: #939eaa; }
.user-box ul { visibility: hidden; opacity: 0; position: absolute; top: 55px; right: -1%; width: 185%; transition: top 250ms, opacity 250ms; background: #fff; margin: 0; padding: 0; border-radius: 3px; list-style: none; border: 1px solid #d0d2db; z-index: 5; box-shadow: 0px 0px 3px rgba(98, 98, 98, 0.2); }
.user-box ul:before { position: absolute; top: -7px; right: 32px; display: inline-block; border-right: 7px solid rgba(0, 0, 0, 0); border-bottom: 7px solid #CCC; border-left: 7px solid rgba(0, 0, 0, 0); border-bottom-color: rgba(255, 255, 255, 1); content: ''; }
.user-box li { padding: 0; margin: 0; }
.user-box li:last-child { background-color: #f5f6f9; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; }
.user-box li a { display: block; line-height: normal; padding: 0.75em 1em; text-decoration: none; font-size: 100%; color: #5b5b5b; }
.user-box li:last-child a { border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; }
.user-box li a:hover { color: #555e72; background-color: #f5f6f9; }
.user-box li a i { color: #555e72; margin: 0 0.5em 0 0; font-family: Font Awesome\ 5 Pro; font-size: 14px; line-height: 1; font-weight: 900; font-style: normal; font-size: inherit; text-rendering: auto; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); vertical-align: middle; display: none; }
#user-box-submenu-item-my-profile i::before { content: "\f007"; }
#user-box-submenu-item-support i::before { content: "\f128"; }
#user-box-submenu-item-sign-out i::before { content: "\f08b"; }
#user-box-submenu-item-users i::before { content: "\f234" }
#user-box-submenu-item-admin i::before { content: "\f023" }
#user-box-submenu-item-welcome-video i::before { content: "\f16a" }
#user-box.active ul { visibility: visible; top: 72px; opacity: 1; }

/* Recommended products */
#menu-main-item-affiliates i::after { display: block; width: 0.65em; height: 0.3em; border-radius: 0.8em; background: #f55f10; position: absolute; top: -0.5em; left: 50%; transform: translate(-50%, -50%); }
body.ui-alert-pending-affiliate-applications #menu-main-item-affiliates i::after { content: ""; }
.box.ui-recommended-products { padding: 0; position: relative; }
.ui-recommended-products ul.recommended-products-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 1.25em; list-style: none; padding: 1.25em 1.5em !important; margin: 0 !important; }
.ui-recommended-products ul.recommended-products-grid li { width: 100% !important; margin: 0 !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; -webkit-transform: none !important; transform: none !important; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; }
.ui-recommended-products ul.recommended-products-grid li a { display: block; width: 100%; text-decoration: none; border-radius: 0.5em; overflow: hidden; transition: transform 150ms, box-shadow 150ms; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }
.ui-recommended-products ul.recommended-products-grid li a:hover { transform: translateY(-4px) !important; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12); }
.ui-recommended-products ul.recommended-products-grid li:hover { -webkit-transform: none !important; transform: none !important; }
.ui-recommended-products ul.recommended-products-grid li img { width: 100%; height: auto; display: block; }
.ui-recommended-products ul { list-style: none; margin: 0; padding: 0; display: flex; }
.ui-recommended-products li { width: 160px; margin: 1em 0 1em 1em; -webkit-transform: perspective(1px) scale(1); transform: perspective(1px) scale(1); transition: -webkit-transform 150ms; transition: transform 150ms; transition: transform 150ms, -webkit-transform 150ms; will-change: transform; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.ui-recommended-products li:nth-child(4) { margin-right: 1em; }
.ui-recommended-products a { display: block; cursor: pointer; text-decoration: none; }
.ui-recommended-products img { display: block; width: 100%; }
.ui-recommended-products li:hover { -webkit-transform: translateZ(0) scale(1.025); transform: translateZ(0) scale(1.025); }
.ui-recommended-products .ui-recommended-products-more { background: #eee; color: #b3b3b3; text-align: center; padding: 1em; box-sizing: border-box; }
.root-affiliates .ui-recommended-products .ui-recommended-products-more { width: auto; flex-grow: 1; margin-right: 1em; }
.ui-recommended-products .ui-recommended-products-more a { color: #999; display: flex; align-items: center; justify-content: center; flex-direction: column; height: 100%; }
.ui-recommended-products .ui-recommended-products-more span { font-size: 120%; line-height: 0.8; display: block; }
.ui-recommended-products .ui-recommended-products-more em { font-weight: 300; display: block; border-bottom: 1px solid #dcdcdc; margin: 0 0 1em; padding: 0 0 1em; line-height: 0.8; }
.ui-recommended-products h2 { margin: 1em 0 0 1em; color: #6b6b6b; font-size: 120%; }
.ui-recommended-products .pill { border: 1px solid #f55f10; color: #f55f10; background-color: #fff6f2; font-size: 65%; padding: 0.1em 0.65em; font-weight: bold; letter-spacing: normal; margin: 0 0 0 0.5em; vertical-align: top; }
.tc-modal-recommended-products .ui-click { width: 14em; }
.ui-recommended-products-hide { position: absolute; top: 0.5em; right: 1em; font-size: 80%; opacity: 0.5; transition: opacity 150ms; }
.ui-recommended-products-hide:hover { opacity: 1; }
.ui-recommended-products-hide-trigger { border-bottom: 1px dotted #999; color: #999; cursor: pointer; }
.alertify .iframe-wrapper { margin: 0 -25px -30px -25px; }
.alertify .iframe-wrapper iframe { width: 100%; border: none; }

/* Header menu */
#header-menu {	}
#header-menu.avoid_sidebar { margin-left: 7.5em; }
.header-menu-wrap { max-height: 0; overflow: hidden; }
.ready .header-menu-wrap { transition: max-height 150ms; }
.header-menu-wrap.active { max-height: 100px; }
.header-menu-wrap ul { margin: 0 1.5em; padding: 0; list-style: none; }
.header-menu-wrap li { margin: 1.5em 0 0; display: inline-block; transition: background-color 150ms, color 150ms; font-family: "Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 130%; color: #555459; font-weight: 300; }
.header-menu-wrap li:hover { background-color: #D8D8D8; }
.header-menu-wrap li.active { background-color: #bdbdbd; color: #1a1a1a; }
.header-menu-wrap a { line-height: 40px; display: block; padding: 0 1em; position: relative; color: #555459; text-decoration: none; }
.header-menu-wrap span {	}

/* Pane */
#pane { background: #fff; z-index: 1000; box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); border-left: 1px solid rgba(0,0,0,0.1); height: 100%; width: 40em; position: fixed; top: 0; right: 0; overflow: hidden; -webkit-transform: translate3d(40.5em, 0, 0); -moz-transform: translate3d(40.5em, 0, 0); transform: translate3d(40.5em, 0, 0); }
#pane { transition: -webkit-transform 150ms, -moz-transform 150ms, transform 150ms; }
#pane.active { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
#pane .inner { width: 100%; height: 100%; padding: 1.5em; box-sizing: border-box; }
#pane .inner > div { height: 100%; }

#pane .pure-controls.controls-full { margin: 0; position: absolute; bottom: 0; right: 0; left: 0; padding: 1em; float: none; text-align: right; }
#pane .pure-controls.controls-full .button-xsmall { margin-top: 0.7em; }

#hero { position: relative; top: 0; left: 0; z-index: 10; width: 100%; box-sizing: border-box; background: #fff; border-bottom: 1px solid #EDEDED; display: none; }
#hero.active { display: block; margin-bottom: 1em; }
#hero .inner { padding: 0; }
#hero p { color: #9ca5ac; margin: 0; }
#hero p b, #footer p strong { color: #10CFBD; font-weight: bold; }
#hero ul { margin: 0; padding: 0; list-style: none; text-align: center; display: flex; }
#hero li { flex: 1; display: inline-block; margin: 0; padding: 0; /*box-shadow: inset 0 0 0 rgba(0,0,0,0);*/ background-color: #fff; transition: color 90ms, background-color 300ms; }
#hero li:hover { color: #0e669c; /*box-shadow: inset 0 4px 6px rgba(0,0,0,0.05);*/ }
#hero li div { padding: 1.15em 1.43em; font-size: 110%; font-weight: bold; cursor: pointer; }
#hero li div i { font-size: 200%; }
#hero li div i.fa-undefined { display: none; }
#hero li div span { display: block; }
#hero li:empty { display: none; }
#hero li.active { background-color: #f9f9f9; /*box-shadow: inset 0 4px 6px rgba(0,0,0,0.05);*/ color: #0e669c; border-bottom: 1px solid transparent; margin-bottom: -1px; }
#hero .pure-button { font-size: 110%; }

#hero.dark { background: #27292b; border-bottom: 1px solid #EDEDED; }
#hero.dark li.active { background: none; box-shadow: none; border-bottom: 2px solid #3aa3e4; color: #fff; margin-bottom: 0; }
#hero.dark li { box-shadow: none; background: none; color: #eee; }

#hero.active + #layout {	}

#footer { position: fixed; bottom: 0; left: 0; width: 100%; box-sizing: border-box; background: #fff; border-top: 1px solid rgba(230, 230, 230, 0.7); -webkit-transform: translate3d(0, 5em, 0); -moz-transform: translate3d(0, 5em, 0); transform: translate3d(0, 5em, 0); transition: transform 250ms; }
#footer.active { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
#footer .inner { padding: 1.5em 0; }
#footer p { color: #9ca5ac; margin: 0; }
#footer p b, #footer p strong { color: #10CFBD; font-weight: bold; }
#footer ul { margin: 0; padding: 0; list-style: none; float: right; }
#footer li { display: inline-block; margin: 0 0 0 1em; }
#footer li:empty { display: none; }
#footer .pure-button { font-size: 110%; }
#footer .pure-button.ui-cancel { background-color: #3B4752; color: #fff; }
#footer .pure-button.ui-confirm { background-color: #10CFBC; color: #fff; }

#footer.error p b, #footer.error p strong { color: #F55753; }
#footer.error .pure-button.ui-confirm { background-color: #F55753; color: #fff; }

/* Styling */
.content-subhead { margin: 0 0 1em 0; display: inline-block; font-size: 150%; font-weight: 600; padding: 0; line-height: normal; overflow: hidden; text-overflow: ellipsis; }
.pure-form-aligned .pure-controls { margin-top: 1em; }
.pure-button:not(.hidden) + .pure-button { margin-left: 1em; }
.pure-button:not(.hidden) + .pure-button.hidden + .pure-button { margin-left: 1em; }

.pure-form input[type="range"] {
		display: block;
		width: 100%;
		margin: 0.75em 0;
		padding: 0;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		outline: none;
		background: transparent;
}

.pure-form input[type="range"]:focus {
		outline: none;
}

.pure-form input[type="range"]::-moz-focus-outer {
		border: 0;
}

.pure-form input[type="range"]::-webkit-slider-runnable-track {
		cursor: pointer;
		width: 100%;
		height: 2px;
		-webkit-border-radius: 2px;
		border-radius: 2px;
		background: #CED7DB;
		border: none;
}

.pure-form input[type="range"]::-moz-range-track {
		cursor: pointer;
		width: 100%;
		height: 3px;
		border-radius: 2px;
		background: #CED7DB;
		border: none;
}

.pure-form input[type="range"]::-webkit-slider-thumb {
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		cursor: pointer;
		width: 16px;
		height: 16px;
		background: #fff;
		-webkit-border-radius: 50%;
		border-radius: 50%;
		border: 2px solid #CED7DB;
		box-shadow: 0 0 0 3px #fff;
		margin-top: -7px;
}

.pure-form input[type="range"]::-moz-range-thumb {
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		cursor: pointer;
		width: 16px;
		height: 16px;
		background: #fff;
		-webkit-border-radius: 50%;
		border-radius: 50%;
		border: 2px solid #CED7DB;
		box-shadow: 0 0 0 3px #fff;
		margin-top: -7px;
}

.pure-form input[type="range"]::-ms-thumb {
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		cursor: pointer;
		width: 16px;
		height: 16px;
		background: #fff;
		-webkit-border-radius: 50%;
		border-radius: 50%;
		border: 2px solid #CED7DB;
		box-shadow: 0 0 0 3px #fff;
		margin-top: -7px;
}

.pure-form input[type="range"]::-ms-track {
		cursor: pointer;
		width: 100%;
		height: 2px;
		border-radius: 2px;
		background: #CED7DB;
		border: none;
		background: transparent;
		color: transparent;
		height: 18px;
}

.pure-form input[type="range"]::-ms-fill-lower,
.pure-form input[type="range"]::-ms-fill-upper {
		height: 3px;
		border-radius: 2px;
		background: #CED7DB;
}

.pure-form input[type="range"].disabled,
.pure-form input[type="range"][disabled] {
		opacity: .3;
		cursor: default;
}

.pure-form input[type="range"].disabled::-webkit-slider-runnable-track,
.pure-form input[type="range"][disabled]::-webkit-slider-runnable-track {
		cursor: default;
}

.pure-form input[type="range"].disabled::-moz-range-track,
.pure-form input[type="range"][disabled]::-moz-range-track {
		cursor: default;
}

.pure-form input[type="range"].disabled::-webkit-slider-thumb,
.pure-form input[type="range"][disabled]::-webkit-slider-thumb {
		cursor: default;
}

.pure-form input[type="range"].disabled::-moz-range-thumb,
.pure-form input[type="range"][disabled]::-moz-range-thumb {
		cursor: default;
}

.pure-form input[type="range"].disabled::-ms-thumb,
.pure-form input[type="range"].disabled::-ms-track,
.pure-form input[type="range"][disabled]::-ms-thumb,
.pure-form input[type="range"][disabled]::-ms-track {
		cursor: default;
}

.pure-form fieldset { margin: 0; padding: 0; }
.pure-form label { color: #626262; display: block; margin: 0 0 0.5em 0; line-height: 1.8; }
.pure-form input[type="text"], .pure-form input[type="password"], .pure-form input[type="email"], .pure-form input[type="url"], .pure-form input[type="date"], .pure-form input[type="month"], .pure-form input[type="time"], .pure-form input[type="datetime"], .pure-form input[type="datetime-local"], .pure-form input[type="week"], .pure-form input[type="number"], .pure-form input[type="search"], .pure-form input[type="tel"], .pure-form input[type="color"], .pure-form select, .pure-form textarea {
	padding: 0.43em 0.6em;
	box-shadow: none;
	border: 1px solid #C5C5C5;
	border-radius: 0.25em;
	font-size: 130%;
	display: block;
	width: 100%;
	color: #555459;
	transition: border-color 150ms, box-shadow 150ms;
	resize: vertical;
	max-height: 16em;
}
.pure-form input[type="text"]:focus, .pure-form input[type="password"]:focus, .pure-form input[type="email"]:focus, .pure-form input[type="url"]:focus, .pure-form input[type="date"]:focus, .pure-form input[type="month"]:focus, .pure-form input[type="time"]:focus, .pure-form input[type="datetime"]:focus, .pure-form input[type="datetime-local"]:focus, .pure-form input[type="week"]:focus, .pure-form input[type="number"]:focus, .pure-form input[type="search"]:focus, .pure-form input[type="tel"]:focus, .pure-form input[type="color"]:focus, .pure-form select:focus, .pure-form textarea:focus {
	border-color: #2780f8;
	box-shadow: 0 0 7px rgba(39,128,248,.15);
}

.pure-form select.inline-selector { display: inline-block; }

.pure-form select { height: 2.142em; padding-top: 0; padding-bottom: 0; }

.pure-form .ui-input-group { width: calc(100% + 1em); margin-left: -0.5em; }
.pure-form .ui-input-group > div { padding-left: 0.5em; padding-right: 0.5em; box-sizing: border-box; }

.pure-form .input-pill { position: relative; }
.pure-form .input-pill em { position: absolute; top: 1px; right: 1px; height: calc(100% - 2px); line-height: 2.85em; padding: 0 0.5em; font-style: normal; text-align: center; border-left: 1px solid #c5c5c5; background: #ecf0f1; border-top-right-radius: 0.25em; border-bottom-right-radius: 0.25em; pointer-events: none; }
.pure-form .input-pill.input-pill-left em { right: auto; border-left: none; border-top-right-radius: 0; border-bottom-right-radius: 0; width: 2em; left: 1px; border-right: 1px solid #c5c5c5; border-top-left-radius: 0.25em; border-bottom-left-radius: 0.25em; }
.pure-form .input-pill.input-pill-left input { padding-left: 3em !important; }
.pure-form .input-faux-select input { background-color: #fff; }
.pure-form .input-actionable em,
.pure-form em.input-actionable { cursor: pointer; pointer-events: all; font-style: normal; min-width: 1.25em; text-align: right; padding-right: 1.25em; }
.pure-form .input-actionable em::after,
.pure-form em.input-actionable::after { content: '\f078'; font-family: Font Awesome\ 5 Pro; font-size: 14px; line-height: 1; font-weight: 900; font-style: normal; font-size: 6px; text-rendering: auto; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); color: #FFF; position: absolute; top: 50%; margin-top: -0.3em; right: 0.95em; color: rgba(0,0,0,0.3); }
.pure-form .input-dropdown select { position: absolute; top: 0; right: 0; width: 2.2em !important; margin: 0; opacity: 0; cursor: pointer; }
.pure-form .input-dropdown select:focus { width: 100% !important; opacity: 1; box-shadow: none; }
.pure-form .input-faux-multi { border: 1px solid #C5C5C5; border-radius: 0.25em; margin: 0.269em 0; }
.pure-form .input-faux-multi.input-pill em { top: 0; right: 0; height: 100%; }
.pure-form .input-faux-multi input { margin: 0; display: inline-block; border: none; background: transparent; text-align: center; font-size: 90%; padding: 0.899em 0.5em; width: 3.35em !important; }
.pure-form .input-faux-multi input:focus { box-shadow: none; }
.pure-form .input-faux-multi i { display: inline-block; vertical-align: middle; font-style: normal; width: 1em; text-align: center; cursor: default; color: #000; }
.pure-form .input-pill-control { overflow: hidden; }
.pure-form .input-pill-control input { margin: 0; }
.pure-form .input-pill-control .control { position: absolute; top: 50%; right: 0; transform: translate(100%, -50%); transition: transform 150ms; }
.pure-form .input-pill-control.active .control { transform: translate(-0.4em, -50%); }
.pure-form .input-pill-control.active input { padding-right: 3.25em !important; }

.tc-modal-v2 .pure-form .input-dropdown select { width: 3em !important; top: 0.25em; }
.tc-modal-v2 .pure-form .input-dropdown select:focus { width: 100% !important; }
.ajs-dialog.tc-modal-v2 .autolayout .input-pill.input-faux-multi.input-dropdown em { height: 100%; top: 0; }
.ajs-dialog.tc-modal-v2 .autolayout .input-pill.input-faux-multi.input-dropdown select { top: 0; }

/* -- Coming soon pages ----------------------------------------------------- */
.comingsoon-title { text-align: center; margin: 0.5em 0 1em; font-size: 200%; }
.comingsoon-img { display: block; margin: 0 auto 2em; background: #e2e2e2; border-radius: 0.25em; max-width: 286px; max-height: 169px; }
.comingsoon-img img { display: block; width: 100%; height: 100%; }
.comingsoon-message { margin: 0; text-align: center; font-size: 170%; color: #9f9f9f; }

/* -- 'Site' alternative styles -- */
.root-site #layout { height: auto; }
.root-site #body { height: auto; margin: 0 auto 2em; max-width: 48em; width: 100%; }
.root-site #body::after { content: ""; display: table; clear: both; }
.root-site .header h1 { margin: 0 auto; text-align: center; float: none; border: none; display: block; }
.root-site .header h1 a { margin: 0 auto; }

.root-site-design_export #layout { max-width: none; margin: 0; width: 100%; background: #fff; }
.root-site-design_export #body { max-width: 100%; margin: 0 auto; padding: 0 0 4em; }

/* -- Boxes -- */
.box { padding: 2em; margin: 0; border: 1px solid #e8e8e8; background: #fff; border-radius: 0.25em; /*box-shadow: 0 1px 0 rgba(0,0,0,.25);*/ }
.box.box-subtle {	}
.box.box-shadow { border: none; margin: 0 1%; box-shadow: 1px 1px 2px rgba(0,0,0,0.1); }
.box.padding { padding-top: 0; }
.box.padding > :last-child { margin-bottom: 0; }
.pure-g .box { margin-left: 0.5em; margin-right: 0.5em; }
.pure-g ul.nav-tabs { margin-left: 0.5em; margin-right: 0.5em; }
.box-list { position: relative; padding-bottom: 51px !important; }
.box-list-actions { padding: 0.5em; border-top: 1px solid #f4f4f4; text-align: right; position: absolute; bottom: 0; left: 0; width: 100%; box-sizing: border-box; }
.box.box-tabbed { margin-top: 5.6em; }
.box.box-tabbed .tabs { list-style: none; padding: 0; margin: -5.49em 0 2em -2.05em; }
.box.box-tabbed .tabs li { cursor: pointer; padding: 0.7em 2.14em; font-size: 120%; display: inline-block; border-top-left-radius: 0.25em; border-top-right-radius: 0.25em; border-left: 1px solid rgba(0, 0, 0, 0); border-right: 1px solid rgba(0, 0, 0, 0); color: #8c8c8c; text-align: center; }
.box.box-tabbed .tabs li i { display: block; margin: 0 auto 0.25em auto; font-size: 135%; }
.box.box-tabbed .tabs li a { color: inherit; text-decoration: none; }
.box.box-tabbed .tabs li.active { background: #fff; border: 1px solid #e8e8e8; border-bottom-color: #fff; cursor: default; color: #616161; }
.box.box-tabbed .tabs li[data-section="template"] { min-width: 4em; }
.box.box-tabbed .pull-nav { float: right; margin: -3em 0 0; line-height: normal; }
.box.box-tabbed .tabs-anchor li { padding: 0; }
.box.box-tabbed .tabs-anchor li a { padding: 0.7em 2.1em; display: block; text-align: center; }
.box.box-tabbed .tabs-anchor li.active.no-underline { position: relative; }
.box.box-tabbed .tabs-anchor li.active.no-underline::before { content: ""; display: block; width: 100%; height: 1px; background: #fff; position: absolute; left: 0; bottom: 0; }
.box.box-tabbed .tabs.tabs-full-width { display: -webkit-box; display: -ms-flexbox; display: flex; }
.box.box-tabbed .tabs.tabs-full-width li { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; }
.box.box-tabbed-action { margin: 0; display: flex; align-items: center; }
.box-tabbed.box-invisible.box-tabbed-action .tabs { margin: 0; }
.box.box-tabbed.box-tabbed-action .tabs li { border: 2px solid transparent; border-radius: 0.25em; min-width: 8em; }
.box.box-tabbed.box-tabbed-action .tabs li.active { border: 2px solid #21c3c5; }
.box.box-tabbed.box-tabbed-action .tabs-anchor li a { padding: 1em; }
.box-tabbed-action-aside { margin-left: auto; }

.box.padding-0.box-tabbed {	}
.box.padding-0.box-tabbed .tabs { margin: -3.4em 0 0 -0.05em; }
.box.padding-1 { padding: 1em; }
.box.padding-125 { padding: 1.25em; }
.root .box.box-tabbed.box-invisible { padding: 0; background-color: transparent; border: none; box-shadow: none; margin-top: 0; }
.box-tabbed.box-invisible .tabs { margin: 0 0 -0.1em 0; }

.root .box.box-tabbed.box-tabbed-sectionaction { justify-content: center; margin-top: -0.5em; margin-bottom: 3em; }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li { position: relative; transform: translate(0, 0); transition: transform 150ms; }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li a,
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li span { padding: 0.75em 2em !important; }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li span { cursor: default; }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li span.ui-coming_soon { padding: 0 !important; font-size: 80%; opacity: 0; position: absolute; display: block; width: 100%; text-align: center; transition: opacity 150ms; }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li.ui-coming_soon:hover { transform: translate(0, -0.6em); }
.root .box.box-tabbed.box-tabbed-sectionaction .tabs li.ui-coming_soon:hover span.ui-coming_soon { opacity: 0.8; }

.box-heading { padding: 1em 0; text-align: center; border-bottom: 1px solid #E9E9E9; }

.box-footer { padding: 1em; text-align: right; background: #f7f9fb; border-top: 1px solid #E9E9E9; }
.box-footer.box-footer-pull { width: 100%; margin-left: -2em; margin-top: 2em; margin-bottom: -2em; padding: 1em 2em; }

.box h3 { font-size: 130%; font-weight: 400; line-height: normal; overflow: hidden; text-overflow: ellipsis; border-bottom: 1px solid #f4f4f4; margin: 0 0 0.5em; padding: 0.5em; }
.box h3 i { font-size: 14px; margin: 0 0.5em 0 0; }

.ui-box-pills { position: absolute; top: 2em; right: 2em; }

.ui-box-icon { width: 5.5em; float: left; margin: 0; }
.ui-box-icon i { font-size: 300%; }
.ui-box-content { margin-left: 5.5em; }
.ui-box-content > h2 { margin-top: 0.4em !important; }

.grid-4x1 { text-align: center; margin: 0 auto; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
.grid-4x1 .grid-item { display: inline-block; padding: 1em; background-color: #f9f9f9; border-radius: 1em; box-sizing: border-box; position: relative; border: 2px solid #afe2cb; }
.grid-4x1-img {	}
.grid-4x1-img .fa { font-size: 340%; cursor: default; color: #81bfa3; }
.grid-4x1 h6 { font-size: 160%; margin: 0 0 1em; font-weight: normal; cursor: normal; }
.grid-4x1-footer {	}
.grid-4x1 .grid-item.ui-empty { border-color: transparent; }
.grid-4x1 .grid-item.ui-empty .fa { color: #555459; }

.control-bar { padding: 0.5em; border: 1px solid #e8e8e8; background: #fff; border-radius: 0.25em; margin: 0 0 2em; }
.control-bar-dark { border-color: #d6d6d6; background-color: #e6e6e6; }

/* -- Inline editors -- */
.ql-container + .ql-container { margin-top: 0.5em !important; }
.ql-container.ql-inline { padding: 0; line-height: inherit; font-family: inherit; outline: 1px dotted rgba(0,0,0,0.2); min-height: 19px; overflow: hidden; }
.ql-container.ql-inline:hover,
.ql-container.ql-inline.ql-active { outline: 1px dotted rgba(0,0,0,0.8); }
.ql-container.ql-inline::after { content: '\f044'; font-family: Font Awesome\ 5 Pro; font-size: 14px; line-height: 1; font-weight: 900; font-style: normal; font-size: 11px; text-rendering: auto; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); color: #FFF; position: absolute; top: 0.05em; right: 0.15em; padding: 0.2em; color: rgba(0,0,0,0.8); opacity: 0; }
.ql-container.ql-inline:hover::after,
.ql-container.ql-inline.ql-active::after { opacity: 1; }

/* -- Typography -- */
p { line-height: 22px; white-space: normal; margin: 1em 0; }
h1, h2, h3, h4, h5, h6 { margin: 1em 0; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; font-weight: 700; color: #555459; letter-spacing: -1px; }
h2 span { font-weight: 300; font-size: 90%; }
h5 { font-size: 140%; margin: 0.5em 0;}
.title-intro, .alertify .ajs-body .ajs-content p.title-intro { margin: 0 0 1em 0; text-align: left; }

.callout { background: #fff; color: #555459; padding: 1em; border-radius: 0.25em; border: 1px solid #e8e8e8; border-left: 4px solid #3aa3e3; margin: 0 0 1em 0; text-align: left; }
.callout.callout-borderless { border-left: 1px solid #e8e8e8; }
.callout-help {	}
.callout-error { border-left-color: #cb5234; }
.callout-success { border-left-color: #21c3c5; }
.callout-stats { border-left-color: #FF9333; }
.callout-warning { border-left-color: #f7ac5c; }
.callout p { margin: 0 0 1em; }
.callout h2 { text-align: left; margin: 0 0 0.5em; font-size: 160%; font-weight: normal; }
.callout-content { background: #f9f9f9; padding: 1em; margin: 1em 0 0; }
.callout-content h6 { font-weight: bold; font-size: 110%; margin: 0 0 0.5em 0; }
.callout-content .msg-block { position: relative; }
.callout-content .msg-block + .msg-block { border-top: 1px solid #e0e0e0; padding-top: 1em; }
.callout-content .msg-block .ui-commission-msg-resolve { position: absolute; top: 0; right: 0; }
.callout-content .msg-block + .msg-block .ui-commission-msg-resolve { top: 1em; }

/* -- Tables -- */
.table {	}
.table-row { border-bottom: 1px solid #f4f4f4; }
.table-row:last-child { border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; }

.table-wrap { background: #fff; }
.table-wrap table { width: 100%; }
.table-wrap thead {	}
.table-wrap thead tr {	}
.table-wrap thead th { text-align: left; color: #555459;	text-transform: uppercase; font-weight: 600; font-size: 100%; padding: 1em; vertical-align: middle; border-bottom: 1px solid rgba(230, 230, 230, 0.7); }
.table-wrap tfoot { display: none; }
.table-wrap tbody {	}
.table-wrap tbody tr { border-bottom: 1px solid rgba(230, 230, 230, 0.3); cursor: default; }
.table-wrap tbody tr:nth-child(odd) { background-color: #fafafa; }
.table-wrap tbody tr:last-child { border-bottom: none; }
.table-wrap tbody tr:hover { background-color: #f4faff; }
.table-wrap tbody td { padding: 1em; }
.table-wrap .action-list { margin: 0; padding: 0; list-style: none; }
.table-wrap .action-list li { display: inline-block; margin: 0 1em 0 0; }
.table-wrap .action-list li:last-child { margin-right: 0; }

table.zebra-table { background: #fafafa; }
table.zebra-table tr:nth-child(2n) { background-color: #f5f5f5; }
table.zebra-table tr td:nth-child(2n) { background-color: #eee; }
table.zebra-table tr td { padding: 5px 10px; }

/* -- Forms -- */
.pure-form.pure-form-stacked label { font-weight: 600; margin: 0; padding: 0; overflow-wrap: break-word; word-wrap: break-word; }
.pure-form.pure-form-stacked label span { -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; font-weight: 300; color: #4e4e4e; text-transform: none; letter-spacing: normal; font-size: 95%; }
.pure-form.pure-form-stacked label span em { font-style: normal; }
.pure-form.pure-form-stacked.pure-form-simple label,
.pure-form.pure-form-stacked label.label-simple { text-transform: none; letter-spacing: normal; font-weight: normal; }

.label-helper { margin: 0 0 1em 0; color: #949494; font-size: 90%; }

.input-buttons { text-align: right; }
.input-buttons input { margin: 0 !important; }
.input-buttons textarea { margin: 0 !important; }
.input-buttons .pure-button { margin: 1em 0 0 0.5em; }
.input-buttons .checkbox,
.input-buttons .radio { float: left; margin: 1.35em 0 0 0; }

.input-dimensions { height: 50px; /* Height is fixed to prevent minor jumping around on embed pages specifically */ }
.input-dimensions input, .input-dimensions input[type="number"] { vertical-align: middle; display: inline-block !important; width: 5em; text-align: center; margin-bottom: 0; }
.input-dimensions b { vertical-align: middle; display: inline-block; padding: 0 0.5em; }

.pure-controls.controls-fluid { text-align: right; margin: 0 0.5em; }
.pure-controls.controls-full { float: right; margin: 0 0.5em; }
.pure-controls.controls-full .pure-button {	}
.pure-controls.controls-full-left { float: left; }
.box .pure-controls.controls-full { float: right; margin: 0 1em 1em; }
.box.padding .pure-controls.controls-full { margin-bottom: 0; }
.pure-controls.controls-fixed { position: absolute; }
.pure-controls.controls-fixed-left { left: 0; }
.pure-controls.controls-fixed-bottom { bottom: 0; }
.pure-controls.controls-fixed-right { right: 0; }

/*.tc.pcr-app[data-theme=nano] .pcr-selection { height: 13em; }
.tc.pcr-app[data-theme=nano] .pcr-selection .pcr-color-palette {	}
.tc.pcr-app[data-theme=nano] .pcr-selection .pcr-color-chooser,
.tc.pcr-app[data-theme=nano] .pcr-selection .pcr-color-opacity { margin: .7em .6em .6em; }
.tc.pcr-app[data-theme=nano] .pcr-interaction .pcr-type.active { display: none; }
.tc.pcr-app[data-theme=nano] .pcr-interaction .pcr-result { font-size: 13px; margin: -2px 3px 1px; }*/

.tc-2factor {	}
.tc-2factor-setup { border-bottom: 1px solid #ebeff5; padding: 0 0 1em; margin: 0 0 1em; }
.tc-2factor-setup .pure-u-1-3 { padding: 0 1em; box-sizing: border-box; }
.tc-2factor-setup .pure-u-1-3:first-child { padding: 0; }
.tc-2factor-setup .pure-u-1-3:last-child { padding: 0; }
.tc-2factor-step { background: #f7f9fb; margin: 0 0 1em; text-align: center; }
.tc-2factor-step i { font-size: 400%; line-height: 1.5em; }
.tc-2factor-step img { display: block; width: 100%; }
.tc-2factor-step-signin { color: #f19a2f; }
.tc-2factor-step-code { color: #3aa3e3; }
.tc-2factor-step-check { color: #21c3c5; }
.tc-2factor-instruction { margin: 0; text-align: center; font-size: 90%; }
.tc-2factor h6 { margin: 0 0 1em; font-size: 100%; clear: both; text-align: center; }
.tc-2factor p { font-size: 100%; }
.tc-2factor input[type="number"],
.tc-2factor input[type="text"] { width: 10em; text-align: center; margin: 0 auto; }
.tc-2factor input[type="number"]:focus:invalid,
.tc-2factor input[type="text"]:focus:invalid { color: #555459; }
.tc-2factor-code { margin: 0 0 0.25em 0; text-align: center; }
.tc-2factor-code img { display: block; margin: 0 auto; }
.tc-2factor-code-help { color: #4c4c4c; font-size: 100%; margin: 0 0 1em !important; text-align: center; }
.tc-2factor-steps { width: 100%; max-width: 26em; display: block; margin: 0 auto 0.5em; }
.tc-2factor-grid { width: 31.5em; margin: 0 auto; max-width: 100%; }
.tc-2factor .tc-2factor-step1 {	}
.tc-2factor .tc-2factor-step2 { width: 35%; }
.tc-2factor .tc-2factor-step3 { width: 31.5%; }
.tc-2factor-confirm-icon { float: left; width: 25%; margin: 0 1em 2em 0; background: #f7f9fb; text-align: center; }
.tc-2factor-confirm-icon i { font-size: 300%; line-height: 2em; color: #f19a2f; }
.tc-2factor-confirm-instruction { text-align: left !important; color: #2a2a2a !important; }
.tc-2factor-disable { clear: both; }

.avoid-controls { padding-bottom: 2.27em; }

textarea.embed { min-height: 8em; overflow: hidden; overflow-y: scroll; resize: none; }

textarea.large { min-height: 8em; overflow: hidden; overflow-y: scroll; resize: none; }

input[type=number] { -moz-appearance: textfield; }
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.pure-form label.checkbox-label { font-weight: 400; padding-left: 3em; }

.toggle { cursor: pointer; display: inline-block; }

.toggle-switch {
	display: inline-block;
	background: #e2e5e8;
	border-radius: 16px;
	width: 40px;
	height: 22px;
	position: relative;
	vertical-align: middle;
	transition: background 250ms;
}

.toggle-switch:before,
.toggle-switch:after { content: ""; }

.toggle-switch:before {
	display: block;
	background: #fff;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	position: absolute;
	top: 3px;
	left: 4px;
	transition: left 250ms;
}

.toggle:hover .toggle-switch:before {
	
}

.toggle-checkbox:checked + .toggle-switch {
	background: #21c3c5;
}

.toggle-checkbox:checked + .toggle-switch:before {
	left: 20px;
}

.toggle-checkbox {
	position: absolute;
	visibility: hidden;
}

.toggle.toggle-combi { display: inline-block; background: #f9f9f9; padding: 0.5em; border-radius: 0.5em; min-width: 16em; }
.toggle.toggle-combi .toggle-label:first-child { margin: 0 0.5em 0 0; }
.toggle.toggle-combi .toggle-label { min-width: 6em; }
.toggle.toggle-combi .toggle-switch { width: 2.565em; height: 1.41em; border-radius: 1em; }
.toggle.toggle-combi .toggle-switch::before { width: 1.03em; height: 1.03em; left: 0.17em; top: 0.17em; }
.toggle.toggle-combi .toggle-checkbox:checked + .toggle-switch:before { left: 1.3em; }

.toggle.toggle-combi.toggle-combi-inner { background-color: transparent; }
.toggle.toggle-combi.toggle-combi-inner .toggle-label:first-child { text-align: right; }
.toggle.toggle-combi.toggle-combi-inner .toggle-switch { position: relative; top: 0.1em; }
.toggle.toggle-combi.toggle-combi-inner .toggle-switch::before { top: 0.19em; }

.toggle.toggle-combi.toggle-combi-primary {	}
.toggle.toggle-combi.toggle-combi-primary .toggle-switch { background-color: #96A9BD; }
.toggle.toggle-combi.toggle-combi-primary .toggle-checkbox:checked + .toggle-switch { background-color: #3aa3e3; }
.toggle.toggle-disabled {
	opacity: 0.5;
}

.toggle.toggle-disabled[data-hint] {
    opacity: 1 !important;
}

.toggle.toggle-disabled[data-hint] input,
.toggle.toggle-disabled[data-hint] div,
.toggle.toggle-disabled[data-hint] span {
    opacity: 0.5;
}

.toggle-label,
.pure-form.pure-form-stacked label .toggle-label {
	margin-left: 0.5em;
	display: inline-block;
	vertical-align: middle;
	font-weight: normal;
	font-size: 100%;
}

.radio.radio-align-top label:before, .checkbox.checkbox-align-top label:before { top: 0; }
.radio { padding-top: 0.5em; }
.radio, .checkbox {
	margin-bottom: 1em;
	padding-left: 0px;
	position: relative;
	display: block;
	min-height: 1.7em;
}
.radio input[type=radio] {
	display: none;
}
.checkbox input[type=checkbox] {
	display: none;
}
.radio input[type=radio], .radio-inline input[type=radio], .checkbox input[type=checkbox], .checkbox-inline input[type=checkbox] {
	position: absolute;
	margin-top: 4px \9;
	margin-left: -20px;
}
input[type="radio"], input[type="checkbox"] {
	margin-top: 1px 0 0;
	line-height: normal;
	cursor: pointer;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
input[type=radio], input[type=checkbox] {
	margin: 4px 0 0;
	margin-top: 1px \9;
	line-height: normal;
}
input[type=checkbox], input[type=radio] {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	padding: 0;
}
.radio label {
	margin-bottom: 6px;
}
.radio label, .checkbox label {
	display: inline-block;
	cursor: pointer;
	position: relative;
	padding-left: 32px!important;
	margin-right: 15px;
}
.checkbox label {
	line-height: inherit;
}
.pure-form .radio label, .pure-form .checkbox label,
.radio label, .checkbox label {
	padding-left: 20px;
	margin-bottom: 0;
	font-weight: 400;
	cursor: pointer;
	font-family: inherit;
	text-transform: none;
	letter-spacing: inherit;
	margin-right: 15px;
}
.pure-form .checkbox label {
	transition: border 0.2s linear 0s, color 0.2s linear 0s;
	/*white-space: nowrap;*/
}
/*.pure-form .checkbox label b { font-weight: normal; }*/
.radio label:before {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	bottom: 0;
	border-radius: 99px;
	-webkit-transition: border 0.3s 0s cubic-bezier(0.455, 0.03, 0.215, 1.33);
	transition: border 0.3s 0s cubic-bezier(0.455, 0.03, 0.215, 1.33);
}
.radio label:before, .checkbox label:before {
	content: "";
	display: inline-block;
	width: 22px;
	height: 22px;
	margin-right: 10px;
	position: absolute;
	left: 0px;
	background-color: #FFF;
	border: 1px solid #D0D0D0;
	font-size: 13px;
}
.radio.invisible label, .checkbox.invisible label {
	position: static;
}
.radio.invisible label:before, .checkbox.invisible label:before {
	margin-right: 0;
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);
}
.radio.invisible label:after, .checkbox.invisible label:after {
	left: 50%;
	transform: translate(-50%, 0);
}
.radio.radio-success input[type=radio]:checked+label:before {
	border-color: #10CFBD;
}
.radio input[type=radio]:checked+label:before {
	border-width: 8px;
}
.checkbox input[type=checkbox]:checked+label:before {
	border-width: 11px;
}
.checkbox label:before {
	border-radius: 3px;
	transition: border 0.2s linear 0s, color 0.2s linear 0s;
	-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.checkbox input[type=checkbox]:checked+label::after {
	font-family: Font Awesome\ 5 Pro; font-size: 14px; font-weight: 900; font-style: normal;
	content: "\F00C";
	color: #FFF;
}
.checkbox label::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	border-radius: 3px;
	display: inline-block;
	width: 22px;
	height: 22px;
	line-height: 23px;
  position: absolute;
  left: 0;
  top: 0;
  font-size: 11px;
	text-align: center;
	transition: border 0.2s linear 0s, color 0.2s linear 0s;
}
.radio input[type=radio][disabled]+label {
	opacity: 0.65;
}
.checkbox input[type=checkbox][disabled]+label {
	opacity: 0.65;
}
.checkbox.check-primary input[type=checkbox]:checked+label:before, .radio.radio-primary input[type=radio]:checked+label:before {
	border-color: #6D5CAE;
}
.checkbox.check-danger input[type=checkbox]:checked+label:before, .radio.radio-danger input[type=radio]:checked+label:before {
	border-color: #F55753;
}
.checkbox.check-warning input[type=checkbox]:checked+label:before, .radio.radio-warning input[type=radio]:checked+label:before {
	border-color: #F8D053;
}
.checkbox.check-info input[type=checkbox]:checked+label:before, .radio.radio-info input[type=radio]:checked+label:before {
	border-color: #3B4752;
}
.checkbox.check-success input[type=checkbox]:checked+label:before, .radio.radio-success input[type=radio]:checked+label:before {
	border-color: #10CFBD;
}
.checkbox.check-stats input[type=checkbox]:checked+label:before, .radio.radio-stats input[type=radio]:checked+label:before {
	border-color: #FF9333;
}
.checkbox.check-secondary input[type=checkbox]:checked+label:before, .radio.radio-secondary input[type=radio]:checked+label:before {
	border-color: #3aa3e3;
}

.checkbox.check-right {	}
.checkbox.check-right label { margin-right: 0; padding-left: 0 !important; padding-right: 32px !important; }
.checkbox.check-right label::before,
.checkbox.check-right label::after { left: auto; right: 0; margin-right: 0; }

.checkbox.check-fixedwidth {	}
.checkbox.check-fixedwidth label { min-width: 9em; }

.radio.radio-large label:before, .checkbox.check-large label:before {
	width: 2.169em;
	height: 2.169em;
}

.checkbox.check-large label::after {
	width: 2.169em;
	height: 2.169em;
	line-height: 2.5em;
	font-size: 13px !important;
}

.checkbox.check-large input[type=checkbox]:checked+label:before {
	border-width: 14px;
}

.ui-checkbox-logo { display: inline-block; vertical-align: middle; width: 7.7%; height: 3em; line-height: 3em; margin: 0 1.75em 0 0; position: relative; opacity: 0.5; transition: opacity 150ms; text-align: center; }
.ui-checkbox-logo i { font-size: 310%; }
.ui-checkbox-logo img { display: inline-block; vertical-align: middle; max-width: 100%; max-height: 100%; margin: 0; position: relative; }
.ui-checkbox { width: calc(100% - 23% - 2em); display: inline-block; vertical-align: middle; }
.ui-checkbox.checkbox label { font-size: 150%; color: #555459; letter-spacing: -1px; }
.ui-checkbox-content { padding-left: 2.7em; }

.ui-checkbox-logo.ui-checkbox-logo-styled { padding: 1em; border-radius: 0.25em; background: #f3f3f3; width: 4.5em; height: 4.5em; line-height: 4.5em; position: relative; }
.ui-checkbox-logo.ui-checkbox-logo-styled div { display: flex; justify-content: center; align-items: center; height: 100%; position: relative; }
.ui-checkbox-logo.ui-checkbox-logo-styled i { font-size: 400%; position: relative; }
.ui-checkbox-logo.ui-checkbox-logo-styled span { position: absolute; left: 0; bottom: 0; width: 100%; text-transform: uppercase; font-size: 80%; padding: 0.5em 0; line-height: normal; background: rgba(0,0,0,0.6); color: #fff; border-bottom-left-radius: 0.25em; border-bottom-right-radius: 0.25em; }
.ui-checkbox-logo.ui-checkbox-logo-styled img { -webkit-filter: grayscale(100%); filter: gray; filter: grayscale(100%); }

.aside { display: block; font-size: 90%; margin: 0 0 0 0.7em; color: #413768; }
.explain { font-size: 80%; margin: 0.5em 0 0 0; color: #929292; }

.info { font-size: 90%; color: #676085; }

.input-time {	}
.input-time input[type="number"] { display: inline-block; font-size: 200%; width: 3em; text-align: center; }
.input-time span { display: inline-block; padding: 0 0.5em; cursor: default; font-size: 150%; }

.radiogroup {	}
.radiogroup > div { display: inline-block; }
.radiogroup input { display: none; }
.radiogroup input[disabled] + label { opacity: 0.5; cursor: not-allowed !important; }
.radiogroup label, .pure-form.pure-form-stacked .radiogroup label { font-family: inherit; text-transform: none; letter-spacing: normal; font-weight: normal; background: #f9fafb; border-radius: 3px; margin: 0; font-size: 100%; padding: 0.53em; }
.radiogroup > div:last-child label { margin-right: 0; }
.radiogroup input:checked + label, .pure-form.pure-form-stacked .radiogroup input:checked + label { background-color: #48B0F7; color: #fff; }
.radiogroup input:checked + label span, .pure-form.pure-form-stacked .radiogroup input:checked + label span { color: #fff; font-weight: normal; }

.radiogroup.radiogroup-subtle label, .pure-form.pure-form-stacked .radiogroup.radiogroup-subtle label { background: #fff; }
.radiogroup.radiogroup-subtle input:checked + label, .pure-form.pure-form-stacked .radiogroup.radiogroup-subtle input:checked + label { background-color: #f7f7f7; color: #626262; }
.radiogroup.radiogroup-subtle input:checked + label span, .pure-form.pure-form-stacked .radiogroup.radiogroup-subtle input:checked + label span { color: #626262; }

.radiogroup.radiogroup-size {	}
.radiogroup.radiogroup-size label { display: inline-block; height: 3.14em; width: 3.14em; text-indent: -999px; position: relative; }
.radiogroup.radiogroup-size label::before { content: ""; display: block; position: absolute; bottom: 0; left: 0; background: rgba(0,0,0,0.3); width: 50%; height: 50%; border-bottom-left-radius: 3px; }
.radiogroup.radiogroup-size input[value="medium"] + label::before { width: 70%; height: 70%; }
.radiogroup.radiogroup-size input[value="full"] + label::before { width: 90%; height: 90%; }
.radiogroup.radiogroup-size input[value="portrait"] + label::before { width: 55%; height: 75%; top: 12.5%; left: 22.5%; border-radius: 3px;}
.radiogroup.radiogroup-size input[value="landscape"] + label::before { width: 75%; height: 55%; top: 22.5%; left: 12.5%; border-radius: 3px; }
.radiogroup.radiogroup-size input[value="left"] + label::before { width: 80%; height: 30%; left: 10%; top: 20%; border-radius: 3px; }
.radiogroup.radiogroup-size input[value="left"] + label::after { content: ""; display: block; position: absolute; background: rgba(0,0,0,0.3); width: 40%; height: 20%; top: 60%; border-radius: 3px; }
.radiogroup.radiogroup-size input[value="right"] + label::before { width: 80%; height: 30%; right: 10%; left: initial; top: 20%; border-radius: 3px; }
.radiogroup.radiogroup-size input[value="right"] + label::after { content: ""; display: block; position: absolute; background: rgba(0,0,0,0.3); right: 10%; width: 40%; height: 20%; top: 60%; border-radius: 3px; }

.radiogroup-large {	}
.radiogroup-large label { margin: 0; padding: 0.75em; cursor: pointer; display: block; }
.radiogroup-large label img { display: block; margin: 0; max-width: 100%; }
.radiogroup-large .fa { display: block; margin: 0 auto 0 auto; font-size: 300%; }
.radiogroup-large span { display: block; margin: 0.75em 0 0 0; text-align: center; font-weight: normal !important; color: inherit !important; }
.radiogroup-large span.aside { font-size: 75%; }

.radiogroup-modern {	}
.radiogroup-modern label, .pure-form.pure-form-stacked .radiogroup-modern label { background-color: inherit; border-bottom: 2px solid transparent; border-radius: 0; position: relative; }
.radiogroup-modern label img { max-width: 8.889em; margin: 0 auto; }
.radiogroup-modern label .fa,
.radiogroup-modern label .ui-preview-container { opacity: 0.7; transform: scale(0.9); transition: opacity 150ms, transform 150ms; }
.radiogroup-modern input:checked + label, .pure-form.pure-form-stacked .radiogroup-modern input:checked + label { color: inherit; background-color: inherit; }
.radiogroup-modern input:checked + label span, .pure-form.pure-form-stacked .radiogroup-modern input:checked + label span { font-weight: bold !important; }
.radiogroup-modern input:checked + label .fa, .pure-form.pure-form-stacked .radiogroup-modern input:checked + label .fa,
.radiogroup-modern input:checked + label .ui-preview-container, .pure-form.pure-form-stacked .radiogroup-modern input:checked + label .ui-preview-container { opacity: 1; transform: scale(1); border-color: #22c3c5 !important; }
.radiogroup-modern input:checked + label::after { content: ""; height: 2px; position: absolute; bottom: 0; width: 50%; margin-left: -25%; background: #21c3c6; }
_:-ms-fullscreen, :root .radiogroup-modern input:checked + label::after { width: 100%; margin-left: 0; }

.radiogroup-modern-center {	}
.radiogroup-modern-center > div label { padding-top: 0; }
.radiogroup-modern-center > div label span { text-align: left; padding-left: 0.5em; }
.radiogroup-modern-center input:checked + label::after { margin-left: 0; left: 2.5em; }

.radiogroup-styled {	}
.radiogroup-styled label, .pure-form.pure-form-stacked .radiogroup-styled label { background-color: #f2f8fb; cursor: pointer; border-radius: 0; transition: background-color 150ms, color 150ms; }
.radiogroup-styled label:hover, .pure-form.pure-form-stacked .radiogroup-styled label:hover { background-color: #e7eff3; }
.radiogroup-styled > div:first-child label, .pure-form.pure-form-stacked .radiogroup-styled > div:first-child label { border-top-left-radius: 0.25em; border-bottom-left-radius: 0.25em; }
.radiogroup-styled > div:last-child label, .pure-form.pure-form-stacked .radiogroup-styled > div:last-child label { border-top-right-radius: 0.25em; border-bottom-right-radius: 0.25em; }

.radiogroup-learn {	}
.radiogroup-learn label, .pure-form.pure-form-stacked .radiogroup-learn label { background-color: #eff2f7; cursor: pointer; border-radius: 0; transition: background-color 150ms, color 150ms; }
.radiogroup-learn label:hover, .pure-form.pure-form-stacked .radiogroup-learn label:hover { background-color: #e7eff3; }
.radiogroup-learn input:checked + label, .pure-form.pure-form-stacked .radiogroup-learn input:checked + label { box-shadow: 0 0 0px 2px inset #a3b5cc; background-color: #fff; color: #767a80; }
.radiogroup-learn input:checked + label span, .pure-form.pure-form-stacked .radiogroup-learn input:checked + label span { color: #767a80; }
.radiogroup-learn > div:first-child label, .pure-form.pure-form-stacked .radiogroup-learn > div:first-child label {	}
.radiogroup-learn > div:last-child label, .pure-form.pure-form-stacked .radiogroup-learn > div:last-child label {	}

.pure-form.pure-form-stacked .radiogroup-v2 { display: flex; justify-content: center; }
.pure-form.pure-form-stacked .radiogroup-v2 > div { margin: 0 1em 0 0; min-width: 30%; text-align: center; }
.pure-form.pure-form-stacked .radiogroup-v2 > div:last-child { margin-right: 0; }
.pure-form.pure-form-stacked .radiogroup-v2 > div:hover label { border-color: #bfc6ce; }
.pure-form.pure-form-stacked .radiogroup-v2 label { cursor: pointer; border-radius: 0.5em; background: transparent !important; border: 2px solid #dfe3e8; color: #464959 !important; transition: border-color 150ms, color 150ms; }
.pure-form.pure-form-stacked .radiogroup-v2 label i,
.pure-form.pure-form-stacked .radiogroup-v2 label span { color: #464959 !important; transition: color 150ms; }
.pure-form.pure-form-stacked .radiogroup-v2 input:checked + label { border-color: #21c3c5; color: #2a5556 !important; }
.pure-form.pure-form-stacked .radiogroup-v2 input:checked + label i,
.pure-form.pure-form-stacked .radiogroup-v2 input:checked + label span { color: #2a5556 !important; }
.pure-form.pure-form-stacked .radiogroup-v2 label span { display: block; margin: 0.5em 0 0 0; text-align: center; font-weight: normal !important; }

.radiogroup-half { display: flex; }
.radiogroup-half > div { width: 50%; text-align: center; }
.radiogroup-half > div:first-child label, .pure-form.pure-form-stacked .radiogroup-half > div:first-child label { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.radiogroup-half > div + div label, .pure-form.pure-form-stacked .radiogroup-half > div + div label { border-top-left-radius: 0; border-bottom-left-radius: 0; }

.radiogroup.radiogroup-triple { display: flex; margin: 0.25em 0; }
.radiogroup.radiogroup-triple > div { flex: 1; text-align: center; }
.pure-form .radiogroup.radiogroup-triple > div label { border-radius: 0; border-bottom: 3px solid transparent; font-weight: normal; cursor: pointer; padding-top: 0.4em; padding-bottom: 0.386em; }
.pure-form .radiogroup.radiogroup-triple > div label span {	}
.radiogroup.radiogroup-triple > div:first-child label { border-radius: 3px; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.radiogroup.radiogroup-triple > div:last-child label { border-radius: 3px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pure-form .radiogroup.radiogroup-triple input:checked + label { border-bottom-color: #000; background: #edeff4; color: #626262; }

.radiogroup.radiogroup-equal-heights { display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; }
.radiogroup.radiogroup-equal-heights label { width: 100%; box-sizing: border-box; }

.radiogroup.radiogroup-flexible { display: flex; }
.radiogroup.radiogroup-flexible > div { flex: 1 1 0px; text-align: center; }

.divider { position: relative; height: 1px; background: #E8E8E8; margin: 2em 8em; }
.divider span { position: absolute; line-height: 1em; top: -0.7em; width: 4em; left: 50%; margin-left: -2em; text-align: center; background: #fff; padding: 0.25em 0; text-transform: uppercase; color: #7D7D7D; cursor: default; }
.empty-state .divider span { background-color: #f9fafb; }

.block-list { margin: 0; padding: 0; list-style: none; }
.block-list li { padding: 0.5em; border: 1px solid #EFEFEF; border-radius: 0.25em; margin: 0 0 0.5em; position: relative; }
.block-list li:hover { background-color: #f6faff; }
.block-list li:last-child { margin-bottom: 0; }
.ajs-content .block-list { font-size: 11px; }
.block-list.block-list-scrollable { max-height: 63.5em; overflow: scroll; }

body.root .empty-state { text-align: center; padding: 3.87em 3em; border: 1px solid #e8e8e8; border-radius: 0.25em; background: #f9fafb; }
body.root .empty-state h2 { margin: 0 0 0.5em; cursor: default; font-size: 1.5em; color: #555459; }
body.root .empty-state p { width: auto; display: block; margin: 0 0 1em; cursor: default; font-size: 110%; }
body.root .empty-state .hr p { margin: 0; font-size: 100%; display: inline-block; font-size: 85%; background-color: #f9fafb; }
body.root .empty-state .ui-autoresponder-add { float: none; margin: 0; }
body.root .empty-state.empty-state-minor { padding-top: 2em; padding-bottom: 2em; }
body.root .empty-state.empty-state-smallpadding { padding-left: 2em; padding-right: 2em; }

/* -- Hero areas -- */
.hero { padding: 2em; margin: 1em 0; border: 1px solid #e8e8e8; background: #fff; border-radius: 0.25em; box-shadow: 0 1px 0 rgba(0,0,0,.25); }
.hero h2 { font-size: 160%; font-weight: 600; margin: 0 0 1em; color: #3e4852; cursor: default; }
.hero p { font-size: 110%; cursor: default; }

/* -- Tabs -- */
div.nav-tabs {	}
div.nav-tabs-triangle {	}
ul.nav-tabs { margin: 0; padding: 0; list-style: none; }
ul.nav-tabs li { position: relative; display: block; float: left; line-height: 24px; float: left; margin-bottom: -1px; }
ul.nav-tabs li a { text-align: center; position: relative; display: block; text-decoration: none; border: 1px solid rgba(0, 0, 0, 0); line-height: 1.42857143; overflow: visible; border-radius: 0; padding: 0.4em 1em; margin-right: 0; font-weight: 400; color: rgba(98, 98, 98, 0.7); font-size: 16px; min-width: 70px; text-transform: uppercase;}
ul.nav-tabs li.active a { color: #626262; }
ul.nav-tabs li.active a::before { margin-left: -11px; border: 11px solid rgba(0, 0, 0, 0); border-top-color: rgba(0, 0, 0, 0.2); content: ""; height: 0; left: 50%; pointer-events: none; position: absolute; width: 0; z-index: 1; top: 100%; }
ul.nav-tabs li.active a::after { margin-left: -10px; border: 10px solid rgba(0, 0, 0, 0); border-top-color: #F0F0F0; content: ""; height: 0; left: 50%; pointer-events: none; position: absolute; width: 0; z-index: 1; top: 100%; }
.nav-tabs-triangle ul.nav-tabs::after { border-bottom: 1px solid rgba(0, 0, 0, 0.1); width: 100%; position: relative; bottom: 0; clear: both; display: table; content: " "; }
div.nav-tabs .nav-pane.box { padding: 2em 2em 0.5em; display: none; border-top: none; }
div.nav-tabs .nav-pane.box.active { display: block; }

/* -- Search -- */
.ui-search-field[type="search"] { border: none; background: #fff; color: #34495E; line-height: 1.467; padding: 0.7em 3em 0.7em 0.7em; border-radius: 3px; outline: none; width: 100%; display: block; box-sizing: border-box; -webkit-appearance: none; }
.ui-search-field:focus { border-color: #2bc5e1; }
.ui-search-field-icon { position: absolute; right: 1.1em; top: 50%; margin-top: -0.5em; color: #cfd4da; }
.ui-search-field::-webkit-input-placeholder { color: #aaa; }
.ui-search-field:-moz-placeholder { color: #aaa; }
.ui-search-field::-moz-placeholder { color: #aaa; }
.ui-search-field:-ms-input-placeholder { color: #aaa; }

/* -- Preview boxes -- */
.preview { background: #F7FBFC; box-shadow: 0 1px 2px rgba(0,0,0,0.1); border-radius: 2px; padding: 1.5em 0; display: flex; align-items: center; justify-content: center; }
.preview-full { margin: 0 auto 2em; }
.video-preview { position: relative; padding-bottom: 56.25%; height: 0; }
.video-preview iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.preview-block { display: block; height: 1.5em; margin: 0 0 0.5em 0; background: #E6E6E6; }
.preview-block-80 { width: 80%; }
.preview-block-60 { width: 60%; }
.preview-block-40 { width: 40%; }
.preview-block-20 { width: 20%; }
.preview-block-real { margin: 0 0 0.5em 0; display: block; }

/* -- Help boxes and containers -- */
.help-box {	}
.help-video { background: #000; color: #fff; text-align: center; margin: 1em 0; height: 0; padding-bottom: calc((14 / 25) * 100%); position: relative; }
.help-video p { margin: 0; padding: 0; position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); text-align: center; width: 100%; }
.help-box .avoid-controls {	}
.payment-notice { clear: both; margin: 1em auto; max-width: 30em; background: #ecf5fc; color: #4f5b83; border-radius: 0.25em; padding: 0.5em; text-align: center; }
.payment-notice .fa { margin-right: 0.5em; color: #B6CEE0; font-size: 160%; vertical-align: middle; }

/* -- Uploaders -- */
.uploader-dropzone {	}
.uploader-dropzone input[type="file"] { display: none !important; }
.uploader-dropzone .uploader-progress { color: #fff; font-size: 90%; padding: 0.1em 1em; background: #21c3c5; margin-top: 0.5em; box-sizing: border-box; min-width: 3.25em; }
.uploader-dropzone .uploader-progress-percent {	}

.uploader.uploader-block { text-align: center; padding: 1em 3em; border: 1px solid #e8e8e8; border-radius: 0.25em; background: #f9fafb; max-width: 70%; margin: 0 auto; min-height: 7em; }
.uploader.uploader-block.ui-empty .uploader-trigger { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);	}
.uploader.uploader-block .uploader-trigger { float: none; margin: 0; position: static; }
.uploader.uploader-block .uploader-preview { width: 100%; background: none; border: none; height: auto; min-height: 5em; }
.uploader.uploader-block .uploader-preview:empty { display: none; }
.uploader.uploader-block .uploader-preview img { position: static; transform: none; max-width: 100%; margin: 1em auto; }
.uploader.uploader-block.ui-empty .uploader-delete { display: none; }

.uploader.uploader-max { max-width: 100%; padding: 1em; }
.uploader.uploader-max .uploader-preview { padding: 0; }

/* -- Progress bar -- */
.progress-bar { height: 2em; position: relative; border-radius: 0.25em; border: 1px solid #ecf0f1; background: #f9f9f9; box-sizing: border-box; }
.progress-bar em { font-style: normal; position: absolute; left: 0.5em; line-height: 2em; color: #3b4752; z-index: 10; font-weight: bold; }
.progress-bar span { position: absolute; top: -1px; left: -1px; padding: 0 1px; height: calc(100% + 2px); background: #d0e8e8; width: 0%; border-radius: 0.25em; transition: width 750ms cubic-bezier(0.22, 0.61, 0.36, 1); max-width: 100%; }

/* -- Switch user menu -- */
.ui-switchuser-user-select { overflow-x: hidden; overflow-y: scroll; max-height: 21.5em; margin: 1em 0; padding: 0; list-style: none; }
.ui-switchuser-user-select li { border: 1px solid #eee; border-radius: 0.25em; padding: 0.5em; transition: border-color 150ms; }
.ui-switchuser-user-select li:after { content: ""; display: table; clear: both; }
.ui-switchuser-user-select li label { margin-right: 0; width: 100%; box-sizing: border-box; font-weight: bold; }
.ui-switchuser-user-select li label::before { margin-top: 1em; }
.ui-switchuser-user-select li label::after { margin-top: 1.25em; }
.ui-switchuser-user-select li i { display: block; font-style: normal; font-weight: normal; font-size: 80%; margin: 0.5em 0 0 0; cursor: default; }
.ui-switchuser-user-select .ui-switchuser-user-field { display: block; cursor: default; }
.ui-switchuser-user-select .ui-switchuser-user-username { font-size: 90%; }
.ui-switchuser-user-select .ui-switchuser-user-actions { float: right; margin-top: 0.4em; }
.ui-switchuser-user-select li .ui-switchuser-user-thumb { float: left; margin: 0 0.85em 0 0; width: 3em; height: 3em; border-radius: 0.25em; }
.ui-switchuser-user-select li + li { margin-top: 0.5em; }
.ui-switchuser-user-select li:hover { border-color: #d0d0d0; }
.ui-switchuser-user-select li.active { border-color: #10CFBD; }

/* -- Rules editor -- */
.tc-rules {	}
.tc-rules.tc-rules-list { font-size: 14px; }
.tc-rules-item { display: flex; align-items: center; border-radius: 0.25em; background: #fff; border: 1px solid transparent; padding: 0.5em; transition: background-color 150ms, border-color 150ms; }
.tc-rules-item:hover { background: #fbfbfa; border-color: #e8e8e8; }
.tc-rules-item + .tc-rules-item { margin-top: 1em; }
.tc-rules-item-description { padding-right: 1em; line-height: 1.8; color: #555459; }
.tc-rules-item-description .tc-rules-item-description-cond { background-color: #f1f7f9; color: #617075; padding: 0.1em 0.25em 0.25em; border-radius: 0.25em; vertical-align: baseline; }
.tc-rules-item-description .tc-rules-item-description-actn { background-color: #deeef3; color: #617075; padding: 0.1em 0.25em 0.25em; border-radius: 0.25em; vertical-align: baseline; }
.tc-rules-item-actions { margin-left: auto; display: flex; min-width: 10.25em; }
body.root .tc-rules-item-actions .pure-button { flex-grow: 1; }
.tc-rules-item .ui-rules-edit { margin-left: auto; }
.tc-rules-rule {	}
.tc-rules-rule h1 { font-size: 120%; margin: 0 0 0.5em 0; }
.tc-rules-rule-actions:not(:empty) { margin-top: 1em; padding-right: 0.5em; text-align: right; }
.tc-rule {	}
.tc-rule-matches {	}
.tc-rule-match { border-left: 4px solid #21c3c5; padding: 0 0 0 0.5em; }
.tc-rule-match + .tc-rule-match { margin-top: 2em; }
.tc-rule-match h6 { font-size: 100%; margin: 0 0 0.5em; }
.tc-rule-condition { display: flex; align-items: center; background: #f1f7f9; padding: 1em 1.25em; }
.tc-rule-condition + .tc-rule-condition { margin-top: 0.5em; }
.tc-rule-condition-actns { margin-left: auto; }
.tc-rule-match-actns { margin-top: 1em; }
.tc-rule-actns { margin-top: 1.5em; padding-left: calc(0.5em + 4px); }

.tc-rule-actions { margin: 1.5em 0 0; padding: 1.5em; background: #f9f9f9; margin-left: -24px; margin-right: -24px; margin-bottom: -16px; }
.tc-rule-actions .empty-state { background-color: #fff; }
.tc-rule-actions[data-action_count="1"] .ui-rules-remove_action { display: none; }
.tc-rule-action { display: flex; align-items: center; padding: 0 1.25em 0 0.75em; }
.tc-rule-action-actns { margin-left: auto; }
.tc-rule-action + .tc-rule-action { margin-top: 0.5em; }
.tc-rule-action-desc {	}
.tc-rule-actions-actns { margin-top: 0.5em; padding-left: calc(0.5em + 3px); }

body.root .ui-rules-fixed-add_condition { min-width: 6em; }
body.root .ui-rules-fixed-add_match { min-width: 6em; }
body.root .ui-rules-fixed-add_action { min-width: 6em; }
body.root .ui-rules-fixed-button { min-width: 5em; }

#tc-rules-condition-config-target { position: relative; }
#tc-rules-condition-config-target.ui-loading-tiny-spinner { min-height: 4em; }
#tc-rules-action-config-target { position: relative; }
#tc-rules-action-config-target.ui-loading-tiny-spinner { min-height: 4em; }

.tc-rules-option_grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-column-gap: 2em; grid-row-gap: 2em; grid-auto-rows: 1fr; margin-bottom: 1em; }
.tc-rules-option_grid-item { cursor: pointer; padding: 1em 0.5em; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; transition: background-color 150ms, border-color 150ms, border-width 150ms, box-shadow 150ms; background: #FFFFFF; border: 1px solid #F0F0F0; box-shadow: 1px 1px 0 0 rgba(243,243,243,0.50); border-radius: 0.5em; }
.tc-rules-option_grid-item:hover { box-shadow: 1px 1px 8px 0 rgba(212, 212, 212, 0.5), inset 0 0 0 1px #848f9c; border-color: #848f9c; }
.tc-rules-option_grid-item.active { box-shadow: 1px 1px 5px 0 rgba(158, 158, 158, 0.3), inset 0 0 0 1px #848f9c; border-color: #848f9c; }
.tc-rules-option_grid-item:hover .tc-rules-option_grid-item-icon,
.tc-rules-option_grid-item.active .tc-rules-option_grid-item-icon {	}
.tc-rules-option_grid-item.coming_soon { background-color: #f9f9f9; cursor: default; }
.tc-rules-option_grid-item.coming_soon i { color: #c3c3c3; }
.tc-rules-option_grid-item.coming_soon img { opacity: 0.3; }
.tc-rules-option_grid-item.coming_soon .tc-rules-option_grid-item-name { color: #c3c3c3; }
.tc-rules-option_grid-item.coming_soon .tc-rules-option_grid-item-coming_soon { font-weight: normal; letter-spacing: normal; font-size: 75%; margin: 0; color: #999; }
.tc-rules-option_grid-item-icon { text-align: center; margin: 0 0 0.5em; }
.tc-rules-option_grid-item-icon i { font-size: 160%; color: #7fa1b5; }
.tc-rules-option_grid-item-icon img { display: block; width: 100%; max-width: 3em; max-height: 3em; }
.tc-rules-option_grid-item-name { margin: 0; font-size: 90%; letter-spacing: normal; text-align: center; color: #8C8C8C; }

.ui-input-affiliate_search { position: relative; }
.ui-input-affiliate_search-clear { cursor: pointer; position: absolute; top: 50%; right: -1.5em; transform: translateY(-50%); font-size: 140%; opacity: 0; transition: right 150ms, opacity 90ms; }
.ui-input-affiliate_search.ui-locked {	}
.ui-input-affiliate_search.ui-locked input { background-color: #f9f9f9 !important; color: #647284 !important; font-weight: bold; cursor: default; }
.ui-input-affiliate_search.ui-locked .ui-input-affiliate_search-clear { right: 0.2em; opacity: 0.6; }

/* -- Searchable lists -- */
.ui-search_list {	}
.ui-search_list-controls { display: flex; align-items: center; justify-content: center; padding: 1.5em; }
.ui-search_list-controls > div { flex-grow: 1; margin: 0 0.5em; box-sizing: border-box; }
.ui-search_list-controls > div:first-child { margin-left: 0; }
.ui-search_list-controls > div:last-child { margin-right: 0; }
.ui-search_list-controls .ui-search_list-control-query {	}
.ui-search_list-controls .ui-search_list-control-query input { font-size: 100%; padding: 0.68em; border-color: #D3D3D3; }
.ui-search_list-controls .ui-search_list-control-query input:focus { box-shadow: none; border-color: #b3b3b3; }
.ui-search_list-controls .ui-search_list-control-type { max-width: 15em; }
.ui-search_list-controls .ui-search_list-control-date { max-width: 13em; }
.ui-search_list-controls .ui-search_list-control-actions { display: flex; max-width: 12em; }
.ui-search_list-controls .ui-search_list-control-actions .pure-button { width: 100%; }
.ui-search_list-controls .dropdown { border-color: #D3D3D3; }

.ui-search_list-control-date #stats-date-range-type-custom-wrap { position: absolute; padding-right: 2em; top: 0; width: calc(100% - 0.5em - 1px); height: calc(100% - 2px); box-sizing: border-box; margin: 1px 0 0 0.5em; border: 1px solid transparent; border-left: none; background: #fff; border-radius: 0.5em; }
.ui-search_list-control-date #stats-date-range-type-custom-wrap:before { content: ""; display: block; position: absolute; width: 0.5em; height: 1px; top: 50%; left: 50%; background: #c5c5c5; margin-left: -1.75em; }
.ui-search_list-control-date #stats-date-range-type-custom-wrap input { border: none; width: 50%; margin: 0; background: transparent; border: 1px solid transparent; border-radius: 0; padding: 0.43em 0.4em; height: 2.4em; font-weight: bold; font-size: 100%; color: #747e87; }
.ui-search_list-control-date #stats-date-range-type-custom-wrap input:focus { box-shadow: none; }
.ui-search_list-control-date #stats-date-range-type-custom-clear { position: absolute; right: 0.5em; top: 50%; margin: -8px 0 0 0; color: #5c6064; font-size: 1.4em; cursor: pointer; }

.ui-search_list-stat_cards { display: grid; grid-template-columns: repeat(4, 1fr); grid-column-gap: 2em; grid-row-gap: 2em; margin: 1.5em 0 0 0; }
.ui-search_list-stat_card { flex-grow: 1; display: flex; justify-content: center; align-items: center; background: #FFFFFF; border: 2px solid #F0F0F0; box-shadow: 1px 1px 0 0 rgba(239,239,239,0.50); border-radius: 5px; padding: 2.2em 1em; box-sizing: border-box; transition: border-color 150ms; cursor: pointer; }
.ui-search_list-stat_card:hover { border-color: #d6d6d6; }
.ui-search_list-stat_card.active { border-color: #B8B8B8; }
.ui-search_list-stat_card .ui-search_list-stat_card-icon { max-width: 2.8em; margin-right: 1.5em; }
.ui-search_list-stat_card .ui-search_list-stat_card-icon img { display: block; width: 100%; }
.ui-search_list-stat_card .ui-search_list-stat_card-content {	}
.ui-search_list-stat_card .ui-search_list-stat_card-content h5 { margin: 0; letter-spacing: normal; color: #757575; font-weight: bold; text-align: center; font-size: 120%; }
.ui-search_list-stat_card .ui-search_list-stat_card-content h6 { margin: 0; letter-spacing: normal; color: #8C8C8C; font-weight: bold; text-align: center; font-size: 100%; }
.ui-search_list-stat_card[data-filter_type="active"] h5 { color: #29B0B1; }
.ui-search_list-stat_card[data-filter_type="suspended"] h5 { color: #B25B41; }
.ui-search_list-stat_card[data-filter_type="expired"] h5 { color: #B1B2B3; }

.ui-search_list-list { margin: 1.5em 0 0 0; }
.ui-search_list-results { padding: 0; }
.ui-search_list-results-list { padding: 0; margin: 0; list-style: none; }

.ui-search_list-results-row { display: flex; align-items: center; padding: 1em; margin: 0; box-sizing: border-box; color: #6F6F6F; color: #6F6F6F; border: 1px solid transparent; transition: background-color 150ms, border-color 150ms; }
.ui-search_list-results-list .ui-search_list-results-row:hover { background: #FBFAFC; }
.ui-search_list-results-row.ui-search_list-results-row-header { font-weight: bold; position: relative; padding: 1em; margin: 0; background: #f5f5f5; }
/*.ui-search_list-results-row.ui-search_list-results-row-header::after { content: ""; display: block; height: 1px; background: #EAEAEA; position: absolute; bottom: 0; left: 1.5em; right: 1.5em; }*/
.ui-search_list-results-row.ui-search_list-results-row-header .ui-search_list-results-col { color: #6F6F6F; }
.ui-search_list-results-col {	}
.ui-search_list-results-col-object { flex-grow: 1; }
.ui-search_list-results-col-object-info { display: flex; align-items: center; }
.ui-search_list-results-col-object-info-img { flex-shrink: 0; width: 3.5em; margin: 0 1.5em 0 0; }
.ui-search_list-results-col-object-info-img img { display: block; width: 100%; }
.ui-search_list-results-col-object-info-content { display: flex; flex-direction: column; }
.ui-search_list-results-row .order-row-customer-name { font-weight: bold; }
.ui-search_list-results-row a:link,
.ui-search_list-results-row a:visited,
.ui-search_list-results-row a:hover,
.ui-search_list-results-row a:active { color: #5385C5; text-decoration: none; }
.ui-search_list-results-col-status { width: 14%; }
.ui-search_list-results-col-date { width: 12%; color: #D0D0D0; }
.ui-search_list-results-col-actions { width: 15%; text-align: right; margin-left: auto; }

.ui-search_list-results-status_marker { display: flex; align-items: center; }
.ui-search_list-results-status_marker::before { content: ""; display: inline-block; width: 0.65em; height: 0.65em; border-radius: 50%; background-color: #999; margin: 0 0.3em 0 0; }
.ui-search_list-results-status_marker-active { color: #29B0B1; }
.ui-search_list-results-status_marker-active::before { background-color: #29B0B1; }
.ui-search_list-results-status_marker-suspended { color: #B25B41; }
.ui-search_list-results-status_marker-suspended::before { background-color: #B25B41; }
.ui-search_list-results-status_marker-expired { color: #B1B2B3; }
.ui-search_list-results-status_marker-expired::before { background-color: #B1B2B3; }

.ui-search_list-results-col-sort { margin: 0 0 0 0.5em; opacity: 0; transition: opacity 150ms; }
.ui-search_list-results-col-sort.active { opacity: 1; }
.ui-search_list-results-col:hover .ui-search_list-results-col-sort { opacity: 1; }
.ui-search_list-results-col-sort-control { cursor: pointer; display: inline-block; vertical-align: middle; width: 9px; height: 5px; background: url(/static/images/chevron_up.png) no-repeat; background-size: contain; }
.ui-search_list-results-col-sort-desc { background-image: url(/static/images/chevron_down.png); }
.ui-search_list-results-col-sort-control.active { display: none; }

.students-sort.students-sort-post { margin: 1.5em 0 0 0; }

/* -- Modal windows -- */
.alertify .ajs-commands button { display: none !important; }
.alertify .ajs-dialog.tc-modal-switchuser.ui-loading .loading-box { height: 16em; display: flex; align-items: center; justify-content: center; }
.alertify .ajs-dialog.tc-modal-switchuser.ui-loading .loading-box span { display: none; }
.alertify .ajs-dialog.tc-modal-switchuser.ui-loading .loading-box i { display: block; width: 80px; height: 80px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 40px; border: solid 10px rgba(0, 0, 0, 0.2); border-top-color: #000; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }

.alertify .box.box-tabbed .tabs li { padding: 0.7em 1em; font-size: 100%; }
.alertify .box.box-tabbed .tabs li i { display: inline-block; margin: 0 0.5em 0 0; font-size: 115%; }
.alertify .box.box-tabbed .pane { display: none; padding: 1em; border: 1px solid #e8e8e8; }
.alertify .box.box-tabbed .pane.active { display: block; }

.alertify .ajs-dialog.tc-modal-gdpr { max-width: 400px; }
.alertify .ajs-dialog.tc-modal-gdpr.ui-loading .loading-box { height: 16em; display: flex; align-items: center; justify-content: center; }
.alertify .ajs-dialog.tc-modal-gdpr.ui-loading .loading-box span { display: none; }
.alertify .ajs-dialog.tc-modal-gdpr.ui-loading .loading-box i { display: block; width: 80px; height: 80px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 40px; border: solid 10px rgba(0, 0, 0, 0.2); border-top-color: #000; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }
.alertify .ajs-dialog.tc-modal-gdpr .ui-documentation { font-size: 90%; }
.alertify .ajs-dialog.tc-modal-gdpr .ui-documentation .generic-list {	border-bottom: 1px solid #eee; margin: 0 0 1em; }

.alertify .ajs-dialog.tc-modal-genericload.ui-loading .loading-box { height: 16em; display: flex; align-items: center; justify-content: center; flex-direction: column; }
.alertify .ajs-dialog.tc-modal-genericload.ui-loading .loading-box span { margin: 1em 0 0; }
.alertify .ajs-dialog.tc-modal-genericload.ui-loading .loading-box i { display: block; width: 80px; height: 80px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 40px; border: solid 10px rgba(0, 0, 0, 0.2); border-top-color: #000; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }

.alertify .ajs-dialog.tc-modal-genericloadalt.ui-loading .loading-box { height: 10em; display: flex; align-items: center; justify-content: center; flex-direction: column; }
.alertify .ajs-dialog.tc-modal-genericloadalt.ui-loading .loading-box span { margin: 0 0 1em; }
.alertify .ajs-dialog.tc-modal-genericloadalt.ui-loading .loading-box i { display: block; width: 30px; height: 30px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 50%; border: solid 4px rgba(0, 0, 0, 0.2); border-top-color: #3b4752; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }
.alertify .ajs-dialog.tc-modal-genericloadalt.ui-loading.ui-loading-nospin .loading-box i { display: none; }

.alertify .ajs-dialog.tc-modal-genericwide { max-width: 64em !important; }
.alertify .ajs-dialog.tc-modal-genericwide.tc-modal-nested { max-width: 60em !important; margin: 8.5em auto; }

.alertify .ajs-dialog.tc-modal-evensizing { max-width: 64em !important; padding: 1em 1em 0 1em; }
.alertify .ajs-dialog.tc-modal-evensizing .ajs-header { margin: -0.5em; padding: 16px 1em; }
.alertify .ajs-dialog.tc-modal-evensizing .ajs-footer { margin-left: -1em; margin-right: -1em; padding: 1em; }

.alertify .ajs-dialog .ui-content.tc-modal-maxheight { max-height: 60vh; overflow: scroll; }

.alertify .ajs-dialog.tc-modal-genericwider { max-width: 78em !important; }
.alertify .ajs-dialog.tc-modal-genericwider .ajs-footer { padding: 1.75em; }

.alertify .ajs-dialog.tc-modal-genericslightwide { max-width: 550px !important; }

.alertify .ajs-dialog.tc-modal-learn-edition-upgrade { max-width: 50em !important; margin-top: 6em; }

.alertify .ajs-dialog.tc-modal-genericconfirm { max-width: 470px !important; margin-top: 7.5em; }

.alertify .ajs-dialog.tc-modal-filter { margin-top: 28em; }

.alertify .ajs-dialog.tc-modal-top-offset { margin-top: 8em; }

.alertify .ajs-dialog.tc-modal-twofa { max-width: 31em !important; }
.alertify .ajs-dialog.tc-modal-twofa .ajs-header { white-space: normal; }
.alertify .ajs-dialog.tc-modal-twofa .fa-user-lock { font-size: 500%; color: #d0d6d8; }
.alertify .ajs-dialog.tc-modal-twofa .ui-content { padding: 0 0.5em; margin-bottom: -1em; }
.alertify .ajs-dialog.tc-modal-twofa .ui-content .img { width: 100%; max-width: 7em; }
.alertify .ajs-dialog.tc-modal-twofa .ajs-footer .ajs-buttons.ajs-primary { text-align: center; }
.alertify .ajs-dialog.tc-modal-twofa .tc-2factor-steps { max-width: 20em; }

.alertify .ajs-dialog.tc-modal-genericsimple {	}
.alertify .ajs-dialog.tc-modal-genericsimple .ajs-content { padding-top: 12px; }

.alertify .ajs-dialog.tc-modal-centrecontrols {	}
.alertify .ajs-dialog.tc-modal-centrecontrols .ajs-footer { display: flex; align-items: center; justify-content: center; }
.alertify .ajs-dialog.tc-modal-centrecontrols .ajs-footer .ajs-buttons.ajs-auxiliary { float: none; }
.alertify .ajs-dialog.tc-modal-centrecontrols .ajs-footer .ajs-buttons.ajs-primary { text-align: left; }

.alertify .ajs-dialog.tc-modal-notitle {	}
.alertify .ajs-dialog.tc-modal-notitle .ajs-header { display: none; }
.alertify .ajs-dialog.tc-modal-notitle .ajs-body .ajs-content { padding-top: 0; }

.alertify .ajs-dialog.tc-modal-nofooter .ajs-footer { display: none; }
.alertify .tc-modal-fakefooter { background: #ecf0f1; border-top: #ecf0f1 2px solid; border-radius: 0 0 2px 2px; padding: 15px; margin: 16px -24px -16px -24px; display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; }

.alertify .ajs-dialog.tc-modal-shorterbody .ajs-body .ajs-content { padding-top: 12px; }

.alertify .ajs-dialog.tc-modal-pricing_option,
.product_editor .alertify .ajs-dialog.tc-modal-pricing_option { max-width: 48em; }

.alertify .ajs-dialog.tc-modal-cancellation_settings_option { max-width: 48em !important; }

.alertify .ajs-dialog.tc-modal-evensizing { max-width: 64em !important; padding: 1em 1em 0 1em; }

.alertify .ajs-dialog.tc-modal-slim { max-width: 35em !important; }

.alertify .modal-description { width: 33em; margin: 0 auto; color: #555359; }
.alertify .modal-description p { text-align: left; color: #555359; font-size: 100%; font-weight: 400; }
.alertify .modal-description p.text-minimal { color: #b4bdbf; font-size: 80%; }

.alertify .ajs-dialog.tc-rules_editor { max-width: 46em; }
.alertify .ajs-dialog.tc-rules_options_editor { max-width: 40em; margin-top: 8em; }

.alertify .ajs-dialog.tc-modal-funnel_editor {  }
.alertify .ajs-dialog.tc-modal-funnel_editor .ui-content > .pure-form-stacked > div { min-height: 12em; }
.alertify .ajs-dialog.tc-modal-funnel_editor .ajs-footer .ajs-primary.ajs-buttons .ajs-ok { min-width: 8em; }

.alertify .ajs-dialog.tc-rules_editor-condition,
.alertify .ajs-dialog.tc-rules_editor-action { max-width: 43em; margin-top: 8em; }
.alertify .ajs-dialog.tc-rules_editor-condition .ajs-header,
.alertify .ajs-dialog.tc-rules_editor-action .ajs-header { font-size: 175%; }
.alertify .ajs-dialog.tc-rules_editor-condition .ajs-content,
.alertify .ajs-dialog.tc-rules_editor-action .ajs-content { padding: 2em 0; }
.alertify .ajs-dialog.tc-rules_editor-condition .ql-editor,
.alertify .ajs-dialog.tc-rules_editor-action .ql-editor { font-size: 80%; }
.alertify .ajs-dialog.tc-rules_editor-condition .tagify,
.alertify .ajs-dialog.tc-rules_editor-action .tagify { margin: 0.25em 0; }

/*.alertify .ajs-dialog.tc-rules_editor-condition select,
.alertify .ajs-dialog.tc-rules_editor-action select,
.alertify .ajs-dialog.tc-rules_editor-condition input,
.alertify .ajs-dialog.tc-rules_editor-action input,
.alertify .ajs-dialog.tc-rules_editor-condition .tagify,
.alertify .ajs-dialog.tc-rules_editor-action .tagify { max-width: 20em; }*/

.alertify .ajs-dialog.tc-object_editor { max-width: 600px; }

.alertify .ajs-dialog.tc-image_editor { max-width: 400px; }

.alertify .ajs-dialog.tc-modal-tinyconfirm { max-width: 31em !important; }
.alertify .ajs-dialog.tc-modal-tinyconfirm .ajs-header { display: none; }
.alertify .ajs-dialog.tc-modal-tinyconfirm .ajs-body .ajs-content { padding-top: 0; }
.alertify .ajs-dialog.tc-modal-tinyconfirm .ajs-footer .ajs-buttons.ajs-primary { text-align: center; }
.alertify .ajs-dialog.tc-modal-tinyconfirm.tc-modal-tinyconfirm-offset { margin-top: 13.25em; }
.alertify .ajs-dialog.tc-modal-tinyconfirm.tc-modal-tinyconfirm-extra { max-width: 44em !important; }

p.legal-trademark { text-align: center; font-size: 11px; margin: 0.5em 0 0 0; color: #cacaca; }

.radiogroup-large label .icon-fraud { display: block; margin: 0 auto 0.5em; max-height: 4em; }
.radiogroup-large label i.icon-fraud { margin-top: 0.25em; margin-bottom: 0.25em; }

@-webkit-keyframes rising {
	0% {
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		opacity: 0;
	}

	50% {
		-webkit-transform: translateY(0%);
		transform: translateY(0%);
		opacity: 1;
	}

	100% {
		-webkit-transform: translateY(50%);
		transform: translateY(50%);
		opacity: 0;
	}
}

@keyframes rising {
	0% {
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		opacity: 0;
	}

	50% {
		-webkit-transform: translateY(0%);
		transform: translateY(0%);
		opacity: 1;
	}

	100% {
		-webkit-transform: translateY(50%);
		transform: translateY(50%);
		opacity: 0;
	}
}

.ui-jobs-view.active .fa {
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	opacity: 0;
	-webkit-animation: rising 1000ms linear infinite;
	animation: rising 1000ms linear infinite;
}

/* Fixes etc */
.ql-editor .ql-paste-manager { position: static; }

/* Standalone spinner --*/
.loading-box { display: none; }
.loading-box.active { height: 10em; display: flex; align-items: center; justify-content: center; flex-direction: column; }
.loading-box.active span { margin: 0 0 1em; }
.loading-box.active i { display: block; width: 30px; height: 30px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 50%; border: solid 4px rgba(0, 0, 0, 0.2); border-top-color: #3b4752; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }

/*.custom-scrollbar::-webkit-scrollbar {
	width: 10px;
	background-color: #F5F5F5;
}

.custom-scrollbar::-webkit-scrollbar-track {
	border-radius: 10px;
	background: rgba(0,0,0,0.1);
	border: 1px solid #ccc;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
	border-radius: 10px;
	background: linear-gradient(left, #fff, #e4e4e4);
	border: 1px solid #aaa;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
	background: #fff;
}

.custom-scrollbar::-webkit-scrollbar-thumb:active {
	background: linear-gradient(left, #22ADD4, #1E98BA);
}*/

.custom-scrollbar::-webkit-scrollbar {
	width: 14px;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
	background-clip: content-box;
	border: 4px solid transparent;
	border-radius: 7px;
	box-shadow: inset 0 0 0 10px #d0d0d0;
}
.custom-scrollbar::-webkit-scrollbar-button {
	width: 0;
	height: 0;
	display: none;
}
.custom-scrollbar	::-webkit-scrollbar-corner {
	background-color: transparent;
}

/* -- Loader animation --*/
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
#loader-wrap { position: absolute; background: rgba(255,255,255,0.8); width: 100%; height: 100%; top: 0; left: 0; display: none; align-items: center; justify-content: center; z-index: 999; }
@supports (-webkit-appearance:none) { #loader-wrap { position: fixed; } }
_:-ms-input-placeholder, :root #loader-wrap { position: fixed; }
#loader { display: block; width: 60px; height: 60px; -moz-box-sizing: border-box; box-sizing: border-box; border-radius: 30px; border: solid 8px rgba(0, 0, 0, 0.2); border-top-color: #000; margin: 0 auto; -webkit-animation: spin 1s infinite linear; }
#loader-wrap p { margin: 0; width: 100%; position: absolute; top: calc(50% + 2.5em); left: 0; text-align: center; font-size: 200%; font-weight: 300; color: #404f66; }

/* -- Highlight animation --*/
@-webkit-keyframes flash-highlight {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f1fbec; }
	100% { background-color: #fff; }
}
@-moz-keyframes flash-highlight {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f1fbec; }
	100% { background-color: #fff; }
}
@-o-keyframes flash-highlight {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f1fbec; }
	100% { background-color: #fff; }
}
@keyframes flash-highlight {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f1fbec; }
	100% { background-color: #fff; }
}

/* -- Error animation --*/
@-webkit-keyframes flash-error {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f9e3db; }
	100% { background-color: #fff; }
}
@-moz-keyframes flash-error {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f9e3db; }
	100% { background-color: #fff; }
}
@-o-keyframes flash-error {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f9e3db; }
	100% { background-color: #fff; }
}
@keyframes flash-error {
	0%	 { background-color: #fff; }
	20%	{ background-color: #f9e3db; }
	100% { background-color: #fff; }
}

@-webkit-keyframes flash-in {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

@keyframes flash-in {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

.flash-in { -webkit-animation: flash-in 750ms; -moz-animation: flash-in 750ms; -o-animation: flash-in 750ms; animation: flash-in 750ms; }

@media (max-width: 1099px) {
	h5 { font-size: 100%; }
}

@media (max-width: 879px) {

}

@media (max-width: 919px) {

}

@media (max-width: 1024px) {
	.ui-recommended-products ul.recommended-products-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 1em !important; padding: 1em 1.25em !important; }
}

@media (max-width: 840px) {
	.help-video { margin-right: 0; }

	.table-wrap tbody td { vertical-align: top; }
	.table-wrap .action-list li { display: block; text-align: left; margin: 0; }
}

@media (max-width: 768px) {
	.ui-recommended-products ul.recommended-products-grid { grid-template-columns: 1fr !important; gap: 0.75em !important; padding: 0.75em 1em !important; }
}

@media (max-width: 649px) {
	#menu-main li { margin: 0 0.5em 0 0; }
	.box.padding-0.box-tabbed .tabs { margin-top: -3.4em; }
	.box.box-tabbed.box-invisible .tabs { margin: 0 0 -0.1em 0; }
	.box.box-tabbed .tabs { margin: -5.4em 0 2em -2.05em; width: calc(100% + 4em); }
	.box.box-tabbed .tabs li { padding-left: 1em; padding-right: 1em; font-size: 120%; }
	#hero li div { padding-left: 1em; padding-right: 1em; }
}

@media (max-width: 693px) {
	#menu-main a { font-size: 100%; }
	a#menu-main-item-support { display: none; }
}

@media (max-width: 619px) {
	.ui-respond-hide-sm { display: none; }
	.root-app .header h1 { display: none; }
}

@media (max-width: 579px) {
	.header h1 { width: 47px; padding-top: 15px; }
	.header h1 a { width: 47px; height: 40px; background-size: cover; }
	.header .menu-main-wrap { width: calc(100% - 8em - 28px); }

	.box.box-tabbed .tabs li { padding-left: 0.5em; padding-right: 0.5em; font-size: 120%; }

	#menu-main a span { display: none; }
	#menu-main li ul li span { display: inline-block; }
	#menu-main a i { margin: 0; }
}

@media (max-width: 469px) {
	.root .box { padding: 1em; }
	.root .padding-full { padding: 1em !important; }
	.root .box.padding { padding-top: 0; }
	.box.box-tabbed .tabs { margin: -4.5em 0 2em -1.09em; }
	h1, h2, h3, h4, h5, h6 { margin: 0.5em 0; }
	.pure-form.pure-form-stacked label span { display: block; }

	.header h1 { display: none; }
	.header .menu-main-wrap { width: calc(100% - 6em); }
	#menu-main { text-align: left; }
}

@media (max-width: 349px) {
	.pure-button:not(.hidden) + .pure-button { margin-left: 0.5em; }
	html body.root .pure-button, html body.root .button-primary, html body.root .button-success, html body.root .button-error, html body.root .button-warning, html body.root .button-secondary { padding-left: 0.4em; padding-right: 0.4em; }
	html body.root .pure-button i.fa, html body.root .button-primary i.fa, html body.root .button-success i.fa, html body.root .button-error i.fa, html body.root .button-warning i.fa, html body.root .button-secondary i.fa,
	html body.root .pure-button i.far, html body.root .button-primary i.far, html body.root .button-success i.far, html body.root .button-error i.far, html body.root .button-warning i.far, html body.root .button-secondary i.far { margin-right: 0.25em; }
	.pure-controls.controls-full { margin: 0; }
}

@media screen and (max-width: 820px) {
		.pure-u-single-1,
		.pure-u-single-1-1,
		.pure-u-single-1-2,
		.pure-u-single-1-3,
		.pure-u-single-2-3,
		.pure-u-single-1-4,
		.pure-u-single-3-4,
		.pure-u-single-1-5,
		.pure-u-single-2-5,
		.pure-u-single-3-5,
		.pure-u-single-4-5,
		.pure-u-single-5-5,
		.pure-u-single-1-6,
		.pure-u-single-5-6,
		.pure-u-single-1-8,
		.pure-u-single-3-8,
		.pure-u-single-5-8,
		.pure-u-single-7-8,
		.pure-u-single-1-12,
		.pure-u-single-5-12,
		.pure-u-single-7-12,
		.pure-u-single-11-12,
		.pure-u-single-1-24,
		.pure-u-single-2-24,
		.pure-u-single-3-24,
		.pure-u-single-4-24,
		.pure-u-single-5-24,
		.pure-u-single-6-24,
		.pure-u-single-7-24,
		.pure-u-single-8-24,
		.pure-u-single-9-24,
		.pure-u-single-10-24,
		.pure-u-single-11-24,
		.pure-u-single-12-24,
		.pure-u-single-13-24,
		.pure-u-single-14-24,
		.pure-u-single-15-24,
		.pure-u-single-16-24,
		.pure-u-single-17-24,
		.pure-u-single-18-24,
		.pure-u-single-19-24,
		.pure-u-single-20-24,
		.pure-u-single-21-24,
		.pure-u-single-22-24,
		.pure-u-single-23-24,
		.pure-u-single-24-24 {
				display: inline-block;
				*display: inline;
				zoom: 1;
				letter-spacing: normal;
				word-spacing: normal;
				vertical-align: top;
				text-rendering: auto;
		}

		.pure-u-single-1-24 {
				width: 4.1667%;
				*width: 4.1357%;
		}

		.pure-u-single-1-12,
		.pure-u-single-2-24 {
				width: 8.3333%;
				*width: 8.3023%;
		}

		.pure-u-single-1-8,
		.pure-u-single-3-24 {
				width: 12.5000%;
				*width: 12.4690%;
		}

		.pure-u-single-1-6,
		.pure-u-single-4-24 {
				width: 16.6667%;
				*width: 16.6357%;
		}

		.pure-u-single-1-5 {
				width: 20%;
				*width: 19.9690%;
		}

		.pure-u-single-5-24 {
				width: 20.8333%;
				*width: 20.8023%;
		}

		.pure-u-single-1-4,
		.pure-u-single-6-24 {
				width: 25%;
				*width: 24.9690%;
		}

		.pure-u-single-7-24 {
				width: 29.1667%;
				*width: 29.1357%;
		}

		.pure-u-single-1-3,
		.pure-u-single-8-24 {
				width: 33.3333%;
				*width: 33.3023%;
		}

		.pure-u-single-3-8,
		.pure-u-single-9-24 {
				width: 37.5000%;
				*width: 37.4690%;
		}

		.pure-u-single-2-5 {
				width: 40%;
				*width: 39.9690%;
		}

		.pure-u-single-5-12,
		.pure-u-single-10-24 {
				width: 41.6667%;
				*width: 41.6357%;
		}

		.pure-u-single-11-24 {
				width: 45.8333%;
				*width: 45.8023%;
		}

		.pure-u-single-1-2,
		.pure-u-single-12-24 {
				width: 50%;
				*width: 49.9690%;
		}

		.pure-u-single-13-24 {
				width: 54.1667%;
				*width: 54.1357%;
		}

		.pure-u-single-7-12,
		.pure-u-single-14-24 {
				width: 58.3333%;
				*width: 58.3023%;
		}

		.pure-u-single-3-5 {
				width: 60%;
				*width: 59.9690%;
		}

		.pure-u-single-5-8,
		.pure-u-single-15-24 {
				width: 62.5000%;
				*width: 62.4690%;
		}

		.pure-u-single-2-3,
		.pure-u-single-16-24 {
				width: 66.6667%;
				*width: 66.6357%;
		}

		.pure-u-single-17-24 {
				width: 70.8333%;
				*width: 70.8023%;
		}

		.pure-u-single-3-4,
		.pure-u-single-18-24 {
				width: 75%;
				*width: 74.9690%;
		}

		.pure-u-single-19-24 {
				width: 79.1667%;
				*width: 79.1357%;
		}

		.pure-u-single-4-5 {
				width: 80%;
				*width: 79.9690%;
		}

		.pure-u-single-5-6,
		.pure-u-single-20-24 {
				width: 83.3333%;
				*width: 83.3023%;
		}

		.pure-u-single-7-8,
		.pure-u-single-21-24 {
				width: 87.5000%;
				*width: 87.4690%;
		}

		.pure-u-single-11-12,
		.pure-u-single-22-24 {
				width: 91.6667%;
				*width: 91.6357%;
		}

		.pure-u-single-23-24 {
				width: 95.8333%;
				*width: 95.8023%;
		}

		.pure-u-single-1,
		.pure-u-single-1-1,
		.pure-u-single-5-5,
		.pure-u-single-24-24 {
				width: 100%;
		}
}

.product-requires-thrivepay-tooltip, .product-requires-thrive-pay-and-proplus-toolip {
	position: relative;
}

.product-requires-thrivepay-tooltip::after {
	content: "This feature requires the latest version of Stripe.";
	position: absolute;
	bottom: 125%;
	left: 50%;
	transform: translateX(-50%);
	background-color: #333333;
	color: white;
	padding: 5px 10px;
	border-radius: 4px;
	font-size: 14px;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}
.product-requires-thrive-pay-and-proplus-toolip::after {
	content: "This feature requires the latest version of Stripe and a Pro+ licence.";
	position: absolute;
	bottom: 125%;
	left: 50%;
	transform: translateX(-50%);
	background-color: #333333;
	color: white;
	padding: 5px 10px;
	border-radius: 4px;
	font-size: 14px;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}
#show-qr-code-button {
	pointer-events: unset;
	cursor: pointer;
}
.product-requires-thrivepay-tooltip:hover::after, .product-requires-thrive-pay-and-proplus-toolip::hover::after {
	opacity: 1;
	visibility: visible;
}

/* -- Dashboard Reskin Css -- */
.mark-selector::before{
	content: '●';
	color: #02CBC9;
	font-size: 1.5em;
	margin: 0 0.3em 0 0;
}

.mark-selector.darker::before{
	color: #0B4F6C;
}
.mark-selector.none::before{
	content: '|';
	color: #fff;
	margin: 0 -0.5em;
}

.mark-selector.gray::before{
	color: #D7DAE0;
}
.mark-selector.green-1::before{
	color: #A6E7E8;
}
.mark-selector.green-2::before{
	color: #7ADBDC;
}
.mark-selector.green-3::before{
	color: #05A2AA;
}
.mark-selector.green-4::before{
	color: #007B8B;
}
.mark-selector.green-5::before{
	color: #0B4F6C;
}

.tc-dropdown:not(.date_range){
	padding: 0.2em 1em !important;
	margin: 0.25em 0;
	position:relative;
}
.tc-dropdown select{
	font-weight:600 !important;
	padding-left: 5px !important;
}
.tc-box{
	margin: 1em 0;
	padding: 0.2em 1em;
	background: #fff;
	border-radius: 10px;        
}

.pure-g > div:first-child .tc-box {
    margin-right: 0.5em;
}
.pure-g > div:last-child .tc-box {
    margin-left: 0.5em;
}
.pure-g > div:not(:first-child):not(:last-child) .tc-box {
    margin: 1em 0.5em;
}

.tc-tabs{
	background-color:#FFF;
	border: 1px solid #E3E6EB;
	border-radius: 10px;
}
.tc-tabs-list{
	background-color:#F5F6F9;
	padding: 0.5em;
	margin-bottom: 0.5em;
	border-radius: 10px;
}
.tc-tabs-list .pure-u-1-5 {
    position: relative;
}

.tc-tabs-list a {
    padding: 0.5em 1em;
    margin: 0.5em;
    border-radius: 10px;
}

.tc-tabs-list .pure-u-1-5:not(:first-child)::before {
    content: '';
    position: absolute;
    top: 10%;
    left: 0;
    height: 80%;
    width: 1px;
    background-color: #E3E6EB; 
}
.tc-tabs-list a.active {
    background-color: #fff;
}
.tc-tabs-list p{
	margin: 0.5em 0 0.2em;
}
.tc-tabs-list h2{
	letter-spacing: normal;margin: 0 0 0.5em;
}
.tc-tabs canvas{
	background-color:#F5F6F9;
	border-radius: 0 0 10px 10px;
}
.tc-flex{
	display:flex;
}
.tc-between{
	justify-content: space-between;
}
.tc-items-center{
	align-items:center;
}

.tc-items-baseline{
	align-items: baseline;
}

.tc-justify-center{
	justify-content: center;
}
.tc-flex.tc-label p{
	margin: 0;
}
.tc-flex.tc-label{
	gap:1em;
	align-items: center;
}

.tc-wrap{
	flex-wrap: wrap;
}

.tc-justify-c-end{
	justify-content: flex-end;
}

.tc-chart-label-color{
	width: 8px;
	height: 8px;
	display: inline-block;
	margin-right: 5px;
	border-width: 2px;
	border-radius: 50%;
}
.tc-custom-tooltip-inner{
	width: 250px;
}

.tc-custom-tooltip-inner .tooltip-row{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0.5em;
}

.tc-box h2, .graph-top h2{
	letter-spacing: normal;
}
.ui-dashboard-head{
	display:flex; justify-content:space-between; align-items: baseline
}
.compare-btn-wrap{
	justify-content: end; align-items: center; display: flex;
}
.hr-small{
	margin: 1em 0;
}
.graph-content{
	padding: 1em;
	position: relative;
	background-color:#fff;
	max-height: 366px;
	overflow: hidden;
	border-radius: 0 0 10px 10px;
}
.graph-content canvas{
	height: 342px !important;
	background:#fff; 
	width:100%
}
.tc-tabs .ui-statistics-graph-wrapper{
	height: 100% !important;
	padding-bottom: 1em;
}
.vis-hidden{
	visibility: hidden;
}
.graph-top{
	background-color: #fff;
	border-bottom: 1px solid #E3E6EB;
	padding: 1em 2em;
	border-radius: 10px 10px 0 0;
}
.graph-top h2{
	margin: 0 !important;
}
.header-light{
	background-color: #fff !important;
	line-height: 64px; 
	min-height: 64px;
}
.header.header-light h1 a { 
	width: 150px; 
	height: 77px; 
	text-decoration: none;
	display: block;
	margin: 0;    
	background:  url(../../../../../static/images/logo-dark.png) no-repeat left center;
	outline: none;
	background-size: contain;
	position: relative; 
	transform: scale(0.98);
	will-change: transform; 
	transform-style: preserve-3d;
	transition: transform 150ms;
}


.header-light #menu-main a i{
	color: rgba(95, 105, 125, 1); 
}
.header-light #menu-main a{
	padding: 0 0.8em;
	line-height: 62px;
}
.header-light #menu-main a i,
.header-dark #menu-main a i {
	display: inline-block;
	width: 16px;
	height: 16px;
	vertical-align: middle;
}
.header-light #menu-main a i:before:not(#menu-main-item-transactions i, #menu-main-item-learn i) {
	content: '' !important; 
    display: inline-block;
    width: 100%;
    height: 100%;
	background-size: contain; 
	mask-size: contain; 
}

.header-light #menu-main-item-dash i:before {
    -webkit-mask: url('../../assets/space_dashboard.svg') no-repeat center;
    mask: url('../../assets/space_dashboard.svg') no-repeat center;
	mask-size: contain;
	background-color: rgba(95, 105, 125, 1);    
}

.header-light #menu-main-item-prodreports i.tc:before {
	content: "\f0db";
    -webkit-mask: url('../../assets/leaderboard.svg') no-repeat center;
    mask: url('../../assets/leaderboard.svg') no-repeat center;
	mask-size: contain;
	background-color: rgba(95, 105, 125, 1);    
}

.header-dark #menu-main-item-prodreports i.tc:before {
    content: "\f0db";
    -webkit-mask: url('../../assets/leaderboard.svg') no-repeat center;
    mask: url('../../assets/leaderboard.svg') no-repeat center;
    mask-size: contain;
    background-color: #ffffff;
}

.header-light #menu-main-item-products i:before {
    -webkit-mask: url('../../assets/lists.svg') no-repeat center;
    mask: url('../../assets/lists.svg') no-repeat center; 
	mask-size: contain;
	background-color: rgba(95, 105, 125, 1);
}
.header-light #menu-main-item-affiliates i:before {
    -webkit-mask: url('../../assets/partner_exchange.svg') no-repeat center;
    mask: url('../../assets/partner_exchange.svg') no-repeat center;
	mask-size: contain;
	background-color: rgba(95, 105, 125, 1);
}
.header-light #menu-main li.pure-menu-item a:hover i, .header-light #menu-main li.pure-menu-item.active a i { 
	color: #000;
}
.header-light #menu-main li.pure-menu-item a:hover i:before, .header-light #menu-main .active a i:before { 
	 filter: saturate(100%)  brightness(0);
}
.header-light #menu-main li.pure-menu-item{
	line-height: 62px;
	border-bottom: 3px solid transparent;
	transition: border-bottom 0.3s ease;
}
.header-light #menu-main li.pure-menu-item a:hover, .header-light #menu-main li.pure-menu-item.active a{
	background-color: #fff;
}
.header-light #menu-main li.pure-menu-item:hover, .header-light #menu-main li.pure-menu-item.active{
	border-bottom: 3px solid #02CBC9;
}

.header-light ul.menu-main-sub.active li a,
.header-dark ul.menu-main-sub.active li a {
	background-color: #fff !important;
	opacity: 1 !important;
	line-height: normal !important;
	padding: 0.75em 1em !important;
	font-weight: normal;
	vertical-align: middle;
}
.header-light ul.menu-main-sub.active li a span,
.header-dark ul.menu-main-sub.active li a span {
	opacity: 1 !important;
	color: #5b5b5b !important;
	position: relative !important;
	bottom: 0px !important;
	font-size: 100% !important;
	transform: none !important;
	font-weight: normal;
	vertical-align: middle;
}
.header-light ul.menu-main-sub.active li a:hover,
.header-dark ul.menu-main-sub.active li a:hover {
	background-color: #f5f6f9 !important;
}

.header-light .user-box .user-box-avatar-link:hover, #user-box.active {    
	background-color: #fff;
}

.header-light .user-box .user-box-avatar-link i {
	color: #5F697D;
}
.header-light .user-box .user-box-avatar-link:hover i, #user-box.active i {
    color: #000;
}

#menu-main-wrapper-prodreports ul.inaccessible:before {
	border-bottom-color: #F5F6F9;
}

#menu-main-wrapper-prodreports ul.inaccessible li a {
	background-color: #F5F6F9 !important;
}

#menu-main-wrapper-prodreports ul.inaccessible .locked-hint {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.text-align-end{
	text-align: end;
	margin: 0 1%;
}
.tc-switch-btn{
	border-color:#5F697D !important; color:#5F697D !important;
}

.date_range.tc-dropdown{
	background: #fff;
    border: 1px solid #edeff2;
    display: flex;
    align-items: center;
	justify-content: space-between;
    width: 100%;
	height: 28px;
    border-radius: 0.25em;
    padding: 0.2em 1em;
    box-sizing: border-box;
    position: relative;
    transition: border-color 150ms;
}

.date_range.tc-dropdown input{
	color: #747e87;
    border: none;
    height: auto;
    font-weight: bold;
    display: inline-block;
    font-size: 100%;
    line-height: normal;
    margin: 0;
    padding: 0 1.75em 0 0;
}
.date_range.tc-dropdown .date_range_clear{
	font-size: 1.4em;
    position: relative;
    top: 0.2em;
    cursor: pointer;
    margin-left: 0.5em;
	align-self: baseline;
}

.product-wrapper{
	display: flex;
	flex-wrap: wrap;
	gap:10px;
	margin-bottom: 10px;
}

.tc-gap-10{
	gap: 10px;
}

.tc-align-baseline{
	align-items: baseline;
}

.tc-badge{
	background-color: #fff;
	color: #5F697D;
	border-radius: 0.5em;
	padding: 0.2em 0.5em;
	font-size: 100%;
	border: solid 1px #D7DAE0;
}

.ajs-cancel.tc-switch-btn{
	font-weight: 600 !important;
}

.filter-modal .tc-badge{
	background-color: #F5F6F9;
}
.filter-modal .tc-badge:hover{
	background-color: #FFF;
	cursor: pointer;
}

.icon-filter {
    display: inline-block;
    width: 1em; 
    height: 1em; 
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    background-image: url('../../assets/filter_list.svg');
}
.icon-no-data {
    display: inline-block;
    width: 2.5em; 
    height: 2.5em; 
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    background-image: url('../../assets/package.svg');
}
.icon-coupon {
    display: inline-block;
    width: 3em; 
    height: 3em; 
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    background-image: url('../../assets/coupon.svg');
}

.tc-table-wrap{
	background-color: #fff;
	border-radius: 10px;
	border: 1px solid #E3E6EB;
	padding: 1em 1.5em;
}

.tc-nowrap{
	white-space: nowrap;
}

.tc-table thead th{
	text-transform: capitalize;
}

.tc-table tbody td{
	vertical-align: baseline;
}
.tc-table tbody{
	border-top: 1px solid #EBEDF2;
	border-bottom: 1px solid #EBEDF2;
}

.tc-table tbody tr{
	border-top: 1px solid #EBEDF2;
	border-bottom: 1px solid #EBEDF2;
	background: #fff !important;
}

.tc-table tbody tr:hover{
	background: #F5F6F9 !important;
}

.tc-table-section{
	width: 100%;
	margin-top: 2em;
}

.tc-table-no-data{
	text-align: center;
	padding: 1em;
}

.tc-table thead th{
	font-weight: normal !important;
	color: #5F697D !important;
}
.tc-table tbody td{
	color:#161825 !important;
}

.tc-table thead th .tc-soon{
	opacity: 0.5;
}
.tc-table tbody td.tc-soon{
	opacity: 0.3;
}

.th-tooltip, .tc-tooltip {
    position: relative;
}

/* Tooltip */
.th-tooltip::after, .tc-tooltip::after {
    content: attr(data-hover);
    position: absolute;
    top: 100%; 
    left: 12px;
    background-color: #333;
    color: #fff;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 100;
    margin-top: 0px;
}

.tc-tooltip::after{
	left: 0;
    transform: translateX(-50%); 
	letter-spacing: normal;
	min-width: 180px;
	text-align: center;
	white-space: normal;
	max-width: 200px;
}
.tc-tooltip-center::after{
	left: 100px !important;
}

/* Caret */
.th-tooltip::before, .tc-tooltip::before {
    content: '';
    position: absolute;
    top: 100%; 
    left: 30%;
    transform: translateX(-50%) translateY(-100%); 
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent #333 transparent; 
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.tc-tooltip::before {
	left: 50%;
}

.th-tooltip:hover::after,
.th-tooltip:hover::before,
.tc-tooltip:hover::after,
.tc-tooltip:hover::before {
    opacity: 1;
    visibility: visible;
}

@media screen and (max-width: 768px) {
	.tc-tabs-list{
		flex-wrap: nowrap;
		overflow-x: auto;
	}
	.tc-tabs-list .pure-u-1-5{
		min-width: 130px !important;
	}
	.tc-table-wrap {
		padding: 0.75em;
	}
	.tc-table-scroll-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.filter-list-wrapper > .tc-flex {
		flex-wrap: wrap;
	}
}

/* ============================================================
   "Customize Display" modal — visuals only.
   Behaviour (Reset/Cancel/Save handlers, drag-and-drop ordering,
   preventDisableLastCheckbox) is unchanged.
   ============================================================ */
.tc-modal-dashboard-customise.ajs-dialog {
	max-width: 620px !important;
	width: 620px !important;
	padding: 24px !important;
	background: #fff !important;
	border: 1px solid #e8ecef !important;
	border-radius: 12px !important;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Header — plain title, no decorative icon, no uppercase, no border */
.tc-modal-dashboard-customise .ajs-header {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-transform: none !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	line-height: 28px !important;
	color: #364152 !important;
	letter-spacing: 0 !important;
}

.tc-modal-dashboard-customise .ajs-header > svg {
	display: none;
}

/* Body — strip default alertify padding */
.tc-modal-dashboard-customise .ajs-body,
.tc-modal-dashboard-customise .ajs-body .ajs-content {
	padding: 0;
	margin: 0;
}

.tc-modal-dashboard-customise .modal-content {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Subtitle — flatten the legacy info-box into plain descriptive text */
.tc-modal-dashboard-customise .customise-info-box {
	display: block;
	background: transparent;
	border: 0;
	padding: 0;
	margin: -16px 0 0 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #8493a8;
}

.tc-modal-dashboard-customise .customise-info-box .icon {
	display: none;
}

.tc-modal-dashboard-customise .customise-info-box .text {
	display: inline;
	margin: 0;
	color: inherit;
	font: inherit;
}

/* Block list (sortable rows) */
.tc-modal-dashboard-customise .block-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.tc-modal-dashboard-customise .block-list ul,
.tc-modal-dashboard-customise #sortable-blocks {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}

.tc-modal-dashboard-customise .block-list li.sortable-item {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid #e8ecef;
	background: transparent;
	transition: background-color 150ms;
}

.tc-modal-dashboard-customise .block-list li.sortable-item:last-child {
	border-bottom: 0;
}

.tc-modal-dashboard-customise .block-list li.sortable-item:hover {
	background-color: transparent;
}

.tc-modal-dashboard-customise .ui-checkbox-wrap {
	width: 100%;
}

/* Row: checkbox — label — drag handle, on one 36px line */
.tc-modal-dashboard-customise li.sortable-item .ui-checkbox {
	display: flex;
	align-items: center;
	height: 36px;
	padding: 0 8px;
	width: 100%;
	position: relative;
	box-sizing: border-box;
}

/* Suppress the legacy `.checkbox label::before/::after` decorations
   from styles/layout/main.css:912-942. They render a second box and
   FA check on top of our native styled input, producing two visible
   checkboxes per row. */
.tc-modal-dashboard-customise .ui-checkbox label::before,
.tc-modal-dashboard-customise .ui-checkbox label::after,
.tc-modal-dashboard-customise .checkbox label::before,
.tc-modal-dashboard-customise .checkbox label::after {
	content: none !important;
	display: none !important;
}

/* Native checkbox: 20×20, teal when checked. */
.tc-modal-dashboard-customise .ui-checkbox input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	margin: 0 8px 0 0;
	padding: 0;
	border: 1px solid #d1d7de;
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	flex-shrink: 0;
	position: relative;
	display: inline-block;
	box-sizing: border-box;
	transition: background-color 120ms, border-color 120ms;
}

.tc-modal-dashboard-customise .ui-checkbox input[type="checkbox"]:checked {
	background: #006b70;
	border-color: #006b70;
}

.tc-modal-dashboard-customise .ui-checkbox input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	inset: 4px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'><path d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>") no-repeat center / contain;
}

.tc-modal-dashboard-customise .ui-checkbox input[type="checkbox"]:disabled,
.tc-modal-dashboard-customise .ui-checkbox.disabled input[type="checkbox"] {
	cursor: not-allowed;
	opacity: 0.6;
}

.tc-modal-dashboard-customise li.sortable-item .ui-checkbox label {
	flex: 1 0 0;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #2a3648;
	cursor: pointer;
}

.tc-modal-dashboard-customise .ui-checkbox .drag-handle {
	flex: 0 0 auto;
	float: none;
	width: 28px;
	height: 28px;
	margin-left: 8px;
	border-radius: 6px;
	cursor: grab;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #8493a8;
	font-size: 14px;
}

.tc-modal-dashboard-customise .ui-checkbox .drag-handle:hover {
	background: #f6f8f9;
	color: #364152;
}

.tc-modal-dashboard-customise .sortable-item.dragging {
	cursor: grabbing;
	background: #f6f8f9;
	opacity: 0.85;
	border-bottom-color: #006b70;
}

/* "Hide additional graph info" — checkbox + label + helping text below */
.tc-modal-dashboard-customise .ui-checkbox-wrap.fixed-option {
	margin: 0;
	padding: 0;
}

.tc-modal-dashboard-customise .ui-checkbox-wrap.fixed-option .ui-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding: 0;
	height: auto;
}

.tc-modal-dashboard-customise .ui-checkbox-wrap.fixed-option input[type="checkbox"] {
	margin: 4px 0 0 0;
}

.tc-modal-dashboard-customise .ui-checkbox-wrap.fixed-option label {
	flex: 1 0 0;
	margin: 0 !important;
	padding: 4px 0 0 0 !important;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #364152;
	cursor: pointer;
}

.tc-modal-dashboard-customise .ui-checkbox-wrap.fixed-option label .icon.tc-tooltip {
	color: #8493a8;
	margin-left: 4px;
}

/* Footer — Reset on the left, Cancel + Save on the right */
.tc-modal-dashboard-customise .ajs-footer {
	padding: 0 !important;
	border: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.tc-modal-dashboard-customise .ajs-footer .ajs-buttons {
	margin: 0;
	padding: 0;
	display: flex;
	gap: 8px;
}

.tc-modal-dashboard-customise .ajs-footer .ajs-auxiliary,
.tc-modal-dashboard-customise .ajs-footer .ajs-primary {
	flex: 0 0 auto;
}

.tc-modal-dashboard-customise .ajs-footer button.ajs-button {
	appearance: none;
	-webkit-appearance: none;
	background: #fff !important;
	border: 1px solid #e8ecef !important;
	border-radius: 8px !important;
	padding: 8px 18px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 20px !important;
	color: #364152 !important;
	cursor: pointer;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
	transition: background-color 150ms, border-color 150ms, color 150ms;
}

.tc-modal-dashboard-customise .ajs-footer button.ajs-button:hover {
	background: #f6f8f9 !important;
}

.tc-modal-dashboard-customise .ajs-footer button.ajs-button.ajs-ok {
	background: #006b70 !important;
	border-color: #006b70 !important;
	color: #fff !important;
}

.tc-modal-dashboard-customise .ajs-footer button.ajs-button.ajs-ok:hover {
	background: #00585c !important;
	border-color: #00585c !important;
	color: #fff !important;
}

/* Disabled-checkbox tooltip ("At least one box has to be checked") */
.tc-modal-dashboard-customise .ui-checkbox.disabled {
	cursor: not-allowed;
}

.tc-modal-dashboard-customise .ui-checkbox.disabled label {
	cursor: not-allowed;
}

.tc-modal-dashboard-customise .ui-checkbox.disabled:hover .tc-checkbox-tooltip {
	display: block;
}

.tc-checkbox-tooltip {
	display: none;
	position: absolute;
	bottom: calc(100% + 10px);
	left: 10px;
	transform: translateX(-50%);
	background: #161825;
	color: white;
	padding: 8px 12px;
	border-radius: 4px;
	font-size: 13px;
	white-space: nowrap;
	z-index: 1000;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.tc-checkbox-tooltip::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 8px;
	height: 8px;
	background: #161825;
}

.ui-dashboard {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.tc-stats-section, .tc-w-100 {
	width: 100%;
}
.tc-w-80 {
	width: 80%;
}

.tc-modal-generic .ajs-header{
	display: flex;
	align-items: center;
	text-transform: uppercase;
	color: #5F697D !important;
	border-bottom : 1px solid #EBEDF2;
	padding-bottom: 1em !important;
}
.tc-modal-generic .ajs-header p{
	font-weight: 600;
	font-size: 0.7em;
	letter-spacing: normal;
	line-height: 0;
	margin: 0;
}

.tc-modal-generic h2{
	margin: 0.5em 0;
	font-size: 1.2em;
	font-weight: 600;
}
.tc-modal-generic label{
	font-weight: normal !important;
	color: #5F697D;
}

.tc-pointer-none{
    pointer-events:none;
}

/* -- Banners -- */
.banner {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.325em;
	height: auto;
	opacity: 1;
	margin: 0;
	transition: all 0.3s ease;
}

.banner.banner-with-button {
	padding: 0.75em 0.325em;
}

.banner.banner-removing {
	height: 0 !important;
	opacity: 0;
	padding: 0;
	margin: 0;
}

.banner-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 64em;
	width: 90%;
	margin: 0 auto;
}

.banner.banner-with-button .banner-inner {
	justify-content: space-between;
}

.banner p {
	color: white;
	font-size: 88%;
	font-weight: 600;
	padding: 0;
	margin: 0;
}

.banner.banner-with-button p {
	margin: 0;
	flex: 1;
}

.banner a {
	color: white;
	text-decoration: none;
}

.banner .tc-banner-button {
	margin-left: 1em;
	white-space: nowrap;
	height: 35px;
	min-height: 35px;
	border-radius: 3px;
	padding: 9px;
}

.banner.tc-banner-teal .tc-banner-button {
	background-color: #3B4752;
}

.banner.tc-banner-teal .tc-banner-button:hover {
	background-color: #475562;
}

.banner-close {
	cursor: pointer;
	color: white;
	margin-left: 1em;
	opacity: 0.8;
	transition: opacity 0.2s ease;
}

.banner-close:hover {
	opacity: 1;
}

@media (max-width: 767px) {
	.banner {
		padding: 12px 0;
		justify-content: stretch;
	}
	.banner-inner {
		max-width: none;
		width: 100%;
		padding: 0 16px;
		justify-content: space-between;
		gap: 12px;
	}
	/* Whatever holds the text (either a wrapping <a> or the <p> itself when
	   there's no link) is the growing flex item. The close X stays at its
	   natural size, pinned to the right. */
	.banner-inner > *:not(.banner-close) {
		flex: 1 1 0;
		min-width: 0;
	}
	.banner-inner > a {
		display: block;
		width: 100%;
	}
	.banner p {
		font-size: 14px;
		line-height: 1.4;
		text-align: left;
	}
	.banner-close {
		flex: 0 0 auto;
		align-self: flex-start;
		margin: 2px 0 0 0;
		min-width: 24px;
		min-height: 24px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

.tc-report-tabs {
	margin-top: 20px;
}

.tc-report-tab-list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-bottom: 2px solid #E3E6EB;
}

.tc-report-tab-list li {
	display: inline-block;
	margin-bottom: -2px;
}

/* Legacy tab styling — scoped away from prodreports, which uses the new
   Figma reskin styles below. */
body:not(.prodreports) .tc-report-tab-list li a {
	display: block;
	padding: 10px 15px;
	text-decoration: none;
	color: #666;
	border-bottom: 2px solid transparent;
	background: none;
}

body:not(.prodreports) .tc-report-tab-list li.active a {
	color: #333;
	border-bottom: 2px solid #02CBC9;
	font-weight: 600;
	background: none;
}

.tc-report-tab-content {
	padding: 20px 0;
	background: none;
}

.tc-report-tab-pane {
	display: none;
	background: none;
}

.tc-report-tab-pane.active {
	display: block;
	background: none;
}

/* Remove button backgrounds */
.tc-report-tab-content button,
.tc-report-tab-pane button {
	background: none;
}

.report-dropdown {
	align-content: end;
}

.tc-box .tc-badge {
	background-color: #F5F6F9;
	color: #161825;
}


div.nice-select .current:has(+ .nice-select-dropdown .nice-select-search-box):before {
	content: "\f002";
	font-family: "Font Awesome 5 Pro";
	margin-right: .5em;
}

.clear-section {
	font-size: 14px;
	color: #9FA5B1;
	cursor: pointer;
	font-weight: normal;
	margin-left: 8px;
}

.clear-section.has-items {
	color: #02CBC9;
}

.clear-section:before {
	content: '|';
	margin-right: 8px;
	color: #EBEDF2;
	cursor: default;
}

.clear-section:hover.has-items {
	opacity: 0.8;
}

.button.disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

#stats-tag+.nice-select.disabled,
#stats-tag-parameter+.nice-select.disabled {
	background-color: #F5F6F9;
}

#tpl-product-filter .clear-tag {
	margin-left: 0;
}
 
#source.locked .source-wrap {
	opacity: 0.5;
}

#source.locked .source-wrap > * {
	pointer-events: none;
}


/* -- Funnels Report -- */
.table-wrap-report .tc-pagination {
	margin-top: 1rem;
}

.table-wrap-report .tc-pagination button:disabled {
	color: rgba(159, 165, 177, 1);
	cursor: not-allowed;
}

.table-wrap-report .tc-pagination .page-number {
	padding: 0.7em 1.1em;
	border-radius: 6px;
}

.table-wrap-report .tc-pagination .page-number:hover {
	background-color: rgba(255, 255, 255, 1);
	color: rgba(22, 24, 37, 1);
}

.table-wrap-report .tc-pagination .page-number:not(:last-child):after {
	content: "";
	left: 1.8em;
	position: relative;
	border-right: 1px rgba(215, 218, 224, 1) solid;
}

.table-wrap-report .tc-pagination .page-number.page-number-active {
	background-color: #fff;
	color: rgba(22, 24, 37, 1);
}

.table-wrap-report .tc-pagination .page-ellipsis {
	padding: 0 5px;
	line-height: 32px;
}

.table-wrap-report .tc-justify-right {
	justify-content: right;
}

.table-wrap-report .icon-no-data {
	width: 4.5em;
	height: 4.5em;
	background-image: url(/admin/themes/1.0/assets/select_window.svg);
}

.table-wrap-report .tc-page-numbers {
	display: flex;
	align-items: center;
	gap: 1em;
	border: 1px rgba(215, 218, 224, 1) solid;
	border-radius: 8px;
	padding: 0.3em;
}

.table-wrap-report button.page-number {
	background: unset;
	border: unset;
	color: rgba(95, 105, 125, 1);
}

.table-wrap-report .tc-pagination .page-number.page-number-active {
	background-color: #fff;
	color: rgba(22, 24, 37, 1);
}

.table-wrap-report {
	background: unset;
}

.table-wrap-report table {
	border-collapse: separate;
	border-spacing: 0 1em;
}

.table-wrap-report td {
	border: unset !important;
}

.table-wrap-report td:first-child {
	border-left-style: solid;
	border-top-left-radius: 10px;
	border-bottom-left-radius: 10px;
	padding-left: 2em;
	color: rgba(95, 105, 125, 1) !important;
}

.table-wrap-report td:last-child {
	border-right-style: solid;
	border-bottom-right-radius: 10px;
	border-top-right-radius: 10px;
	padding-right: 2em;
}

.table-wrap-report thead th:first-child {
	padding-left: 2em;
}

.table-wrap-report thead th:last-child {
	padding-right: 2em;
}

.table-wrap-report tbody td {
	padding: 1.5em 1em;
}

.table-wrap-report tbody tr:hover {
	box-shadow: 0px 16px 40px 0px rgba(235, 237, 242, 1);
	background-color: rgba(255, 255, 255, 1) !important;
	cursor: pointer;
	z-index: 2;
	position: relative;
}

.table-wrap-report button.next-page, button.prev-page {
	background: none;
	color: rgba(95, 105, 125, 1);
	border: unset;
}

.tc-table-scroll-wrap {
	overflow-x: auto;
	overflow-y: hidden;
}

.tc-table-scroll-wrap .tc-table {
	width: max-content;
	min-width: 100%;
}

#cohort-table-no-data .icon-no-data {
	background-image: url(/admin/themes/1.0/assets/bar_chart_4_bars.svg);
}


#subs-management-tabs .box.box-tabbed { margin-top: 6.6em; }
#subs-management-tabs .box.box-tabbed .subtabs { list-style: none; padding: 0; margin: -5.49em 0 2em 0em; }
#subs-management-tabs .box.box-tabbed .subtabs li { cursor: pointer; padding: 0.7em 2.14em; font-size: 100%; display: inline-block; border-top-left-radius: 0.25em; border-top-right-radius: 0.25em; border-left: 1px solid rgba(0, 0, 0, 0); border-right: 1px solid rgba(0, 0, 0, 0); color: #8c8c8c; text-align: center; }
#subs-management-tabs .box.box-tabbed .subtabs li.active { background: #fff; border: 1px solid #e8e8e8; border-bottom-color: #fff; cursor: default; color: #616161; }
#subs-management-tabs .content-list { margin-top: -15px; }

.select-product-line-margin { margin: 5px 0 5px; }
.product-listing-widget { height: 300px; overflow-y: scroll; }

#widget-products_to_cancel-container .product-listing-widget-card:nth-child(odd),
#widget-upsells_to_cancel-container .product-listing-widget-card:nth-child(odd),
#widget-downsells_to_cancel-container .product-listing-widget-card:nth-child(odd) {
	background-color: #fafafa;
}

.selector-footer-text {
	color: #919191;
}

.selector-footer-text span {
	font-weight: bold;
}

.product-listing-widget-card.product-embed-wrapper .ribbon { left: unset; top:0.5em;}
.product-listing-widget-inner-card { display: flex; flex-direction: row; justify-content: space-between; gap: 10px; }

.disabled {pointer-events: none;}

/* -- Coupon Report -- */
#top-coupons .icon-no-data, #most-sold-products .icon-no-data {
	width: 4.5em;
	height: 4.5em;
	background-image: url(/admin/themes/1.0/assets/coupon.svg);
}
.prodreports h2 {
	font-weight: 600;
}
.tc-breakdown-dot {
	border-width: 2px;
	border-radius: 50%;
	width: 10px;
	height: 10px;
	margin-right: 5px;
	display: inline-block
}

.tc-breakdown-dot.existing-subscribers {
	background-color: rgb(0, 75, 107);
}

.tc-breakdown-dot.new-subscriptions {
	background-color: rgba(2, 203, 201, 1);
}

.tc-breakdown-dot.trial-subscriptions {
	background-color: rgba(166, 231, 232, 1);
}

.tc-breakdown-dot.paused-subscriptions {
	background-color: rgba(235, 237, 242, 1);
}


.tc-soon.pure-u-1, .tc-tooltip{
    position: relative; 
}

.tc-soon .pure-g{
	opacity: 0.3;
}

.tc-soon.pure-u-1[data-msg]::after {
    content: attr(data-msg);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    background-color: #333;
    color: #fff;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 100;
    text-align: center;
    width: max-content;
    max-width: 90%;
	opacity: 1 !important; 
}
.disabledQr {
	position: relative;
	opacity: 0.8;
}

.disabledQr::after {
	content: "Unlock this feature with your Pro+ upgrade and our latest compatible version of Stripe.";
	position: absolute;
	bottom: 100%;
	left: 60%;
	transform: translateX(-50%);
	background-color: #333333;
	color: white;
	padding: 5px 10px;
	border-radius: 4px;
	font-size: 14px;
	white-space: nowrap;
	opacity: 1;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}

.disabledQr:hover::after {
	opacity: 1;
	visibility: visible;
}

.pure-controls-bottom {
	clear: both;
	margin-top: 1em !important;
}

.fixed-option {
    margin-top: 2em;
    padding-left: 5px;
}

.gray.disabled, .force-gray.disabled {
	opacity: 0.9;
    color: #cad2d3;
	pointer-events: none;
}

.force-gray {
	color: #cad2d3 !important;
}

.product-link {
  color: #007bff;  
  text-decoration: underline;
  cursor: pointer; 
}

/* Pro-rata info tag and tooltip styles */
.prorata-info-tag-container {
	margin-left: 8px;
	position: relative;
	display: inline-block;
	vertical-align: middle;
}

.prorata-tag {
	background-color: #21c3c5;
	color: white;
	padding: .2em .6em .3em;
	font-size: 75%;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: .25rem;
}

.prorata-tooltip-details {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(10px);
	width: 650px;
	background-color: rgba(22, 24, 37, 1);
	color: rgba(255, 255, 255, 1);
	padding: 15px;
	border-radius: 8px;
	z-index: 1070;
	text-align: left;
	line-height: 1.5;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	margin-top: 8px;
	max-width: 60vw;
}

.prorata-info-tag-container:hover .prorata-tooltip-details {
	visibility: visible;
	opacity: 1;
}

.prorata-tooltip-details::after {
	content: '';
	position: absolute;
	bottom: 100%;
	left: 50%;
	width: 16px;
	height: 16px;
	background-color: rgba(22, 24, 37, 1);
	transform: translateX(-50%) translateY(50%) rotate(45deg);
	border-radius: 3px 0 0 0;
}

/* End Pro-rata info tag and tooltip styles */


.account-level-setting-dropdown {
    width: 100%;
}

.account-level-setting-dropdown select:disabled {
    pointer-events: none;
}

.account-level-setting-dropdown.hint:before,
.account-level-setting-dropdown.hint:after {
    font-size: 1em;
}

.checkout-cancellation-options-wrapper .ui-title-gray-box {
    width: 40px;
    height: 40px;
    background: #ddd;
    margin-right: 10px;
}

.tc-flex-column {
	display: flex;
	flex-direction: column;
}

/* ============================================
   TC Sidebar Navigation
   ============================================ */

.tc-sidebar {
	position: fixed !important;
	left: 0 !important;
	top: 0 !important;
	width: 224px !important;
	font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif !important;
	height: 100vh !important;
	background-color: #F6F8F9 !important;
	border-right: 1px solid #E8ECEF !important;
	z-index: 101 !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	padding: 20px 16px !important;
	box-sizing: border-box !important;
}

.tc-sidebar-logo {
	padding: 8px 0 8px 8px;
	margin-bottom: 20px;
}

.tc-sidebar-logo a {
	display: block !important;
	width: 129px !important;
	height: 32px !important;
	background: url(../../../../../static/images/logo-sidebar.svg) no-repeat left center !important;
	background-size: 129px 32px !important;
	text-decoration: none !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}

.tc-sidebar-logo {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.tc-sidebar-logo a {
	flex-shrink: 0;
}

.tc-sidebar-logo a .logo-tc {
	display: none;
}

/* Plan / edition badges that used to live in the old `.header h1`.
   Placed inline-right of the wordmark in the new sidebar. The Launch
   badge doubles as the click target for the limitations modal
   (handler binds to `.tc-launch-plan-link-header` in
   launch-plan-limitations-modal.js.twig). Colours match the legacy
   chrome's `#0dc0c1` / `#b78ae8` so the visual language carries over. */
.tc-sidebar-logo-badges {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.tc-sidebar-logo-badges em,
.tc-sidebar-logo-badges .logo-courses {
	font-size: 10px;
	line-height: 1;
	padding: 4px 8px;
	border-radius: 999px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.2px;
	display: inline-flex;
	align-items: center;
}
.tc-sidebar-logo-badges em {
	color: #0dc0c1;
	border: 1px solid #0dc0c1;
	background: rgba(13, 192, 193, 0.08);
}
.tc-sidebar-logo-badges em.tc-launch-plan-link-header {
	cursor: pointer;
}
.tc-sidebar-logo-badges em.tc-launch-plan-link-header:hover {
	background: rgba(13, 192, 193, 0.16);
}
/* Learn+ pill — only visible on `.learn` / `.course_editor` body
   classes, matching the legacy rule scope. */
.tc-sidebar-logo-badges .logo-courses {
	display: none;
	color: #b78ae8;
	border: 1px solid #b78ae8;
	background: rgba(183, 138, 232, 0.08);
}
body.root.learn .tc-sidebar-logo-badges .logo-courses,
body.root.course_editor .tc-sidebar-logo-badges .logo-courses {
	display: inline-flex;
}
.tc-sidebar-logo-badges .logo-courses em {
	color: #b78ae8;
	border: none;
	background: transparent;
	padding: 0;
	margin-left: 2px;
	font-weight: bold;
	font-size: inherit;
}

/* Override ALL inherited #menu-main styles when inside sidebar */
.tc-sidebar #menu-main,
.tc-sidebar .tc-sidebar-nav {
	text-align: left !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 4px 0 !important;
	flex: 1;
	display: block !important;
}

.tc-sidebar #menu-main > li,
.tc-sidebar .tc-sidebar-item {
	display: block !important;
	margin: 0 0 4px 0 !important;
	line-height: normal !important;
	text-align: left !important;
	position: relative;
	float: none !important;
	border-bottom: none !important;
}

.tc-sidebar #menu-main > li > a,
.tc-sidebar .tc-sidebar-link {
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 8px !important;
	color: #364152 !important;
	opacity: 1 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif !important;
	border-radius: 8px !important;
	background-color: transparent !important;
	background: transparent !important;
	line-height: 16px !important;
	position: static !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
	border: none !important;
	box-shadow: none !important;
	height: auto !important;
}

.tc-sidebar #menu-main > li > a:hover,
.tc-sidebar .tc-sidebar-link:hover {
	background-color: #EEF0F3 !important;
	background: #EEF0F3 !important;
	color: rgba(58, 67, 81, 0.89) !important;
}

/* Force hide ALL old icon elements inside sidebar links */
.tc-sidebar #menu-main > li > a > i:not(.tc-sidebar-icon),
.tc-sidebar #menu-main > li > a > i.tc,
.tc-sidebar #menu-main > li > a > i.fa,
.tc-sidebar #menu-main > li > a > i.fa-angle-down {
	display: none !important;
}

/* Force label spans to be visible and inline */
.tc-sidebar #menu-main > li > a > span,
.tc-sidebar .tc-sidebar-label {
	position: static !important;
	opacity: 1 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	transform: none !important;
	white-space: nowrap !important;
	bottom: auto !important;
	display: inline !important;
	color: inherit !important;
	line-height: 16px !important;
	font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* Active state driven by route only (`li.active` + the data-section rules
   below). `submenu-open` is purely a UI expansion state and must NOT switch
   the visual treatment, otherwise clicking a parent to open its submenu
   steals the active pill from the page you're actually on. */
.tc-sidebar #menu-main > li.active > a {
	background-color: #ECFDFC !important;
	background: #ECFDFC !important;
	color: #006B70 !important;
}

.tc-sidebar #menu-main > li.active > a .tc-sidebar-icon {
	background-color: #006B70 !important;
}

.tc-sidebar #menu-main > li.active > a > span {
	color: #006B70 !important;
	font-weight: 500 !important;
}

/* Preload filled icon SVGs to prevent blink on active state change */
.tc-sidebar::after {
	content: '';
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
	z-index: -1;
	background-image:
		url('../../assets/nav-dashboard-filled.svg'),
		url('../../assets/nav-reports-filled.svg'),
		url('../../assets/nav-products-filled.svg'),
		url('../../assets/nav-transactions-filled.svg'),
		url('../../assets/nav-affiliates-filled.svg'),
		url('../../assets/nav-learn-filled.svg'),
		url('../../assets/nav-account-filled.svg');
}

/* Filled icons for active state — uses #menu-main for specificity */
.tc-sidebar #menu-main > li.active > a#menu-main-item-dash .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="dash"] #menu-main-wrapper-dash > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-dashboard-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-dashboard-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-prodreports .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="prodreports"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="product-sales"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="subscriptions"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="funnels"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="coupons"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-reports-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-reports-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-products .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="products"] #menu-main-wrapper-products > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-products-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-products-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-transactions .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="transactions"] #menu-main-wrapper-transactions > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-transactions-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-transactions-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-affiliates .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="affiliates"] #menu-main-wrapper-affiliates > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="contracts"] #menu-main-wrapper-affiliates > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-affiliates-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-affiliates-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-learn .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="learn"] #menu-main-wrapper-learn > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-learn-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-learn-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}
.tc-sidebar #menu-main > li.active > a#menu-main-item-account .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="settings"] #menu-main-wrapper-account > a .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-account-filled.svg') no-repeat center !important;
	mask: url('../../assets/nav-account-filled.svg') no-repeat center !important;
	mask-size: contain !important;
}

/* Also support data-section attribute matching for active state */
.tc-sidebar #menu-main[data-section="dash"] #menu-main-wrapper-dash > a,
.tc-sidebar #menu-main[data-section="prodreports"] #menu-main-wrapper-prodreports > a,
.tc-sidebar #menu-main[data-section="product-sales"] #menu-main-wrapper-prodreports > a,
.tc-sidebar #menu-main[data-section="subscriptions"] #menu-main-wrapper-prodreports > a,
.tc-sidebar #menu-main[data-section="funnels"] #menu-main-wrapper-prodreports > a,
.tc-sidebar #menu-main[data-section="coupons"] #menu-main-wrapper-prodreports > a,
.tc-sidebar #menu-main[data-section="products"] #menu-main-wrapper-products > a,
.tc-sidebar #menu-main[data-section="transactions"] #menu-main-wrapper-transactions > a,
.tc-sidebar #menu-main[data-section="affiliates"] #menu-main-wrapper-affiliates > a,
.tc-sidebar #menu-main[data-section="contracts"] #menu-main-wrapper-affiliates > a,
.tc-sidebar #menu-main[data-section="learn"] #menu-main-wrapper-learn > a,
.tc-sidebar #menu-main[data-section="settings"] #menu-main-wrapper-account > a {
	background-color: #ECFDFC !important;
	background: #ECFDFC !important;
	color: #006B70 !important;
}

.tc-sidebar #menu-main[data-section="dash"] #menu-main-wrapper-dash > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="prodreports"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="product-sales"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="subscriptions"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="funnels"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="coupons"] #menu-main-wrapper-prodreports > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="products"] #menu-main-wrapper-products > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="transactions"] #menu-main-wrapper-transactions > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="affiliates"] #menu-main-wrapper-affiliates > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="contracts"] #menu-main-wrapper-affiliates > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="learn"] #menu-main-wrapper-learn > a .tc-sidebar-icon,
.tc-sidebar #menu-main[data-section="settings"] #menu-main-wrapper-account > a .tc-sidebar-icon {
	background-color: #006B70 !important;
}

.tc-sidebar #menu-main[data-section="dash"] #menu-main-wrapper-dash > a > span,
.tc-sidebar #menu-main[data-section="prodreports"] #menu-main-wrapper-prodreports > a > span,
.tc-sidebar #menu-main[data-section="product-sales"] #menu-main-wrapper-prodreports > a > span,
.tc-sidebar #menu-main[data-section="subscriptions"] #menu-main-wrapper-prodreports > a > span,
.tc-sidebar #menu-main[data-section="funnels"] #menu-main-wrapper-prodreports > a > span,
.tc-sidebar #menu-main[data-section="coupons"] #menu-main-wrapper-prodreports > a > span,
.tc-sidebar #menu-main[data-section="products"] #menu-main-wrapper-products > a > span,
.tc-sidebar #menu-main[data-section="transactions"] #menu-main-wrapper-transactions > a > span,
.tc-sidebar #menu-main[data-section="affiliates"] #menu-main-wrapper-affiliates > a > span,
.tc-sidebar #menu-main[data-section="contracts"] #menu-main-wrapper-affiliates > a > span,
.tc-sidebar #menu-main[data-section="learn"] #menu-main-wrapper-learn > a > span,
.tc-sidebar #menu-main[data-section="settings"] #menu-main-wrapper-account > a > span {
	color: #006B70 !important;
	font-weight: 500 !important;
}

/* Sidebar icon — render inline SVGs via mask */
.tc-sidebar .tc-sidebar-icon {
	display: inline-block !important;
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	margin: 0 !important;
	background-color: #364152;
	transition: background-color 0.15s ease;
	font-family: inherit !important;
	font-size: 0 !important;
	transform: none !important;
	vertical-align: middle !important;
	flex-shrink: 0 !important;
}

.tc-sidebar .tc-sidebar-icon::before {
	content: '' !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

.tc-sidebar .tc-sidebar-link:hover .tc-sidebar-icon,
.tc-sidebar #menu-main > li > a:hover .tc-sidebar-icon {
	background-color: #364152;
	transform: none !important;
}

.tc-sidebar #menu-main-item-dash .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-dashboard.svg') no-repeat center;
	mask: url('../../assets/nav-dashboard.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-prodreports .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-reports.svg') no-repeat center;
	mask: url('../../assets/nav-reports.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-products .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-products.svg') no-repeat center;
	mask: url('../../assets/nav-products.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-transactions .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-transactions.svg') no-repeat center;
	mask: url('../../assets/nav-transactions.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-affiliates .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-affiliates.svg') no-repeat center;
	mask: url('../../assets/nav-affiliates.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-learn .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-learn.svg') no-repeat center;
	mask: url('../../assets/nav-learn.svg') no-repeat center;
	mask-size: contain;
}

.tc-sidebar #menu-main-item-account .tc-sidebar-icon {
	-webkit-mask: url('../../assets/nav-account.svg') no-repeat center;
	mask: url('../../assets/nav-account.svg') no-repeat center;
	mask-size: contain;
}

/* Sidebar label */
.tc-sidebar .tc-sidebar-label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Sub-menu styles - override all inherited dropdown styles */
.tc-sidebar #menu-main li ul,
.tc-sidebar .tc-sidebar-item .menu-main-sub {
	display: none !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	position: static !important;
	width: auto !important;
	border: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	visibility: visible !important;
	top: auto !important;
	left: auto !important;
}

.tc-sidebar #menu-main li ul:before,
.tc-sidebar .tc-sidebar-item .menu-main-sub:before {
	display: none !important;
}

.tc-sidebar #menu-main li ul.active,
.tc-sidebar .tc-sidebar-item .menu-main-sub.active {
	display: block !important;
}

/* Sub-menu container styling */
.tc-sidebar #menu-main li ul.active,
.tc-sidebar .tc-sidebar-item .menu-main-sub.active {
	display: block !important;
	background-color: transparent !important;
	border-radius: 0 !important;
	padding: 4px 0 !important;
	position: relative !important;
}

/* `:has(~ .sub-active)` matches every sub-item that comes BEFORE the active
   one, so the vertical line auto-extends to whichever item is current. */
.tc-sidebar #menu-main li ul.active li,
.tc-sidebar .tc-sidebar-item .menu-main-sub.active li {
	position: relative;
}
.tc-sidebar #menu-main li ul.active li:has(~ .sub-active)::before,
.tc-sidebar .tc-sidebar-item .menu-main-sub.active li:has(~ .sub-active)::before {
	content: '';
	display: block;
	position: absolute;
	left: 16px;
	top: 0;
	bottom: 0;
	width: 1.5px;
	background: #d1d7de;
	pointer-events: none;
}
.tc-sidebar #menu-main li ul.active li.sub-active::before,
.tc-sidebar .tc-sidebar-item .menu-main-sub.active li.sub-active::before {
	content: '';
	display: block;
	position: absolute;
	left: 16px;
	top: -3px;
	width: 11.5px;
	height: 18.5px;
	background: url('../../assets/nav-submenu-arrow.svg') no-repeat center;
	background-size: contain;
	pointer-events: none;
}

/* Sub-menu link styles — Inter font, aligned at 32px padding */
.tc-sidebar .tc-sidebar-sublink,
.tc-sidebar #menu-main li ul li a {
	display: block !important;
	padding: 8px 32px !important;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
	color: #8493A8 !important;
	text-decoration: none !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	letter-spacing: -0.0325em !important;
	transition: color 0.15s ease;
	line-height: 16px !important;
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-align: left !important;
	border-left: 2px solid transparent !important;
}

/* Active sub-item — bold dark text (set via JS based on current section) */
.tc-sidebar #menu-main li ul li.sub-active a,
.tc-sidebar .menu-main-sub li.sub-active a,
.tc-sidebar .menu-main-sub li.sub-active .tc-sidebar-sublink {
	font-weight: 600 !important;
	color: #364152 !important;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
	letter-spacing: -0.0325em !important;
}

.tc-sidebar .tc-sidebar-sublink:hover,
.tc-sidebar #menu-main li ul li a:hover {
	color: #006B70 !important;
	background-color: transparent !important;
}

.tc-sidebar #menu-main li ul li span {
	position: static !important;
	opacity: 1 !important;
	font-size: 14px !important;
	font-weight: inherit !important;
	transform: none !important;
	display: inline !important;
	vertical-align: baseline !important;
	color: inherit !important;
	font-family: inherit !important;
	letter-spacing: inherit !important;
}

.tc-sidebar #menu-main li ul li i {
	display: none !important;
}

/* Inaccessible submenu */
.tc-sidebar .tc-sidebar-item .menu-main-sub.inaccessible {
	position: relative !important;
}

.tc-sidebar .tc-sidebar-item .menu-main-sub.inaccessible .locked-hint {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
}

/* Hide old header when sidebar is active */
.header.header-hidden {
	display: none !important;
}

/* Content offset for sidebar */
body.root #tc-sidebar ~ #hero,
body.root #tc-sidebar ~ #footer {
	margin-left: 224px !important;
	width: calc(100% - 224px) !important;
}

body.root #tc-sidebar ~ #layout {
	margin-left: 260px !important;
	margin-right: 36px !important;
	width: auto !important;
	max-width: none !important;
}

/* Builder has its own Save / Next chrome and Exit button — sidebar would only overlap. */
body.ui-builder-v2 #tc-sidebar,
body.ui-builder-v2 #tc-mnav-topbar,
body.ui-builder-v2 #tc-mnav-tabbar,
body.ui-builder-v2 #tc-mnav-more-backdrop,
body.ui-builder-v2 .tc-mnav-more-sheet {
	display: none !important;
}
body.ui-builder-v2 #tc-sidebar ~ #layout,
body.ui-builder-v2 #tc-sidebar ~ #hero,
body.ui-builder-v2 #tc-sidebar ~ #footer,
body.ui-builder-v2 #tc-sidebar ~ .footer {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: auto !important;
}

/* Course editor (`#/learn/edit/...`) has its own fixed left panel + top toolbar. */
body.course_editor #tc-sidebar,
body.course_editor #tc-mnav-topbar,
body.course_editor #tc-mnav-tabbar,
body.course_editor #tc-mnav-more-backdrop,
body.course_editor .tc-mnav-more-sheet {
	display: none !important;
}
body.course_editor #tc-sidebar ~ #layout,
body.course_editor #tc-sidebar ~ #hero,
body.course_editor #tc-sidebar ~ #footer,
body.course_editor #tc-sidebar ~ .footer {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: auto !important;
}
/* Legacy `padding-top: 5.4em` on #layout and `top: 5.4em` on .courses-menu were sized for the old fixed header; reclaim that space now the new chrome is hidden. */
body.course_editor #layout {
	padding-top: 0 !important;
	height: 100vh !important;
}
body.course_editor .courses-menu {
	top: 0 !important;
}
/* Legacy `.courses-menu-wrap` capped to 1404px and left-aligned, so Cancel/tabs/Preview hug the left while the right of the toolbar is empty white. Stretch the wrap full-width — the existing flex grid then puts Cancel at the viewport left edge, tabs centred (via `.courses-menu-tabs-wrapper`'s `justify-content: center`), and Preview/Next at the viewport right edge. */
body.course_editor .courses-menu .courses-menu-wrap {
	max-width: none !important;
}
/* `.courses-sidebar` was offset `top: 11.9em` to clear the old 5.4em header + 6.4em menu. Header is hidden now, so reclaim the 5.4em — sidebar starts flush under the menu strip and grows by the same amount. */
body.course_editor .courses-sidebar {
	top: calc(6.5em + 1px) !important;
	height: calc(100vh - 6.6em) !important;
}

/* Also override the .inner max-width inside layout */
body.root #tc-sidebar ~ #layout .inner {
	max-width: none !important;
	width: 100% !important;
}

body.root #tc-sidebar ~ #hero .inner {
	margin-left: 0;
}

body.root #tc-sidebar ~ .footer {
	margin-left: 224px !important;
	text-align: center;
}

/* Banners offset for sidebar layout — only when the sidebar is visible
   (desktop). On mobile the sidebar is hidden by the mobile shell, so the
   banner should fill the viewport without the 224px left gutter. */
@media (min-width: 768px) {
	body.root #tc-sidebar ~ .banner {
		padding-left: 224px !important;
	}
}

/* Dashboard reskin — all rules scoped to .ui-dashboard. */

/* Scope the white page canvas to `.root.dash` so other admin pages keep
   their existing body colour. */
body.root.dash,
body.root.dash #layout {
	background: #ffffff;
}

.ui-dashboard {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #364050;
	padding: 0 32px 160px 32px;
	box-sizing: border-box;
	max-width: 1216px;
	margin: 0 auto;
}

.ui-dashboard .ui-dashboard-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 24px 0;
}

.ui-dashboard .ui-dashboard-head h2 {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 32px;
	color: #28364a;
	margin: 0;
	letter-spacing: 0;
}

.ui-dashboard .tc-switch-btn,
.ui-dashboard #switch-btn {
	display: none;
}

.ui-dashboard .ui-dashboard-head + .pure-g,
.ui-dashboard .tc-today-cards-track {
	margin: 0;
	display: flex;
	gap: 16px;
	align-items: stretch;
}

.ui-dashboard .ui-dashboard-head + .pure-g > div,
.ui-dashboard .tc-today-cards-track > .tc-today-card {
	padding: 0;
	flex: 1 1 0;
	min-width: 0;
	width: auto;
}

.ui-dashboard .ui-dashboard-head + .pure-g .tc-box,
.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box {
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 12px;
	padding: 24px;
	margin: 0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 32px;
	flex: 1 0 0;
	height: 164px;
	box-sizing: border-box;
}

/* Icon square: 36×36 (20×20 icon + 8px padding), gray-100 bg, radius 8.
   `background-size: contain` preserves the SVG's natural aspect ratio so
   wide icons (e.g. payments 18.33×13.33) don't stretch to fill 20×20. */
.ui-dashboard .ui-dashboard-head + .pure-g .tc-box::before,
.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	background-color: #e8ecef;
	border-radius: 8px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	flex: 0 0 auto;
}

/* Card 1 — payments (Figma 838:879) */
.ui-dashboard .ui-dashboard-head + .pure-g > div:nth-child(1) .tc-box::before,
.ui-dashboard .tc-today-cards-track > .tc-today-card:nth-child(1) .tc-box::before {
	background-image: url("/static/icons/dashboard/today-revenue.svg");
}

/* Card 2 — receipt (Figma 838:880) */
.ui-dashboard .ui-dashboard-head + .pure-g > div:nth-child(2) .tc-box::before,
.ui-dashboard .tc-today-cards-track > .tc-today-card:nth-child(2) .tc-box::before {
	background-image: url("/static/icons/dashboard/today-transactions.svg");
}

/* Cards 3, 4, 5 — Figma 838:881/882 don't expose distinct vectors (recycle
   the receipt icon as placeholder); using sensible Material outlined icons
   until the design system gives specific ones. */
.ui-dashboard .tc-today-cards-track > .tc-today-card:nth-child(3) .tc-box::before {
	background-image: url("/static/icons/dashboard/today-net-revenue.svg");
}
.ui-dashboard .tc-today-cards-track > .tc-today-card:nth-child(4) .tc-box::before {
	background-image: url("/static/icons/dashboard/today-commission.svg");
}
.ui-dashboard .tc-today-cards-track > .tc-today-card:nth-child(5) .tc-box::before {
	background-image: url("/static/icons/dashboard/today-refund.svg");
}

.ui-dashboard .ui-dashboard-head + .pure-g .tc-box p,
.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	color: #8493a8;
	text-transform: uppercase;
	letter-spacing: 0.48px;
	margin: 0;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Negative top margin collapses the card's 32px gap down to 4px between
   label and value (label/value live in nested wrapper with its own gap). */
.ui-dashboard .ui-dashboard-head + .pure-g .tc-box h2,
.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: -28px 0 0 0;
	letter-spacing: 0;
	width: 100%;
}

.ui-dashboard .ui-dashboard-head + .pure-g .tc-box .hr-small,
.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box .hr-small {
	display: none;
}

/* Today's cards — clickable drill-in (handler in account.html.twig).
   Cursor, soft hover, active scale, focus-visible outline. No chevron —
   the drill-in is signalled by the tap state alone. */
.ui-dashboard .tc-today-card[data-target] {
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.ui-dashboard .tc-today-card[data-target] .tc-box {
	transition: transform 120ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.ui-dashboard .tc-today-card[data-target]:hover .tc-box {
	border-color: #d1d7de;
	box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
}
.ui-dashboard .tc-today-card[data-target]:active .tc-box {
	transform: scale(0.985);
}
.ui-dashboard .tc-today-card[data-target]:focus-visible {
	outline: 0;
}
.ui-dashboard .tc-today-card[data-target]:focus-visible .tc-box {
	outline: 2px solid #006b70;
	outline-offset: 2px;
}

/* Pulse-highlight applied to the destination card after a Today's drill-in
   so the user sees what they landed on. JS adds .tc-target-highlight, the
   keyframes fade in a teal ring, JS removes the class after 1.5s. */
@keyframes tc-target-pulse {
	0% {
		box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05), 0 0 0 0 rgba(0, 107, 112, 0.35);
	}
	30% {
		box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05), 0 0 0 8px rgba(0, 107, 112, 0.2);
	}
	100% {
		box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05), 0 0 0 0 rgba(0, 107, 112, 0);
	}
}
.ui-dashboard .tc-box.tc-target-highlight {
	animation: tc-target-pulse 1.4s ease-out;
}

/* Mini section heading — small uppercase row label above grouped sections
   like "Today" above the today's hero cards. Margin-top kept tight so it
   reads as a subhead under the page title, not a free-standing block. */
.ui-dashboard .tc-section-mini-head {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	color: #8493a8;
	text-transform: uppercase;
	letter-spacing: 0.48px;
	margin: 0 0 12px 0;
}

/* Recurring Revenue subscription-type filter pills per Figma 838-1002.
   Hidden on desktop — the design only shows them in the mobile layout. */
.ui-dashboard .tc-recurring-tabs {
	display: none;
}

/* "Today" hero cards carousel — same visual chrome as the Trends row,
   but the row now scrolls horizontally so we can fit one card per metric
   shown in the Trends section (Revenue / Transactions / Net Revenue /
   Commission Paid / Refund Volume). On wide desktops all five cards fit
   in the viewport so the row reads as a static grid; on narrower widths
   the track scrolls and the user navigates with arrow buttons (desktop)
   or a swipe gesture (mobile). */
.ui-dashboard .tc-today-cards {
	position: relative;
	margin: 0 0 24px 0;
}
.ui-dashboard .tc-today-cards-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	overflow-y: clip;          /* keep card shadows visible while preventing
	                              any vertical drift during inertia swipes */
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 0;            /* breathing room for box-shadow on cards */
	/* Lock the carousel to horizontal pan so a sideways swipe doesn't
	   bleed into a vertical page scroll on iOS Safari (which otherwise
	   pulls the page up while the carousel is being swiped). The user
	   can still scroll the page vertically by touching ABOVE or BELOW
	   the track — the lock only applies inside the track. */
	touch-action: pan-x;
	overscroll-behavior: contain;
}
.ui-dashboard .tc-today-cards-track > * {
	/* Reinforce the lock on every child — iOS Safari sometimes lets the
	   gesture leak vertically when only the parent declares pan-x. */
	touch-action: pan-x;
}
.ui-dashboard .tc-today-cards-track::-webkit-scrollbar {
	display: none;
}
.ui-dashboard .tc-today-card {
	flex: 0 0 calc((100% - 64px) / 5);   /* 5 cards, 4 × 16px gaps at desktop */
	min-width: 0;
	scroll-snap-align: start;
	display: flex;                       /* let .tc-box stretch to fill the
	                                        flex-item height that the track
	                                        gives every card via align-items
	                                        stretch — keeps all 5 the same
	                                        height even when one card's
	                                        label wraps to two lines. */
}
.ui-dashboard .tc-today-card .tc-box {
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 12px;
	padding: 20px;
	margin: 0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	min-height: 132px;
	box-sizing: border-box;
	width: 100%;
	flex: 1 1 auto;                       /* fill the parent .tc-today-card */
}
.ui-dashboard .tc-today-card .tc-box::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	background: #e8ecef no-repeat center;
	background-size: 20px 20px;
	border-radius: 8px;
	flex: 0 0 36px;
}
/* Per-card icon mask. The first two reuse the masks the legacy
   two-card layout already had (revenue-stack + receipt). The new
   three echo the Trends section's tab metaphors: a banknote for net
   revenue, an affiliate-style person-arrow for commission, and an
   undo arrow for refunds. SVGs are inlined so we don't need to ship
   new asset files. */
.ui-dashboard .tc-today-card:nth-child(1) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2328364a'><path d='M2 5h16v10H2z' fill='none' stroke='%2328364a' stroke-width='1.5'/><circle cx='10' cy='10' r='2.5' fill='none' stroke='%2328364a' stroke-width='1.5'/></svg>");
}
.ui-dashboard .tc-today-card:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2328364a'><path d='M5 2h10v16l-2.5-1.5L10 18l-2.5-1.5L5 18z' fill='none' stroke='%2328364a' stroke-width='1.5'/><path d='M7 6h6M7 9h6M7 12h4' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round'/></svg>");
}
.ui-dashboard .tc-today-card:nth-child(3) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><rect x='2' y='5' width='16' height='10' rx='1' fill='none' stroke='%2328364a' stroke-width='1.5'/><circle cx='10' cy='10' r='2' fill='none' stroke='%2328364a' stroke-width='1.5'/><path d='M5 8v4M15 8v4' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round'/></svg>");
}
.ui-dashboard .tc-today-card:nth-child(4) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><circle cx='8' cy='7' r='2.5' fill='none' stroke='%2328364a' stroke-width='1.5'/><path d='M3 16c.5-2.5 2.5-4 5-4s4.5 1.5 5 4' fill='none' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round'/><path d='M14 4l3 3-3 3' fill='none' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.ui-dashboard .tc-today-card:nth-child(5) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M4 9V5l-3 3 3 3V7a4 4 0 1 1-4 4' fill='none' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/><path d='M11 13l3-3 3 3' fill='none' stroke='%2328364a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.ui-dashboard .tc-today-card .tc-box p {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #475467;
}
.ui-dashboard .tc-today-card .tc-box h2 {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 28px;
	font-weight: 600;
	line-height: 36px;
	color: #28364a;
	letter-spacing: -0.4px;
}
.ui-dashboard .tc-today-card .tc-box .hr-small {
	display: none;
}

/* Prev/Next arrows — circular floating buttons that page the track by
   one card. Hidden by default; the JS controller toggles them on when
   the track has overflow. Hidden on phone viewports where the swipe
   gesture is the natural affordance. */
.ui-dashboard .tc-today-cards-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	padding: 0;
	border-radius: 50%;
	background: #ffffff;
	border: 1px solid #d1d7de;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	color: #364152;
	cursor: pointer;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 120ms ease, transform 120ms ease;
	-webkit-tap-highlight-color: transparent;
}
.ui-dashboard .tc-today-cards-arrow[hidden] {
	display: none;
}
.ui-dashboard .tc-today-cards-arrow:hover {
	background: #f6f8f9;
}
.ui-dashboard .tc-today-cards-arrow:active {
	transform: translateY(-50%) scale(0.94);
}
.ui-dashboard .tc-today-cards-arrow-prev { left: -8px; }
.ui-dashboard .tc-today-cards-arrow-next { right: -8px; }

/* At ≥1024px the 5-card grid always fits the row, so the carousel arrows
   are never useful — hide them entirely instead of relying on the JS
   overflow detector (which can show phantom arrows from sub-pixel
   rounding / scrollbar reservation). The JS still toggles them as the
   user resizes below 1024px where 3 → 1 cards visible and arrows are
   genuinely needed. */
@media (min-width: 1024px) {
	.ui-dashboard .tc-today-cards-arrow {
		display: none;
	}
}

@media (max-width: 1023px) {
	.ui-dashboard .tc-today-card {
		flex: 0 0 calc((100% - 32px) / 3);   /* 3 cards visible */
	}
}

@media (max-width: 767px) {
	.ui-dashboard .tc-today-card {
		flex: 0 0 80%;                       /* 1 card + sliver of next */
	}
	/* Keep the arrows centered over the cards on phone (the affordance
	   the user wanted), but hide them after a short idle so they don't
	   permanently sit on top of the card text. The JS controller adds
	   `is-idle` 1.5s after the last interaction; CSS only applies the
	   fade at phone widths so desktop ignores the class entirely. */
	.ui-dashboard .tc-today-cards-arrow {
		width: 32px;
		height: 32px;
		/* Liquid-glass surface: heavy blur + saturation pulls whatever is
		   behind through with extra vibrance, the rgba bg is mostly clear
		   so the blur is what's doing the work, and the inset highlight
		   plus light border give the "raised pane of glass" depth cue. */
		background: rgba(255, 255, 255, 0.16);
		-webkit-backdrop-filter: blur(10px) saturate(170%);
		backdrop-filter: blur(10px) saturate(170%);
		border: 1px solid rgba(15, 23, 42, 0.12);
		box-shadow:
			0 1px 4px rgba(15, 23, 42, 0.06),
			inset 0 1px 0 rgba(255, 255, 255, 0.4);
		transition: opacity 240ms ease, background-color 120ms ease, transform 120ms ease;
	}
	.ui-dashboard .tc-today-cards-arrow:active {
		background: rgba(255, 255, 255, 0.7);
	}
	.ui-dashboard .tc-today-cards-arrow-prev { left: 4px; }
	.ui-dashboard .tc-today-cards-arrow-next { right: 4px; }
	.ui-dashboard .tc-today-cards-arrow.is-idle {
		opacity: 0;
		pointer-events: none;
	}
	.ui-dashboard .tc-today-card .tc-box {
		gap: 24px;
	}
	.ui-dashboard .tc-today-card .tc-box h2 {
		font-size: 24px;
		line-height: 32px;
	}
}

.ui-dashboard > .hr-small {
	display: none;
}

.ui-dashboard > .tc-flex.tc-between {
	display: none;
}

/* Rebuild the filter row as a single flex container so dropdowns auto-size
   and buttons never overlap them. The twig markup uses pure-grid (2/3 + 1/3,
   each split in halves) which cramps the right-side buttons into ~1/6 of the
   page; flex lets everything lay out on one line with real gaps. */
.ui-dashboard .pure-form.pure-form-stacked {
	margin: 48px 0 0 0;
}

.ui-dashboard .pure-form-stacked > .pure-g.ui-input-group {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	align-self: stretch;
	gap: 8px;
	margin: 0;
	width: 100%;
	margin-left: 0;
}

.ui-dashboard .pure-form-stacked > .pure-g.ui-input-group > .pure-u-1,
.ui-dashboard .pure-form-stacked > .pure-g.ui-input-group > .pure-u-md-2-3,
.ui-dashboard .pure-form-stacked > .pure-g.ui-input-group > .pure-u-md-1-3 {
	width: auto;
	flex: 0 0 auto;
	padding: 0;
}

/* Left group (products + date): dropdowns side-by-side */
.ui-dashboard #main-filter-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	margin-left: 0;
	width: auto;
	flex: 0 0 auto;
}

.ui-dashboard #main-filter-wrap > div {
	width: auto;
	flex: 0 0 auto;
	padding: 0;
}

/* Right group (currency + buttons): push to flex-end */
.ui-dashboard .pure-form-stacked .pure-g.ui-input-group > .pure-u-md-1-3 > .pure-g.ui-input-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin: 0;
	margin-left: 0;
	width: auto;
	flex: 0 0 auto;
}

.ui-dashboard .pure-form-stacked .pure-g.ui-input-group > .pure-u-md-1-3 > .pure-g.ui-input-group > div {
	width: auto;
	flex: 0 0 auto;
	padding: 0;
}

/* Wrapper around the styled <select> dropdowns. The `.date_range` variant
   (custom-date wrap with two text inputs) has its own chrome and is excluded. */
.ui-dashboard .tc-dropdown:not(.date_range) {
	position: relative;
	display: inline-block;
	padding: 0 !important;
	margin: 0;
	background: transparent;
	border: 0;
	border-radius: 8px;
	width: 180px;
	max-width: 180px;
	flex: 0 0 180px;
}

/* Currency dropdown narrower — override the 180px width */
.ui-dashboard #stats-currency-wrap .tc-dropdown {
	width: auto;
	max-width: none;
	flex: 0 0 auto;
}

/* Kill the inherited Font Awesome chevron from shared.css `.dropdown::after` —
   the custom SVG chevron on the <select> replaces it. */
.ui-dashboard .tc-dropdown::after,
.ui-dashboard .dropdown.tc-dropdown::after {
	content: none !important;
	display: none !important;
}

body.root .ui-dashboard .tc-dropdown select,
.ui-dashboard .tc-dropdown select {
	appearance: none;
	-webkit-appearance: none;
	background: #ffffff;
	border: 1px solid #d1d7de !important;
	border-radius: 8px !important;
	padding: 7px 37px 7px 37px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 20px;
	color: #364152;
	height: 36px !important;
	box-sizing: border-box !important;
	width: 180px !important;
	min-width: 0;
	cursor: pointer;
	box-shadow: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M4 6L8 10L12 6' stroke='%233A4351' stroke-opacity='0.89' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 13px center;
}

/* Currency dropdown: narrower and no left mark-selector padding */
.ui-dashboard #stats-currency-wrap .tc-dropdown select {
	padding-left: 13px !important;
	width: auto !important;
	min-width: 84px;
}

.ui-dashboard .tc-dropdown .mark-selector {
	position: absolute;
	left: 17px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -4px;
	border-radius: 50%;
	background: #00a6aa;
	z-index: 1;
	pointer-events: none;
	font-size: 0;
}

.ui-dashboard .tc-dropdown .mark-selector::before {
	display: none;
}

.ui-dashboard .tc-dropdown .mark-selector.darker {
	background: #006b70;
}

.ui-dashboard .tc-dropdown .mark-selector.none {
	display: none;
}

.ui-dashboard #stats-btn-compare,
.ui-dashboard #stats-btn-customize,
.ui-dashboard #compare-btn,
.ui-dashboard #customize-stats-btn,
.ui-dashboard .tc-btn-customize {
	padding: 8px 18px;
	background: #006b70;
	color: #ffffff;
	border: 0;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	cursor: pointer;
	transition: background-color 0.15s ease;
	height: 36px;
	box-sizing: border-box;
	text-align: center;
	text-transform: none;
	letter-spacing: 0;
	white-space: nowrap;
	flex: 0 0 auto;
}

.ui-dashboard #stats-btn-customize {
	margin-left: 0 !important;
}

.ui-dashboard #stats-btn-compare:hover,
.ui-dashboard #stats-btn-customize:hover,
.ui-dashboard #compare-btn:hover,
.ui-dashboard #customize-stats-btn:hover,
.ui-dashboard .tc-btn-customize:hover {
	background: #005559;
}

.ui-dashboard .compare-btn-wrap {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.ui-dashboard .compare-btn-wrap .tc-flex {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
}

.ui-dashboard .tc-stats-section {
	margin: 64px 0 0 0;
}

.ui-dashboard .tc-stats-section[data-section="trends"] {
	margin-top: 48px;
}

/* The in-card "graph-top" heading takes over visually for each section. */
.ui-dashboard .tc-stats-section > h2 {
	display: none;
}

.ui-dashboard .tc-tabs {
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 12px;
	overflow: hidden;
	margin: 0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.ui-dashboard .tc-tabs-list {
	background: #ffffff;
	padding: 8px 8px 0 8px;
	margin: 0;
	border-radius: 0;
	display: flex;
	gap: 0;
}

.ui-dashboard .tc-tabs-list .pure-u-1-5 {
	flex: 1 0 0;
	min-width: 0;
	position: relative;
}

/* Cancel the legacy vertical divider on the older .tc-tabs-list rule so
   tiles sit flush. */
.ui-dashboard .tc-tabs-list .pure-u-1-5:not(:first-child)::before {
	content: none;
	display: none;
	background: transparent;
}

/* Desktop tab segments — flat inside the outer .tc-tabs card per Figma
   2:572/573/577. No individual borders, just the gray bg fill on active.
   Mobile applies its own per-tab border + teal underline inside the
   @media (max-width: 767px) block further down. */
.ui-dashboard .tc-tabs-list a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 24px;
	margin: 0;
	border-radius: 12px;
	text-decoration: none;
	background: transparent;
	transition: background-color 0.15s ease;
	width: 100%;
	box-sizing: border-box;
	cursor: pointer;
	gap: 4px;
	min-width: 0;
}

/* Lighter than the active fill so hovered tiles read as "available to click"
   without looking like the selected one. */
.ui-dashboard .tc-tabs-list a:not(.active):hover {
	background: #fbfcfd;
}

.ui-dashboard .tc-tabs-list a.active {
	background: #f6f8f9;
}

.ui-dashboard .tc-tabs-list a p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	color: #8493a8;
	text-transform: uppercase;
	letter-spacing: 0.48px;
	margin: 0;
	width: 100%;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Pin the tooltip icon to 14px regardless of the label's font size so it
   doesn't push the label to wrap and make the active tile taller. */
.ui-dashboard .tc-tabs-list a p .icon.tc-tooltip {
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	font-size: 12px;
}

.ui-dashboard .tc-tabs-list a h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	letter-spacing: 0;
	width: 100%;
}

.ui-dashboard .tc-tabs .ui-statistics-graph-wrapper {
	background: #ffffff;
	margin: 0;
	padding: 0 24px 24px 24px;
	position: relative;
	overflow: hidden;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
}

.ui-dashboard .tc-tabs .tc-tabs-graph {
	margin: 0;
}

.ui-dashboard .tc-tabs .graph-content {
	background: transparent;
	padding: 0;
	margin: 0;
	border-radius: 0;
	max-height: none;
	overflow: visible;
}

.ui-dashboard .tc-tabs .graph-content canvas {
	background: transparent !important;
	height: 410px !important;
	width: 100% !important;
	display: block;
}

.ui-dashboard .tc-tabs canvas {
	background-color: transparent;
	border-radius: 0;
}

/* Metric-row item comparison block (visible when Compare mode active) */
.ui-dashboard .tc-tabs-list a .graph-comparison {
	margin-top: 12px;
}

.ui-dashboard .tc-tabs-list a .graph-comparison .hr-small {
	margin: 8px 0;
	border: 0;
	border-top: 1px solid #d1d7de;
}

.ui-dashboard .tc-tabs-list a .graph-comparison h2 {
	font-size: 16px;
	color: #6e819e;
}

.ui-dashboard .tc-tabs-list a .graph-mark.mark-selector {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #00a6aa;
	display: inline-block;
	margin-right: 8px;
}

.ui-dashboard .tc-tabs-list a .graph-mark.mark-selector.darker {
	background: #006b70;
}

/* Lift KPI-tile tooltips above neighbouring sections so they float on top
   of the card rather than being clipped by it. */
.ui-dashboard .tc-tabs-list .tc-tooltip::after,
.ui-dashboard .tc-tabs-list .tc-tooltip::before {
	z-index: 200;
}

/* Card wrapper for the lower sections (Recurring / Breakdown / Refunds). */
/* Chart pure-g card chrome — Figma 838-999/1111 style. Matches both
   when the chart pure-g is a direct child of the section (Revenue
   Breakdown, Refunds) and when wrapped in `.tc-section-card` (Recurring
   Revenue, which needs the wrapper because title + tabs live alongside
   the chart per Figma 838-999). */
.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:first-of-type,
.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .tc-section-card > .pure-g {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	margin: 0 0 24px 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 24px;
	box-sizing: border-box;
}

/* Info row: title (flex:1 0 0) pushes the legend chips to the right. */
.ui-dashboard .tc-stats-section:not([data-section="trends"]) .graph-top {
	background: transparent;
	border: 0;
	border-bottom: 0;
	border-radius: 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	display: flex;
	gap: 16px;
	align-items: center;
	width: 100%;
	justify-content: flex-start;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) .graph-top p {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	flex: 1 0 0;
	min-width: 0;
}

/* Hide the secondary h2 metric in Breakdown/Refunds — title + legend only. */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top h2,
.ui-dashboard .tc-stats-section[data-section="refunds"] .graph-top h2 {
	display: none;
}

/* Title-row tooltip icon would render at the 20px parent font-size, which
   looks oversized next to the title. Hide it — the legend chips already
   communicate what the breakdown segments mean. */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top > p .icon.tc-tooltip {
	display: none;
}

/* Mobile: replace any body-level floating chart tooltip (which
   overflows the viewport on phones, dragging the page into a
   horizontal scroll) with an inline detail panel below the chart.
   Hidden by default; the JS callback adds `is-active` after the user
   first taps a bar. Style mirrors the desktop floater (dark fill,
   white text, dot per segment) so the visual language stays
   consistent. Applies to every chart that calls
   `GraphHelper.routeMobileTooltip` — Revenue Breakdown, Subscriber
   Breakdown, Productsales/Subscriptions/Coupons charts. */
.tc-breakdown-detail {
	display: none;
}
@media (max-width: 767px) {
	.tc-breakdown-detail.is-active {
		display: block;
		position: relative;
		margin: 16px 0 0 0;
		padding: 14px 36px 14px 16px;     /* extra right padding so close button doesn't overlap values */
		background: rgba(22, 24, 37, 1);
		color: #ffffff;
		border-radius: 8px;
		font: 13px/1.4 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	}
	.tc-breakdown-detail-close {
		position: absolute;
		top: 6px;
		right: 6px;
		width: 28px;
		height: 28px;
		padding: 0;
		border: 0;
		background: transparent;
		color: rgba(255, 255, 255, 0.7);
		font: 22px/1 -apple-system, BlinkMacSystemFont, sans-serif;
		cursor: pointer;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		-webkit-tap-highlight-color: transparent;
	}
	.tc-breakdown-detail-close:hover,
	.tc-breakdown-detail-close:active {
		background: rgba(255, 255, 255, 0.12);
		color: #ffffff;
	}
	.tc-breakdown-detail-table {
		width: 100%;
		border-collapse: collapse;
	}
	.tc-breakdown-detail-table tr td {
		padding: 4px 0;
		vertical-align: middle;
	}
	.tc-breakdown-detail-table .tc-breakdown-dot {
		display: inline-block;
		width: 10px;
		height: 10px;
		border-radius: 50%;
		border: 2px solid;
		box-sizing: border-box;
		margin-right: 8px;
	}
	.tc-breakdown-detail-table .tc-breakdown-label {
		width: 100%;
	}
	.tc-breakdown-detail-table .tc-breakdown-value {
		text-align: right;
		white-space: nowrap;
		font-variant-numeric: tabular-nums;
	}
	/* Belt-and-suspenders: even if the body-level floater sneaks back
	   in, force-hide it on phone so it can't drag horizontal scroll. */
	#chartjs-breakdown-tooltip {
		display: none !important;
	}
}

.ui-dashboard .tc-stats-section .graph-top .tc-label {
	gap: 16px;
	display: flex;
	align-items: center;
}

.ui-dashboard .tc-stats-section .graph-top .tc-label .tc-flex {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ui-dashboard .tc-stats-section .graph-top .tc-label .tc-flex p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: #8493a8;
	letter-spacing: 0;
	margin: 0;
	white-space: nowrap;
}

/* Suppress the legacy "●" character from .mark-selector::before so the dot
   is a pure CSS circle (the legacy rule renders a font-glyph dot). */
.ui-dashboard .tc-stats-section .graph-top .tc-label .mark-selector {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #00c8c9;
	display: inline-block;
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
	overflow: hidden;
}

.ui-dashboard .tc-stats-section .graph-top .tc-label .mark-selector::before {
	content: none;
	display: none;
}

.ui-dashboard .tc-stats-section .graph-top .tc-label .mark-selector.darker {
	background: #006b70;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) .graph-content {
	background: transparent;
	padding: 0;
	max-height: none;
	width: 100%;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) .graph-content canvas {
	background: transparent !important;
	height: 456px !important;
	width: 100% !important;
	display: block;
}

.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] .graph-content canvas {
	height: 480px !important;
}

/* Sub-cards row (MRR/ARR, Breakdown, Refund stat tiles). */
.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: stretch;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type > div {
	padding: 0;
	flex: 1 1 0;
	min-width: 180px;
	width: auto;
	margin-bottom: 0;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box {
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 12px;
	padding: 24px;
	margin: 0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0;
	flex: 1 0 0;
	height: 100%;
	min-height: 164px;
	box-sizing: border-box;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	background: #e8ecef;
	border-radius: 8px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	flex: 0 0 auto;
	margin-bottom: 32px;
	/* Default fallback: Material `arrow_upward`. Per-card icons override below. */
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%233A4351' fill-opacity='0.89'><path d='M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z'/></svg>");
}

/* Refunded Customers — Material `remove_red_eye` */
.ui-dashboard .tc-stats-section[data-section="refunds"] > .pure-g:last-of-type > div:nth-child(1) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.3333 12.5' fill='none'><path d='M9.16667 1.66667C12.325 1.66667 15.1417 3.44167 16.5167 6.25C15.1417 9.05833 12.3333 10.8333 9.16667 10.8333C6 10.8333 3.19167 9.05833 1.81667 6.25C3.19167 3.44167 6.00833 1.66667 9.16667 1.66667ZM9.16667 0C5 0 1.44167 2.59167 0 6.25C1.44167 9.90833 5 12.5 9.16667 12.5C13.3333 12.5 16.8917 9.90833 18.3333 6.25C16.8917 2.59167 13.3333 0 9.16667 0ZM9.16667 4.16667C10.3167 4.16667 11.25 5.1 11.25 6.25C11.25 7.4 10.3167 8.33333 9.16667 8.33333C8.01667 8.33333 7.08333 7.4 7.08333 6.25C7.08333 5.1 8.01667 4.16667 9.16667 4.16667ZM9.16667 2.5C7.1 2.5 5.41667 4.18333 5.41667 6.25C5.41667 8.31667 7.1 10 9.16667 10C11.2333 10 12.9167 8.31667 12.9167 6.25C12.9167 4.18333 11.2333 2.5 9.16667 2.5Z' fill='%233A4351' fill-opacity='0.89'/></svg>");
}

/* Revenue Breakdown card icons — Material Symbols Outlined (960×960 viewBox). */
/* Gross Revenue — show_chart */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(1) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='m140-220-60-60 300-300 160 160 284-320 56 56-340 384-160-160-240 240Z'/></svg>");
}
/* Net Revenue — stacked_line_chart */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='m140-100-60-60 300-300 160 160 284-320 56 56-340 384-160-160-240 240Zm0-240-60-60 300-300 160 160 284-320 56 56-340 384-160-160-240 240Z'/></svg>");
}
/* Commission Paid + JV Payments — handshake */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(3) .tc-box::before,
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(4) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M475-160q4 0 8-2t6-4l328-328q12-12 17.5-27t5.5-30q0-16-5.5-30.5T817-607L647-777q-11-12-25.5-17.5T591-800q-15 0-30 5.5T534-777l-11 11 74 75q15 14 22 32t7 38q0 42-28.5 70.5T527-522q-20 0-38.5-7T456-550l-75-74-175 175q-3 3-4.5 6.5T200-435q0 8 6 14.5t14 6.5q4 0 8-2t6-4l136-136 56 56-135 136q-3 3-4.5 6.5T285-350q0 8 6 14t14 6q4 0 8-2t6-4l136-135 56 56-135 136q-3 2-4.5 6t-1.5 8q0 8 6 14t14 6q4 0 7.5-1.5t6.5-4.5l136-135 56 56-136 136q-3 3-4.5 6.5T454-180q0 8 6.5 14t14.5 6Zm-1 80q-37 0-65.5-24.5T375-166q-34-5-57-28t-28-57q-34-5-56.5-28.5T206-336q-38-5-62-33t-24-66q0-20 7.5-38.5T149-506l232-231 131 131q2 3 6 4.5t8 1.5q9 0 15-5.5t6-14.5q0-4-1.5-8t-4.5-6L398-777q-11-12-25.5-17.5T342-800q-15 0-30 5.5T285-777L144-635q-9 9-15 21t-8 24q-2 12 0 24.5t8 23.5l-58 58q-17-23-25-50.5T40-590q2-28 14-54.5T87-692l141-141q24-23 53.5-35t60.5-12q31 0 60.5 12t52.5 35l11 11 11-11q24-23 53.5-35t60.5-12q31 0 60.5 12t52.5 35l169 169q23 23 35 53t12 61q0 31-12 60.5T873-437L545-110q-14 14-32.5 22T474-80Zm-99-560Z'/></svg>");
}
/* Tax Collected — account_balance */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(5) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M200-280v-280h80v280h-80Zm240 0v-280h80v280h-80ZM80-120v-80h800v80H80Zm600-160v-280h80v280h-80ZM80-640v-80l400-200 400 200v80H80Zm178-80h444-444Zm0 0h444L480-830 258-720Z'/></svg>");
}
/* Shipping Collected — local_shipping */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div:nth-child(6) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M155-195q-35-35-35-85H40v-440q0-33 23.5-56.5T120-800h560v160h120l120 160v200h-80q0 50-35 85t-85 35q-50 0-85-35t-35-85H360q0 50-35 85t-85 35q-50 0-85-35Zm113.5-56.5Q280-263 280-280t-11.5-28.5Q257-320 240-320t-28.5 11.5Q200-297 200-280t11.5 28.5Q223-240 240-240t28.5-11.5ZM120-360h32q17-18 39-29t49-11q27 0 49 11t39 29h272v-360H120v360Zm628.5 108.5Q760-263 760-280t-11.5-28.5Q737-320 720-320t-28.5 11.5Q680-297 680-280t11.5 28.5Q703-240 720-240t28.5-11.5ZM680-440h170l-90-120h-80v120ZM360-540Z'/></svg>");
}

/* Revenue Breakdown sub-cards: 3×2 grid (6 tiles), overriding the default
   flex-wrap layout used by the 4-card Recurring Revenue and Refunds sections. */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] > .pure-g:last-of-type > div {
	min-width: 0;
	width: auto;
	flex: none;
}

/* Recurring Revenue card icons — Material Symbols Outlined. */
/* MRR — date_range */
.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] > .pure-g:last-of-type > div:nth-child(1) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M291.5-411.5Q280-423 280-440t11.5-28.5Q303-480 320-480t28.5 11.5Q360-457 360-440t-11.5 28.5Q337-400 320-400t-28.5-11.5Zm160 0Q440-423 440-440t11.5-28.5Q463-480 480-480t28.5 11.5Q520-457 520-440t-11.5 28.5Q497-400 480-400t-28.5-11.5Zm160 0Q600-423 600-440t11.5-28.5Q623-480 640-480t28.5 11.5Q680-457 680-440t-11.5 28.5Q657-400 640-400t-28.5-11.5ZM200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z'/></svg>");
}
/* ARR — calendar_month */
.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] > .pure-g:last-of-type > div:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-188.5-11.5Q280-423 280-440t11.5-28.5Q303-480 320-480t28.5 11.5Q360-457 360-440t-11.5 28.5Q337-400 320-400t-28.5-11.5ZM640-400q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-188.5-11.5Q280-263 280-280t11.5-28.5Q303-320 320-320t28.5 11.5Q360-297 360-280t-11.5 28.5Q337-240 320-240t-28.5-11.5ZM640-240q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z'/></svg>");
}
/* Total New Subscriptions — cached */
.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] > .pure-g:last-of-type > div:nth-child(3) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M482-160q-134 0-228-93t-94-227v-7l-64 64-56-56 160-160 160 160-56 56-64-64v7q0 100 70.5 170T482-240q26 0 51-6t49-18l60 60q-38 22-78 33t-82 11Zm278-161L600-481l56-56 64 64v-7q0-100-70.5-170T478-720q-26 0-51 6t-49 18l-60-60q38-22 78-33t82-11q134 0 228 93t94 227v7l64-64 56 56-160 160Z'/></svg>");
}
/* Revenue Churn % — percent */
.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] > .pure-g:last-of-type > div:nth-child(4) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%233A4351' fill-opacity='0.89'><path d='M300-520q-58 0-99-41t-41-99q0-58 41-99t99-41q58 0 99 41t41 99q0 58-41 99t-99 41Zm0-80q25 0 42.5-17.5T360-660q0-25-17.5-42.5T300-720q-25 0-42.5 17.5T240-660q0 25 17.5 42.5T300-600Zm360 440q-58 0-99-41t-41-99q0-58 41-99t99-41q58 0 99 41t41 99q0 58-41 99t-99 41Zm42.5-97.5Q720-275 720-300t-17.5-42.5Q685-360 660-360t-42.5 17.5Q600-325 600-300t17.5 42.5Q635-240 660-240t42.5-17.5ZM216-160l-56-56 584-584 56 56-584 584Z'/></svg>");
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	color: #8493a8;
	text-transform: uppercase;
	letter-spacing: 0.48px;
	margin: 0 0 4px 0;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 6px;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	letter-spacing: 0;
	width: 100%;
}

.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box .hr-small {
	display: none;
	margin: 0;
}

/* Compare / multicurrency filter layout.
   When compare mode is active (`.tc-compare:not(.hidden)` exists inside
   `#main-filter-wrap`), filters render as two stacked rows: primary on top,
   comparison below, plus a trash-icon column on the right. */

/* Stack primary + comparison selects vertically inside each filter wrapper
   so the compare-row dropdowns line up underneath their primary counterparts. */
.ui-dashboard #main-filter-wrap #products-wrap,
.ui-dashboard #main-filter-wrap #data-range-wrap,
.ui-dashboard #main-filter-wrap #product-plan-wrap {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-self: flex-start;
	flex: 0 0 auto;
	width: auto;
}

/* Inside the column-flex wrappers above, `.tc-dropdown`'s `flex: 0 0 180px`
   would otherwise be interpreted as a 180px HEIGHT (flex-basis applies on
   the main axis). Reset to auto-basis + explicit 180×36 to keep the natural
   select height. The `.date_range` variant (custom-date wrap with two date
   inputs + clear icon) needs more room and is sized separately below. */
.ui-dashboard #main-filter-wrap #products-wrap > .tc-dropdown:not(.date_range),
.ui-dashboard #main-filter-wrap #data-range-wrap > .tc-dropdown:not(.date_range),
.ui-dashboard #main-filter-wrap #product-plan-wrap > .tc-dropdown:not(.date_range) {
	flex: 0 0 auto;
	width: 180px;
	max-width: 180px;
	height: 36px;
}

/* Custom-date wrap: two date inputs share the row evenly, clear icon pinned
   at the end. 280px keeps the YYYY-MM-DD values comfortably readable. The
   chrome (white bg, gray border, 8px radius) matches the styled selects. */
.ui-dashboard #main-filter-wrap #data-range-wrap > .date_range.tc-dropdown {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	width: 280px;
	max-width: 280px;
	height: 36px;
	margin: 0;
	padding: 0 12px;
	gap: 8px;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	box-sizing: border-box;
}
.ui-dashboard #main-filter-wrap #data-range-wrap > .date_range.tc-dropdown input {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	padding: 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #364152;
	background: transparent;
}
.ui-dashboard #main-filter-wrap #data-range-wrap > .date_range.tc-dropdown .date_range_clear {
	flex: 0 0 auto;
	top: 0;
	margin: 0;
	align-self: center;
	color: #677281;
}

/* Trash-icon button at end of each filter row (hidden until compare on). */
.ui-dashboard .tc-filter-clear-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 8px;
	border: 0;
	background: transparent;
	border-radius: 8px;
	cursor: pointer;
	flex: 0 0 auto;
	transition: background-color 0.15s ease;
	box-sizing: border-box;
	margin: 0;
	align-self: flex-start;
}

.ui-dashboard .tc-filter-clear-btn:hover {
	background: #f6f8f9;
}

.ui-dashboard .tc-filter-clear-btn svg {
	display: block;
}

/* The buttons are 32×32 sitting inside 36px rows — the +2px vertical
   padding aligns each icon with the select's chevron. */
.ui-dashboard .tc-filter-clear-col {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-self: flex-start;
	flex: 0 0 32px;
	width: 32px;
	margin: 0;
	padding: 2px 0;
	box-sizing: content-box;
}

.ui-dashboard .tc-filter-clear-col.hidden {
	display: none !important;
}

/* When compare is OFF (default), hide compare-only UI. */
.ui-dashboard .tc-compare.hidden {
	display: none !important;
}

/* When compare is ON, hide the now-redundant `Compare` toggle button —
   the trash buttons handle "exit compare". Class-toggle pattern (not :has)
   so the rule applies in browsers without :has() support; the matching
   .tc-compare-on class is toggled by the existing #stats-btn-compare
   click handler in account.html.twig. */
.ui-dashboard.tc-compare-on #stats-btn-compare {
	display: none;
}

.ui-dashboard #main-filter-wrap {
	align-items: flex-start;
}

/* Revenue Breakdown legend chips. */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .tc-breakdown-legend {
	gap: 16px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

/* Mobile breakdown detail panel — the tap-to-show inline list under the
   chart on phone widths. JS (account.html.twig ~2615+) writes a table
   with .tc-breakdown-dot / .tc-breakdown-label / .tc-breakdown-value
   columns plus a .tc-breakdown-detail-close button. Without this CSS
   the columns collapse to content-width and the value runs into long
   labels (e.g. "Shipping Collected$0.00"). */
.ui-dashboard .tc-breakdown-detail {
	display: none;
	position: relative;
	margin-top: 12px;
	padding: 16px;
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.ui-dashboard .tc-breakdown-detail.is-active {
	display: block;
}
.ui-dashboard .tc-breakdown-detail-close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #f6f8f9;
	color: #364152;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.ui-dashboard .tc-breakdown-detail-close:active {
	background: #e8ecef;
}
.ui-dashboard .tc-breakdown-detail-table {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0 0 0;
}
.ui-dashboard .tc-breakdown-detail-table td {
	padding: 6px 0;
	vertical-align: middle;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	line-height: 18px;
	color: #364152;
	border: 0;
}
.ui-dashboard .tc-breakdown-detail-table td:first-child {
	width: 16px;
	padding-right: 8px;
}
.ui-dashboard .tc-breakdown-detail-table .tc-breakdown-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	vertical-align: middle;
}
.ui-dashboard .tc-breakdown-detail-table .tc-breakdown-label {
	text-align: left;
	padding-right: 16px;
	color: #8493a8;
	white-space: nowrap;
}
.ui-dashboard .tc-breakdown-detail-table .tc-breakdown-value {
	text-align: right;
	font-weight: 600;
	color: #364152;
	white-space: nowrap;
	width: 1%;
}

/* Legend dot colors mirror the Chart.js bar palette so the tap-to-show
   detail panel's inline dots (driven by Chart.js labelColors) match the
   static legend above the chart. Changing CSS without also patching the
   JS chart config creates a visible mismatch in the detail panel — keep
   these in sync with the bar fills until the JS palette is touched. */
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .mark-selector.mark-net-revenue {
	background: #006b70;
}
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .mark-selector.mark-commission {
	background: #00a6aa;
}
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .mark-selector.mark-jv {
	background: #00c8c9;
}
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .mark-selector.mark-tax {
	background: #c0edea;
}
.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .mark-selector.mark-shipping {
	background: #dcf8f6;
}

/* KPI tile compare-mode value treatment: two stacked `● $value` rows,
   second uses a darker dot. The legacy `.graph-comparison` block provides
   the wrapper; we restyle it as a flush-bottom row (no divider). */
.ui-dashboard .tc-tabs-list a .graph-comparison {
	margin-top: 2px;
	width: 100%;
}

.ui-dashboard .tc-tabs-list a .graph-comparison .hr-small {
	display: none;
}

.ui-dashboard .tc-tabs-list a .graph-comparison .tc-flex {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
}

.ui-dashboard .tc-tabs-list a .graph-comparison h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	letter-spacing: 0;
	width: 100%;
}

/* Primary value row picks up the dot prefix when compare is on. */
.ui-dashboard .tc-tabs-list a > .tc-flex {
	gap: 8px;
	align-items: center;
}

.ui-dashboard .tc-tabs-list a .graph-trends.mark-selector,
.ui-dashboard .tc-tabs-list a .graph-comparison .mark-selector {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #00a6aa;
	display: inline-block;
	flex: 0 0 auto;
	margin: 0;
	font-size: 0;
}

.ui-dashboard .tc-tabs-list a .graph-trends.mark-selector::before,
.ui-dashboard .tc-tabs-list a .graph-comparison .mark-selector::before {
	display: none;
	content: none;
}

.ui-dashboard .tc-tabs-list a .graph-comparison .mark-selector.darker {
	background: #006b70;
}

/* Multicurrency picker: prefix the selected value with a colored dot. */
.ui-dashboard #stats-currency-wrap .tc-dropdown::before {
	content: '';
	position: absolute;
	left: 13px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -4px;
	border-radius: 50%;
	background: #00a6aa;
	z-index: 1;
	pointer-events: none;
}

.ui-dashboard #stats-currency-wrap .tc-dropdown select {
	padding-left: 29px !important;
}

/* Products and Sales report reskin — body class `prodreports` scopes all
   rules below to this report only. Behaviour-neutral / visual only. */
body.prodreports {
	background: #ffffff;
	overflow-x: clip;
}

/* Clip every wrapper so an overflowing child can't trigger page scroll. */
body.prodreports #layout,
body.prodreports .content,
body.prodreports .page-container {
	overflow-x: clip;
	max-width: 100%;
}

body.prodreports .ui-dashboard {
	overflow-x: clip;
	max-width: 1216px;
	margin: 0 auto;
}

/* Chart.js's size-monitor uses 1,000,000px-wide inner divs to detect resize.
   The inner divs MUST stay massive — clip the wrappers instead. */
.chartjs-size-monitor,
.chartjs-size-monitor-expand,
.chartjs-size-monitor-shrink {
	overflow: hidden !important;
}

/* Without this on the Source tab the size-monitor falls back to body and
   leaks its 1M-px children, triggering page horizontal scroll. */
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper {
	overflow: hidden;
}
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper .graph-content,
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper > [id^="tab-"] {
	position: relative;
	overflow: hidden;
}

/* Override the base 160px padding-bottom from `.ui-dashboard`. */
body.prodreports .ui-dashboard {
	padding-bottom: 48px;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 0 0;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .ui-dashboard-head {
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .ui-dashboard-head h2 {
	font-family: 'Inter', sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 32px;
	color: #28364a;
	margin: 0;
	letter-spacing: 0;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form {
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	margin: 0;
	width: auto;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap #data-range-wrap {
	width: 180px;
	flex: 0 0 180px;
	padding: 0;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap #data-range-wrap > .tc-dropdown {
	width: 180px;
	height: 36px;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	box-sizing: border-box;
}

/* The global .tc-dropdown select reserves 37px left padding for a colored
   mark-selector that doesn't exist on these controls — override with the
   Figma 13/28 values so the text doesn't sit under the chevron. */
body.prodreports .ui-dashboard #data-range-wrap > .tc-dropdown > select,
body.prodreports .ui-dashboard #stats-currency-wrap > .tc-dropdown > select {
	width: 100% !important;
	height: 100% !important;
	min-width: 0;
	border: 0 !important;
	border-radius: 0 !important;
	box-sizing: border-box !important;
	background-color: transparent;
	padding-left: 13px !important;
	padding-right: 28px !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7.41' fill='%232b384a'><path d='M10.59 0L6 4.58L1.41 0L0 1.41L6 7.41L12 1.41L10.59 0Z'/></svg>");
	background-position: right 17px center;
	background-size: 8px auto;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 20px;
	color: #2b384a;
}
body.prodreports .ui-dashboard #data-range-wrap > .tc-dropdown::before {
	content: none !important;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap #stats-currency-wrap {
	width: 72px;
	flex: 0 0 72px;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap #stats-currency-wrap .tc-dropdown {
	width: 72px;
	height: 36px;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	box-sizing: border-box;
}

/* Suppress the inherited mark-selector dot + ::after chevron. */
body.prodreports .ui-dashboard #stats-currency-wrap .tc-dropdown::before,
body.prodreports .ui-dashboard #stats-currency-wrap .tc-dropdown::after,
body.prodreports .ui-dashboard #stats-currency-wrap .tc-dropdown .mark-selector {
	content: none !important;
	display: none !important;
}

body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group > .tc-flex.tc-items-center {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.prodreports .ui-dashboard .tc-stats-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 8px;
	height: 36px;
	width: 17px;
	flex: 0 0 17px;
	box-sizing: border-box;
}

body.prodreports .ui-dashboard .tc-stats-divider::before {
	content: '';
	display: block;
	width: 1px;
	height: 24px;
	background: #d1d7de;
	flex: 0 0 1px;
}

body.prodreports .ui-dashboard #stats-btn-filter {
	padding: 8px 18px;
	height: 36px;
	background: #006b70;
	color: #ffffff;
	border: 0;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	white-space: nowrap;
	box-sizing: border-box;
	transition: background-color 0.15s ease;
}

body.prodreports .ui-dashboard #stats-btn-filter:hover {
	background: #005559;
}

body.prodreports .ui-dashboard > hr.hr-small {
	display: none;
}

body.prodreports .ui-dashboard .filter-list-wrapper {
	margin: 24px 0 16px 0;
	padding: 0;
}

body.prodreports .ui-dashboard .filter-list-wrapper > .pure-u-1 > .tc-flex.tc-gap-10 {
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

body.prodreports .ui-dashboard #product-filter-list,
body.prodreports .ui-dashboard #location-filter-list,
body.prodreports .ui-dashboard #tag-filter-list,
body.prodreports .ui-dashboard #country-filter-list,
body.prodreports .ui-dashboard #utm-filter-list,
body.prodreports .ui-dashboard #coupon-filter-list {
	display: flex;
	align-items: center;
	gap: 8px;
}

body.prodreports .ui-dashboard #product-filter-list > p,
body.prodreports .ui-dashboard #location-filter-list > p,
body.prodreports .ui-dashboard #tag-filter-list > p,
body.prodreports .ui-dashboard #country-filter-list > p,
body.prodreports .ui-dashboard #utm-filter-list > p,
body.prodreports .ui-dashboard #coupon-filter-list > p {
	display: none;
}

body.prodreports .ui-dashboard .tc-badge {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 2px 12px;
	background: #e8ecef;
	border: 0;
	border-radius: 999px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: #364152;
	box-sizing: border-box;
	cursor: default;
	white-space: nowrap;
}

body.prodreports .ui-dashboard .filter-list-wrapper .tc-badge {
	cursor: pointer;
	transition: background 120ms, color 120ms;
}
body.prodreports .ui-dashboard .filter-list-wrapper .tc-badge:hover {
	background: #d1d7de;
	color: #1f2937;
}

body.prodreports .ui-dashboard .tc-badge::before {
	content: none;
	display: none;
}

body.prodreports .ui-dashboard .tc-report-tabs {
	margin: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #e8ecef;
	gap: 32px;
	background: transparent;
}

body.prodreports .ui-dashboard .tc-report-tab-list > li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-list > li > a {
	display: inline-block;
	padding: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #8493a8;
	text-align: center;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	background: transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

body.prodreports .ui-dashboard .tc-report-tab-list > li > a:hover {
	color: #2a3648;
}

body.prodreports .ui-dashboard .tc-report-tab-list > li.active > a {
	color: #2a3648;
	border-bottom-color: #006b70;
	font-weight: 500;
	padding: 8px 8px 10px 8px;
}

body.prodreports .ui-dashboard .tc-report-tab-list > li > a[disabled="disabled"],
body.prodreports .ui-dashboard .tc-report-tab-list > li:has(> a[disabled]) > a {
	color: #c7ccd5;
	cursor: not-allowed;
}

body.prodreports .ui-dashboard .tc-report-tab-content {
	margin-top: 40px;
	padding-top: 0;
}

/* `overflow: clip` so inner active-tile bg / chart lines don't bleed past
   the rounded corners. Safe override of the base `.tc-tabs { overflow: visible }`
   here because prodreports KPI tile tooltips are hidden (rule below). */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs {
	margin: 0;
	overflow: clip;
}

/* Parent `.tc-tabs gap: 32px` already spaces KPI row → chart. */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs > .ui-statistics-graph-wrapper {
	padding-top: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section {
	background: #ffffff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 40px 0 0 0;
	min-width: 0;
	max-width: 100%;
}

/* Outer h2 hidden — inner `.tc-flex.tc-between` row owns the header. */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section > h2 {
	display: none;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	padding: 24px;
	overflow: clip;
	/* `.tc-table-section` defaults to content-box; force border-box so the
	   24px padding + 1px border don't bleed past the 1152px container. */
	box-sizing: border-box;
	width: 100%;
}

/* Hide the duplicate outer title row — the inner `.tc-flex.tc-between`
   below is the actual title+controls header. */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) > .tc-flex.tc-items-center.tc-gap-10 {
	display: none;
}

body.prodreports .ui-dashboard .tc-table-wrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
}

body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between {
	align-items: center;
	gap: 16px;
}

body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between > p {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 8px;
}

body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between > p .icon.tc-tooltip,
body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between > p .th-tooltip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
}

/* Inline Material `info` (outlined) icon next to the Sources card title.
   SVG paints via `currentColor`; colour matches the Figma asset's
   #3A4351 at 0.89 opacity. `z-index` lifts the hint tooltip above the
   adjacent native `<select>` chrome which would otherwise occlude it. */
body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between > p .tc-sources-info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	color: #3A4351;
	opacity: 0.89;
	position: relative;
	z-index: 100;
}
body.prodreports .ui-dashboard .tc-table-wrap > .tc-flex.tc-between > p .tc-sources-info svg {
	display: block;
	width: 16px;
	height: 16px;
}

body.prodreports .ui-dashboard .tc-table-wrap .pure-form.pure-form-aligned {
	margin: 0;
	padding: 0;
	width: auto;
	max-width: none;
	flex: 0 0 auto;
}

body.prodreports .ui-dashboard .tc-table-wrap .pure-form .ui-input-group {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

body.prodreports .ui-dashboard .tc-table-wrap .pure-form .ui-input-group > p.tc-nowrap {
	display: none;
}

body.prodreports .ui-dashboard .tc-table-wrap .pure-form .tc-w-100 {
	width: auto;
	min-width: 180px;
}

body.prodreports .ui-dashboard .tc-table-wrap .pure-form .tc-dropdown {
	width: 180px;
	height: 36px;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) > .tc-table-wrap {
	gap: 24px;
}

/* Pin the Sources canvas to a 480px-tall parent. Chart.js's responsive
   size-monitor would otherwise inline `padding-bottom: 358px` / `height: 0`
   to preserve its 1684×684 aspect, clipping the chart. */
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper.tc-graph-sources {
	min-height: 504px;
	padding-bottom: 0 !important;
	height: auto !important;
}
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper.tc-graph-sources > .graph-content {
	height: 480px;
	max-height: 480px;
}
/* Override the base `.graph-content canvas { height: 342px !important; }`. */
body.prodreports .ui-dashboard .ui-statistics-graph-wrapper.tc-graph-sources > .graph-content > canvas {
	height: 100% !important;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-dropdown {
	height: 34px;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-dropdown select {
	/* Figma 292-1220: padding 7px + line-height 20px + padding 7px = 34px.
	   Below that the "g" / "p" descenders on labels like "Campaign" clip. */
	height: 34px !important;
	/* padding-right = 12px gap + 16px chevron so text doesn't overlap. */
	padding: 7px 28px 7px 13px !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'><path d='M11.06 5.53L8 8.58L4.94 5.53L4 6.47L8 10.47L12 6.47L11.06 5.53Z' fill='%233A4351' fill-opacity='0.89'/></svg>") !important;
	background-position: right 12px center !important;
}

/* Flatten the legacy `.pure-form > .pure-g > .pure-u-1-2` two-column grid
   into a single `flex gap-[8px]` row. */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form > .pure-g {
	display: flex;
	gap: 8px;
	width: auto;
	margin: 0;
	flex-wrap: nowrap;
	justify-content: flex-end;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form > .pure-g > .pure-u-1-2 {
	padding: 0;
	flex: 0 0 auto;
	width: auto;
}

/* The legacy `.tc-w-80` is too narrow for the reskin's 180px dropdown and
   clips the chevron. Size the inner wrappers to the dropdown instead. */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .ui-input-group,
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-w-80 {
	width: auto;
	padding: 0;
	flex: 0 0 auto;
}

body.prodreports .ui-dashboard .tc-table-wrap > .hr-small {
	display: none;
}

body.prodreports .ui-dashboard .tc-table-wrap .table-wrap {
	background: transparent;
	padding: 0;
	border: 0;
	overflow-x: auto;
}

body.prodreports .ui-dashboard .tc-table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	margin: 0;
}

body.prodreports .ui-dashboard .tc-table thead {
	background: #f6f8f9;
}

body.prodreports .ui-dashboard .tc-table thead th {
	height: 41px;
	padding: 10px 8px 11px 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500 !important;
	line-height: 20px;
	color: #8493a8 !important;
	text-align: left;
	text-transform: none !important;
	border-top: 0;
	border-bottom: 1px solid #e8ecef;
	white-space: nowrap;
	background: #f6f8f9;
	vertical-align: top;
	box-sizing: border-box;
}

body.prodreports .ui-dashboard .tc-table thead th:first-child,
body.prodreports .ui-dashboard .tc-table thead th:last-child {
	border-radius: 0;
}

body.prodreports .ui-dashboard .tc-table thead th .icon.tc-tooltip,
body.prodreports .ui-dashboard .tc-table thead th .th-tooltip {
	color: #8493a8;
	margin-left: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	position: relative;
	top: -1px;
}

/* Swap legacy FontAwesome (solid) for the Figma `info` outlined SVG. */
body.prodreports .ui-dashboard .icon.tc-tooltip > i.fa-info-circle,
body.prodreports .ui-dashboard .th-tooltip > i.fa-info-circle,
body.prodreports .ui-dashboard .tc-table thead th .icon.tc-tooltip > i,
body.prodreports .ui-dashboard .tc-table thead th .th-tooltip > i {
	font-size: 0 !important;
	line-height: 0 !important;
	display: inline-block !important;
	width: 16px !important;
	height: 16px !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.3333 13.3333' fill='%233A4351' fill-opacity='0.89'><path d='M6 3.33333H7.33333V4.66667H6V3.33333ZM6 6H7.33333V10H6V6ZM6.66667 0C2.98667 0 0 2.98667 0 6.66667C0 10.3467 2.98667 13.3333 6.66667 13.3333C10.3467 13.3333 13.3333 10.3467 13.3333 6.66667C13.3333 2.98667 10.3467 0 6.66667 0ZM6.66667 12C3.72667 12 1.33333 9.60667 1.33333 6.66667C1.33333 3.72667 3.72667 1.33333 6.66667 1.33333C9.60667 1.33333 12 3.72667 12 6.66667C12 9.60667 9.60667 12 6.66667 12Z'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 13.33px 13.33px !important;
	vertical-align: middle;
}
body.prodreports .ui-dashboard .icon.tc-tooltip > i.fa-info-circle::before,
body.prodreports .ui-dashboard .th-tooltip > i.fa-info-circle::before,
body.prodreports .ui-dashboard .tc-table thead th .icon.tc-tooltip > i::before,
body.prodreports .ui-dashboard .tc-table thead th .th-tooltip > i::before {
	content: none !important;
	display: none !important;
}

body.prodreports .ui-dashboard .tc-table tbody td {
	height: 37px;
	padding: 8px 8px 9px 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #364152 !important;
	border-bottom: 1px solid #e8ecef;
	vertical-align: top;
	box-sizing: border-box;
}

body.prodreports .ui-dashboard .tc-table tbody tr:last-child td {
	border-bottom: 0;
}

body.prodreports .ui-dashboard .tc-table tbody tr:hover td {
	background: #fafbfc;
}

body.prodreports .ui-dashboard .tc-table-no-data {
	text-align: center;
	padding: 48px 16px;
	font-family: 'Inter', sans-serif;
	color: #8493a8;
}

body.prodreports .ui-dashboard .tc-table-no-data > .icon-no-data,
body.prodreports .ui-dashboard .tc-table-no-data > .icon-coupon {
	display: block;
	margin: 0 auto 12px auto;
	width: 40px;
	height: 40px;
	opacity: 0.6;
}

body.prodreports .ui-dashboard .tc-table-no-data > p {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #8493a8;
}

/* Source tab Stats grid: 4 equal-width cards. The first 2 are nested inside
   a `.pure-u-lg-1-2.tc-soon` wrapper, cards 3 & 4 are direct `.pure-u-lg-1-4`
   siblings — flatten the math with calc() so all 4 leaf cards render equal. */
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	width: 100%;
	margin: 0;
}
/* 4-up only at ≥1400px. Below that (most laptop widths with the sidebar
   present) cards squeeze to ~218–245px and labels overflow / the "Coming
   Soon" badge crowds the icon — fall back to 2-up. */
@media (min-width: 1400px) {
	/* `:has()` scopes nowrap to the 4-card Stats grid only — sibling Top 5
	   Territories grid (.pure-u-lg-1-5 children) still needs to wrap. */
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g:has(> .pure-u-lg-1-2) {
		flex-wrap: nowrap;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 {
		flex: 0 0 calc(50% - 8px);
		min-width: 0;
		padding: 0;
		display: flex;
		gap: 16px;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 > .pure-g {
		display: flex;
		gap: 16px;
		flex: 1 1 0;
		width: 100%;
		margin: 0;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 > .pure-g > div {
		flex: 1 1 0;
		min-width: 0;
		padding: 0;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-4 {
		flex: 0 0 calc(25% - 12px);
		min-width: 0;
		padding: 0;
	}
}
/* <1400px: 2-up layout. Row 1 = .tc-soon wrapper (cards 1+2 inner 50/50);
   row 2 = the two .pure-u-lg-1-4 siblings at 50% each. */
@media (max-width: 1399px) {
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 {
		flex: 0 0 100%;
		min-width: 0;
		padding: 0;
		display: flex;
		gap: 16px;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 > .pure-g {
		display: flex;
		gap: 16px;
		width: 100%;
		margin: 0;
		flex: 1 1 0;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-2 > .pure-g > div {
		flex: 1 1 0;
		min-width: 0;
		padding: 0;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-4 {
		flex: 0 0 calc(50% - 8px);
		min-width: 0;
		padding: 0;
	}
}

/* Mobile only — turn the Source-tab Stats section's 4 cards into a
   single 2x2 grid. The default markup nests the two "Coming soon"
   cards inside a `.tc-soon` wrapper, which at phone widths produces
   a lopsided 3-cards-in-row-1 / 1-card-in-row-2 layout (cards 1+2
   shrink to ~80px because they share half the row).
   `:has(> .pure-g > .tc-soon)` scopes this to ONLY the Stats section
   — Top 5 Territories and Territories Breakdown have no `.tc-soon`
   descendant and stay on their existing layout. `display: contents`
   on the wrapper flattens its 2 inner cards into the outer grid so
   all 4 become direct grid items. */
@media (max-width: 767px) {
	body.prodreports .ui-dashboard #source > .tc-table-section:has(> .pure-g > .tc-soon) > .pure-g {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section:has(> .pure-g > .tc-soon) > .pure-g > .tc-soon,
	body.prodreports .ui-dashboard #source > .tc-table-section:has(> .pure-g > .tc-soon) > .pure-g > .tc-soon > .pure-g {
		display: contents;
	}
	body.prodreports .ui-dashboard #source > .tc-table-section:has(> .pure-g > .tc-soon) > .pure-g > div,
	body.prodreports .ui-dashboard #source > .tc-table-section:has(> .pure-g > .tc-soon) > .pure-g > .tc-soon > .pure-g > div {
		width: auto;
		min-width: 0;
		padding: 0;
	}
}

body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon > .pure-g > div:nth-child(1) .tc-box::before,
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon > .pure-g > div:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.3333 12.5' fill='%233A4351' fill-opacity='0.89'><path d='M9.16667 1.66667C12.325 1.66667 15.1417 3.44167 16.5167 6.25C15.1417 9.05833 12.3333 10.8333 9.16667 10.8333C6 10.8333 3.19167 9.05833 1.81667 6.25C3.19167 3.44167 6.00833 1.66667 9.16667 1.66667ZM9.16667 0C5 0 1.44167 2.59167 0 6.25C1.44167 9.90833 5 12.5 9.16667 12.5C13.3333 12.5 16.8917 9.90833 18.3333 6.25C16.8917 2.59167 13.3333 0 9.16667 0ZM9.16667 4.16667C10.3167 4.16667 11.25 5.1 11.25 6.25C11.25 7.4 10.3167 8.33333 9.16667 8.33333C8.01667 8.33333 7.08333 7.4 7.08333 6.25C7.08333 5.1 8.01667 4.16667 9.16667 4.16667ZM9.16667 2.5C7.1 2.5 5.41667 4.18333 5.41667 6.25C5.41667 8.31667 7.1 10 9.16667 10C11.2333 10 12.9167 8.31667 12.9167 6.25C12.9167 4.18333 11.2333 2.5 9.16667 2.5Z'/></svg>") !important;
	background-size: 18.3333px 12.5px !important;
}
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-4:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16.6729 16.6667' fill='%233A4351' fill-opacity='0.89'><path d='M12.125 9.16667C12.75 9.16667 13.3 8.825 13.5833 8.30833L16.5667 2.9C16.875 2.35 16.475 1.66667 15.8417 1.66667H3.50833L2.725 0H0V1.66667H1.66667L4.66667 7.99167L3.54167 10.025C2.93333 11.1417 3.73333 12.5 5 12.5H15V10.8333H5L5.91667 9.16667H12.125ZM4.3 3.33333H14.425L12.125 7.5H6.275L4.3 3.33333ZM5 13.3333C4.08333 13.3333 3.34167 14.0833 3.34167 15C3.34167 15.9167 4.08333 16.6667 5 16.6667C5.91667 16.6667 6.66667 15.9167 6.66667 15C6.66667 14.0833 5.91667 13.3333 5 13.3333ZM13.3333 13.3333C12.4167 13.3333 11.675 14.0833 11.675 15C11.675 15.9167 12.4167 16.6667 13.3333 16.6667C14.25 16.6667 15 15.9167 15 15C15 14.0833 14.25 13.3333 13.3333 13.3333Z'/></svg>") !important;
	background-size: 16.6729px 16.6667px !important;
}
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .pure-u-lg-1-4:nth-child(3) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.3367 16.6583' fill='%233A4351' fill-opacity='0.89'><path d='M9.35333 14.875C9.20333 15.025 8.93666 15.05 8.76166 14.875C8.61166 14.725 8.58666 14.4583 8.76166 14.2833L11.5867 11.4583L10.4117 10.2833L7.58666 13.1083C7.42833 13.275 7.16166 13.2667 6.995 13.1083C6.82 12.9333 6.845 12.6667 6.995 12.5167L9.82 9.69167L8.645 8.51667L5.82 11.3417C5.67 11.4917 5.40333 11.5167 5.22833 11.3417C5.07 11.1833 5.07 10.9167 5.22833 10.75L8.05333 7.925L6.87 6.75L4.045 9.575C3.895 9.725 3.62833 9.75 3.45333 9.575C3.295 9.40833 3.295 9.15 3.45333 8.98333L7.10333 5.33333L8.66166 6.88333C9.45333 7.675 10.82 7.66667 11.6117 6.88333C12.4283 6.06667 12.4283 4.75 11.6117 3.93333L10.0617 2.38333L10.295 2.15C10.945 1.5 12.0033 1.5 12.6533 2.15L16.1867 5.68333C16.8367 6.33333 16.8367 7.39167 16.1867 8.04167L9.35333 14.875ZM17.3617 9.225C18.6617 7.925 18.6617 5.81667 17.3617 4.50833L13.8283 0.975C12.5283 -0.325 10.42 -0.325 9.11166 0.975L8.87833 1.20833L8.645 0.975C7.345 -0.325 5.23667 -0.325 3.92833 0.975L0.978332 3.925C-0.205001 5.10833 -0.313335 6.95 0.644998 8.25L1.85333 7.04167C1.52833 6.41667 1.63667 5.625 2.16167 5.1L5.11167 2.15C5.76167 1.5 6.82 1.5 7.47 2.15L10.4367 5.11667C10.5867 5.26667 10.6117 5.53333 10.4367 5.70833C10.2617 5.88333 9.995 5.85833 9.845 5.70833L7.10333 2.975L2.27 7.8C1.45333 8.60833 1.45333 9.93333 2.27 10.75C2.595 11.075 3.01167 11.275 3.45333 11.3333C3.51167 11.7667 3.70333 12.1833 4.03667 12.5167C4.37 12.85 4.78667 13.0417 5.22 13.1C5.27833 13.5333 5.47 13.95 5.80333 14.2833C6.13667 14.6167 6.55333 14.8083 6.98666 14.8667C7.045 15.3167 7.245 15.725 7.57 16.05C7.96166 16.4417 8.48666 16.6583 9.045 16.6583C9.60333 16.6583 10.1283 16.4417 10.52 16.05L17.3617 9.225Z'/></svg>") !important;
	background-size: 18.3367px 16.6583px !important;
}

/* "Coming Soon" badge: absolute pill in the top-right of cards 1 & 2. */
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon > .pure-g > div .tc-box {
	position: relative;
}
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon > .pure-g > div .tc-box::after {
	content: 'Coming Soon';
	position: absolute;
	top: 23px;
	right: 23px;
	background: #e8ecef;
	color: #364152;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: 0;
	padding: 4px 8px;
	border-radius: 8px;
	text-transform: none;
	white-space: nowrap;
	pointer-events: none;
}
/* Mobile: shrink the badge so it tucks cleanly into the top-right of
   the narrower 2x2-grid card without colliding with the icon block. */
@media (max-width: 767px) {
	body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon > .pure-g > div .tc-box::after {
		top: 12px;
		right: 12px;
		font-size: 10px;
		line-height: 14px;
		padding: 2px 6px;
		border-radius: 6px;
	}
}

/* Hide the legacy FontAwesome (solid) glyph and render the Figma `info`
   SVG (outlined) via the span's background instead. */
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g .tc-box p .icon.tc-tooltip {
	display: inline-block !important;
	flex: 0 0 16px;
	width: 16px !important;
	height: 16px !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.3333 13.3333' fill='%233A4351' fill-opacity='0.89'><path d='M6 3.33333H7.33333V4.66667H6V3.33333ZM6 6H7.33333V10H6V6ZM6.66667 0C2.98667 0 0 2.98667 0 6.66667C0 10.3467 2.98667 13.3333 6.66667 13.3333C10.3467 13.3333 13.3333 10.3467 13.3333 6.66667C13.3333 2.98667 10.3467 0 6.66667 0ZM6.66667 12C3.72667 12 1.33333 9.60667 1.33333 6.66667C1.33333 3.72667 3.72667 1.33333 6.66667 1.33333C9.60667 1.33333 12 3.72667 12 6.66667C12 9.60667 9.60667 12 6.66667 12Z'/></svg>");
	background-size: 13.3333px 13.3333px;
	background-position: center;
	background-repeat: no-repeat;
	font-size: 0;
	vertical-align: middle;
}
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g .tc-box p .icon.tc-tooltip i {
	display: none !important;
}
/* Coming-Soon cards show the badge instead of the ⓘ tooltip. */
body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g > .tc-soon .tc-box p .icon.tc-tooltip {
	display: none !important;
}

body.prodreports .ui-dashboard #source > .tc-table-section > .pure-g .tc-box {
	border-color: #d1d7de;
}

/* Map fills: page-level CSS targeting `.tc-graph-territories ...` beats the
   element-only rules in worldLow.svg without `!important`. */
body.prodreports .ui-dashboard .tc-graph-territories svg .land {
	fill: #d1d7de;
}
body.prodreports .ui-dashboard .tc-graph-territories svg .land.fill-green-1 {
	fill: #c0edea;  /* primitive-colors/primary/200 */
}
body.prodreports .ui-dashboard .tc-graph-territories svg .land.fill-green-2 {
	fill: #00c8c9;  /* primitive-colors/primary/400 */
}
body.prodreports .ui-dashboard .tc-graph-territories svg .land.fill-green-3 {
	fill: #00a6aa;  /* primitive-colors/primary/500 */
}
body.prodreports .ui-dashboard .tc-graph-territories svg .land.fill-green-4 {
	fill: #006b70;  /* primitive-colors/primary/700 */
}
body.prodreports .ui-dashboard .tc-graph-territories svg .land.fill-green-5 {
	fill: #004b4e;  /* primitive-colors/primary/900 */
}

body.prodreports .ui-dashboard #territories-range-label {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
	justify-content: center;
	margin: 24px 0 0 0;
}
body.prodreports .ui-dashboard #territories-range-label > div {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}
/* Replace the legacy `●` text bullet with an 8×8 round bg-color div. */
body.prodreports .ui-dashboard #territories-range-label .mark-selector {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 100px;
	margin: 0;
	flex: 0 0 8px;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector::before {
	content: none;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.gray {
	background: #d1d7de;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.green-1 {
	background: #c0edea;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.green-2 {
	background: #00c8c9;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.green-3 {
	background: #00a6aa;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.green-4 {
	background: #006b70;
}
body.prodreports .ui-dashboard #territories-range-label .mark-selector.green-5 {
	background: #004b4e;
}
body.prodreports .ui-dashboard #territories-range-label > div > p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: #364152;
	margin: 0;
	white-space: nowrap;
}

/* Top 5 Territories cards hold only a label + value. Strip the inherited
   icon, dot and divider that the shared `.pure-g .tc-box` rules would add. */
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"]::before {
	display: none;
}
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"] .mark-selector {
	display: none;
}
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"] .hr-small {
	display: none;
}
/* `height: 100%` so siblings stay equal-height when one country label wraps
   to two lines (e.g. "United Kingdom"). */
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"] {
	gap: 4px;
	height: 100%;
	box-sizing: border-box;
}
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"] > .tc-flex {
	display: block;
	margin: 0;
}
body.prodreports .ui-dashboard #source > .tc-table-section .tc-box[id^="stats-country-"] p {
	white-space: normal;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin: 40px 0 0 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > h2 {
	display: block;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0 0 16px 0;
	letter-spacing: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g {
	display: flex;
	gap: 16px;
	margin: 0;
	flex-wrap: wrap;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div {
	padding: 0;
	flex: 1 1 200px;
	min-width: 0;
	width: auto;
}
@media (min-width: 768px) {
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div {
		flex: 1 1 0;
	}
	/* `flex-shrink: 0` so the row wraps when 5 cards can't fit at their basis,
	   instead of shrinking each card below 140px and clipping the "$XXX.XX". */
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > .pure-u-lg-1-5 {
		flex: 1 0 140px;
	}
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	padding: 24px;
	margin: 0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0;
	height: 100%;
	box-sizing: border-box;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	background: #e8ecef;
	border-radius: 8px;
	background-repeat: no-repeat;
	background-position: center;
	flex: 0 0 auto;
	margin: 0 0 32px 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(1) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 16.6667' fill='%233A4351' fill-opacity='0.89'><path d='M13.75 1.25L12.5 0L11.25 1.25L10 0L8.75 1.25L7.5 0L6.25 1.25L5 0L3.75 1.25L2.5 0L1.25 1.25L0 0V16.6667L1.25 15.4167L2.5 16.6667L3.75 15.4167L5 16.6667L6.25 15.4167L7.5 16.6667L8.75 15.4167L10 16.6667L11.25 15.4167L12.5 16.6667L13.75 15.4167L15 16.6667V0L13.75 1.25ZM13.3333 14.2417H1.66667V2.425H13.3333V14.2417ZM2.5 10.8333H12.5V12.5H2.5V10.8333ZM2.5 7.5H12.5V9.16667H2.5V7.5ZM2.5 4.16667H12.5V5.83333H2.5V4.16667Z'/></svg>");
	background-size: 15px 16.6667px;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(2) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16.6667 11.6667' fill='%233A4351' fill-opacity='0.89'><path d='M5.83333 7.29167C3.88333 7.29167 0 8.26667 0 10.2083V11.6667H11.6667V10.2083C11.6667 8.26667 7.78333 7.29167 5.83333 7.29167ZM1.95 10C2.65 9.51667 4.34167 8.95833 5.83333 8.95833C7.325 8.95833 9.01667 9.51667 9.71667 10H1.95ZM5.83333 5.83333C7.44167 5.83333 8.75 4.525 8.75 2.91667C8.75 1.30833 7.44167 0 5.83333 0C4.225 0 2.91667 1.30833 2.91667 2.91667C2.91667 4.525 4.225 5.83333 5.83333 5.83333ZM5.83333 1.66667C6.525 1.66667 7.08333 2.225 7.08333 2.91667C7.08333 3.60833 6.525 4.16667 5.83333 4.16667C5.14167 4.16667 4.58333 3.60833 4.58333 2.91667C4.58333 2.225 5.14167 1.66667 5.83333 1.66667ZM11.7 7.34167C12.6667 8.04167 13.3333 8.975 13.3333 10.2083V11.6667H16.6667V10.2083C16.6667 8.525 13.75 7.56667 11.7 7.34167ZM10.8333 5.83333C12.4417 5.83333 13.75 4.525 13.75 2.91667C13.75 1.30833 12.4417 0 10.8333 0C10.3833 0 9.96667 0.108333 9.58333 0.291667C10.1083 1.03333 10.4167 1.94167 10.4167 2.91667C10.4167 3.89167 10.1083 4.8 9.58333 5.54167C9.96667 5.725 10.3833 5.83333 10.8333 5.83333Z'/></svg>");
	background-size: 16.6667px 11.6667px;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(3) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.3333 13.3333' fill='%233A4351' fill-opacity='0.89'><path d='M15.8333 4.16667V1.66667H14.1667V4.16667H11.6667V5.83333H14.1667V8.33333H15.8333V5.83333H18.3333V4.16667H15.8333ZM6.66667 6.66667C8.50833 6.66667 10 5.175 10 3.33333C10 1.49167 8.50833 0 6.66667 0C4.825 0 3.33333 1.49167 3.33333 3.33333C3.33333 5.175 4.825 6.66667 6.66667 6.66667ZM6.66667 1.66667C7.58333 1.66667 8.33333 2.41667 8.33333 3.33333C8.33333 4.25 7.58333 5 6.66667 5C5.75 5 5 4.25 5 3.33333C5 2.41667 5.75 1.66667 6.66667 1.66667ZM11.9917 8.8C10.5917 8.08333 8.775 7.5 6.66667 7.5C4.55833 7.5 2.74167 8.08333 1.34167 8.8C0.508333 9.225 0 10.0833 0 11.0167V13.3333H13.3333V11.0167C13.3333 10.0833 12.825 9.225 11.9917 8.8ZM11.6667 11.6667H1.66667V11.0167C1.66667 10.7 1.83333 10.4167 2.1 10.2833C3.09167 9.775 4.69167 9.16667 6.66667 9.16667C8.64167 9.16667 10.2417 9.775 11.2333 10.2833C11.5 10.4167 11.6667 10.7 11.6667 11.0167V11.6667Z'/></svg>");
	background-size: 18.3333px 13.3333px;
}
/* Refunds isn't in Figma's design; use Material `swap_horiz` to read as "return / exchange". */
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(4) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A4351' fill-opacity='0.89'><path d='M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z'/></svg>");
	background-size: 20px 16px;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(5) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.3333 13.3333' fill='%233A4351' fill-opacity='0.89'><path d='M15 8.33333V1.66667C15 0.75 14.25 0 13.3333 0H1.66667C0.75 0 0 0.75 0 1.66667V8.33333C0 9.25 0.75 10 1.66667 10H13.3333C14.25 10 15 9.25 15 8.33333ZM13.3333 8.33333H1.66667V1.66667H13.3333V8.33333ZM7.5 2.5C6.11667 2.5 5 3.61667 5 5C5 6.38333 6.11667 7.5 7.5 7.5C8.88333 7.5 10 6.38333 10 5C10 3.61667 8.88333 2.5 7.5 2.5ZM18.3333 2.5V11.6667C18.3333 12.5833 17.5833 13.3333 16.6667 13.3333H2.5V11.6667H16.6667V2.5H18.3333Z'/></svg>");
	background-size: 18.3333px 13.3333px;
}
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div:nth-child(6) .tc-box::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 16.6667' fill='%233A4351' fill-opacity='0.89'><path d='M13.3333 1.66667H12.5V0H10.8333V1.66667H4.16667V0H2.5V1.66667H1.66667C0.741667 1.66667 0.00833333 2.41667 0.00833333 3.33333L0 15C0 15.9167 0.741667 16.6667 1.66667 16.6667H13.3333C14.25 16.6667 15 15.9167 15 15V3.33333C15 2.41667 14.25 1.66667 13.3333 1.66667ZM13.3333 15H1.66667V6.66667H13.3333V15ZM13.3333 5H1.66667V3.33333H13.3333V5ZM7.5 9.16667H11.6667V13.3333H7.5V9.16667Z'/></svg>");
	background-size: 15px 16.6667px;
}

body.prodreports .ui-dashboard .tc-tabs-list a p .icon.tc-tooltip,
body.prodreports .ui-dashboard .tc-tabs-list a p .th-tooltip,
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box p .icon.tc-tooltip,
body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box p .th-tooltip {
	display: none !important;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box p {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	color: #8493a8;
	text-transform: uppercase;
	letter-spacing: 0.48px;
	margin: 0 0 4px 0;
	width: 100%;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 6px;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	margin: 0;
	width: 100%;
	letter-spacing: 0;
}

body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) .tc-box .hr-small {
	display: none;
}

body.prodreports .ui-dashboard .tc-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 16px 0;
	flex-wrap: wrap;
}
body.prodreports .ui-dashboard .tc-section-head > h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
	margin: 0;
	white-space: nowrap;
}
body.prodreports .ui-dashboard .tc-section-controls {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	position: relative;
}

body.prodreports .ui-dashboard .tc-cols-btn {
	display: inline-flex;
	align-items: center;
	gap: 0;
	height: 36px;
	padding: 8px;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #364152;
	cursor: pointer;
	transition: background 120ms, border-color 120ms;
}
body.prodreports .ui-dashboard .tc-cols-btn:hover {
	background: #f6f8f9;
}
body.prodreports .ui-dashboard .tc-cols-btn:focus-visible {
	outline: 2px solid #006b70;
	outline-offset: 1px;
}
body.prodreports .ui-dashboard .tc-cols-btn-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #364152;
}
body.prodreports .ui-dashboard .tc-cols-btn-icon > svg {
	width: 100%;
	height: auto;
	display: block;
}
body.prodreports .ui-dashboard .tc-cols-btn-text {
	display: inline-flex;
	padding: 0 6px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 14px;
	line-height: 20px;
	color: #364152;
}

/* On mobile the section heading sits on its own row and the controls
   (Columns toggle + Order-by dropdown) take a full-width row below it,
   so there's room for the "Columns" label alongside the icon — no need
   to hide it. The dropdown stretches to fill the remaining width via
   the `tc-section-order { flex: 1 1 auto }` rule below. */


body.prodreports .ui-dashboard .tc-cols-popover {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 200px;
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
	padding: 6px;
	z-index: 50;
	display: none;
}
body.prodreports .ui-dashboard .tc-cols-popover.open {
	display: block;
}
body.prodreports .ui-dashboard .tc-cols-popover-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 10px;
	border-radius: 6px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #364152;
	cursor: pointer;
}
body.prodreports .ui-dashboard .tc-cols-popover-item:hover {
	background: #f6f8f9;
}
body.prodreports .ui-dashboard .tc-cols-popover-item input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #006b70;
	cursor: pointer;
}
body.prodreports .ui-dashboard .tc-cols-popover-item input[type="checkbox"]:disabled {
	cursor: not-allowed;
	opacity: 0.5;
}
body.prodreports .ui-dashboard .tc-cols-popover-item:has(input:disabled) {
	color: #8493a8;
	cursor: not-allowed;
}

body.prodreports .ui-dashboard .tc-section-order {
	width: 180px;
	height: 36px;
	position: relative;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	overflow: hidden;
}
body.prodreports .ui-dashboard .tc-section-order::after {
	content: '' !important;
	display: block !important;
	position: absolute;
	right: 13px;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7.41' fill='%232b384a'><path d='M10.59 0L6 4.58L1.41 0L0 1.41L6 7.41L12 1.41L10.59 0Z'/></svg>") no-repeat center / 8px auto;
	pointer-events: none;
}
body.prodreports .ui-dashboard .tc-section-order > select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 100% !important;
	height: 100% !important;
	background: transparent;
	background-image: none;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 7px 32px 7px 13px !important;
	margin: 0;
	box-shadow: none;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400 !important;
	line-height: 20px;
	color: #2b384a;
	cursor: pointer;
}
body.prodreports .ui-dashboard .tc-section-order > select:focus {
	outline: 0;
}
body.prodreports .ui-dashboard .tc-section-order:focus-within {
	outline: 2px solid #006b70;
	outline-offset: 1px;
}

/* Mobile: legacy `.ui-dashboard .tc-dropdown:not(.hidden) select` forces
   `min-height: 44px` (touch-target accessibility) — match the wrapper to
   the select so the chevron and text stay vertically aligned and nothing
   gets clipped by the wrapper's `overflow: hidden`. The Columns toggle
   button (`.tc-cols-btn`) sits beside the section-order dropdown, so bump
   it to the same 44px touch height to keep the row visually balanced. */
@media (max-width: 767px) {
	/* Wrap stays 44px (touch target). iOS Safari has a long-standing
	   sub-pixel quirk that drops the bottom edge of 1px borders on
	   flex-positioned elements at certain Y offsets. We've tried
	   `border`, `outline`, `box-shadow inset`, ::before pseudo, and a
	   `linear-gradient` border-image — none confirmed to work on iOS.
	   Switching to **outset** `box-shadow: 0 0 0 1px` — paints OUTSIDE
	   the box geometry, bypassing the sub-pixel layout path that drops
	   the border. Visual is identical to a 1px solid border, matching
	   the date-range filter dropdown style. Same approach used for the
	   Cohort `.tc-dropdown` for consistency. */
	body.prodreports .ui-dashboard .tc-section-order,
	body.prodreports .ui-dashboard .tc-cols-btn {
		position: relative;
		background: #ffffff;
		border: 0 !important;
		box-shadow: 0 0 0 1px #d1d7de;
		border-radius: 8px;
		/* Override the legacy `overflow: hidden` from the desktop
		   `.tc-section-order` rule. iOS Safari has a quirk where
		   `overflow: hidden` + `border-radius` clips outset box-shadow
		   on certain Y offsets — exactly what kept the Top Coupons
		   dropdown's bottom edge missing. The clipped child (native
		   select chrome) is no longer relevant here because we set
		   `appearance: none` on the select, so visible overflow is safe. */
		overflow: visible;
	}
	/* Remove the legacy ::before-border fallback (kept from earlier
	   iOS-bug attempts; box-shadow approach replaces it). */
	body.prodreports .ui-dashboard .tc-section-order::before,
	body.prodreports .ui-dashboard .tc-cols-btn::before {
		content: none;
	}
	body.prodreports .ui-dashboard .tc-section-order {
		height: 44px;
		display: flex;
		align-items: center;
	}
	body.prodreports .ui-dashboard .tc-section-order > select {
		height: 36px !important;
		min-height: 36px !important;
	}
	body.prodreports .ui-dashboard .tc-cols-btn {
		height: 44px;
		padding: 8px 12px;
	}

	/* Section head layout — heading on its own row, controls (Columns
	   toggle + Revenue dropdown) take a full-width row below it. The
	   dropdown stretches to fill the remaining width so the row reads as
	   a section toolbar rather than two floating controls. Works
	   identically for long headings like "Top Affiliates" / "Top Coupons"
	   since the heading never has to compete with controls for room. */
	body.prodreports .ui-dashboard .tc-section-head {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	body.prodreports .ui-dashboard .tc-section-head .tc-section-controls {
		width: 100%;
		margin-left: 0;
	}
	body.prodreports .ui-dashboard .tc-section-head .tc-section-controls .tc-section-order {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}
}

body.prodreports .ui-dashboard #top-seller-table th[data-col="id"],
body.prodreports .ui-dashboard #top-seller-table td[data-col="id"] {
	width: 67px;
	min-width: 67px;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="id"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="id"] {
	width: 150px;
	max-width: 150px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="name"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="name"] {
	width: 134px;
	max-width: 134px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="email"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="email"] {
	width: 246px;
	max-width: 246px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="sales"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="sales"] {
	width: 184px;
	min-width: 184px;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="revenue"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="revenue"] {
	width: 126px;
	min-width: 126px;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="conversion"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="conversion"] {
	width: 170px;
	min-width: 170px;
}
body.prodreports .ui-dashboard #top-affiliates-table th[data-col="refund_rate"],
body.prodreports .ui-dashboard #top-affiliates-table td[data-col="refund_rate"] {
	width: 142px;
	min-width: 142px;
}
body.prodreports .ui-dashboard #top-coupon-table th[data-col="name"],
body.prodreports .ui-dashboard #top-coupon-table td[data-col="name"] {
	width: 284px;
	min-width: 284px;
}
body.prodreports .ui-dashboard #top-coupon-table th[data-col="sales"],
body.prodreports .ui-dashboard #top-coupon-table td[data-col="sales"],
body.prodreports .ui-dashboard #top-coupon-table th[data-col="revenue"],
body.prodreports .ui-dashboard #top-coupon-table td[data-col="revenue"] {
	min-width: 200px;
}
body.prodreports .ui-dashboard #top-coupon-table th[data-col="refund"],
body.prodreports .ui-dashboard #top-coupon-table td[data-col="refund"] {
	width: 217px;
	min-width: 217px;
}

/* Phone-only (≤639px) productsales mobile layout. Splits the filter row into
   two stacked rows, switches the per-tab hero stats to a 2×2 grid, and keeps
   the Stats section 2-up so wide cards don't collapse to 1-per-row. */
@media (max-width: 639px) {
	/* Force the form (a flex child of `.ui-dashboard-head.tc-wrap` that has
	   `flex: 0 0 auto` at desktop) to take the full row width at phone widths
	   so the inner grid actually fills the viewport. Without this, Row 1
	   (Date + USD) shrinks to content width while Row 2 (Filters) stretches,
	   leaving visible empty space to the right of USD. */
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form {
		flex: 1 0 100% !important;
		width: 100% !important;
	}

	/* Filter row stack: Date+Currency on row 1, Filters button full-width row 2.
	   Desktop sets fixed widths (date 180px, currency 72px) which combined with
	   the Filters button overflow the 358px inner viewport, clipping "Filters"
	   to "Filte...". Phone-only — at iPad widths the inline layout fits. */
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"date currency"
			"filters filters";
		gap: 8px 12px !important;
		width: 100% !important;
		margin: 0 !important;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group #data-range-wrap {
		grid-area: date;
		width: 100% !important;
		flex: unset !important;
		min-width: 0 !important;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group #data-range-wrap > .tc-dropdown {
		width: 100% !important;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group > .tc-flex.tc-items-center {
		display: contents;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group #stats-currency-wrap {
		grid-area: currency;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group .tc-stats-divider {
		display: none !important;
	}
	body.prodreports .ui-dashboard .ui-dashboard-head.tc-wrap > .pure-form > .pure-g.ui-input-group button {
		grid-area: filters;
		width: 100%;
		height: 44px;
	}

	/* Per-tab hero stats row → horizontal scroll carousel (mirrors the
	   Dashboard Trends pattern). 4-up `pure-u-1-4` (25%) squeezes to ~85px
	   at 390px viewport, clipping labels and values. Carousel keeps each
	   card readable. Phone-only — at iPad widths the 4-up grid renders fine.
	   16px inline padding gives breathing room from the outer `.tc-tabs`
	   border. `scroll-padding-inline-*` matches it so scroll-snap insets
	   the first/last card by the same 16px (otherwise mandatory snap pins
	   the first card flush against the carousel's content edge). */
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs > .tc-tabs-list {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 12px 12px 0 12px !important;
		scroll-padding-inline-start: 12px;
		scroll-padding-inline-end: 12px;
		gap: 12px;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs > .tc-tabs-list::-webkit-scrollbar {
		display: none;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs > .tc-tabs-list .pure-u-1-4 {
		flex: 0 0 72% !important;
		width: 72% !important;
		min-width: 0 !important;
		scroll-snap-align: start;
	}
	/* Same compositing isolation we apply to the Dashboard Trends carousel —
	   keeps iOS Safari's `-webkit-overflow-scrolling: touch` layer from
	   painting over the wrapper's top border. */
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-tabs {
		isolation: isolate;
	}

	/* Stats section (TOTAL TRANSACTIONS / TOTAL CUSTOMERS / NEW CUSTOMERS / etc).
	   Desktop rule sets `flex: 1 1 200px`, which at 390px viewport
	   forces 1-per-row (2 × 200 + gap > 358). Override to 2-per-row at phone. */
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(> .pure-g .tc-box) > .pure-g > div {
		flex: 0 0 calc(50% - 8px) !important;
		min-width: 0 !important;
		width: auto !important;
	}
}

/* Outer report tabs ("Top Sellers / Funnels / Source / Refunds") wrap to
   2 lines because each <a> inherits white-space: normal and the 32px gap
   pushes content past narrow viewports. Use nowrap labels and a horizontal
   scroll fallback. Active up to iPad widths. */
@media (max-width: 767px) {
	body.prodreports .ui-dashboard .tc-report-tabs .tc-report-tab-list {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		gap: 20px !important;
		margin: 0 -16px;
		padding: 0 16px;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	body.prodreports .ui-dashboard .tc-report-tabs .tc-report-tab-list::-webkit-scrollbar {
		display: none;
	}
	body.prodreports .ui-dashboard .tc-report-tabs .tc-report-tab-list > li {
		flex: 0 0 auto;
	}
	body.prodreports .ui-dashboard .tc-report-tabs .tc-report-tab-list > li > a {
		white-space: nowrap;
	}
}

body.prodreports .ui-dashboard > .tc-table-section {
	background: #ffffff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 24px 0 0 0;
}
body.prodreports .ui-dashboard > .tc-table-section > h2 {
	display: none;
}

body.prodreports .ui-dashboard #top-funnel-table th[data-col="id"],
body.prodreports .ui-dashboard #top-funnel-table td[data-col="id"] {
	width: 67px;
	min-width: 67px;
}
body.prodreports .ui-dashboard #top-funnel-table th[data-col="name"],
body.prodreports .ui-dashboard #top-funnel-table td[data-col="name"] {
	width: 217px;
	min-width: 217px;
}

body.prodreports .ui-dashboard .tc-pagination {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
}
body.prodreports .ui-dashboard .tc-pagination .tc-page-numbers {
	display: flex;
	align-items: center;
	gap: 8px;
}
body.prodreports .ui-dashboard .tc-pagination button {
	box-sizing: border-box;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: #f6f8f9;
	border: 1px solid #d1d7de;
	border-radius: 6px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 16px;
	color: #364152;
	cursor: pointer;
	transition: background 120ms, border-color 120ms;
}
body.prodreports .ui-dashboard .tc-pagination button:hover {
	background: #e8ecef;
}
body.prodreports .ui-dashboard .tc-pagination button:disabled {
	color: #8493a8;
	cursor: not-allowed;
	opacity: 0.6;
}
body.prodreports .ui-dashboard .tc-pagination button.page-number {
	background: #ffffff;
	border-color: #e8ecef;
}
body.prodreports .ui-dashboard .tc-pagination button.page-number:hover {
	background: #f6f8f9;
}
body.prodreports .ui-dashboard .tc-pagination button.page-number.page-number-active {
	background: #ffffff;
	border-color: #d1d7de;
	color: #364152;
}
body.prodreports .ui-dashboard .tc-pagination .page-ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	height: 32px;
	color: #8493a8;
	font-size: 14px;
}

body.prodreports .ui-dashboard #refunds > h2 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
	margin: 40px 0 16px 0;
}
body.prodreports .ui-dashboard .tc-cohort-grid {
	margin-left: -8px;
	margin-right: -8px;
}
body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-4,
body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-3 {
	padding: 0 8px;
	box-sizing: border-box;
}
/* Override the legacy `.pure-g > div:first-child/middle/:last-child .tc-box`
   margin rules that would otherwise make middle cards narrower than outer ones. */
body.prodreports .ui-dashboard .pure-g > div .tc-cohort-card,
body.prodreports .ui-dashboard .pure-g > div:first-child .tc-cohort-card,
body.prodreports .ui-dashboard .pure-g > div:last-child .tc-cohort-card,
body.prodreports .ui-dashboard .pure-g > div:not(:first-child):not(:last-child) .tc-cohort-card {
	margin: 0;
}
body.prodreports .ui-dashboard .tc-cohort-card {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	height: 100%;
	box-sizing: border-box;
}
body.prodreports .ui-dashboard .tc-cohort-card .tc-cohort-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border-radius: 8px;
	background: #e8ecef;
	color: rgba(58, 67, 81, 0.89);
	margin: 0 0 32px 0;
	flex: 0 0 auto;
}
body.prodreports .ui-dashboard .tc-cohort-card .tc-cohort-icon > svg {
	display: block;
	width: 20px;
	height: 20px;
}
body.prodreports .ui-dashboard .tc-cohort-card > p {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
	letter-spacing: 0.48px;
	text-transform: uppercase;
	color: #8493a8;
	width: 100%;
}
/* Keep the last word + (i) tooltip together so they wrap as one unit. */
body.prodreports .ui-dashboard .tc-cohort-card > p .tc-cohort-tail {
	white-space: nowrap;
}
/* `!important` overrides a global `.tc-box p .icon.tc-tooltip { display: none !important }`
   that hides tooltips on summary cards in other report sections. */
body.prodreports .ui-dashboard .tc-cohort-card > p .icon.tc-tooltip {
	display: inline-flex !important;
	align-items: center;
	color: #8493a8;
	font-size: 16px;
	line-height: 16px;
	margin-left: 4px;
	vertical-align: middle;
}
body.prodreports .ui-dashboard .tc-cohort-card > p .icon.tc-tooltip > i {
	font-size: 16px;
	line-height: 16px;
}
body.prodreports .ui-dashboard .tc-cohort-card > hr.hr-small {
	display: none;
}
body.prodreports .ui-dashboard .tc-cohort-card > h2 {
	margin: 4px 0 0 0;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
}

@media (max-width: 1409px) {
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-4,
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-3 {
		width: 50%;
		margin-bottom: 16px;
	}
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-4:nth-last-child(-n+2),
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-3:last-child {
		margin-bottom: 0;
	}
}
@media (max-width: 767px) {
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-4,
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-3 {
		margin-bottom: 12px;
	}
	/* Uneven row: when a 3-up cohort grid has an odd number of cards,
	   expand the final card to full width. Targets `.pure-u-1-3` only;
	   4-up grids (Subscriber Data, Trends) never have an odd last child. */
	body.prodreports .ui-dashboard .tc-cohort-grid > .pure-u-1-3:nth-child(odd):last-child {
		width: 100%;
	}
	body.prodreports .ui-dashboard .tc-cohort-card {
		padding: 20px;
	}
	body.prodreports .ui-dashboard .tc-cohort-card .tc-cohort-icon {
		margin-bottom: 24px;
	}
}

/* Source card on mobile: the desktop layout pins each dropdown at 180px
   and right-aligns them next to the title in a single row, which overflows
   sub-400px viewports. Wrap the title onto its own line and let the two
   dropdowns share the row below at equal flex width. */
@media (max-width: 767px) {
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between {
		flex-wrap: wrap;
		row-gap: 12px;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > p {
		flex: 1 1 100%;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form {
		width: 100%;
		flex: 1 1 100%;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form > .pure-g {
		justify-content: stretch;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap > .tc-flex.tc-between > .pure-form > .pure-g > .pure-u-1-2 {
		flex: 1 1 0;
		min-width: 0;
	}
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .ui-input-group,
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-w-80,
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-dropdown {
		width: 100%;
		min-width: 0;
	}
	/* Cancel the dashboard-mobile `min-height: 44px` touch-target rule for
	   Source-card selects. Figma 292-1220 specifies padding 7px + line-height
	   20px + padding 7px = 34px; clipping below 34px chops the descender on
	   "Campaign" and similar labels. */
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-dropdown,
	body.prodreports .ui-dashboard .tc-report-tab-pane > .tc-table-section:has(.ui-statistics-graph-wrapper) .tc-table-wrap .pure-form .tc-dropdown select {
		height: 34px !important;
		min-height: 34px !important;
	}
}

/* Mobile app shell — top bar + bottom tab bar + More sheet (≤767px). */
.tc-mnav-topbar,
.tc-mnav-tabbar,
.tc-mnav-more-sheet,
.tc-mnav-more-backdrop {
	display: none;
}

/* Defensive: if a signin form ends up in the same DOM as the mobile shell
   (e.g. an iOS Safari back-forward cache restoring a master.php-shell page
   after a `/signin/` redirect), hide the shell so the user only sees the
   signin UI. The PHP-side redirect is the primary defence; this is a
   safety net for the user-visible state. */
body:has(#signin-form) .tc-mnav-topbar,
body:has(#signin-form) .tc-mnav-tabbar,
body:has(#signin-form) .tc-mnav-more-sheet,
body:has(#signin-form) .tc-mnav-more-backdrop {
	display: none !important;
}

@media (max-width: 767px) {
	/* --- Hide desktop sidebar, reset layout offsets --- */
	body.root #tc-sidebar {
		display: none !important;
	}
	body.root #tc-sidebar ~ #layout,
	body.root #layout {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* Drop the desktop sidebar offset on the footer so the
	   "ThriveCart Pro+ / © ThriveCart LLC ..." block centers properly
	   on mobile (sidebar is hidden but `#tc-sidebar` is still in the DOM
	   so the rule at line 4084 would otherwise still add 224px margin). */
	body.root #tc-sidebar ~ .footer {
		margin-left: 0 !important;
		text-align: center !important;
	}

	/* Push page content below top bar, above tab bar */
	body.root.root-app {
		padding-top: 56px;
		padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
	}

	/* --- Top bar (fixed, 56px) --- */
	.tc-mnav-topbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		height: 56px;
		padding: 0 16px;
		background: #ffffff;
		border-bottom: 1px solid #e8ecef;
		z-index: 200;
		box-sizing: border-box;
	}
	.tc-mnav-brand {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		text-decoration: none;
		height: 100%;
	}
	/* Render the full ThriveCart wordmark (cart + text) instead of plain
	   text — same SVG asset the sidebar uses, sized for the mobile bar. */
	.tc-mnav-brand .logo-tc {
		display: block;
		width: 120px;
		height: 28px;
		text-indent: -9999px;
		overflow: hidden;
		background: url('../../../../../static/images/logo-sidebar.svg') no-repeat center / contain;
	}
	.tc-mnav-avatar {
		width: 36px;
		height: 36px;
		border-radius: 50%;
		overflow: hidden;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.tc-mnav-avatar img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* --- Bottom tab bar (fixed, 64px + safe-area) --- */
	.tc-mnav-tabbar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		height: calc(64px + env(safe-area-inset-bottom, 0px));
		padding-bottom: env(safe-area-inset-bottom, 0px);
		background: #ffffff;
		border-top: 1px solid #e8ecef;
		z-index: 200;
		box-sizing: border-box;
	}
	.tc-mnav-tab {
		flex: 1 0 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		padding: 8px 4px;
		background: transparent;
		border: 0;
		text-decoration: none;
		color: #8493a8;
		font-family: 'Inter', sans-serif;
		cursor: pointer;
		transition: color 180ms ease, transform 120ms ease;
		-webkit-tap-highlight-color: transparent;
	}
	.tc-mnav-tab:active {
		transform: scale(0.94);
	}
	.tc-mnav-tab-icon {
		width: 22px;
		height: 22px;
		background: #8493a8;
		-webkit-mask-repeat: no-repeat;
		        mask-repeat: no-repeat;
		-webkit-mask-position: center;
		        mask-position: center;
		-webkit-mask-size: contain;
		        mask-size: contain;
		transition: background-color 180ms ease;
	}
	.tc-mnav-tab-label {
		font-size: 11px;
		line-height: 14px;
		font-weight: 500;
		letter-spacing: 0.1px;
	}

	/* Tab icon masks (outline by default) */
	#tc-mnav-tab-dash .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-dashboard.svg');
		        mask-image: url('../../assets/nav-dashboard.svg');
	}
	#tc-mnav-tab-prodreports .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-reports.svg');
		        mask-image: url('../../assets/nav-reports.svg');
	}
	#tc-mnav-tab-products .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-products.svg');
		        mask-image: url('../../assets/nav-products.svg');
	}
	#tc-mnav-tab-transactions .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-transactions.svg');
		        mask-image: url('../../assets/nav-transactions.svg');
	}
	#tc-mnav-tab-affiliates .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-affiliates.svg');
		        mask-image: url('../../assets/nav-affiliates.svg');
	}
	#tc-mnav-tab-learn .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-learn.svg');
		        mask-image: url('../../assets/nav-learn.svg');
	}
	.tc-mnav-tab-icon-more {
		-webkit-mask-image: url('../../assets/nav-more.svg');
		        mask-image: url('../../assets/nav-more.svg');
	}

	/* Active tab (via bind-classmatch active OR data-section) */
	.tc-mnav-tabbar .tc-mnav-tab.active,
	.tc-mnav-tabbar[data-section="dash"] #tc-mnav-tab-dash,
	.tc-mnav-tabbar[data-section="prodreports"] #tc-mnav-tab-prodreports,
	.tc-mnav-tabbar[data-section="product-sales"] #tc-mnav-tab-prodreports,
	.tc-mnav-tabbar[data-section="subscriptions"] #tc-mnav-tab-prodreports,
	.tc-mnav-tabbar[data-section="funnels"] #tc-mnav-tab-prodreports,
	.tc-mnav-tabbar[data-section="coupons"] #tc-mnav-tab-prodreports,
	.tc-mnav-tabbar[data-section="products"] #tc-mnav-tab-products,
	.tc-mnav-tabbar[data-section="transactions"] #tc-mnav-tab-transactions,
	.tc-mnav-tabbar[data-section="affiliates"] #tc-mnav-tab-affiliates,
	.tc-mnav-tabbar[data-section="contracts"] #tc-mnav-tab-affiliates {
		color: #006b70;
	}
	.tc-mnav-tabbar .tc-mnav-tab.active .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="dash"] #tc-mnav-tab-dash .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="prodreports"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="product-sales"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="subscriptions"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="funnels"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="coupons"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="products"] #tc-mnav-tab-products .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="transactions"] #tc-mnav-tab-transactions .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="affiliates"] #tc-mnav-tab-affiliates .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="contracts"] #tc-mnav-tab-affiliates .tc-mnav-tab-icon {
		background: #006b70;
	}
	/* Swap to filled icon for active primary tabs */
	.tc-mnav-tabbar[data-section="dash"] #tc-mnav-tab-dash .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-dashboard-filled.svg');
		        mask-image: url('../../assets/nav-dashboard-filled.svg');
	}
	.tc-mnav-tabbar[data-section="prodreports"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="product-sales"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="subscriptions"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="funnels"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="coupons"] #tc-mnav-tab-prodreports .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-reports-filled.svg');
		        mask-image: url('../../assets/nav-reports-filled.svg');
	}
	.tc-mnav-tabbar[data-section="products"] #tc-mnav-tab-products .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-products-filled.svg');
		        mask-image: url('../../assets/nav-products-filled.svg');
	}
	.tc-mnav-tabbar[data-section="transactions"] #tc-mnav-tab-transactions .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-transactions-filled.svg');
		        mask-image: url('../../assets/nav-transactions-filled.svg');
	}
	.tc-mnav-tabbar[data-section="affiliates"] #tc-mnav-tab-affiliates .tc-mnav-tab-icon,
	.tc-mnav-tabbar[data-section="contracts"] #tc-mnav-tab-affiliates .tc-mnav-tab-icon {
		-webkit-mask-image: url('../../assets/nav-affiliates-filled.svg');
		        mask-image: url('../../assets/nav-affiliates-filled.svg');
	}

	/* --- More bottom sheet --- */
	.tc-mnav-more-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(54, 65, 82, 0.45);
		z-index: 300;
		opacity: 0;
		pointer-events: none;
		transition: opacity 200ms ease;
	}
	.tc-mnav-more-backdrop.is-open {
		opacity: 1;
		pointer-events: auto;
	}
	.tc-mnav-more-sheet {
		display: flex;
		flex-direction: column;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		max-height: 80vh;
		background: #ffffff;
		border-radius: 20px 20px 0 0;
		padding: 8px 16px calc(16px + env(safe-area-inset-bottom, 0px)) 16px;
		box-shadow: 0 -4px 24px rgba(54, 65, 82, 0.15);
		z-index: 301;
		transform: translateY(100%);
		transition: transform 240ms cubic-bezier(0.32, 0.72, 0, 1);
		box-sizing: border-box;
	}
	.tc-mnav-more-sheet.is-open {
		transform: translateY(0);
	}
	.tc-mnav-more-handle {
		width: 40px;
		height: 4px;
		background: #d1d7de;
		border-radius: 2px;
		margin: 4px auto 12px;
	}
	.tc-mnav-more-title {
		font-family: 'Manrope', sans-serif;
		font-size: 16px;
		font-weight: 600;
		color: #364152;
		margin: 0 0 8px 0;
		padding: 0 8px;
	}
	.tc-mnav-more-list {
		list-style: none;
		padding: 0;
		margin: 0;
		overflow-y: auto;
	}
	.tc-mnav-more-item {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 14px 8px;
		text-decoration: none;
		color: #364152;
		font-family: 'Inter', sans-serif;
		font-size: 15px;
		line-height: 20px;
		border-radius: 8px;
		transition: background-color 150ms ease, transform 120ms ease;
		-webkit-tap-highlight-color: transparent;
	}
	.tc-mnav-more-item:active {
		background: #f6f8f9;
		transform: scale(0.98);
	}
	.tc-mnav-more-item:focus:not(:focus-visible) {
		outline: none;
	}
	.tc-mnav-more-item-sub {
		padding: 12px 8px;
		font-size: 14px;
		color: #475467;
	}
	/* More-sheet active item — when the current page matches an item in
	   the More sheet (top-level leaf or sub-link), tint its label and
	   accent it with the brand teal so the user can tell at a glance
	   which page they're on. */
	.tc-mnav-more-item.active {
		color: #006b70;
		font-weight: 600;
		background: rgba(0, 107, 112, 0.06);
	}
	.tc-mnav-more-divider {
		height: 1px;
		background: #e8ecef;
		margin: 8px 0;
		list-style: none;
	}

	/* Tabbar parent button (has children) — strip the default <button> chrome
	   so it lays out identically to the <a> siblings in the bar.
	   Critically: do NOT use the `font` shorthand here. `font: inherit`
	   would reset font-family back to the body's UA system stack (and
	   weight, size, etc.), wiping out `.tc-mnav-tab`'s `font-family:
	   'Inter'`. That made the Reports label render in macOS system font
	   while every other tab used Inter. We also intentionally don't set
	   `color: inherit` here — `.tc-mnav-tab { color: #8493a8 }` should
	   apply directly. */
	.tc-mnav-tab-parent {
		appearance: none;
		-webkit-appearance: none;
		background: transparent;
		border: 0;
		cursor: pointer;
	}

	/* More-sheet accordion group (parents with children render as expandable). */
	.tc-mnav-more-item-expand {
		width: 100%;
		appearance: none;
		-webkit-appearance: none;
		background: transparent;
		border: 0;
		font: inherit;
		cursor: pointer;
		text-align: left;
	}
	.tc-mnav-more-item-chevron {
		margin-left: auto;
		width: 12px;
		height: 12px;
		background: #677281;
		-webkit-mask-repeat: no-repeat;
		        mask-repeat: no-repeat;
		-webkit-mask-position: center;
		        mask-position: center;
		-webkit-mask-size: contain;
		        mask-size: contain;
		-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
		        mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5l3 3 3-3' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
		transition: transform 180ms ease;
	}
	.tc-mnav-more-group.is-expanded .tc-mnav-more-item-chevron {
		transform: rotate(180deg);
	}
	.tc-mnav-more-sub {
		list-style: none;
		padding: 0;
		margin: 0 0 0 32px;
		max-height: 0;
		overflow: hidden;
		transition: max-height 220ms ease;
	}
	.tc-mnav-more-group.is-expanded .tc-mnav-more-sub {
		max-height: 480px;
	}

	/* Sub-sheet variant — same chrome as More sheet but shorter. */
	.tc-mnav-sub-sheet {
		max-height: 60vh;
	}
	.tc-mnav-more-item-icon {
		width: 20px;
		height: 20px;
		background: #364152;
		-webkit-mask-repeat: no-repeat;
		        mask-repeat: no-repeat;
		-webkit-mask-position: center;
		        mask-position: center;
		-webkit-mask-size: contain;
		        mask-size: contain;
	}
	.tc-mnav-more-item[data-seed="affiliates"] .tc-mnav-more-item-icon,
	.tc-mnav-more-item[data-seed="contracts"] .tc-mnav-more-item-icon {
		-webkit-mask-image: url('../../assets/nav-affiliates.svg');
		        mask-image: url('../../assets/nav-affiliates.svg');
	}
	.tc-mnav-more-item[data-seed="learn"] .tc-mnav-more-item-icon {
		-webkit-mask-image: url('../../assets/nav-learn.svg');
		        mask-image: url('../../assets/nav-learn.svg');
	}

	/* Prevent body scroll when ANY sheet or modal is open. Plain
	   `overflow: hidden` on body alone is insufficient on iOS Safari —
	   the document keeps scrolling at the html level. Lock BOTH html
	   and body via `:has()` (single-level — nested `:has(body:has(...))`
	   is invalid per CSS spec) and add `overscroll-behavior: contain`
	   so iOS rubber-band doesn't bubble out. The
	   `body:has(.alertify:not(.ajs-hidden))` selector catches every
	   modal opened by the alertify library — Customize Display, Edit
	   Filters, generic alerts — without needing a per-modal entry. */
	html:has(body.tc-mnav-sheet-open),
	html:has(.alertify:not(.ajs-hidden)) {
		overflow: hidden;
		overscroll-behavior: contain;
	}
	/* `!important` here is justified: alertify (third-party library) sets
	   `.ajs-no-overflow.ajs-fixed { overflow-y: scroll }` on body when
	   any of its modals open, intending desktop UX where the modal can
	   scroll within the viewport. On mobile the resulting body scroll
	   lets the page behind the modal scroll, which we don't want. We
	   can't fix this upstream (third-party CSS), and equal-specificity
	   `body.ajs-no-overflow.ajs-fixed` doesn't reliably win source-order
	   in Chromium with `:has()` siblings — `!important` here is a
	   targeted override of one library's hardcoded rule, not a generic
	   short-circuit. */
	body.tc-mnav-sheet-open,
	body:has(.alertify:not(.ajs-hidden)),
	body.ajs-no-overflow.ajs-fixed {
		overflow: hidden !important;
		overscroll-behavior: contain;
	}
	.tc-mnav-more-sheet,
	.alertify .ajs-dialog {
		overscroll-behavior: contain;
	}
}

/* Dashboard mobile layout (≤767px). */
@media (max-width: 767px) {
	html,
	body.root {
		/* `clip` instead of `hidden` — `hidden` auto-promotes overflow-y to
		   `auto`, making html and body each their own scroll container. The
		   nested scrolls compete with each other on real mobile (especially
		   iOS Safari) and the page feels "stuck" near the bottom. */
		overflow-x: clip;
	}

	.ui-dashboard {
		padding: 0 16px 24px 16px;
		max-width: 100%;
		/* `overflow-x: clip` (not `hidden`) — `hidden` triggers a CSS spec
		   quirk that auto-promotes `overflow-y: visible` to `overflow-y: auto`,
		   creating an unintended nested scroll container that swallows the
		   user's vertical-scroll gestures and makes the page feel "stuck"
		   when scrolling near the bottom of the dashboard content. */
		overflow-x: clip;
		/* Mobile section reorder per user's spec:
		   Today → Trends → Filter → Revenue Breakdown → Refunds → Recurring Revenue.
		   Flex column + per-child `order` is mobile-only; desktop falls back
		   to natural document order. */
		display: flex;
		flex-direction: column;
	}
	/* `!important` so we override the inline `style.order` set by the
	   Customize Display JS (account.html.twig ~L2167). Mobile follows
	   the fixed order regardless of the user's desktop custom layout;
	   desktop keeps the user's customization untouched. */
	.ui-dashboard .ui-dashboard-head { order: 1 !important; }
	.ui-dashboard > .tc-section-mini-head { order: 2 !important; }
	.ui-dashboard > .tc-today-cards { order: 3 !important; }
	.ui-dashboard > .tc-stats-section[data-section="trends"] { order: 4 !important; }
	.ui-dashboard > .pure-form { order: 5 !important; }
	.ui-dashboard > .tc-stats-section[data-section="revenue-breakdown"] { order: 6 !important; }
	.ui-dashboard > .tc-stats-section[data-section="refunds"] { order: 7 !important; }
	.ui-dashboard > .tc-stats-section[data-section="recurring-revenue"] { order: 8 !important; }
	/* Sweep anything else (hidden hr, "see more reports" row, banners) to
	   the bottom so it can't visually interleave with the reordered sections. */
	.ui-dashboard > * { order: 99; }
	.ui-dashboard .ui-dashboard-head {
		margin: 16px 0 16px 0;
	}

	/* Recurring Revenue (Figma 838-999): the WRAPPER `.tc-section-card`
	   takes the white card chrome on mobile; the chart pure-g inside
	   resets to a plain container so we don't get visible nested cards.
	   Title -> tabs -> chart -> legend rendered in that visual order. */
	.ui-dashboard .tc-stats-section > .tc-section-card {
		background: #ffffff;
		border: 1px solid #e8ecef;
		border-radius: 12px;
		box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
		padding: 24px;
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin: 0 0 16px 0;
	}
	/* Chart pure-g inside the wrapper card → plain (no nested card).
	   `:not([data-section="trends"])` adds specificity so this beats the
	   global desktop chart-card rule (which has the same not() qualifier). */
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .tc-section-card > .pure-g {
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0;
		margin: 0;
		gap: 12px;
		overflow: visible;
	}
	/* Reorder so the chart appears BEFORE the legend (Figma 838-999),
	   and hide the duplicate "Recurring Revenue" text in graph-top
	   (the section h2 above already shows it). */
	.ui-dashboard .tc-stats-section > .tc-section-card > .pure-g .graph-content {
		order: 1;
	}
	.ui-dashboard .tc-stats-section > .tc-section-card > .pure-g .graph-top {
		order: 2;
	}
	.ui-dashboard .tc-stats-section > .tc-section-card > .pure-g .graph-top > p:first-child {
		display: none;
	}
	/* Legend dots per Figma 838-1104: All Subscribers #00c8c9, New
	   Subscribers #006b70. Override the global .mark-selector colors
	   (which use #02CBC9 / #0B4F6C — too navy on the .darker dot). */
	.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] .graph-top .mark-selector::before {
		color: #00c8c9;
	}
	.ui-dashboard .tc-stats-section[data-section="recurring-revenue"] .graph-top .mark-selector.darker::before {
		color: #006b70;
	}

	/* Recurring Revenue subscription-type filter pills (Figma 838-1002) */
	.ui-dashboard .tc-recurring-tabs {
		display: flex;
		gap: 12px;
		align-items: center;
		margin: 0 0 16px 0;
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		padding-bottom: 2px;
	}
	.ui-dashboard .tc-recurring-tabs::-webkit-scrollbar {
		display: none;
	}
	.ui-dashboard .tc-recurring-tab {
		flex: 0 0 auto;
		padding: 8px 18px;
		border: 1px solid #d1d7de;
		border-radius: 8px;
		background: #ffffff;
		color: #364152;
		font-family: 'Inter', sans-serif;
		font-size: 14px;
		font-weight: 400;
		line-height: 20px;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		white-space: nowrap;
		transition: background-color 120ms ease, transform 120ms ease;
	}
	.ui-dashboard .tc-recurring-tab.active {
		background: #f6f8f9;
	}
	.ui-dashboard .tc-recurring-tab:active {
		transform: scale(0.98);
	}
	.ui-dashboard .ui-dashboard-head h2 {
		font-size: 20px;
		line-height: 28px;
	}

	/* --- Hero cards (Today's): horizontal scroll carousel ---
	   Inherits card chrome + icons from desktop (line ~4193+); mobile only
	   converts the row to a scroll-snap track and tweaks typography to
	   Figma 838:879's 10/16 sizing. */
	.ui-dashboard .tc-today-cards {
		isolation: isolate;
		margin: 0 -16px;
	}
	.ui-dashboard .tc-today-cards-track {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: none;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 8px !important;
		padding: 0 16px;
		scroll-padding-inline-start: 16px;
		scroll-padding-inline-end: 16px;
	}
	.ui-dashboard .tc-today-cards-track::-webkit-scrollbar {
		display: none;
	}
	.ui-dashboard .tc-today-cards-track > .tc-today-card {
		flex: 0 0 170px !important;
		width: 170px !important;
	}
	/* Mobile typography per Figma 838:879 — 10/16 instead of desktop 12/20.
	   Keep the desktop h2 `margin: -28px` so the gap between label and value
	   stays at 4px (desktop simulates a text-wrapper without one in the markup
	   via `gap: 32` on the box minus 28 on the h2 = 4). */
	.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box p {
		font-size: 10px;
		line-height: 16px;
		letter-spacing: 0.4px;
		display: block;
	}
	.ui-dashboard .tc-today-cards-track > .tc-today-card .tc-box h2 {
		font-size: 16px;
		line-height: 28px;
	}

	/* --- Filters: flatten pure-g hierarchy via display:contents, lay out
	       dropdowns + actions with CSS grid so short dropdowns share rows --- */
	.ui-dashboard .pure-form.pure-form-stacked {
		margin-bottom: 24px;
	}
	.ui-dashboard .pure-form.pure-form-stacked > .pure-g.ui-input-group {
		display: grid !important;
		/* Two rows on mobile:
		     Row 1 — Products spans the full width (fits "All products" or any
		             multi-product chips without ellipsis).
		     Row 2 — Date + Currency split 50/50 (each ~163px at 390px viewport,
		             enough for "Previous 7 days" and any currency code). */
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 8px !important;
		margin: 0 !important;
	}
	.ui-dashboard #products-wrap {
		grid-column: 1 / -1;
	}
	/* Match wrapper height to inner select's mobile touch-target (44px).
	   Without this, products/date wrappers stay at the desktop 36px while
	   the inner select expands to 44px, leaving the pill borders shorter
	   than the chevron+text and visually mismatched against the currency
	   dropdown (which auto-grows to 44px). */
	.ui-dashboard #main-filter-wrap #products-wrap > .tc-dropdown:not(.date_range),
	.ui-dashboard #main-filter-wrap #data-range-wrap > .tc-dropdown:not(.date_range),
	.ui-dashboard #main-filter-wrap #product-plan-wrap > .tc-dropdown:not(.date_range) {
		height: 44px;
	}
	/* When currency is hidden, drop to 2-column grid so Products + Date fill
	   the row. Class-toggle pattern (not :has) — .tc-currency-hidden is
	   rendered initially on .pure-form-stacked and removed by the JS at the
	   bottom of account.html.twig once multiple currencies are detected. */
	.ui-dashboard .pure-form.pure-form-stacked.tc-currency-hidden > .pure-g.ui-input-group {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	/* Collapse all intermediate pure-g / pure-u wrappers so their children
	   participate directly in the outer grid */
	.ui-dashboard .pure-form.pure-form-stacked > .pure-g.ui-input-group > .pure-u-1.pure-u-md-2-3,
	.ui-dashboard .pure-form.pure-form-stacked > .pure-g.ui-input-group > .pure-u-1.pure-u-md-1-3,
	.ui-dashboard .pure-form.pure-form-stacked > .pure-g.ui-input-group > .pure-u-1.pure-u-md-1-3 > .pure-g.ui-input-group,
	.ui-dashboard #main-filter-wrap,
	.ui-dashboard .pure-u-1-2.pure-u-md-1-2.tc-flex.tc-items-center {
		display: contents !important;
	}
	/* Actual filter cells (dropdowns + action wrap) = grid children */
	.ui-dashboard #products-wrap,
	.ui-dashboard #data-range-wrap,
	.ui-dashboard #product-plan-wrap:not(.hidden),
	.ui-dashboard #stats-currency-wrap:not(.hidden) {
		width: 100% !important;
		max-width: 100% !important;  /* override legacy `#stats-currency-wrap { max-width: 11em }` */
		min-width: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		display: block !important;
	}
	/* Hidden helper cells collapse out of the grid */
	.ui-dashboard #product-plan-wrap.hidden,
	.ui-dashboard #stats-currency-wrap.hidden {
		display: none !important;
	}
	/* Action button wrap: span full row */
	.ui-dashboard .compare-btn-wrap {
		grid-column: 1 / -1 !important;
		width: auto !important;
		padding: 0 !important;
		margin: 4px 0 0 0 !important;
	}

	/* Override the desktop 180px hard cap so selects fill their grid cell.
	   IMPORTANT: do NOT set display here — `.hidden` siblings (compare /
	   custom-range pickers) must remain display:none until toggled by JS. */
	body.root .ui-dashboard .tc-dropdown:not(.hidden),
	.ui-dashboard .tc-dropdown:not(.hidden),
	.ui-dashboard #stats-currency-wrap .tc-dropdown:not(.hidden) {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 auto !important;
	}
	body.root .ui-dashboard .tc-dropdown:not(.hidden) select,
	.ui-dashboard .tc-dropdown:not(.hidden) select,
	.ui-dashboard #stats-currency-wrap .tc-dropdown:not(.hidden) select,
	.ui-dashboard .pure-form select {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 44px !important;
		height: 44px !important;
		font-size: 14px !important;
		padding-right: 32px !important;
	}

	/* Compare + Customize Stats: hierarchy — Compare is secondary (outlined),
	   Customize Stats is primary (filled teal). Reduces visual weight so the
	   filter pills above stay the focal point. */
	.ui-dashboard .compare-btn-wrap > .tc-flex {
		display: flex !important;
		flex-direction: row !important;
		gap: 8px;
		width: 100%;
	}
	.ui-dashboard .compare-btn-wrap > .tc-flex > .pure-button,
	.ui-dashboard .compare-btn-wrap > .tc-flex > button {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		width: auto !important;
		margin: 0 !important;
		min-height: 40px !important;
		height: 40px !important;
		padding: 8px 14px !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		line-height: 20px !important;
		white-space: nowrap;
		border-radius: 8px !important;
		box-shadow: none !important;
	}
	/* Compare = secondary (ghost/outlined) */
	.ui-dashboard .compare-btn-wrap > .tc-flex > #stats-btn-compare {
		background: #ffffff !important;
		color: #006b70 !important;
		border: 1px solid #006b70 !important;
	}
	.ui-dashboard .compare-btn-wrap > .tc-flex > #stats-btn-compare:active {
		background: #ecfdfc !important;
	}
	/* Customize Stats = primary filled */
	.ui-dashboard .compare-btn-wrap > .tc-flex > #stats-btn-customize {
		background: #006b70 !important;
		color: #ffffff !important;
		border: 1px solid #006b70 !important;
	}
	.ui-dashboard .compare-btn-wrap > .tc-flex > #stats-btn-customize:active {
		background: #004a4e !important;
	}

	/* --- Compare mode: visually group the compare-row dropdowns --- */
	/* When the .tc-compare hidden class is removed by JS, these become visible.
	   We don't need JS hooks — we style the compare dropdowns with a subtle
	   indent + separator so it's clear they're a "Compare with" group. */
	.ui-dashboard .tc-dropdown.tc-compare:not(.hidden) {
		position: relative;
		margin-top: 4px !important;
	}
	.ui-dashboard .tc-dropdown.tc-compare:not(.hidden)::before {
		content: '';
		position: absolute;
		left: 12px;
		top: -6px;
		width: 2px;
		height: 12px;
		background: #d1d7de;
		border-radius: 1px;
	}
	.ui-dashboard .tc-dropdown.tc-compare:not(.hidden) select {
		border-color: #a8b2c1 !important;
		background-color: #f6f8f9 !important;
	}

	/* --- Trends: tabs INSIDE the outer trends card per Figma 838-909 ---
	   Outer `.tc-tabs` keeps the desktop card chrome (white bg, border,
	   shadow, radius). The tab row scrolls horizontally inside it. Each
	   tab is flat (no individual border) — active state shows via the
	   #f6f8f9 fill + teal bottom underline that sits flush with the
	   tabs↔chart divider. */
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs {
		isolation: isolate;
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: none;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 16px 16px 0 16px;
		gap: 8px;
		scroll-padding-inline-start: 16px;
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list::-webkit-scrollbar {
		display: none;
	}
	/* 180px tab width accommodates 10-character currency values like
	   "$22,297.40" without truncating the 20px h2. */
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list .pure-u-1-5 {
		flex: 0 0 180px !important;
		width: 180px !important;
	}
	/* Long currency values can't fit in a 132px content box (180 - 48 padding).
	   Allow the value to bleed slightly via `min-width: 0` plus `overflow: visible`
	   on the h2, and trust the slider's horizontal scroll to make any extra width
	   reachable. */
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list a h2 {
		overflow: visible;
		white-space: nowrap;
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list a p {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	/* Mobile-only: each tab gets its own bordered card chrome per Figma
	   838:910/914. Active = gray fill + teal bottom underline only; inactive
	   = white + full gray border. Desktop tabs (Figma 2:572/573) are flat
	   segments inside the outer .tc-tabs card and don't get this treatment. */
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list a {
		border: 1px solid #d1d7de;
		background: #ffffff;
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list a.active {
		background: #f6f8f9;
		border-color: transparent;
		border-bottom-color: #006b70;
	}

	/* --- Charts: reduce canvas height --- */
	.ui-dashboard .tc-stats-section canvas,
	.ui-dashboard .tc-stats-section .graph-content canvas {
		height: 240px !important;
		max-height: 240px !important;
	}
	.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] canvas {
		height: 180px !important;
		max-height: 180px !important;
	}

	/* --- Section headings & legend row --- */
	.ui-dashboard .tc-stats-section h2 {
		font-size: 18px;
		line-height: 24px;
		margin-bottom: 12px;
	}
	.ui-dashboard .tc-stats-section .graph-top.tc-flex.tc-between {
		flex-direction: column;
		align-items: flex-start;
		flex-wrap: wrap;
		gap: 8px;
	}
	/* Override the desktop `flex: 1 0 0; min-width: 0` (line ~4630) which
	   squeezes the title to whatever's left after the legend takes its
	   content width — at mobile the legend is wide enough to push the title
	   to ~70px, wrapping "Recurring Revenue" awkwardly across two lines. */
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) .graph-top p {
		flex: 0 0 auto;
		width: 100%;
	}
	.ui-dashboard .tc-stats-section .graph-top .tc-label {
		gap: 12px;
	}
	/* Revenue Breakdown legend: left-aligned under title per Figma 838-1111
	   (desktop right-aligns it next to the title; mobile stacks vertically
	   so flex-end leaves the chips visually orphaned on the right edge). */
	.ui-dashboard .tc-stats-section[data-section="revenue-breakdown"] .graph-top .tc-breakdown-legend {
		justify-content: flex-start !important;
		width: 100%;
		gap: 12px;
	}

	/* --- Sub-card grids → horizontal scroll carousel ---
	   Same scroll-snap pattern as the Today's hero and Trends carousels.
	   Applies to Recurring Revenue (MRR/ARR/new subs/churn), Revenue
	   Breakdown (Gross/Net/Commission/JV/Tax/Shipping) and Refunds (Total
	   Refunds/Customers/Volume/Rate). Each card is a fixed-width slide;
	   the row bleeds to the page gutter so the first card sits flush. */
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: none;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 8px;
		margin: 0 -16px;
		padding: 0 16px;
		scroll-padding-inline-start: 16px;
		scroll-padding-inline-end: 16px;
	}
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type::-webkit-scrollbar {
		display: none;
	}
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type > div[class*="pure-u-"] {
		flex: 0 0 168px !important;
		width: 168px !important;
		min-width: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		box-sizing: border-box;
	}
	/* Exact Figma 838:887 values: padding 24, gap-32 icon→text (icon margin),
	   gap-4 label→value (label margin), justify-center, shadow 0 1px 1px.
	   Uniform height: parent already has align-items: stretch (flex default),
	   so wrappers match the tallest sibling. `.tc-box` `height: 100%` then
	   fills the wrapper so the white card chrome spans the full row height. */
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box {
		padding: 24px !important;
		gap: 0 !important;
		min-height: 164px !important;
		height: 100% !important;
		border-color: #e8ecef;
		box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05);
		justify-content: center;
		align-items: flex-start;
		box-sizing: border-box;
	}
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box::before {
		margin: 0 0 32px 0 !important;
	}
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box p {
		font-size: 10px;
		line-height: 16px;
		letter-spacing: 0.4px;
		margin: 0 0 4px 0;
	}
	.ui-dashboard .tc-stats-section:not([data-section="trends"]) > .pure-g:last-of-type .tc-box h2 {
		font-size: 16px;
		line-height: 28px;
		margin: 0;
	}

	/* --- Section spacing --- */
	.ui-dashboard .tc-stats-section {
		margin-bottom: 24px;
	}

	/* --- Micro-animations (native-app tap feedback) --- */
	.ui-dashboard .tc-box {
		transition: transform 120ms ease, box-shadow 180ms ease;
		-webkit-tap-highlight-color: transparent;
	}
	.ui-dashboard .tc-box:active {
		transform: scale(0.985);
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list .pure-u-1-5 {
		transition: transform 120ms ease;
	}
	.ui-dashboard .tc-stats-section[data-section="trends"] .tc-tabs-list .pure-u-1-5:active {
		transform: scale(0.98);
	}
	.ui-dashboard .compare-btn-wrap > .tc-flex > .pure-button {
		transition: transform 120ms ease, background-color 180ms ease, box-shadow 180ms ease;
		-webkit-tap-highlight-color: transparent;
	}
	.ui-dashboard .compare-btn-wrap > .tc-flex > .pure-button:active {
		transform: scale(0.97);
	}
	.ui-dashboard .pure-form .tc-dropdown {
		transition: box-shadow 180ms ease, border-color 180ms ease;
	}
	.ui-dashboard .pure-form .tc-dropdown:focus-within {
		box-shadow: 0 0 0 3px rgba(0, 168, 170, 0.15);
	}

	/* Respect reduced-motion preference */
	@media (prefers-reduced-motion: reduce) {
		.tc-mnav-tab,
		.tc-mnav-more-sheet,
		.tc-mnav-more-backdrop,
		.tc-mnav-more-item,
		.ui-dashboard .tc-box,
		.ui-dashboard .compare-btn-wrap > .tc-flex > .pure-button {
			transition: none !important;
			animation: none !important;
		}
	}

	/* "Customize Display" modal → mobile bottom-sheet. Slides up from the
	   bottom edge, full-width, drag handle at top, rounded top corners.
	   Footer buttons stack full-width so all 2-3 actions fit without
	   horizontal clipping at narrow viewports. The slide animation runs
	   off `.alertify`'s own `.ajs-hidden` toggle via plain CSS transition
	   (no shared keyframes) so the rule is self-contained. */
	.alertify .ajs-modal:has(.tc-modal-dashboard-customise),
	.alertify .ajs-modeless:has(.tc-modal-dashboard-customise) {
		display: flex;
		align-items: flex-end;
		justify-content: stretch;
		/* `!important` overrides the default alertify rule
		   `.alertify:not(.ajs-maximized) .ajs-modal { padding: 0 5%; }` at
		   ≤568px which would otherwise inset the sheet 5% on each side. */
		padding: 0 !important;
		overflow: hidden;
	}
	.alertify .ajs-dialog.tc-modal-dashboard-customise {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		max-height: 92vh;
		margin: 0 !important;
		border-radius: 16px 16px 0 0 !important;
		box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.18) !important;
		display: block;
		overflow-y: auto;
		overflow-x: clip;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		padding: 22px 20px max(20px, env(safe-area-inset-bottom)) 20px !important;
		transform: translateY(100%);
		transition: transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
	}
	.alertify:not(.ajs-hidden) .ajs-dialog.tc-modal-dashboard-customise {
		transform: translateY(0);
	}
	.alertify.ajs-hidden .ajs-dialog.tc-modal-dashboard-customise {
		transition-duration: 220ms;
	}
	.alertify .ajs-dialog.tc-modal-dashboard-customise::before {
		content: '';
		position: sticky;
		top: 0;
		display: block;
		width: 36px;
		height: 4px;
		margin: 0 auto 12px auto;
		background: #d1d7de;
		border-radius: 2px;
	}
	/* Stack the footer buttons full-width. Cancel the alertify defaults
	   that fight the flex column layout:
	     `.ajs-footer { margin: 0 -24px }` — pulls footer wider than dialog
	     `.ajs-auxiliary { float: left }` — competes with flex children
	     `.ajs-button { margin: 4px }` — uneven gap; flex `gap: 8px` does it. */
	.tc-modal-dashboard-customise .ajs-footer {
		display: flex !important;
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 8px;
		margin: 16px 0 0 0 !important;
		padding: 0 !important;
	}
	.tc-modal-dashboard-customise .ajs-footer .ajs-buttons {
		display: flex;
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 8px;
		width: 100% !important;
		float: none !important;
		text-align: left !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.tc-modal-dashboard-customise .ajs-footer .ajs-auxiliary,
	.tc-modal-dashboard-customise .ajs-footer .ajs-primary {
		display: flex;
		flex-direction: column-reverse;
		gap: 8px;
		width: 100% !important;
		float: none !important;
		text-align: left !important;
	}
	.tc-modal-dashboard-customise .ajs-footer button.ajs-button {
		width: 100% !important;
		min-width: 0 !important;
		height: 44px;
		margin: 0 !important;
		padding: 10px 18px !important;
		box-sizing: border-box;
	}
}

/* Productsales mobile overrides. The dashboard's mobile rule above bumps
   every `.ui-dashboard .pure-form select` to 44px so the dashboard filter
   chips meet touch-target guidance, but on the productsales pages Figma
   keeps the "Previous 7 days" / "USD" chips at the same compact 34px as
   desktop (node 292-1168). Scope to `body.prodreports` so the dashboard
   keeps its larger touch targets and only the report pages compact. */
@media (max-width: 767px) {
	body.prodreports .ui-dashboard #stats-currency-wrap .tc-dropdown:not(.hidden) select,
	body.prodreports .ui-dashboard .tc-dropdown:not(.hidden) select,
	body.prodreports .ui-dashboard .pure-form select {
		height: 34px !important;
		min-height: 34px !important;
	}
}

/* Pure.css has no 1/5 grid, so the 5-card hero row uses flex on the wrapper.
   The wrapper keeps the `.pure-g` class but its flex children are plain
   <div>s (no `.pure-u-*`), so Pure.css's negative letter/word-spacing isn't
   reset by descendants — set it back to normal here. */
body.prodreports .ui-dashboard .tc-hero-grid-5 {
	display: flex;
	gap: 16px;
	margin: 0;
	letter-spacing: normal;
	word-spacing: normal;
}
body.prodreports .ui-dashboard .tc-hero-grid-5 > div {
	flex: 1 1 0;
	min-width: 0;
	padding: 0;
	box-sizing: border-box;
}
/* Override the legacy `.pure-g > div:first/last-child .tc-box` margins that
   would otherwise misalign cards inside the flex row. */
body.prodreports .ui-dashboard .tc-hero-grid-5 > div .tc-cohort-card,
body.prodreports .ui-dashboard .tc-hero-grid-5 > div:first-child .tc-cohort-card,
body.prodreports .ui-dashboard .tc-hero-grid-5 > div:last-child .tc-cohort-card {
	margin: 0;
}

body.prodreports .ui-dashboard .tc-chart-card {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	margin: 40px 0 0 0;
	box-sizing: border-box;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin: 0 0 24px 0;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-head > h2 {
	flex: 1 1 auto;
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-legend > li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: #8493a8;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-legend .tc-breakdown-dot {
	width: 8px;
	height: 8px;
	margin: 0;
	border: 0;
}
/* These dot colours must mirror the Chart.js dataset colours so the legend
   chips visually match the bar segments. */
body.prodreports .ui-dashboard .tc-breakdown-dot.existing-subscribers {
	background-color: #006b70;
}
body.prodreports .ui-dashboard .tc-breakdown-dot.new-subscriptions {
	background-color: #00a6aa;
}
body.prodreports .ui-dashboard .tc-breakdown-dot.trial-subscriptions {
	background-color: #00c8c9;
}
body.prodreports .ui-dashboard .tc-breakdown-dot.paused-subscriptions {
	background-color: #e8ecef;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-body {
	position: relative;
	width: 100%;
	height: 480px;
}
body.prodreports .ui-dashboard .tc-chart-card .tc-chart-body > canvas {
	display: block;
	width: 100% !important;
	height: 100% !important;
}

/* Section heading typography + spacing for Subscriptions tabs. The
   selector covers BOTH explicitly-classed `.tc-section-title` h2s
   (LTV) and any plain h2 that's a direct child of a tab pane (Churn
   Stats, Charges, etc.) — the latter is Subscriptions-specific
   because Productsales nests its section h2s inside
   `.tc-table-section > .tc-section-head`, so they're not direct
   children of `.tc-report-tab-pane` and won't match. 48px top margin
   matches Dashboard's section-divider rhythm. */
body.prodreports .ui-dashboard .tc-report-tab-pane > h2.tc-section-title,
body.prodreports .ui-dashboard .tc-report-tab-pane > h2:not(:first-child):not(.tc-section-title) {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
	margin: 48px 0 16px 0;
}

body.prodreports .ui-dashboard .tc-ltv-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
}
body.prodreports .ui-dashboard .tc-ltv-grid > .tc-cohort-card {
	width: 276px;
	flex: 0 0 276px;
	margin: 0;
	/* Base .tc-cohort-card sets `height: 100%`, which overrides the
	   flex container's default `align-items: stretch` and lets each
	   card size to its own content. Reset to auto so a longer label
	   (e.g. "Expected Value Per Customer" wrapping to two lines)
	   stretches the shorter sibling to the same height. */
	height: auto;
}

/* The active tab name takes the role of the section heading, so the
   first in-pane h2 (kept in markup for behavioural parity — duplicates
   the tab name) is hidden. Generalized from `#current-stats` to all
   tab panes so the Trends pane's redundant "Trends" h2 is hidden too. */
body.prodreports .ui-dashboard .tc-report-tab-pane > h2:first-child:not(.tc-section-title) {
	display: none;
}
body.prodreports .ui-dashboard .tc-hero-grid-5 .tc-cohort-card > hr.hr-small,
body.prodreports .ui-dashboard .tc-ltv-grid > .tc-cohort-card > hr.hr-small {
	display: none;
}

body.prodreports .ui-dashboard .tc-hero-grid-5 .tc-cohort-card > h2,
body.prodreports .ui-dashboard .tc-ltv-grid > .tc-cohort-card > h2 {
	margin: 4px 0 0 0;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
}

body.prodreports .ui-dashboard #current-stats > .tc-cohort-grid {
	margin-top: 40px;
}

@media (max-width: 1409px) {
	body.prodreports .ui-dashboard .tc-hero-grid-5 {
		flex-wrap: wrap;
	}
	body.prodreports .ui-dashboard .tc-hero-grid-5 > div {
		flex: 0 0 calc((100% - 32px) / 3);
		max-width: calc((100% - 32px) / 3);
		margin-bottom: 16px;
	}
	body.prodreports .ui-dashboard .tc-hero-grid-5 > div:nth-last-child(-n+2) {
		flex-basis: calc((100% - 16px) / 2);
		max-width: calc((100% - 16px) / 2);
		margin-bottom: 0;
	}
}
@media (max-width: 767px) {
	/* 2-up rows on mobile. `gap: 16px` on the parent .tc-hero-grid-5
	   already provides the inter-card spacing; subtract half of that
	   from each child's width. When the total card count is odd, the
	   final card is alone in its row — expand it to full width via
	   `:nth-child(odd):last-child` so it doesn't sit awkwardly at half
	   width with empty space beside it. */
	body.prodreports .ui-dashboard .tc-hero-grid-5 > div,
	body.prodreports .ui-dashboard .tc-hero-grid-5 > div:nth-last-child(-n+2) {
		flex: 0 0 calc(50% - 8px);
		max-width: calc(50% - 8px);
		margin-bottom: 0;
	}
	body.prodreports .ui-dashboard .tc-hero-grid-5 > div:nth-child(odd):last-child {
		flex: 0 0 100%;
		max-width: 100%;
	}
	/* LTV: 2 cards per row on mobile (Expected Value Per Trial + Per
	   Customer), matching the 2x2 pattern used by other Subscriptions
	   sections. `tc-ltv-grid` is `display: flex` with `gap: 16px` so
	   each card takes (100% - 16px) / 2 = `calc(50% - 8px)`. */
	body.prodreports .ui-dashboard .tc-ltv-grid > .tc-cohort-card {
		flex: 0 0 calc(50% - 8px);
		max-width: calc(50% - 8px);
		min-width: 0;
	}
	body.prodreports .ui-dashboard .tc-chart-card {
		padding: 20px;
	}
	body.prodreports .ui-dashboard .tc-chart-card .tc-chart-head {
		flex-direction: column;
		align-items: flex-start;
	}
}

:where(body.prodreports .ui-dashboard #cohort) > .tc-cohort-wrap {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 12px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	margin: 40px 0 0 0;
	box-sizing: border-box;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 24px 0;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-title {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 auto;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-title > h2 {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #364152;
	letter-spacing: 0;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-title > .icon.tc-tooltip {
	display: inline-flex !important;
	align-items: center;
	color: #8493a8;
	font-size: 16px;
	line-height: 16px;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-order {
	width: 180px;
	margin: 0;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-order .tc-dropdown {
	width: 100%;
	height: 36px;
	background: #ffffff;
	box-shadow: 0 0 0 1px #d1d7de;     /* outset 1px ring — matches date-range filter style, iOS-safe */
	border-radius: 8px;
	box-sizing: border-box;
	position: relative;                /* anchor for the chevron ::after */
}
/* Chevron indicator — same SVG path used by `.tc-section-order::after`. */
body.prodreports .ui-dashboard #cohort .tc-cohort-order .tc-dropdown::after {
	content: '' !important;
	display: block !important;
	position: absolute;
	right: 13px;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7.41' fill='%232b384a'><path d='M10.59 0L6 4.58L1.41 0L0 1.41L6 7.41L12 1.41L10.59 0Z'/></svg>") no-repeat center / 8px auto;
	pointer-events: none;
}
/* Suppress the inner <select>'s own browser/legacy border + chevron so
   the wrapper's box-shadow ring + ::after chevron are the only visible
   edges — same pattern as the date-range filter dropdown. Reserve right
   padding so the value text doesn't run under the chevron. */
body.prodreports .ui-dashboard #cohort .tc-cohort-order .tc-dropdown > select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 0 !important;
	background: transparent;
	background-image: none;
	box-shadow: none;
	padding-right: 32px !important;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table-scroll {
	overflow-x: auto;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-family: 'Inter', sans-serif;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table th,
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td {
	padding: 0;
	height: 40px;
	font-size: 14px;
	line-height: 20px;
	font-weight: 400;
	letter-spacing: 0;
	text-align: center;
	vertical-align: middle;
	border: 0;
	text-transform: none;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table th {
	color: #8493a8;
	background: transparent;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table th:nth-child(1),
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td:nth-child(1) {
	width: 86px;
	min-width: 86px;
	padding-right: 12px;
	text-align: left;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table th:nth-child(2),
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td:nth-child(2) {
	width: 82px;
	min-width: 82px;
	padding-right: 24px;
	text-align: left;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td:nth-child(1),
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td:nth-child(2) {
	color: #364152;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td:not(:nth-child(1)):not(:nth-child(2)) {
	min-width: 77px;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-80 {
	background-color: #006b70;
	color: #ffffff;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-70 {
	background-color: #008a8e;
	color: #ffffff;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-60 {
	background-color: #00a6aa;
	color: #ffffff;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-50 {
	background-color: #00c8c9;
	color: #ffffff;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-40 {
	background-color: #7adfdb;
	color: #364152;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-30 {
	background-color: #a6eaea;
	color: #364152;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-20 {
	background-color: #d3f3f3;
	color: #364152;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-0 {
	background-color: #ecfdfc;
	color: #364152;
}
:where(body.prodreports .ui-dashboard #cohort) .tc-cohort-table td.retention-unknown {
	background: transparent;
	color: #d1d7de;
}

body.prodreports .ui-dashboard .tc-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	padding: 8px 18px;
	background: #006b70;
	border: 0;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #ffffff;
	cursor: pointer;
	transition: background 120ms;
	text-transform: none;
	letter-spacing: 0;
	white-space: nowrap;
}
body.prodreports .ui-dashboard .tc-btn-primary:hover:not(:disabled) {
	background: #005559;
}
body.prodreports .ui-dashboard .tc-btn-primary:focus-visible {
	outline: 2px solid #006b70;
	outline-offset: 2px;
}
body.prodreports .ui-dashboard .tc-btn-primary:disabled {
	background: #d1d7de;
	color: #ffffff;
	cursor: not-allowed;
}

body.prodreports .ui-dashboard .tc-download-actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 24px;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter {
	width: 480px;
	max-width: calc(100vw - 32px);
	padding: 0;
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 20px 40px rgba(15, 23, 42, 0.16);
	font-family: 'Inter', sans-serif;
	color: #1f2937;
	overflow: visible;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header {
	border-radius: 12px 12px 0 0;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer {
	border-radius: 0 0 12px 12px;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-reset {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-commands {
	position: absolute;
	right: 12px;
	top: 14px;
	left: auto;
	margin: 0;
	z-index: 2;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-pin,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-maximize {
	display: none;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: #64748b;
	cursor: pointer;
	opacity: 0.7;
	transition: opacity 120ms, background 120ms;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-close::before {
	content: '\00d7';
	font-size: 22px;
	line-height: 1;
	font-weight: 400;
	color: #64748b;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-close:hover {
	opacity: 1;
	background: #f6f8f9;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 18px 52px 14px 20px;
	background: transparent;
	border: 0;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 20px;
	color: #1f2937;
	border-bottom: 1px solid #eef1f4;
	box-sizing: border-box;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header .icon-filter,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header i.icon-filter {
	color: #64748b;
	font-size: 14px;
	margin-right: 2px;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-body {
	display: block;
	padding: 0;
	margin: 0;
	min-height: 0;
	height: auto;
	background: transparent;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-body .ajs-content {
	position: static;
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;
	padding: 4px 20px 16px 20px;
	height: auto;
	max-height: none;
	overflow: visible;
}
body.prodreports .alertify.ajs-resizable .ajs-dialog.tc-modal-genericproduct-filter,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter {
	min-height: 0;
}
body.prodreports .alertify.ajs-resizable .ajs-dialog.tc-modal-genericproduct-filter .ajs-header,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header {
	position: static;
}
body.prodreports .alertify.ajs-resizable .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer {
	position: static;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter {
	width: 100%;
	display: block;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2 {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 18px 0 8px 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	color: #1f2937;
	border: 0;
	background: transparent;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2:first-child {
	margin-top: 12px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2 .clear-section {
	margin-left: auto;
	font-size: 12px;
	font-weight: 500;
	color: #94a3b8;
	cursor: pointer;
	text-transform: none;
	letter-spacing: 0;
	padding: 2px 6px;
	border-radius: 4px;
	transition: color 120ms, background 120ms;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2 .clear-section::before {
	content: none;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2 .clear-section.has-items {
	color: #006b70;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter h2 .clear-section:hover {
	background: #f6f8f9;
	color: #1f2937;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .ui-input-group {
	width: 100%;
	margin: 0;
	gap: 12px;
	display: flex;
	flex-wrap: wrap;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .ui-input-group > .pure-u-1,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .ui-input-group > .pure-u-1-2 {
	width: 100%;
	padding: 0;
	box-sizing: border-box;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .ui-input-group > .pure-u-1-2 {
	flex: 1 1 calc(50% - 6px);
	min-width: 180px;
	width: auto;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter label {
	display: block;
	margin: 0 0 6px 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	color: #364152;
	text-transform: none;
}

/* NiceSelect2 trigger — leverages the existing FA search icon on .current */
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select {
	width: 100%;
	height: 36px;
	margin: 0;
	padding: 0 32px 0 12px;
	background: #ffffff;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	box-shadow: none;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 34px;
	color: #1f2937;
	display: flex;
	align-items: center;
	transition: border-color 120ms, box-shadow 120ms;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .current::before {
	color: #94a3b8;
	margin-right: 8px;
	font-size: 13px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select::after {
	right: 14px;
	width: 8px;
	height: 8px;
	border-color: #64748b;
	border-width: 0 1.5px 1.5px 0;
	margin-top: -6px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select.disabled {
	background: #f6f8f9;
	color: #8493a8;
	cursor: not-allowed;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select:hover:not(.disabled) {
	border-color: #94a3b8;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select.open,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select:focus {
	border-color: #006b70;
	box-shadow: 0 0 0 3px rgba(0, 107, 112, 0.12);
	outline: none;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .current {
	display: block;
	width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .nice-select-dropdown {
	margin-top: 6px;
	border: 1px solid #e8ecef;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
	padding: 6px;
	background: #ffffff;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .nice-select-search-box {
	padding: 4px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .nice-select-search {
	width: 100%;
	height: 32px;
	padding: 6px 10px;
	border: 1px solid #d1d7de;
	border-radius: 6px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: #1f2937;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .list {
	margin: 4px 0 0 0;
	padding: 0;
	max-height: 220px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .option {
	padding: 8px 10px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #1f2937;
	border-radius: 6px;
	min-height: auto;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .option:hover,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .option.focus,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .option.selected.focus {
	background: #f0fbfb;
	color: #006b70;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .option.selected {
	background: transparent;
	color: #006b70;
	font-weight: 500;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .filter-modal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .filter-modal:empty {
	display: none;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .filter-modal .tc-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 28px;
	padding: 4px 10px;
	background: #f0fbfb;
	border: 1px solid #bcede9;
	border-radius: 999px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	color: #006b70;
	cursor: pointer;
	transition: background 120ms, border-color 120ms;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .filter-modal .tc-badge:hover {
	background: #dcf9f7;
	border-color: #8adcd8;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .filter-modal .tc-badge .fa-times {
	font-size: 11px;
	color: #006b70;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	padding: 14px 20px;
	background: transparent;
	border-top: 1px solid #eef1f4;
	min-height: 0;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-auxiliary,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-primary {
	float: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	padding: 8px 18px;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	cursor: pointer;
	transition: background 120ms, border-color 120ms, color 120ms;
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
	min-width: 0;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-ok {
	background: #006b70;
	color: #ffffff;
	border: 0;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-ok:hover:not(:disabled) {
	background: #005559;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-cancel,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-secondary {
	background: #ffffff;
	color: #364152;
	border: 1px solid #d1d7de;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-cancel:hover:not(:disabled),
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-secondary:hover:not(:disabled) {
	background: #f6f8f9;
	border-color: #94a3b8;
}
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-secondary.disabled,
body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer .ajs-secondary:disabled {
	color: #94a3b8;
	cursor: not-allowed;
	opacity: 0.6;
}

body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .tc-flex > .clear-section {
	margin-left: auto;
}

body.prodreports .toggle-checkbox:checked + .toggle-switch {
	background: #006b70;
}
body.prodreports .hint--info:after {
	background-color: #006b70;
}
body.prodreports .hint--info.hint--top:before {
	border-top-color: #006b70;
}
body.prodreports .hint--info.hint--bottom:before {
	border-bottom-color: #006b70;
}
body.prodreports .hint--info.hint--left:before {
	border-left-color: #006b70;
}
body.prodreports .hint--info.hint--right:before {
	border-right-color: #006b70;
}

@keyframes tc-bottom-sheet-in {
	from { transform: translateY(100%); }
	to { transform: translateY(0); }
}
@keyframes tc-bottom-sheet-out {
	from { transform: translateY(0); }
	to { transform: translateY(100%); }
}
@media (max-width: 767px) {
	body.prodreports .alertify .ajs-modal.tc-product-filter-modal,
	body.prodreports .alertify .ajs-modeless.tc-product-filter-modal {
		display: flex;
		align-items: flex-end;
		justify-content: stretch;
		padding: 0;
		overflow: hidden;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		max-height: 92vh;
		margin: 0;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.18);
		display: block;
		overflow-y: auto;
		overflow-x: clip;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header {
		position: sticky;
		top: 0;
		z-index: 3;
		background: #ffffff;
		padding: 22px 20px 12px 20px;
		border-radius: 16px 16px 0 0;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-header::before {
		content: '';
		position: absolute;
		top: 8px;
		left: 50%;
		transform: translateX(-50%);
		width: 36px;
		height: 4px;
		background: #d1d7de;
		border-radius: 2px;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-body {
		overflow: visible;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-body .ajs-content {
		overflow: visible;
		padding: 4px 20px 24px 20px;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select .list {
		max-height: 28vh;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter #tpl-product-filter .nice-select.open .nice-select-dropdown {
		z-index: 4;
	}
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter .ajs-footer {
		position: sticky;
		bottom: 0;
		z-index: 3;
		background: #ffffff;
		border-radius: 0;
		padding: 14px 20px max(14px, env(safe-area-inset-bottom)) 20px;
	}
	body.prodreports .alertify.ajs-in:not(.ajs-hidden) .ajs-dialog.tc-modal-genericproduct-filter {
		animation-name: tc-bottom-sheet-in;
		animation-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
		animation-duration: 280ms;
	}
	body.prodreports .alertify.ajs-out.ajs-hidden .ajs-dialog.tc-modal-genericproduct-filter {
		animation-name: tc-bottom-sheet-out;
		animation-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
		animation-duration: 220ms;
	}
	/* Wrap hint tooltips inside the sheet so they don't get clipped horizontally */
	body.prodreports .alertify .ajs-dialog.tc-modal-genericproduct-filter [class*="hint--"]::after {
		max-width: 220px;
		white-space: normal;
		word-wrap: break-word;
		text-align: left;
	}
}


/* TC-11942 Integrations page reskin — scoped to `.tc-integrations-page`. */

/* Mirrors Dashboard reskin pattern at main.css:4082 — chrome painted
   white, page width matches `#layout`'s natural 1216. */
body:has(.tc-integrations-page),
body:has(.tc-integrations-page) #layout {
	background: #ffffff;
}
.tc-integrations-page {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #364152;
	max-width: 1216px;
	margin: 0 auto;
	padding: 0;
	background: #ffffff;
	box-sizing: border-box;
}

/* 1152 = 1088 inner (190 sidebar + 32 gap + 866 content) + 64 padding —
   header's right edge aligns with the rightmost card. */
.tc-integrations-page .tc-integrations-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0;
	width: 100%;
	max-width: 1152px;
	padding: 24px 32px;
	margin: 0;
	box-sizing: border-box;
}

.tc-integrations-page .tc-integrations-title {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 20px;
	font-weight: 500;
	line-height: 28px;
	letter-spacing: 0;
	color: #2a3648;
	white-space: nowrap;
}

.tc-integrations-page .tc-integrations-body {
	display: flex;
	gap: 32px;
	align-items: flex-start;
	width: 100%;
	max-width: 1152px;
	padding: 0 32px 24px;
	box-sizing: border-box;
}

.tc-integrations-page .tc-integrations-sidebar {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: flex-start;
	flex: 0 0 190px;
	width: 190px;
	margin: 0;
	padding: 0;
}

.tc-integrations-page .tc-integrations-sidebar-label {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 81px;
	height: 28px;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	letter-spacing: 0.56px;
	color: #8493a8;
	text-align: center;
	text-transform: uppercase;
	background: transparent;
}

.tc-integrations-page .tc-integrations-categories {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
}
.tc-integrations-page .tc-integrations-categories li { margin: 0; padding: 0; list-style: none; }

.tc-integrations-page .tc-integrations-category {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	width: auto;
	margin: 0;
	padding: 8px;
	background: transparent;
	border: 0;
	border-radius: 4px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0;
	color: #8493a8;
	text-align: left;
	cursor: pointer;
	overflow: hidden;
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.tc-integrations-page .tc-integrations-category:hover { color: #2a3648; }

.tc-integrations-page .tc-integrations-category.active {
	background: #e8ecef;
	color: #2a3648;
	font-weight: 500;
}

/* Fixed 866 — body inner 1088 = 190 sidebar + 32 gap + 866 content. */
.tc-integrations-page .tc-integrations-content {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: stretch;
	flex: 0 0 866px;
	width: 866px;
	max-width: 866px;
	min-width: 0;
}

/* `width: 100%` is required — without it the row collapses to children's
   intrinsic width and justify-between becomes a no-op. */
.tc-integrations-page .tc-integrations-subhead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 0;
	margin: 0;
	padding: 0;
	color: #364152;
	font-style: normal;
	white-space: nowrap;
}
.tc-integrations-page .tc-integrations-subtitle {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #364152;
	white-space: nowrap;
}
.tc-integrations-page .tc-integrations-total {
	margin: 0;
	font-weight: 400;
	letter-spacing: -0.3125px;
	color: #364152;
	white-space: nowrap;
}
.tc-integrations-page .tc-integrations-total-label,
.tc-integrations-page .tc-integrations-total-count {
	font-size: 16px;
	line-height: 24px;
	color: #364152;
}
.tc-integrations-page .tc-integrations-total-label { font-weight: 400; }
.tc-integrations-page .tc-integrations-total-count { font-weight: 500; }

/* Keep the <select> in the DOM so list.js can read its value. */
.tc-integrations-page .tc-integrations-legacy-filter { display: none !important; }
/* Reset legacy `.box` chrome padding/border so the grid spans 866px. */
.tc-integrations-page .box {
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	width: 100%;
}

.tc-integrations-page .box-list-autoresponder-wrapper {
	display: contents;
}
.tc-integrations-page #box-list-grid { padding: 0; width: 100%; }
.tc-integrations-page .box-list-autoresponder-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
	align-content: center;
	margin: 0;
	padding: 20px 0;
	list-style: none;
	width: 100%;
}

/* `#box-list-grid` matches the (1,1,0) specificity of the legacy
   `#box-list-grid .box-list-autoresponder { padding: 2em 0.5em }` in
   list.settings.css — class-only here loses the cascade and padding
   reverts to 24/6. */
.tc-integrations-page #box-list-grid .box-list-autoresponder {
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	width: 272.667px;
	flex: 0 0 272.667px;
	min-height: 177.5px;
	height: auto;
	padding: 20px;
	margin: 0;
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 10px;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05);
	overflow: hidden;
}

.tc-integrations-page .box-list-autoresponder .tc-integrations-card-head {
	display: flex;
	align-items: center;
	gap: 0;
	width: auto;
	margin: 0;
	padding: 0;
}

.tc-integrations-page .tc-integrations-card-logo {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: flex-start;
	box-sizing: border-box;
	width: 64px;
	height: 64px;
	background: #ffffff;
	border-radius: 14px;
}
.tc-integrations-page .tc-integrations-card-logo .box-list-autoresponder-cover {
	display: block;
	width: 56px;
	height: 56px;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	object-fit: contain;
	-webkit-filter: none;
	filter: none;
	opacity: 1;
}

.tc-integrations-page .box-list-autoresponder h3 {
	display: block;
	width: 100%;
	height: 25.5px;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 25.5px;
	letter-spacing: -0.4316px;
	color: #2a3648;
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.tc-integrations-page .box-list-autoresponder h3 strong { font-weight: 600; }
.tc-integrations-page .box-list-autoresponder > p { display: none; }

/* `transform: none` resets legacy `transform: translate(-50%, 0)` from
   list.settings.css that absolute-positions the pill over the logo. */
.tc-integrations-page .pill,
.tc-integrations-page .pill.pill-success,
.tc-integrations-page .pill.pill-error,
.tc-integrations-page .box-list-autoresponder-grid .pill-success {
	position: static;
	top: auto; left: auto; right: auto;
	transform: none;
	margin: 0 0 0 8px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 8px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 500;
	font-style: normal;
	line-height: 16px;
	letter-spacing: 0;
	white-space: nowrap;
	box-sizing: border-box;
}
.tc-integrations-page .pill.pill-connected {
	background: #c6f6d5;
	color: #364152;
}
.tc-integrations-page .pill.pill-connected::before {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	background-image: url('/static/logos/figma/icons/check.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}
.tc-integrations-page .pill.pill-new {
	background: #e8ecef;
	color: #364152;
}
.tc-integrations-page .pill.pill-update {
	background: #c6f6d5;
	color: #364152;
}

/* Suppress legacy ::after "Connected" pseudo — pill now in head row. */
.tc-integrations-page .box-list-autoresponder-active::after { content: none; }

.tc-integrations-page .pill.pill-error,
.tc-integrations-page .pill.pill-inline {
	background: #fde2e2;
	color: #9a2727;
}

/* Per Figma 594-3014: actions sit in-flow below the heading, left-aligned.
   Overrides legacy `list.settings.css:107` `position: absolute; top: 1.9em`
   which pins to top-right at ≤567px. */
.tc-integrations-page .box-list-autoresponder-actions {
	position: static;
	right: auto;
	bottom: auto;
	top: auto;
	width: auto;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.tc-integrations-page .box-list-autoresponder-actions .pure-button,
.tc-integrations-page .box-list-autoresponder-actions .button-primary,
.tc-integrations-page .box-list-autoresponder-actions .button-success,
.tc-integrations-page .box-list-autoresponder-actions .button-outline,
.tc-integrations-page .box-list-autoresponder-actions .ui-plugins-settings,
.tc-integrations-page .box-list-autoresponder-actions .ui-plugins-activate {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 4px;
	height: auto;
	padding: 8px;
	background: #ffffff;
	color: #364152;
	border: 1px solid #e8ecef;
	border-radius: 6px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: 0;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.tc-integrations-page .box-list-autoresponder-actions .pure-button:hover,
.tc-integrations-page .box-list-autoresponder-actions .button-primary:hover,
.tc-integrations-page .box-list-autoresponder-actions .button-success:hover,
.tc-integrations-page .box-list-autoresponder-actions .ui-plugins-settings:hover,
.tc-integrations-page .box-list-autoresponder-actions .ui-plugins-activate:hover {
	background: #f6f8f9;
	color: #2a3648;
	border-color: #d1d7de;
}
/* Press feedback matches Dashboard reskin pattern at main.css:7936. */
.tc-integrations-page .box-list-autoresponder-actions .pure-button {
	transition: transform 120ms ease, background-color 180ms ease,
		box-shadow 180ms ease, border-color 180ms ease, color 180ms ease;
	-webkit-tap-highlight-color: transparent;
}
.tc-integrations-page .box-list-autoresponder-actions .pure-button:active {
	transform: scale(0.97);
}
@media (prefers-reduced-motion: reduce) {
	.tc-integrations-page .box-list-autoresponder-actions .pure-button {
		transition: none !important;
		animation: none !important;
	}
}
.tc-integrations-page .box-list-autoresponder-actions .pure-button > span,
.tc-integrations-page .box-list-autoresponder-actions .pure-button > :not(.tc-btn-icon) {
	padding: 0 4px;
}

.tc-integrations-page .tc-btn-settings::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url('/static/logos/figma/icons/sliders.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
	margin-right: 0;
}
.tc-integrations-page .tc-btn-add::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url('/static/logos/figma/icons/plus.svg');
	background-size: 10px 10px;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
	margin-right: 0;
}
.tc-integrations-page .box-list-autoresponder-actions .tc-btn-text {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}

.tc-integrations-page .legal-trademark {
	margin: 32px 0 0;
	font-size: 12px;
	color: #8493a8;
}
.tc-integrations-page .pure-controls.controls-fluid { margin-top: 16px; }

/* Mirrors Dashboard `.tc-cols-btn` (main.css:6507). */
.tc-integrations-page .tc-integrations-back,
.tc-integrations-page .pure-controls .pure-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	height: 36px;
	padding: 8px 16px;
	background: #ffffff;
	color: #364152;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	letter-spacing: 0;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	white-space: nowrap;
	transition: transform 120ms ease, background-color 180ms ease,
		box-shadow 180ms ease, border-color 180ms ease, color 180ms ease;
	-webkit-tap-highlight-color: transparent;
}
.tc-integrations-page .tc-integrations-back:hover,
.tc-integrations-page .pure-controls .pure-button:hover {
	background: #f6f8f9;
	color: #2a3648;
	border-color: #d1d7de;
}
.tc-integrations-page .tc-integrations-back:active,
.tc-integrations-page .pure-controls .pure-button:active { transform: scale(0.97); }
.tc-integrations-page .tc-integrations-back:focus-visible,
.tc-integrations-page .pure-controls .pure-button:focus-visible {
	outline: 2px solid #006b70;
	outline-offset: 1px;
}
@media (prefers-reduced-motion: reduce) {
	.tc-integrations-page .tc-integrations-back,
	.tc-integrations-page .pure-controls .pure-button {
		transition: none !important;
		animation: none !important;
	}
}

.tc-integrations-page .box-list-autoresponder-actions .pure-button:focus-visible {
	outline: 2px solid #006b70;
	outline-offset: 1px;
}

/* Below 1152 the fixed 866 + 190 + 32 gap won't fit — stack body. */
@media (max-width: 1151px) {
	.tc-integrations-page .tc-integrations-body {
		flex-direction: column;
		gap: 24px;
	}
	.tc-integrations-page .tc-integrations-sidebar {
		flex: 0 0 auto;
		width: 100%;
		justify-content: flex-start;
	}
	.tc-integrations-page .tc-integrations-content {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
	}
	.tc-integrations-page .tc-integrations-categories {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 8px;
	}
}
/* Card width override needs `#box-list-grid` to match the desktop rule's
   (1,2,0) specificity — class-only here loses and cards stay 272.667px. */
@media (max-width: 767px) {
	.tc-integrations-page .tc-integrations-head { padding: 16px; max-width: none; }
	.tc-integrations-page .tc-integrations-body { padding: 0 16px 24px; max-width: none; }
	.tc-integrations-page #box-list-grid .box-list-autoresponder {
		width: 100%;
		flex: 0 0 100%;
		max-width: none;
	}
	.tc-integrations-page .tc-integrations-content {
		width: 100%;
		max-width: none;
		flex: 1 1 auto;
	}
	.tc-integrations-page .tc-integrations-subhead {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	.tc-integrations-page .tc-integrations-categories {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 8px;
		padding: 4px 0 8px;
		scrollbar-width: none;
	}
	.tc-integrations-page .tc-integrations-categories::-webkit-scrollbar { display: none; }
	.tc-integrations-page .tc-integrations-category {
		flex: 0 0 auto;
		padding: 8px 12px;
		background: #f6f8f9;
	}
	.tc-integrations-page .tc-integrations-category.active {
		background: #006b70;
		color: #ffffff;
	}
	.tc-integrations-page .tc-integrations-head { flex-wrap: wrap; gap: 12px; }
}

/* Integration plugin settings sub-pages. Body class toggled inline in
   master.php so overrides can't leak to the listing or other settings. */
body.tc-integration-settings-page,
body.tc-integration-settings-page #layout {
	background: #ffffff;
}
body.tc-integration-settings-page #body > .page-container {
	max-width: 1216px;
	margin: 0 auto;
	padding: 24px 32px;
	box-sizing: border-box;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #364152;
}

body.tc-integration-settings-page h2.content-subhead {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	color: #2a3648;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}
body.tc-integration-settings-page .box.padding h2 {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 25.5px;
	color: #2a3648;
	margin: 0 0 12px;
}

body.tc-integration-settings-page .callout {
	background: #f6f8f9;
	color: #364152;
	border: 1px solid #e8ecef;
	border-radius: 8px;
	padding: 12px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	line-height: 20px;
	margin: 0 0 16px;
}
body.tc-integration-settings-page .callout-success {
	background: #c6f6d5;
	border-color: #9ae6b4;
}
body.tc-integration-settings-page .callout-info {
	background: #e6f1ff;
	border-color: #c5dafd;
}

body.tc-integration-settings-page .box.padding {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 10px;
	padding: 24px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	margin: 0 0 16px;
}

body.tc-integration-settings-page .pure-form input[type=text],
body.tc-integration-settings-page .pure-form input[type=url],
body.tc-integration-settings-page .pure-form input[type=email],
body.tc-integration-settings-page .pure-form input[type=password],
body.tc-integration-settings-page .pure-form input[type=number],
body.tc-integration-settings-page .pure-form select,
body.tc-integration-settings-page .pure-form textarea {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	line-height: 20px;
	color: #364152;
	padding: 8px 12px;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	box-shadow: none;
	height: 36px;
	background: #ffffff;
}
body.tc-integration-settings-page .pure-form textarea {
	height: auto;
	min-height: 80px;
}
body.tc-integration-settings-page .pure-form input:focus,
body.tc-integration-settings-page .pure-form select:focus,
body.tc-integration-settings-page .pure-form textarea:focus {
	border-color: #006b70;
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 107, 112, 0.15);
}
body.tc-integration-settings-page .pure-form label {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #364152;
	margin-bottom: 6px;
	display: block;
}

body.tc-integration-settings-page .pure-button.button-success,
body.tc-integration-settings-page input[type=submit].pure-button.button-success {
	background: #006b70;
	color: #ffffff;
	border: 1px solid #006b70;
	border-radius: 8px;
	padding: 8px 16px;
	height: 36px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	box-shadow: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 120ms ease;
}
body.tc-integration-settings-page .pure-button.button-success:hover {
	background: #00565a;
	border-color: #00565a;
	color: #ffffff;
}
body.tc-integration-settings-page .pure-button.button-success:active {
	transform: scale(0.97);
}

/* Outlined-teal variant for the secondary bulk action — Stripe Connect+
   has both "Connect another" (filled) and "Upgrade all" (outlined). */
body.tc-integration-settings-page .pure-controls.pure-controls-bottom .pure-button.button-success {
	background: #ffffff;
	color: #006b70;
	border-color: #006b70;
}
body.tc-integration-settings-page .pure-controls.pure-controls-bottom .pure-button.button-success:hover {
	background: #f6fefe;
	color: #00565a;
	border-color: #00565a;
}

body.tc-integration-settings-page .pure-button.button-primary {
	background: #ffffff;
	color: #364152;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	padding: 8px 16px;
	height: 36px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	box-shadow: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 120ms ease;
}
body.tc-integration-settings-page .pure-button.button-primary:hover {
	background: #f6f8f9;
	color: #2a3648;
	border-color: #d1d7de;
}
body.tc-integration-settings-page .pure-button.button-primary:active {
	transform: scale(0.97);
}

body.tc-integration-settings-page .pure-button.button-error {
	background: #ffffff;
	color: #9a2727;
	border: 1px solid #f5b8b8;
	border-radius: 8px;
	padding: 8px 16px;
	height: auto;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	box-shadow: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.tc-integration-settings-page .pure-button.button-error:hover {
	background: #fde2e2;
	color: #7a1f1f;
	border-color: #f5b8b8;
}
body.tc-integration-settings-page .pure-button.button-xsmall.button-error {
	font-size: 13px;
	padding: 6px 12px;
}

body.tc-integration-settings-page .pill,
body.tc-integration-settings-page .pill-fixedwidth {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	padding: 4px 8px;
	border-radius: 8px;
	letter-spacing: 0;
}
body.tc-integration-settings-page .pill.pill-success {
	background: #c6f6d5;
	color: #364152;
}
body.tc-integration-settings-page .pill.pill-info {
	background: #e6f1ff;
	color: #364152;
}

body.tc-integration-settings-page .pure-controls.controls-full {
	margin-top: 24px;
}

/* Reset legacy `.payment-list li:hover { background; border }` and
   `.payment-list-actions { float: right }` in list.settings.css:71-74
   so Delete is always pinned right (via `order: 99` + `margin-left: auto`)
   regardless of account-name length, and rows don't shift on hover. */
body.tc-integration-settings-page .payment-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
body.tc-integration-settings-page .payment-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 0;
	margin: 0;
	background: transparent;
	border: 0;
	overflow: visible;
}
body.tc-integration-settings-page .payment-list li + li {
	border-top: 1px solid #e8ecef;
}
body.tc-integration-settings-page .payment-list li:hover {
	background: transparent;
	border-color: #e8ecef;
}
body.tc-integration-settings-page .payment-list .pill-fixedwidth,
body.tc-integration-settings-page .payment-list > li > .pill {
	flex-shrink: 0;
	align-self: flex-start;
	margin: 2px 0 0;
}
body.tc-integration-settings-page .payment-list-name {
	flex: 1 1 0;
	min-width: 0;
	word-break: break-word;
	line-height: 22px;
	font-size: 14px;
	color: #364152;
}
body.tc-integration-settings-page .payment-list-name .text-size-small {
	display: block;
	margin-top: 4px;
	color: #6b7280;
	font-size: 12px;
}
body.tc-integration-settings-page .payment-list-actions {
	flex-shrink: 0;
	float: none;
	margin: 0 0 0 auto;
	align-self: flex-start;
	order: 99;
}

@media (max-width: 767px) {
	body.tc-integration-settings-page #body > .page-container {
		padding: 16px;
	}
	body.tc-integration-settings-page h2.content-subhead {
		font-size: 18px;
		line-height: 24px;
		margin-bottom: 12px;
	}
	body.tc-integration-settings-page .box.padding {
		padding: 16px;
	}
	/* Legacy `.pure-controls.controls-full` is `float: right` (main.css:659);
	   on phones that pushes the inline-block buttons off the right edge.
	   Reset to a vertical stack of full-width buttons. */
	body.tc-integration-settings-page .pure-controls.controls-full,
	body.tc-integration-settings-page .box .pure-controls.controls-full,
	body.tc-integration-settings-page .box.padding .pure-controls.controls-full {
		float: none;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		width: 100%;
		margin: 16px 0 0;
	}
	body.tc-integration-settings-page .pure-controls.controls-full .pure-button {
		width: 100%;
		margin: 0;
		box-sizing: border-box;
		justify-content: center;
	}
	/* Go back stays small + right-aligned so the primary teal CTA is the
	   visual anchor; flatten any wrapper holding a content card alongside
	   action rows so `order: 99` can push Go back to the very end. */
	body.tc-integration-settings-page .pure-controls.controls-full .pure-button.button-primary {
		width: auto;
		align-self: flex-end;
	}
	body.tc-integration-settings-page #body > .page-container :is(div):has(> .box.padding):has(> .pure-controls.controls-full),
	body.tc-integration-settings-page #body > .page-container > .pure-controls.controls-full:has(.button-primary):has(.button-success) {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}
	body.tc-integration-settings-page #body > .page-container :is(div):has(> .box.padding):has(> .pure-controls.controls-full) > .pure-controls.controls-full {
		display: contents;
	}
	body.tc-integration-settings-page #body > .page-container :is(div):has(> .box.padding):has(> .pure-controls.controls-full) > *,
	body.tc-integration-settings-page #body > .page-container :is(div):has(> .box.padding):has(> .pure-controls.controls-full) > .pure-controls.controls-full > * {
		margin-top: 0;
		margin-bottom: 0;
	}
	body.tc-integration-settings-page #body > .page-container .pure-button.button-primary {
		order: 99;
	}
	body.tc-integration-settings-page #body > .page-container > .pure-button,
	body.tc-integration-settings-page #thrivepay-list > .pure-button,
	body.tc-integration-settings-page #thrivepay-create > .pure-button,
	body.tc-integration-settings-page form > .pure-button {
		width: 100%;
		box-sizing: border-box;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	body.tc-integration-settings-page .payment-notice {
		max-width: 100%;
		margin: 12px 0 0;
	}
}

/* TC-11808 Sign-in page reskin (login.php). Standalone page, not the SPA. */
body.tc-signin-page {
	margin: 0;
	background: #ffffff;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #2b384a;
	min-height: 100vh;
	/* Grid keeps the layout row at 1fr (filling viewport minus footer)
	   regardless of the right panel's 1032-tall graphic. Flex column let
	   the layout collapse to graphic height on tall viewports, pushing
	   the form below center. */
	display: grid;
	grid-template-rows: 1fr auto;
	grid-template-columns: minmax(0, 1fr);
	/* Belt-and-braces: never let any descendant exceed viewport width on
	   narrow phones. Without this, a fixed-width child (e.g. the 720
	   right panel before display:none kicks in below 767) could leak. */
	overflow-x: hidden;
}
body.tc-signin-page .tc-signin-layout {
	display: flex;
	min-height: 0;
}

body.tc-signin-page .tc-signin-left {
	flex: 1 1 50%;
	background: #ffffff;
	display: flex;
	flex-direction: column;
	align-items: center;
	/* Center form vertically in the panel. Logo is absolutely positioned
	   at the top so it doesn't shift the form's centering — matching
	   Figma 789-2499 where the form has equal 302px space above and below. */
	justify-content: center;
	padding: 16px 24px;
	box-sizing: border-box;
	position: relative;
}
body.tc-signin-page .tc-signin-logo-wrap {
	position: absolute;
	top: 16px;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 32px;
}
body.tc-signin-page .tc-signin-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	height: 32px;
}
body.tc-signin-page .tc-signin-logo img {
	width: 130px;
	height: 32px;
	display: block;
}

body.tc-signin-page .tc-signin-form-wrap {
	/* `width: 100%; max-width: 400px` shrinks below 400 fluidly when the
	   parent is narrower than 400 (e.g. mobile 390 wide with 24px padding
	   each side leaves 342). The previous `width: 400; max-width: 100%`
	   declared 400 as tentative width and parent-width as cap, which some
	   layouts didn't honour, causing horizontal overflow on phones. */
	width: 100%;
	max-width: 400px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
body.tc-signin-page .tc-signin-headline {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-bottom: 16px;
	text-align: center;
}
body.tc-signin-page .tc-signin-headline h1 {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 30px;
	font-weight: 600;
	line-height: 36px;
	color: #2b384a;
}
body.tc-signin-page .tc-signin-headline p {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #55657a;
}

body.tc-signin-page .tc-signin-error {
	margin: 0;
	padding: 12px 16px;
	background: #fde2e2;
	color: #9a2727;
	border: 1px solid #f5b8b8;
	border-radius: 8px;
	font-size: 14px;
	line-height: 20px;
}

body.tc-signin-page .tc-signin-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	border: 0;
}
body.tc-signin-page .tc-signin-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
body.tc-signin-page .tc-signin-field label {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 14px;
	color: #2b384a;
}
body.tc-signin-page .tc-signin-field input {
	width: 100%;
	box-sizing: border-box;
	padding: 6px 20px;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	background: #ffffff;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 24px;
	color: #2b384a;
	height: 38px;
	box-shadow: none;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.tc-signin-page .tc-signin-field input::placeholder { color: #afbbc9; }
body.tc-signin-page .tc-signin-field input:focus {
	border-color: #006b70;
	box-shadow: 0 0 0 3px rgba(0, 107, 112, 0.15);
}

body.tc-signin-page .tc-signin-submit {
	width: 100%;
	margin-top: 8px;
	padding: 12px 16px;
	background: #006b70;
	color: #ffffff;
	border: 1px solid #006b70;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 24px;
	cursor: pointer;
	box-shadow: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 120ms ease;
	-webkit-appearance: none;
	appearance: none;
}
body.tc-signin-page .tc-signin-submit:hover {
	background: #00565a;
	border-color: #00565a;
}
body.tc-signin-page .tc-signin-submit:active { transform: scale(0.98); }
body.tc-signin-page .tc-signin-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

body.tc-signin-page .tc-signin-links {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
body.tc-signin-page .tc-signin-links a {
	padding: 8px 4px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 16px;
	color: #2a3648;
	text-decoration: none;
	border-radius: 6px;
	transition: background-color 0.15s ease, color 0.15s ease;
}
body.tc-signin-page .tc-signin-links a:hover {
	background: #f6f8f9;
	color: #006b70;
}

/* Right half — Figma's 720×1032 panel with the profile-card group
   centered inside. Use flex centering so on shorter viewports the
   graphic stays visually centered (top/bottom clipped equally) and on
   wider right-halves the 720-wide graphic stays anchored center. */
/* Right panel locked to Figma's 789:2523 spec (720×1032). Without this
   the panel grows with viewport (flex 1 1 50%) and the 720-wide graphic
   looks shrunken inside it on screens wider than 1440. The form side
   absorbs any extra viewport width.

   Below 1280, we fall back to 50/50 so the 400-wide form has room
   alongside the right panel without triggering horizontal scroll. The
   graphic stays 720 wide (absolute, centered) and the panel clips
   anything outside the visible area via overflow:hidden. */
body.tc-signin-page .tc-signin-right {
	flex: 0 0 720px;
	max-width: 720px;
	background: #e8ecef;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
body.tc-signin-page .tc-signin-left {
	flex: 1 1 auto;
	min-width: 0;
}
@media (max-width: 1279px) and (min-width: 768px) {
	body.tc-signin-page .tc-signin-right {
		flex: 1 1 50%;
		max-width: none;
	}
	body.tc-signin-page .tc-signin-left {
		flex: 1 1 50%;
	}
}
/* Graphic is absolutely positioned + centered so its 1032 fixed height
   doesn't anchor the right panel's intrinsic height. Without `absolute`,
   the panel was forced to 1032 tall regardless of viewport, and on taller
   viewports the left panel (stretched to match) had the form sitting
   well below center. With `absolute` the panel stretches freely to
   viewport-minus-footer and the form centers within. */
body.tc-signin-page .tc-signin-graphic {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 720px;
	height: 1032px;
}


/* Lines exactly per Figma (789:2527-2530). Each starts as a horizontal
   4×N SVG and rotates around its top-left to land at the calculated
   endpoints. Group center ≈ profile card center at (360, 509). */
body.tc-signin-page .tc-signin-line {
	position: absolute;
	pointer-events: none;
	display: block;
	transform-origin: 0 0;
}
body.tc-signin-page .tc-signin-line-h {
	left: 141px;
	top: 506px;
	width: 438px;
	height: 4px;
}
body.tc-signin-page .tc-signin-line-v {
	left: 360px;
	top: 290px;
	width: 438px;
	height: 4px;
	transform: rotate(90deg);
}
/* Line 7 (Figma 789:2529) — 135° diagonal connecting the tag icon
   (upper-right) to the face-scan icon (lower-left), passing through the
   card center (360, 509). Line is centered on the card, 438 long, so
   endpoints sit at (515, 354) and (205, 664) — both INSIDE their
   respective icons' bounding boxes so the icons' white bodies cover the
   line endpoints, and only the line's middle (between the two icons) is
   visible. CSS box at (515, 354) with rotate(135°) origin top-left
   produces the other endpoint at (515-310, 354+310) = (205, 664). */
body.tc-signin-page .tc-signin-line-d1 {
	left: 515px;
	top: 354px;
	width: 438px;
	height: 4px;
	transform: rotate(135deg);
}
body.tc-signin-page .tc-signin-line-d2 {
	left: 360.12px;
	top: 508.3px;
	width: 219.203px;
	height: 4px;
	transform: rotate(45deg);
}

/* Per Figma 789:2544/2550/2555/2563/2567/2572/2580 — each icon is a
   white box with a solid #e8ecef border of the per-icon width below.
   No shadow, no filter — those are not in the Figma spec. */
body.tc-signin-page .tc-signin-icon {
	position: absolute;
	background: #ffffff;
	border-style: solid;
	border-color: #e8ecef;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
body.tc-signin-page .tc-signin-icon img { display: block; }
body.tc-signin-page .tc-signin-icon-1 {
	left: 340px; top: 289px; width: 40px; height: 40px;
	border-width: 4px; border-radius: 8px;
}
body.tc-signin-page .tc-signin-icon-1 img { width: 24px; height: 24px; }
body.tc-signin-page .tc-signin-icon-2 {
	left: 474.4px; top: 342.4px; width: 53.2px; height: 53.2px;
	border-width: 5.32px; border-radius: 10.64px;
}
body.tc-signin-page .tc-signin-icon-2 img { width: 31.92px; height: 31.92px; }
body.tc-signin-page .tc-signin-icon-3 {
	left: 526.8px; top: 476.8px; width: 66.4px; height: 66.4px;
	border-width: 6.64px; border-radius: 13.28px;
}
body.tc-signin-page .tc-signin-icon-3 img { width: 39.84px; height: 39.84px; }
body.tc-signin-page .tc-signin-icon-4 {
	left: 461px; top: 610px; width: 80px; height: 80px;
	border-width: 8px; border-radius: 16px;
}
body.tc-signin-page .tc-signin-icon-4 img { width: 48px; height: 48px; }
body.tc-signin-page .tc-signin-icon-5 {
	left: 326.8px; top: 675.8px; width: 66.4px; height: 66.4px;
	border-width: 6.64px; border-radius: 13.28px;
}
body.tc-signin-page .tc-signin-icon-5 img { width: 39.84px; height: 39.84px; }
body.tc-signin-page .tc-signin-icon-6 {
	left: 193.4px; top: 623.4px; width: 53.2px; height: 53.2px;
	border-width: 5.32px; border-radius: 10.64px;
}
body.tc-signin-page .tc-signin-icon-6 img { width: 31.92px; height: 31.92px; }
body.tc-signin-page .tc-signin-icon-7 {
	left: 140px; top: 490px; width: 40px; height: 40px;
	border-width: 4px; border-radius: 8px;
}
body.tc-signin-page .tc-signin-icon-7 img { width: 24px; height: 24px; }
/* Cursor (Figma 789:2586). Metadata reports x=1275 in Figma's internal
   coordinate system, but the React export's `left-[1251px]` is the
   actual rendered position (24px = the cursor width, accounting for
   the horizontal flip wrapper). Panel-rel x=531 puts the cursor tip
   overlapping the sparkle's bottom-right corner per Figma. */
body.tc-signin-page .tc-signin-cursor {
	position: absolute;
	left: 531px; top: 666px; width: 24px; height: 24px;
	transform: scaleY(-1) rotate(180deg);
	pointer-events: none;
}

/* Profile card (Figma 789:2531) — verbatim Figma CSS:
     border-radius: 8px;
     border: 6px solid #e8ecef;
     background: #fff;
     display: flex;
     width: 168px;
     padding: 64px 16px 20px 16px;
     flex-direction: column;
     align-items: flex-start;
     gap: 24px;
   Height is auto from flex content (Frame 2206 = avatar 40 + gap-16 +
   name bars 16 = 72) + padding (64+20=84) = 156. Cover and pill remain
   absolute (overlay), positioned per their own Figma specs. */
body.tc-signin-page .tc-signin-profile {
	position: absolute;
	left: 276px;
	top: 431px;
	width: 168px;
	background: #ffffff;
	border: 6px solid #e8ecef;
	border-radius: 8px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 64px 16px 20px 16px;
	gap: 24px;
	/* Clip cover/pill at the card edge so the border stays clean even
	   when absolute children overflow padding-box. */
	overflow: hidden;
}
/* Frame 2206 (Figma 789:2533) — the only flex child of the card. Holds
   the avatar and name bars, stacked vertically with gap-16 and centered. */
body.tc-signin-page .tc-signin-profile-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	width: 100%;
}
body.tc-signin-page .tc-signin-profile-cover {
	position: absolute;
	/* Figma 789:2532: cover at (4, 4) w=160 h=72 — but Figma renders this
	   in OUTER (border-box) coords, while CSS positions absolute children
	   relative to padding-box (inside the 6px border). To land cover at
	   Figma's RENDERED position (4px from outer edge), we'd need width 160
	   which overflows the 156-wide padding-box by 8. Shrinking cover to
	   148 keeps it fully inside padding-box with 4px symmetric white
	   margin to the border on left + right — matching Figma's visual. */
	left: 4px;
	top: 4px;
	width: 148px;
	height: 72px;
	border-radius: 4px;
	/* Figma 789:2532 cover — two radialGradient layers verbatim from the
	   Figma export (gradientTransform matrices unchanged), composited
	   over #e8ecef. Pink + teal blobs are anchored above the rect and
	   bleed downward into the visible area. */
	background-color: #e8ecef;
	background-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 72' preserveAspectRatio='none'><defs><radialGradient id='g' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(0.78947 13.23 -7.7368 1.35 87.895 -24.3)'><stop offset='0' stop-color='%23F9DDF4' stop-opacity='1'/><stop offset='1' stop-color='%23F9DDF4' stop-opacity='0'/></radialGradient></defs><rect width='100%25' height='100%25' fill='url(%23g)'/></svg>"),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 72' preserveAspectRatio='none'><defs><radialGradient id='g' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(-2.1053 12.96 -7.5789 -3.6 136.84 -57.6)'><stop offset='0' stop-color='%2380E7E1' stop-opacity='1'/><stop offset='1' stop-color='%2380E7E1' stop-opacity='0'/></radialGradient></defs><rect width='100%25' height='100%25' fill='url(%23g)'/></svg>");
	background-size: 100% 100%, 100% 100%;
	background-repeat: no-repeat;
}
/* Avatar (Figma 789:2534): outer 40×40 with a 3px white border. Tailwind
   `border-3` + default border-box keeps the outer at 40 with a 3px inset
   border. The image inside is positioned per Figma's exact values:
   left:-37.69%, top:-0.45%, size:175.38% — frames the woman's face in the
   visible circle (default object-fit:cover would crop differently). */
/* Avatar (Figma 789:2534): a flex child of Frame 2206, naturally
   positioned by the card's padding + Frame 2206's items-center. No
   absolute positioning needed. */
body.tc-signin-page .tc-signin-profile-avatar {
	position: relative;
	width: 40px;
	height: 40px;
	border: 3px solid #ffffff;
	border-radius: 100px;
	overflow: hidden;
	background: #0a0a0a;
	box-sizing: border-box;
	flex-shrink: 0;
}
body.tc-signin-page .tc-signin-profile-avatar img {
	position: absolute;
	left: -37.69%;
	top: -0.45%;
	width: 175.38%;
	height: 175.38%;
	max-width: none;
	display: block;
}
/* Name bars (Figma 789:2540): also a flex child of Frame 2206, sits
   below the avatar with gap-16. Two pill-shaped gray bars side by side. */
body.tc-signin-page .tc-signin-profile-name {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
}
body.tc-signin-page .tc-signin-profile-name-bar {
	background: #e8ecef;
	border-radius: 100px;
	height: 16px;
	display: block;
}
body.tc-signin-page .tc-signin-profile-name-bar-lg { width: 64px; }
body.tc-signin-page .tc-signin-profile-name-bar-sm { width: 32px; }
/* Teal pill (Figma 789:2543). Figma React says left:128 top:84 — but
   that's in OUTER coords; CSS positions absolute children relative to
   padding-box (6px inside the border). Shifting -6 each direction lands
   the pill at Figma's RENDERED outer position (128, 84). Without this
   adjustment the pill overflows padding-box right and gets clipped. */
body.tc-signin-page .tc-signin-profile-pill {
	position: absolute;
	left: 122px;
	top: 78px;
	width: 32px;
	height: 16px;
	background: #00868c;
	border-radius: 100px;
	display: block;
}

body.tc-signin-page .tc-signin-footer {
	flex: 0 0 auto;
	background: #ffffff;
	border-top: 1px solid #e8ecef;
	padding: 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	width: 100%;
	color: #55657a;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	line-height: 18px;
}
body.tc-signin-page .tc-signin-footer p { margin: 0; color: #55657a; }
body.tc-signin-page .tc-signin-footer-links {
	display: flex;
	align-items: center;
	gap: 16px;
}
body.tc-signin-page .tc-signin-footer-links a {
	color: #55657a;
	font-weight: 500;
	font-size: 12px;
	line-height: 16px;
	text-decoration: underline;
}
body.tc-signin-page .tc-signin-footer-links a:hover { color: #2a3648; }



@media (max-width: 767px) {
	body.tc-signin-page .tc-signin-layout {
		flex-direction: column;
	}
	body.tc-signin-page .tc-signin-left {
		flex: 1 1 auto;
		padding: 16px;
		min-width: 0;
	}
	body.tc-signin-page .tc-signin-right { display: none; }
	body.tc-signin-page .tc-signin-headline h1 {
		font-size: 24px;
		line-height: 30px;
	}
	body.tc-signin-page .tc-signin-footer {
		flex-direction: column;
		gap: 12px;
		text-align: center;
		padding: 16px;
	}
	body.tc-signin-page .tc-signin-footer-links {
		flex-wrap: wrap;
		justify-content: center;
		gap: 12px 16px;
	}
}

/* ============================================================
   TC-11809 Reset password page reskin (reset.php)
   Reuses `.tc-signin-page` body class for shared layout, form,
   footer. Adds a different right-side illustration: three stacked
   cards (mail → password reveal → check) connected by vertical
   lines, plus a cursor near the password input. Figma 789:2652
   (default) and 789:2737 (submitted).
   ============================================================ */

/* "Go Back" button rendered as an <a> styled to match .tc-signin-submit.
   Explicit text-align + color belt-and-suspenders so the anchor element
   doesn't fall back to default underline / blue link colour. */
body.tc-signin-page .tc-signin-submit-link {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	text-decoration: none;
	color: #ffffff;
	box-sizing: border-box;
}
body.tc-signin-page .tc-signin-submit-link:hover,
body.tc-signin-page .tc-signin-submit-link:focus,
body.tc-signin-page .tc-signin-submit-link:active {
	text-decoration: none;
	color: #ffffff;
}

/* Top mail card + Bottom check card — Figma 789:2678 and 789:2702.
   Outer 320×64 with #e8ecef bg, #d1d7de border, 8px radius, 8px padding.
   Inside: a white card (Frame 2119) with mail/check icon + two gray bars. */
body.tc-signin-page .tc-reset-card {
	position: absolute;
	left: 200px;
	width: 320px;
	height: 64px;
	background: #e8ecef;
	border: 1px solid #d1d7de;
	border-radius: 8px;
	padding: 8px;
	box-sizing: border-box;
}
body.tc-signin-page .tc-reset-card-top { top: 272px; }
body.tc-signin-page .tc-reset-card-bottom { top: 696px; }
body.tc-signin-page .tc-reset-card-inner {
	background: #ffffff;
	border: 1px solid #e8ecef;
	border-radius: 8px;
	height: 48px;
	padding: 12px 16px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
body.tc-signin-page .tc-reset-card-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	display: block;
}
body.tc-signin-page .tc-reset-card-bars {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
body.tc-signin-page .tc-reset-card-bar {
	background: #e8ecef;
	height: 12px;
	border-radius: 100px;
	display: block;
}
body.tc-signin-page .tc-reset-card-bar-lg { width: 80px; }
body.tc-signin-page .tc-reset-card-bar-sm { width: 40px; }

/* Vertical white lines connecting the cards (Figma 789:2677 and 789:2701).
   4px wide, 44px tall, aligned with the icon column of the top/bottom
   cards at panel-rel x=234. */
body.tc-signin-page .tc-reset-line {
	position: absolute;
	left: 234px;
	width: 4px;
	height: 44px;
	background: #ffffff;
}
body.tc-signin-page .tc-reset-line-top { top: 340px; }
body.tc-signin-page .tc-reset-line-bottom { top: 648px; }

/* Password card (Figma 789:2690). 320×256 white card with a 312×178
   gradient cover at top and a pill-shaped password input below. */
body.tc-signin-page .tc-reset-pw {
	position: absolute;
	left: 200px;
	top: 388px;
	width: 320px;
	height: 256px;
	background: #ffffff;
	border-radius: 8px;
	padding: 8px;
	box-sizing: border-box;
}
body.tc-signin-page .tc-reset-pw-cover {
	position: absolute;
	left: 4px;
	top: 4px;
	width: 312px;
	height: 178px;
	border-radius: 4px;
	background-color: #e8ecef;
	/* Figma 789:2691 — same two-radial-gradient layout as the sign-in
	   profile cover but with the matrix-transformed gradients scaled to
	   the 312×178 cover area (Figma React export, verbatim). */
	background-image:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 312 178' preserveAspectRatio='none'><defs><radialGradient id='g' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(1.5395 32.708 -15.087 3.3375 171.39 -60.075)'><stop offset='0' stop-color='%23F9DDF4' stop-opacity='1'/><stop offset='1' stop-color='%23F9DDF4' stop-opacity='0'/></radialGradient></defs><rect width='100%25' height='100%25' fill='url(%23g)'/></svg>"),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 312 178' preserveAspectRatio='none'><defs><radialGradient id='g' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(-4.1053 32.04 -14.779 -8.9 266.84 -142.4)'><stop offset='0' stop-color='%2380E7E1' stop-opacity='1'/><stop offset='1' stop-color='%2380E7E1' stop-opacity='0'/></radialGradient></defs><rect width='100%25' height='100%25' fill='url(%23g)'/></svg>");
	background-size: 100% 100%, 100% 100%;
	background-repeat: no-repeat;
}
body.tc-signin-page .tc-reset-pw-content {
	position: absolute;
	left: 24px;
	top: 168px;
	width: 272px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
body.tc-signin-page .tc-reset-pw-input {
	background: #f6f8f9;
	border: 4px solid #ffffff;
	border-radius: 100px;
	height: 48px;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 8px 8px 16px;
	box-sizing: border-box;
}
body.tc-signin-page .tc-reset-pw-text {
	font-family: 'DM Mono', 'Courier New', monospace;
	font-size: 20px;
	font-weight: 500;
	line-height: 20px;
	color: #2b384a;
	white-space: nowrap;
}
body.tc-signin-page .tc-reset-pw-button {
	background: #00868c;
	border-radius: 100px;
	width: 56px;
	height: 32px;
	display: block;
	flex-shrink: 0;
}

/* Cursor (Figma 789:2711) — purple arrow at panel-rel (416, 596), 20×20.
   `-scale-x-100` from Figma React = horizontal flip. */
body.tc-signin-page .tc-reset-cursor {
	position: absolute;
	left: 416px;
	top: 596px;
	width: 20px;
	height: 20px;
	transform: scaleX(-1);
	pointer-events: none;
	display: block;
}
