:root {
  color-scheme: dark;

  --TWPT-primary-text: #e8eaed;
  --TWPT-primary-text-alt: var(--TWPT-primary-text);
  --TWPT-secondary-text: #9aa0a6;
  --TWPT-primary-background: #202124;
  --TWPT-secondary-background: #28292c;
  --TWPT-active-background: #3c4043;
  --TWPT-card-border: #5f6368;
  --TWPT-subtle-border: #383735;
  --TWPT-link: #8ab4f8;
  --TWPT-highlighted-item-background: rgba(255, 255, 255, .08);
  --TWPT-thread-read-background: var(--TWPT-highlighted-item-background);
  --TWPT-drawer-background: #2d2e30;
  --TWPT-button-background: #3c3e42;
  --TWPT-subtle-button-background: rgba(255, 255, 255, .54);
  --TWPT-input-underline: rgba(255, 255, 255, .28);
  --TWPT-blue-100: #BBDEFB;
  --TWPT-blue-A100: #82B1FF;
  --TWPT-bad-text: #f6aea9;
  --TWPT-bad-text-lightbg: #ffc4c0;
  --TWPT-good-text: #34a853;
  --TWPT-good-text-lightbg: #3cc160;
  --TWPT-interop-primary-text: var(--TWPT-primary-text);
  --TWPT-interop-secondary-text: #c4c7c5;
  --TWPT-interop-subtle-border: #474747;
  --TWPT-interop-success: #37be5f;
  --TWPT-interop-blue: #7cacf8;
}

body {
  color: var(--TWPT-primary-text);
  background-color: var(--TWPT-primary-background)!important;
}

p {
  color: var(--TWPT-primary-text);
}

body.ec a:not(.mdc-list-item) {
  color: var(--TWPT-link);
}

/* Header */
.material-content > header {
  background-color: var(--TWPT-primary-background)!important;
}

.material-content > header .app-title-button,
    .material-content > header .app-title-text {
  color: var(--TWPT-secondary-text)!important;
}

.material-content > header :is(material-button,
    material-button material-icon,
    .mdc-button.mdc-icon-button,
    notification-bell material-icon) {
  color: rgba(255, 255, 255, .87)!important;
}

.search-box {
  background-color: #313235!important;
}

.search-box .clear-icon {
  opacity: 0.8;
  color: rgba(255, 255, 255, .87)!important;
}

.material-content > header .bell.mixin {
  fill: rgba(255, 255, 255, .87)!important;
}

/* Notification bell */
notification-bell:focus {
  background-color: rgba(255, 255, 255, .10)!important;
}

/* Drawer */
material-drawer, material-drawer .panel, material-list-item {
  background-color: var(--TWPT-drawer-background)!important;
}

material-list-item:hover, material-list-item:focus, material-list-item.item--active {
  background-color: var(--TWPT-active-background)!important;
}

material-drawer .panel {
  border-bottom-color: #25231f!important;
}

material-drawer .drawer-section-title, material-drawer .header > material-icon {
  color: var(--TWPT-secondary-text)!important;
}

material-drawer material-list-item,
    material-drawer material-list-item .title {
  color: #d2cecb!important;
}

material-drawer ec-forum-drawer-item material-checkbox material-icon {
  filter: brightness(1.5);
}

/* Tabs */
material-tab-strip tab-button {
  color: var(--TWPT-secondary-text)!important;
}

material-tab-strip tab-button.active {
  color: var(--TWPT-blue-A100)!important;
}

material-tab-strip .tab-indicator {
  border-top-color: var(--TWPT-blue-A100)!important;
}

/* Header menus */
.popup material-list-item {
  color: #d2cecb!important;
}

/* Filters (ec-query-builder) */
material-condition-builder .compound-condition-operator {
  color: var(--TWPT-secondary-text)!important;
}

material-condition-builder .compound-condition-operator:is(::before, ::after) {
  border-left-color: rgba(255, 255, 255, .20)!important;
}

material-condition-builder .add-button,
    ec-query-builder .save-filter-button:not([disabled]) {
  color: var(--TWPT-blue-A100)!important;
}

material-condition-builder .add-condition,
    ec-query-builder .close-button {
  background-color: var(--TWPT-interop-blue)!important;
  color: #1f1f1f!important;
}

/* Selector */

/*
 * This applies not only to the selector but also to the ec-work-state-picker.
 */
.popup-wrapper, material-list, .popup .item-group-list {
  background-color: var(--TWPT-drawer-background)!important;
}

material-list [group]:not(.empty) + *:not(script):not(template):not(.empty),
    .popup .item-group-list [group]:not(.empty) + *:not(script):not(template):not(.empty) {
  box-shadow: inset 0 8px 0 0 var(--TWPT-drawer-background)!important;
  border-top-color: #1f1f1f!important;
}

material-list material-select-item:hover,
    material-list material-select-item:focus,
    material-list material-select-dropdown-item:hover,
    material-list material-select-dropdown-item:focus,
    material-list material-select-dropdown-item.active,
    material-list material-select-dropdown-item:not(.multiselect).selected,
    material-select-searchbox:focus-within + material-list .single-select-item:first-of-type,
    .popup .item-group-list material-select-item:hover,
    .popup .item-group-list material-select-item:focus,
    .popup .item-group-list material-select-item.active,
    .popup .item-group-list material-select-dropdown-item:hover,
    .popup .item-group-list material-select-dropdown-item:focus,
    .popup .item-group-list material-select-dropdown-item.active,
    .popup .item-group-list material-select-dropdown-item:not(.multiselect).selected {
  background-color: var(--TWPT-highlighted-item-background)!important;
}

material-list .single-select-item,
    material-list .menu-item-label,
    material-list .label,
    material-list .text-segment,
    menu-item-groups .single-select-item,
    menu-item-groups .menu-item-label,
    menu-item-groups .label,
    menu-item-groups .text-segment {
  color: rgba(255, 255, 255, .87)!important;
}

.popup .item-group-list material-icon {
  color: rgba(255, 255, 255, .7)!important;
}

material-list [group] > [label] {
  color: #8a8a8a!important;
}

/* This is shown in the new thread view */
ec-forum-language-picker .labeled-select .select-label {
  color: var(--TWPT-secondary-text)!important;
}

/* Main */
.main {
  color: var(--TWPT-primary-text)!important;
}

/* Border color for the page title bar (most pages use .title-bar although
 * some use .page-header).
 */
main .title-bar, main .page-header {
  border-bottom-color: var(--TWPT-subtle-border)!important;
}

main .title-bar .title, main .page-header h1, main .header h1 {
  color: var(--TWPT-primary-text)!important;
}

.card {
  background-color: var(--TWPT-secondary-background)!important;
  color: var(--TWPT-primary-text)!important;
  border-color: var(--TWPT-card-border)!important;
}

.card .card-title, .card, .card-section-title {
  color: var(--TWPT-primary-text)!important;
}

.card .card-section-hint, .card .card-section-checkbox-hint {
  color: var(--TWPT-secondary-text)!important;
}

/* Action bar */
.material-content .action-bar material-button,
    ec-bulk-actions material-button,
    ec-back-button material-button,
    .sort-options material-button {
  color: var(--TWPT-subtle-button-background)!important;
}

.material-content .action-bar .review-button.reviewing {
  color: #1a73e8!important;
  background: #dae7ff!important;
}

.material-content .action-bar material-button.starred {
  color: #fbbc04!important;
}

/* ec-work-state-picker and ec-symptom-picker */
ec-work-state-picker > button,
    ec-symptom-picker > button {
  color: var(--TWPT-secondary-text)!important;
  background-color: var(--TWPT-button-background)!important;
  border-color: var(--TWPT-subtle-border)!important;
}

.material-popup-content .popup-content .title {
  color: var(--TWPT-primary-text)!important;
}

/* Thread list */
ec-thread-list ul.thread-group {
  background-color: var(--TWPT-primary-background)!important;
}

ec-thread-list ec-bulk-actions, ec-thread-list ec-thread-summary material-expansionpanel {
  border-bottom-color: var(--TWPT-subtle-border)!important;
}

ec-thread-list .no-results {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-thread-summary material-expansionpanel.read:not(.checked) {
  background-color: var(--TWPT-thread-read-background)!important;
}

ec-thread-summary material-expansionpanel.read .title span:not(.icon) {
  opacity: 0.8;
}

ec-thread-summary material-expansionpanel.read .title .icon {
  opacity: 0.48!important;
}

ec-thread-summary material-expansionpanel.checked {
  background-color: #2c4b77!important;
}

ec-thread-summary material-expansionpanel .title {
  color: var(--TWPT-primary-text)!important;
}

ec-thread-summary material-expansionpanel ec-second-summary-line,
    material-expansionpanel .header-content,
    material-expansionpanel ec-thread-counts > span:not(.recommended-answers),
    material-expansionpanel .duplicate-label {
  color: #928e89!important;
}

material-expansionpanel .removed-label {
  color: var(--TWPT-bad-text)!important;
}

ec-thread-summary material-expansionpanel ec-safe-html.body,
    material-expansionpanel .issue-tracking-work-state {
  color: var(--TWPT-primary-text)!important;
}

/*
 * The following section changes the styles of the checkboxes in thread lists,
 * based in the styles defined in the "Checkbox input" section.
 **/
ec-thread-summary material-expansionpanel .action material-button,
    ec-thread-list material-checkbox material-icon,
    ec-thread-summary material-expansionpanel .star-button:not(.starred) {
  color: #696867!important; /* Custom value to match previous behavior */
  opacity: 1!important;
}

ec-thread-list material-checkbox material-icon.filled {
  color: #62a5ff!important; /* Custom value to contrast well with the background */
}

/* .gm-icons is added by the SMEI_GOOGLE_MATERIAL_ICONS experiment. */
ec-thread-list material-checkbox:focus:not(.disabled).gm-icons .icon,
    .gm-icons ec-thread-list material-checkbox:focus:not(.disabled) .icon,
    ec-thread-list material-checkbox:hover:not(.disabled).gm-icons .icon,
    .gm-icons ec-thread-list material-checkbox:hover:not(.disabled) .icon {
  color: #807d7c!important; /* custom value */
}

ec-thread-list material-checkbox:focus:not(.disabled).gm-icons .icon.filled,
    .gm-icons ec-thread-list material-checkbox:focus:not(.disabled) .icon.filled,
    ec-thread-list material-checkbox:hover:not(.disabled).gm-icons .icon.filled,
    .gm-icons ec-thread-list material-checkbox:hover:not(.disabled) .icon.filled {
  color: #92c1ff!important; /* custom value */
}

/* Thread view (including review/live review components) */
ec-question, .heading + .group, ec-message {
  background-color: var(--TWPT-secondary-background)!important;
}

ec-thread .no-review-needed {
  background-color: #155829!important;
  border-color: var(--TWPT-subtle-border)!important;
}

/* Review bar shown above the main message or replies */
ec-review-bar {
  background-color: var(--TWPT-active-background)!important;
}

ec-review-bar material-chip {
  background-color: var(--TWPT-button-background)!important;
}

ec-review-bar material-chip:not(.relevant-active):not(.active) {
  border-color: var(--TWPT-card-border)!important;
}

ec-review-bar material-chip:not(.relevant-active):not(.active) material-icon {
  color: var(--TWPT-primary-text)!important;
  fill: var(--TWPT-primary-text)!important;
}

ec-review-bar material-chip:not(.relevant-active):not(.active) .content {
  color: var(--TWPT-primary-text)!important;
}

ec-review-bar material-chip.relevant-active {
  border-color: var(--TWPT-good-text)!important;
}

ec-review-bar material-chip.relevant-active material-icon {
  color: var(--TWPT-good-text)!important;
  fill: var(--TWPT-good-text)!important;
}

ec-review-bar material-chip.relevant-active .content {
  color: var(--TWPT-good-text)!important;
}

ec-review-bar material-chip.active {
  border-color: var(--TWPT-bad-text)!important;
}

ec-review-bar material-chip.active material-icon {
  color: var(--TWPT-bad-text)!important;
  fill: var(--TWPT-bad-text)!important;
}

ec-review-bar material-chip.active .content {
  color: var(--TWPT-bad-text)!important;
}

ec-message-header .header, ec-question .state, ec-question ec-thread-counts > span, ec-message ec-thread-counts > span {
  color: var(--TWPT-secondary-text)!important;
}

ec-question .alert, ec-message .alert {
  background-color: var(--TWPT-active-background)!important;
}

ec-question .alert material-icon, ec-message .alert material-icon {
  color: var(--TWPT-primary-text)!important;
}

ec-question .alert ec-icon, ec-message .alert ec-icon {
  color: var(--TWPT-primary-text)!important;
  fill: var(--TWPT-primary-text)!important;
}

ec-question .alert material-button {
  color: var(--TWPT-link)!important;
}

ec-question .title {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-user-link .name-text {
  color: var(--TWPT-link)!important;
}

ec-message-header ec-avatar svg, ec-message-header .role,
    ec-message .footer .role {
  filter: brightness(1.5);
}

ec-question .body, ec-message .body {
  color: var(--TWPT-primary-text)!important;
}

ec-question .thread-insert {
  background: none!important;
}

ec-question .details-heading {
  color: var(--TWPT-primary-text-alt) !important;
}

ec-question .state-chips material-chip,
    .TWPT-extrainfo-chip {
  background-color: var(--TWPT-button-background)!important;
  border: none!important;
  box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2),
      0 1px 1px 0 rgba(0, 0, 0, 0.14),
      0 1px 3px 0 rgba(0, 0, 0, 0.12)!important;
}

ec-question .state-chips material-chip .content,
    .TWPT-extrainfo-chip .TWPT-content {
  color: var(--TWPT-primary-text)!important;
}

ec-question .footer,
    ec-ask-flow .content-disclaimer {
  color: var(--TWPT-primary-text)!important;
  background-color: var(--TWPT-active-background)!important;
  border-top-color: var(--TWPT-card-border)!important;
}

.heading {
  color: var(--TWPT-primary-text)!important;
}

.heading + .group,
    .load-more-bar,
    ec-message:not(:first-child),
    .load-more-bar .load-more-button,
    .load-more-bar .load-all-button {
  border-color: var(--TWPT-card-border)!important;
}

ec-message .type {
  color: var(--TWPT-primary-text)!important;
}

ec-message .footer ec-relative-time,
    ec-message .footer ec-safe-html {
  color: var(--TWPT-secondary-text)!important;
}

ec-message .helpful-prompt {
  color: var(--TWPT-primary-text)!important;
}

ec-question .me-too-button,
    ec-question .subscribe-button,
    ec-message .upvote-button,
    ec-message .downvote-button {
  color: var(--TWPT-secondary-text)!important;
  background-color: var(--TWPT-button-background)!important;
}

ec-message .alert {
  color: var(--TWPT-secondary-text)!important;
}

ec-question .me-too-button.selected,
    ec-question .subscribe-button.selected,
    ec-message .upvote-button.selected,
    ec-message .downvote-button.selected {
  color: #4285f4!important;
}

.load-more-bar .load-more-button, .load-more-bar .load-all-button {
  background-color: var(--TWPT-secondary-background)!important;
}

.locked-alert {
  background-color: var(--TWPT-active-background)!important;
  border: var(--TWPT-card-border)!important;
}

.locked-alert material-icon {
  color: rgba(255, 255, 255, .38)!important;
}

ec-thread button.reply.collapsed {
  color: var(--TWPT-secondary-text)!important;
}

ec-thread .finished-question {
  background-color: var(--TWPT-active-background)!important;
  border: var(--TWPT-card-border)!important;
}

ec-thread .finished-question .next-question {
  color: var(--TWPT-link)!important;
  border-color: var(--TWPT-link)!important;
}

.material-content .action-bar material-button.has-activity {
  color: var(--TWPT-blue-A100)!important;
}

.material-content .action-bar material-button.showing-sidebar {
  background-color: var(--TWPT-active-background)!important;
}

ec-activity-panel .title-bar h3 {
  color: #e8eaf2!important;
}

ec-activity-panel .title-bar material-button {
  color: var(--TWPT-subtle-button-background)!important;
}

ec-activity-panel ec-activity {
  color: var(--TWPT-secondary-text)!important;
  border-color: var(--TWPT-card-border)!important;
}

ec-activity-panel ec-activity .message {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-activity-panel ec-activity .thread-title {
  color: #c3bfbc!important;
}

/* Recommended answers - show in green where we've overwritten the colors */
.recommended-answers {
  color: #34a853!important;
}

/* Suggested answers - show brighter blue */
.suggested-icon {
  color: var(--TWPT-blue-A100)!important;
}

/* Help button (shown in the suggested answers header) */
.explanation-icon material-icon {
  color: var(--TWPT-subtle-button-background)!important;
}

/* Help button tooltip */
.popup .paper-container {
  background: var(--TWPT-drawer-background)!important;
}

.explanation-icon material-icon:hover {
  color: var(--TWPT-blue-A100)!important;
}

/* New thread and edit message views */
material-stepper {
  border-top-color: var(--TWPT-card-border)!important;
}

material-stepper .stepper-step-name,
    material-stepper .purpose-title {
  color: var(--TWPT-primary-text)!important;
}

ec-ask-flow .display-name-label,
    material-stepper .additional-details-label,
    material-stepper .detail-label {
  color: var(--TWPT-secondary-text)!important;
}

material-stepper .stepper-step[selectable=true]:focus {
  background-color: rgba(60, 64, 67, .24)!important;
}

/* Compose thread view */
ec-thread-composer .main-content .title-label,
    ec-thread-composer .main-content .post-label {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-thread-composer .main-content .title-input,
    ec-thread-composer .main-content ec-rich-text-editor {
  border-color: var(--TWPT-card-border)!important;
}

ec-thread-composer .main-content .title-alert {
  color: var(--TWPT-bad-text)!important;
}

ec-thread-composer material-drawer {
  background-color: inherit!important;
}

ec-thread-composer material-drawer .right-panel {
  border-left-color: var(--TWPT-card-border)!important;
}

ec-thread-composer material-drawer .panel-section-title {
  color: var(--TWPT-primary-text)!important;
}

ec-thread-composer material-drawer .panel-section-divider {
  border-color: var(--TWPT-card-border)!important;
}

ec-thread-composer material-drawer material-radio .radio-label {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-thread-composer material-drawer material-radio .radio-description,
    ec-thread-composer material-drawer .settings-section .panel-section-item .select-label {
  color: var(--TWPT-secondary-text)!important;
}

/* Note: see thread view section. There is a rule for the thread creation
 * footer.
 **/

/* Chart in the profile view */
ec-user bar-chart .axis text,
    ec-unified-user .scTailwindSharedActivitychartchart .axis text {
  fill: var(--TWPT-subtle-button-background)!important;
}

ec-user bar-chart .axis path,
    ec-user bar-chart .axis .gridline,
    ec-user bar-chart .axis line,
    ec-unified-user .scTailwindSharedActivitychartchart .axis path,
    ec-unified-user .scTailwindSharedActivitychartchart .axis .gridline,
    ec-unified-user .scTailwindSharedActivitychartchart .axis line {
  stroke: rgba(255, 255, 255, .12)!important;
}

ec-user bar-chart .axis line.axis-zero-tick,
    ec-user bar-chart .axis.x .tick-mark,
    ec-unified-user .scTailwindSharedActivitychartchart .axis line.axis-zero-tick,
    ec-unified-user .scTailwindSharedActivitychartchart .axis.x .tick-mark {
  stroke: rgba(255, 255, 255, .38)!important;
}

ec-user bar-chart .aplos-legend-entry,
    ec-unified-user .scTailwindSharedActivitychartchart .aplos-legend-entry {
  color: var(--TWPT-secondary-text)!important;
}

.aplos-hovercard {
  color: var(--TWPT-interop-secondary-text)!important;
  background: var(--TWPT-secondary-background)!important;
  border: none!important;
}

.aplos-hovercard .title {
  color: var(--TWPT-primary-text)!important;
}

.aplos-hovercard .subtitle,
    .aplos-donut-center .subtitle,
    .aplos-hovercard .series,
    .aplos-donut-center .series,
    .aplos-hovercard .value,
    .aplos-donut-center .value {
  color: var(--TWPT-secondary-text)!important;
}

/*
 * IMPORTANT NOTICE:
 * Note: the following styles (for interop components) have been written by
 * Googlers and thus are not included as part of the MIT license. This also
 * applies to the styles of the unified profiles and the interop thread view.
 **/

/* Common styles for interop components */
.scSharedCalloutroot {
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedCallouterror {
  background-color: #523a3b!important;
  border-color: #f9dedc!important;
}

.scSharedCallouterror sc-shared-material-icon {
  color: #f9dedc!important;
}

.scSharedCallouterror>.scSharedCalloutsecondary-button button {
  color: #ec928e!important;
}

.scSharedCalloutcaution {
  background-color: #554c33!important;
  border-color: #ffdf99!important;
}

.scSharedCalloutcaution sc-shared-material-icon {
  color: #ffdf99!important;
}

.scSharedCalloutcaution>.scSharedCalloutsecondary-button button {
  color: #f09d00!important;
}

.scSharedCalloutinformational {
  background-color: #394457!important;
  border-color: #d3e3fd!important;
}

.scSharedCalloutinformational sc-shared-material-icon {
  color: #d3e3fd!important;
}

.scSharedCalloutinformational>.scSharedCalloutsecondary-button button {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedCalloutsuccess {
  background-color: #37493f!important;
  border-color: #c4eed0!important;
}

.scSharedCalloutsuccess sc-shared-material-icon {
  color: #c4eed0!important;
}

.scSharedCalloutsuccess>.scSharedCalloutsecondary-button button {
  color: var(--TWPT-interop-success)!important;
}

.scSharedMaterialbuttonroot {
  --m-btn-text-color: var(--TWPT-interop-blue);
  --m-btn-background-color: transparent;
  --m-btn-outline-color: var(--TWPT-interop-blue);
  background: var(--m-btn-background-color)!important;
  color: var(--m-btn-text-color)!important;
}

.scSharedMaterialbuttonroot:disabled {
  color: rgba(227, 227, 227, 0.369)!important;
}

.scSharedMaterialbuttontext {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialbuttoncolor-label {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialbuttoncolor-hint {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialbuttonnavigational {
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedMaterialbuttonnavigational-alt {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialbuttonhairline, .scSharedMaterialbuttonpill {
  outline: 1px solid var(--m-btn-outline-color)!important;
}

.scSharedMaterialbuttonhairline:hover, .scSharedMaterialbuttonhairline:focus, .scSharedMaterialbuttonpill:hover, .scSharedMaterialbuttonpill:focus {
  --m-btn-outline-color: currentColor!important;
}

.scSharedMaterialbuttonhairline {
  --m-btn-outline-color: var(--TWPT-interop-subtle-border)!important;
}

.scSharedMaterialbuttonhairline:disabled {
  --m-btn-outline-color: rgba(227, 227, 227, 0.369)!important;
}

.scSharedMaterialbuttonhairline:active {
  box-shadow: 0 1px 2px 0 rgba(227, 227, 227, 0.302), 0 1px 3px 1px rgba(227, 227, 227, 0.149)!important;
}

.scSharedMaterialbuttontonal {
  color: var(--TWPT-interop-blue)!important;
  background: #394457!important;
}

.scSharedMaterialbuttontonal:hover {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149)!important;
}

.scSharedMaterialbuttontonal:active {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 2px 6px 2px rgba(0, 0, 0, 0.149)!important;
}

.scSharedMaterialbuttontonal:disabled {
  background: rgba(227, 227, 227, 0.122)!important;
}

.scSharedMaterialbuttonfilled {
  background: var(--TWPT-interop-blue)!important;
  color: #1f1f1f!important;
}

.scSharedMaterialbuttonfilled:disabled {
  background: rgba(227, 227, 227, 0.122)!important;
}

.scSharedMaterialbuttonfilled:hover,
    .scSharedMaterialbuttonfilled:focus {
  box-shadow: 0 1px 2px 0 rgba(124, 172, 248, 0.302), 0 1px 3px 1px rgba(124, 172, 248, 0.149)!important;
}

.scSharedMaterialbuttonfilled:active {
  box-shadow: 0 1px 3px 0 rgba(124, 172, 248, 0.302), 0 4px 8px 3px rgba(124, 172, 248, 0.149)!important;
}

.scSharedMaterialbuttonprotected {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149)!important;
  background: #1f1f1f!important;
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialbuttonprotected:disabled {
  background: rgba(227, 227, 227, 0.122)!important;
}

.scSharedMaterialbuttonprotected:hover {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149)!important;
}

.scSharedMaterialbuttonprotected:focus {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 2px 6px 2px rgba(0, 0, 0, 0.149)!important;
}

.scSharedMaterialbuttonprotected:active {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.302), 0 4px 8px 3px rgba(0, 0, 0, 0.149)!important;
}

.scSharedMaterialbuttonsuccess {
  --m-btn-text-color: var(--TWPT-interop-success)!important;
  --m-btn-outline-color: var(--TWPT-interop-success)!important;
}

.scSharedMaterialbuttonsuccess.scSharedMaterialbuttonfilled {
  --m-btn-text-color: #1f1f1f!important;
  --m-btn-background-color: var(--TWPT-interop-success)!important;
}

.scSharedMaterialbuttonsuccess.scSharedMaterialbuttontonal {
  --m-btn-background-color: #0f5223
}

@media (forced-colors:active) {
    .scSharedMaterialbuttonroot:focus {
        outline: 2px solid #e3e3e3;
    }
}

@media (prefers-contrast:more) {
    .scSharedMaterialbuttonroot:focus {
        outline: 2px solid #e3e3e3;
    }
}

.scSharedExpandabletextexpander {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialborderfilled {
  background: #313235!important;
  border-bottom: 1px solid var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialborderfilled-error {
  border-bottom-color: #ec928e!important;
}

.scSharedMaterialborderfilled-bottom {
  background-color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialborderfilled-label {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialborderfilled-label-focused {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialborderlabel {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialborderleft {
  border-bottom-color: var(--TWPT-interop-secondary-text)!important;
  border-left-color: var(--TWPT-interop-secondary-text)!important;
  border-top-color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialborderleft-error {
  border-bottom-color: #ec928e!important;
  border-left-color: #ec928e!important;
  border-top-color: #ec928e!important;
}

.scSharedMaterialbordermid {
  border-bottom-color: var(--TWPT-interop-secondary-text)!important;
  border-top-color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialbordermid-error {
  border-bottom-color: #ec928e!important;
  border-top-color: #ec928e!important;
}

.scSharedMaterialborderright {
  border-bottom-color: var(--TWPT-interop-secondary-text)!important;
  border-right-color: var(--TWPT-interop-secondary-text)!important;
  border-top-color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialborderright-error {
  border-bottom-color: #ec928e!important;
  border-right-color: #ec928e!important;
  border-top-color: #ec928e!important;
}

.scSharedMaterialborderfocused {
  border-color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialborderdisabled {
  border-color: var(--TWPT-interop-subtle-border)!important;
}

.scSharedMaterialborderlabel-focused {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialborderlabel-disabled {
  color: rgba(255, 255, 255, 0.239)!important;
}

.scSharedMaterialborderlabel-error {
  color: #ec928e!important;
}

.scSharedMaterialcardroot {
  background: #1f1f1f;
  border: 1px solid var(--TWPT-interop-subtle-border);
}

.scSharedMaterialcardelevation-1 {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149);
  background: #2a2b2f;
}

.scSharedMaterialcardelevation-2 {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 2px 6px 2px rgba(0, 0, 0, 0.149);
  background: #303135;
}

.scSharedMaterialcardelevation-3 {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.302), 0 4px 8px 3px rgba(0, 0, 0, 0.149);
  background: #36383a;
}

.scSharedMaterialcardelevation-4 {
  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.302), 0 6px 10px 4px rgba(0, 0, 0, 0.149);
  background: #39393c;
}

.scSharedMaterialcardelevation-5 {
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.302), 0 8px 12px 6px rgba(0, 0, 0, 0.149);
  background: #3c3e40;
}

@media (forced-colors:active) {
  .scsharedmaterialcardroot {
    border-color: #e3e3e3;
  }
}

@media (prefers-contrast:more) {
  .scsharedmaterialcardroot {
    border-color: #e3e3e3;
  }
}

.scSharedMaterialcheckboxcheckbox {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialcheckboxbox {
  border-color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialcheckboxnative-control:checked:disabled+.scSharedMaterialcheckboxbox,
.scSharedMaterialcheckboxnative-control:indeterminate:disabled+.scSharedMaterialcheckboxbox {
  background: rgba(0, 0, 0, .26);
  border-color: transparent;
}

.scSharedMaterialcheckboxnative-control:disabled+.scSharedMaterialcheckboxbox {
  border-color: rgba(0, 0, 0, .26);
}

.scSharedMaterialcheckboxcheckmark-path {
  stroke: #1f1f1f!important;
}

.scSharedMaterialcheckboxmixedmark {
  border-color: #1f1f1f!important;
}

.scSharedMaterialfabroot {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.302), 0 4px 8px 3px rgba(0, 0, 0, 0.149);
  background: #303135;
  color: var(--TWPT-interop-blue);
}

@media (forced-colors:active) {
  .scSharedMaterialfabroot {
    outline: 3px solid var(--TWPT-interop-blue);
  }
}

.scSharedMaterialfabroot.scSharedMaterialfabgrey {
  color: var(--TWPT-interop-secondary-text);
}

.scSharedMaterialfabroot:.scSharedMaterialfabfake-focus,
.scSharedMaterialfabroot:hover,
.scSharedMaterialfabroot:focus {
  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.302), 0 6px 10px 4px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialfabroot:active {
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.302), 0 8px 12px 6px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialfablowered {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialfablowered.scSharedMaterialfabfake-focus,
.scSharedMaterialfablowered:hover,
.scSharedMaterialfablowered:focus {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 2px 6px 2px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialfablowered:active {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.302), 0 4px 8px 3px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialfabfilled {
  background: rgba(124,172,248,0.239);
  color: var(--TWPT-interop-blue);
}

.scSharedMaterialfabfilled.scSharedMaterialfabgrey {
  background: var(--TWPT-interop-secondary-text);
  color: #1f1f1f;
}

.scSharedMaterial_dialogDialogcontentloading-overlay {
  background: rgba(227, 227, 227, 0.122)!important;
}

.scSharedMaterialpopupbackground {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149)!important;
  background: #2a2b2f!important;
  border: 1px solid var(--TWPT-interop-subtle-border)!important;
}

@media (forced-colors:active) {
  .scSharedMaterialpopupbackground {
    border-color: #e3e3e3;
  }
}

@media (prefers-contrast:more) {
  .scSharedMaterialpopupbackground {
    border-color: #e3e3e3;
  }
}

.scSharedMaterialmenuroot {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149)!important;
  background: #2a2b2f!important;
}

.scSharedMaterialmenuitem {
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedMaterialmenuitem[disabled] {
  color: var(--TWPT-interop-subtle-border);
}

.scSharedMaterialmenuitem-separator {
  border-top-color: var(--TWPT-interop-subtle-border)!important;
}

.scSharedMaterialmenuhighlight:focus,
    .scSharedMaterialmenuhighlight:hover {
  background-color: #394457!important;
}

.scSharedMaterialmenuhighlight:focus {
  outline: auto var(--TWPT-interop-blue) 1px!important;
}

.scSharedMaterialtooltipcontainer {
  background-color: #e3e3e3;
  color: #1f1f1f;
}

.scSharedMaterialradioradio {
  color: var(--TWPT-interop-blue);
}

.scSharedMaterialradioring {
  border: 2px solid var(--TWPT-interop-secondary-text);
}

.scSharedMaterialradionative-control:disabled~.scSharedMaterialradioring {
  border-color: rgba(0, 0, 0, .26);
}

.scSharedMaterialradionative-control:disabled~.scSharedMaterialradiodot {
  background: rgba(0, 0, 0, .26);
}

.scSharedMaterialrichtooltipcontainer {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149);
}

.scSharedMaterialrichtooltiproot.scSharedMaterialrichtooltipstyle-normal .scSharedMaterialrichtooltipcontainer {
  background: #2a2b2f;
}

.scSharedMaterialrichtooltiproot.scSharedMaterialrichtooltipstyle-accented .scSharedMaterialrichtooltipcontainer {
  background: var(--TWPT-interop-blue);
  color: #1f1f1f;
}

.scSharedMaterialrichtooltipcaret {
  box-shadow: 1.5px 1.5px 1px -1px rgba(0, 0, 0, 0.2), .75px .75px 1px 0 rgba(0, 0, 0, 0.141), .75px .75px 3px 0 rgba(0, 0, 0, 0.122);
  background: #2a2b2f;
}

.scSharedMaterialrichtooltiproot.scSharedMaterialrichtooltipstyle-normal .scSharedMaterialrichtooltipcaret {
  background: #2a2b2f;
}

.scSharedMaterialrichtooltiproot.scSharedMaterialrichtooltipstyle-accented .scSharedMaterialrichtooltipcaret {
  background: var(--TWPT-interop-blue);
}

.scSharedMaterialselectlabel {
  color: #e3e3e3;
}

.scSharedMaterialselectarrow {
  color: var(--TWPT-interop-secondary-text);
}

.scSharedMaterialselectactive .scSharedMaterialselectarrow {
  color: var(--TWPT-interop-blue);
}

.scSharedMaterialselectdisabled .scSharedMaterialselectselection,
.scSharedMaterialselectdisabled .scSharedMaterialselectarrow {
  color: rgba(255, 255, 255, 0.239);
}

.scSharedMaterialsnackbarsnackbar {
  background: var(--TWPT-interop-primary-text)!important;
  color: #1f1f1f!important;
}

.scSharedMaterialsnackbaraction button {
  color: #0b57d0!important;
}

.scSharedMaterialtabbartab {
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedMaterialtabbartab:hover,
    .scSharedMaterialtabbartab:focus {
  background-color: #313235!important;
}

.scSharedMaterialtabbarselected {
  border-bottom-color: var(--TWPT-interop-blue)!important;
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialtextfieldlabel {
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedMaterialtextfieldnative-control {
  caret-color: var(--TWPT-interop-blue)!important;
  color: var(--TWPT-interop-primary-text)!important;
}

.scSharedMaterialtextfieldinvalid .scSharedMaterialtextfieldnative-control {
  caret-color: #ec928e!important;
}

.scSharedMaterialtextfieldnative-control:disabled {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialtextfieldfocused .scSharedMaterialtextfieldlabel {
  color: var(--TWPT-interop-blue)!important;
}

.scSharedMaterialtextfieldinvalid .scSharedMaterialtextfieldlabel {
  color: #ec928e!important;
}

.scSharedMaterialtextfielddisabled .scSharedMaterialtextfieldlabel {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialtextfieldhelper-text {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scSharedMaterialtextfieldhelper-text-invalid {
  color: #ec928e!important;
}

.scSharedMaterialtextfieldhelper-text-disabled {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindSharedActivitychartroot {
  border: 1px solid var(--TWPT-interop-subtle-border)!important;
}

.scTailwindSharedAvatarroot {
  background-color: #f1f3f4;
  border: .375rem solid #f1f3f4;
}

.scTailwindSharedAvatarroot.scTailwindSharedAvatarmedium.scTailwindSharedAvatarat-least-silver,
.scTailwindSharedAvatarroot.scTailwindSharedAvatarsmall.scTailwindSharedAvatarat-least-silver {
  border: .125rem solid #f1f3f4;
}

.scTailwindSharedAvatarsilhouette {
  background-color: #fff;
}

.scTailwindSharedAvataravatar-loading {
  background: #1f1f1f!important;
}

.scTailwindSharedAvataruploadedit-button {
  background-color: rgba(0, 0, 0, 0.4);
  color: #fff;
}

.scTailwindSharedAvataruploadroot:focus .scTailwindSharedAvataruploadedit-button,
.scTailwindSharedAvataruploadroot:focus-within .scTailwindSharedAvataruploadedit-button,
.scTailwindSharedAvataruploadroot:hover .scTailwindSharedAvataruploadedit-button {
  background-color: rgba(0, 0, 0, 0.54);
}

.scTailwindSharedDisplay_name_editorDisplaynameeditorlabel {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedPiidialogfinding {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedReportabusedialogcontent .abuse-link {
  color: var(--TWPT-interop-blue)!important;
}

.scTailwindSharedRich_text_editorAttachmentFailedoverlayroot {
  background: rgba(0, 0, 0, 0.902);
  color: #ec928e;
}

.scTailwindSharedRich_text_editorAttachmentLoadingoverlayroot {
  background: rgba(227, 227, 227, 0.369);
}

.scTailwindSharedRich_text_editorAttachmentRemovebuttonremove-button {
  background: #1f1f1f;
  border: 1px solid #27282b;
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRich_text_editorAttachmentRemovebuttonremove-button:hover,
.scTailwindSharedRich_text_editorAttachmentRemovebuttonremove-button:focus {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149);
}

.scTailwindSharedRich_text_editorAttachmentNoninlinedattachmentroot {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 1px 3px 1px rgba(0, 0, 0, 0.149);
  background: #36373a;
}

.scTailwindSharedRich_text_editorAttachmentNoninlinedattachmentfilename {
  color: #e3e3e3;
}

.scTailwindSharedRich_text_editorAttachmentNoninlinedattachmentextension {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRich_text_editorLinktooltiproot button {
  color: var(--TWPT-interop-blue);
}

.scTailwindSharedRichtexteditoreditor {
  background: #1f1f1f;
  color: #e3e3e3;
}

.scTailwindSharedRichtexteditorplaceholder {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRichtexteditorhas-bottom-panel {
  border-bottom: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindSharedRichtexteditorhint {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRich_text_editorToolbarcontrolroot {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRich_text_editorToolbarcontrolroot:hover {
  color: #e3e3e3;
}

.scTailwindSharedRich_text_editorToolbarcontrolroot:focus {
  border: .125rem solid var(--TWPT-interop-blue);
}

.scTailwindSharedRich_text_editorToolbarcontrolactive {
  background: rgba(227, 227, 227, 0.122);
}

.scTailwindSharedRich_text_editorToolbarMobiletoolbarattachment,
.scTailwindSharedRich_text_editorToolbarMobiletoolbartext-format {
  border-right: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindSharedRich_text_editorToolbarMobiletoolbartext-format-button {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindSharedRich_text_editorToolbarMobiletoolbargroup {
  border-right: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindSharedRich_text_editorToolbargroup:not(:first-child) {
  border-left: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindSharedTitlefieldhelper-text {
  color: var(--TWPT-interop-secondary-text);
}

.sc-select {
  border: .0625rem solid var(--TWPT-interop-secondary-text);
  color: #e3e3e3;
}

.sc-select.keyboard-focus {
  border-color: transparent;
  box-shadow: 0 0 0 .125rem #a8c7fa;
}

.sc-select svg {
  fill: var(--TWPT-interop-secondary-text);
}

.sc-select ol {
  background: #272727;
  box-shadow: 0 .1875rem .3125rem -.0625rem rgba(0, 0, 0, 0.4), 0 .375rem .625rem 0 rgba(0, 0, 0, 0.28), 0 .0625rem 1.125rem 0 rgba(0, 0, 0, 0.24);
}

.sc-select .sc-select-highlight {
  background-color: #5ab3f0;
  color: #1f1f1f;
}

/* Unified profile view (see the "IMPORTANT NOTICE" comment above) */
.scTailwindUser_profileAchievementsempty a,
    .scTailwindUser_profileAchievementsempty a:visited,
    sc-tailwind-user_profile-user-profile .link-icon {
  color: var(--TWPT-interop-blue)!important;
}

.scTailwindUser_profileBiosectionsection-heading {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileBiosectionbio {
  color: var(--TWPT-interop-primary-text)!important;
}

.scTailwindUser_profileBiosectionlinks,
    .scTailwindUser_profileBiosectionlink {
  color: var(--TWPT-interop-blue)!important;
}

.scTailwindUser_profileBiosectioninput-label {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileEmaildisplayemail-display {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileEmaildisplayshow-email {
  color: var(--TWPT-interop-blue)!important;
}

.scTailwindUser_profileMessagecardthread-link {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileMessagecardlabel {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileMessagecardcontent {
  border-left: 2px solid var(--TWPT-interop-subtle-border)!important;
  color: var(--TWPT-interop-primary-text)!important;
}

.scTailwindUser_profileMessagecardcount {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileMessagecardrecommended-answer {
  color: #6dd58c!important;
}

.scTailwindUser_profileMessagecardrecommended-answer .icon {
  background-color: #6dd58c!important;
  color: #1f1f1f!important;
}

sc-tailwind-user_profile-user-profile .notificationIcon {
  color: var(--TWPT-interop-secondary-text)!important;
}

sc-tailwind-user_profile-user-profile .deleteIcon,
    sc-tailwind-user_profile-user-profile .reportAbuseIcon,
    sc-tailwind-user_profile-user-profile .reactivateIcon {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profilePosthistorysection+.scTailwindUser_profilePosthistorysection {
  border-top-color: var(--TWPT-interop-subtle-border)!important;
}

.scTailwindUser_profilePosthistorycontent,
    .scTailwindUser_profilePosthistoryheader,
    .scTailwindUser_profilePosthistoryerror {
  border-color: var(--TWPT-interop-subtle-border)!important;
}

.scTailwindUser_profileThreadcardtitle {
  color: var(--TWPT-interop-primary-text)!important;
}

.scTailwindUser_profileThreadcardlabel {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileThreadcardcontent {
  color: var(--TWPT-interop-primary-text)!important;
}

.scTailwindUser_profileThreadcardcount {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileThreadcardreply .icon {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileThreadcardrecommended-answer {
  color: #6dd58c!important;
}

.scTailwindUser_profileThreadcardrecommended-answer .icon {
  background-color: #6dd58c!important;
  color: #1f1f1f!important;
}

.scTailwindUser_profileUsercardroot {
  border: 1px solid var(--TWPT-interop-subtle-border)!important;
}

.scTailwindUser_profileUsercardinput-label {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileUsercardheadline {
  color: var(--TWPT-interop-primary-text)!important;
}

.scTailwindUser_profileUsercarddetails {
  color: var(--TWPT-interop-secondary-text)!important;
}

.scTailwindUser_profileUsercardlinks,
    .scTailwindUser_profileUsercardlink {
  color: var(--TWPT-interop-blue)!important;
}

.scTailwindUser_profileUsercardhorizontal-separator {
  background-color: var(--TWPT-interop-subtle-border)!important;
  color: var(--TWPT-interop-subtle-border)!important;
}

.scTailwindUser_profileUsercardsection-heading {
  color: var(--TWPT-interop-secondary-text)!important;
}

/* Interop thread view (see the "IMPORTANT NOTICE" comment above) */
.scTailwindThreadEditquestiondialogroot.scTailwindThreadEditquestiondialogscrollable {
  -webkit-box-shadow: inset 0 -11px 5px -11px #000;
  box-shadow: inset 0 -11px 5px -11px #000;
}

.scTailwindThreadEditquestiondialogerror {
  color: #ec928e;
}

.scTailwindThreadGetlinkdialoglink-container {
  border-bottom: 2px solid #a8c7fa;
}

h4.scTailwindThreadMessageHelpfulnessbuttonslabel {
  color: #e3e3e3;
}

.scTailwindThreadMessageMessagecardsub-content {
  background: #3c4043;
  border-top: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindThreadMessageMessagecardnested-reply:not(:first-child) {
  border-top: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindThreadMessageMessagecardtargeted {
  border-left: .125rem solid var(--TWPT-interop-blue);
}

.scTailwindThreadMessageMessagecardcalloutroot.scTailwindThreadMessageMessagecardcalloutrecommended {
  background: #0f5223;
  border-color: #6dd58c;
}

.scTailwindThreadMessageMessagecardcalloutroot.scTailwindThreadMessageMessagecardcalloutrelevant {
  background: #394457;
  border-color: var(--TWPT-interop-blue);
}

.scTailwindThreadMessageMessagetagrecommended.scTailwindThreadMessageMessagetagnormal {
  color: #6dd58c;
}

.scTailwindThreadMessageMessagetagrecommended.scTailwindThreadMessageMessagetagstrong {
  color: #6dd58c;
}

.scTailwindThreadMessageMessagetagrelevant.scTailwindThreadMessageMessagetagnormal {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadMessageMessagetagrelevant.scTailwindThreadMessageMessagetagstrong {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadMessageMessageinteractionsinteraction {
  color: var(--TWPT-interop-secondary-text);
}

p.scTailwindThreadMessageMessagetombstoneroot {
  color: var(--TWPT-interop-secondary-text);
}

p.scTailwindThreadMessageMessagetombstoneroot .scTailwindThreadMessageMessagetombstoneclickable {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadPostcontentroot {
  color: #e3e3e3;
}

.scTailwindThreadPostcontentroot a {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadPost_headerOverflowmenuicon {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadPost_headerPostdateroot {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadPost_headerUserinfoname a {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadPost_headerUserinfotag {
  color: var(--color, #e3e3e3);
}

.scTailwindThreadPost_headerUserinfoheadline {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadReplydialogroot {
  background: #2a2b2f;
}

.scTailwindThreadReplydialogheader {
  background: var(--TWPT-interop-blue);
}

.scTailwindThreadReplydialogheader h1.scTailwindThreadReplydialogheading {
  color: #1f1f1f;
}

.scTailwindThreadReplydialogheading-button {
  color: #1f1f1f;
}

.scTailwindThreadReplydialogtop-row {
  border-bottom: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindThreadReplydialogfooter {
  background: #36373a;
}

.scTailwindThreadReplydialogfooter a {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadReplydialogminimized .scTailwindThreadReplydialogheader {
  background: #e3e3e3;
  color: #1f1f1f;
}

.scTailwindThreadReplydialogroot .scTailwindThreadReplydialogerror {
  color: #ec928e;
}

@media (min-width:48.125rem) {
  .scTailwindThreadReplydialogroot {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.302), 0 2px 6px 2px rgba(0, 0, 0, 0.149);
  }
}

.scTailwindThreadMessageMessagelisthelp-icon {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadMessageMessagelistrecommended-icon {
  color: #c4eed0;
}

.scTailwindThreadMessageMessagelistrelevant-icon {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadMorebuttondivider {
  background: var(--TWPT-interop-subtle-border);
}

.scTailwindThreadMorebuttonbutton {
  background: #1f1f1f;
  border: 1px solid var(--TWPT-interop-subtle-border);
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadPesignupdialogclose-button-row button {
  color: #fff;
}

.scTailwindThreadPesignupdialogdialog-body p {
  color: #e3e3e3;
}

.scTailwindThreadPesignupdialogpe-dialog-container {
  background-color: #1f1f1f;
  -webkit-box-shadow: 0 .063rem .188rem rgba(60, 64, 67, 0.3), 0 .25rem .5rem rgba(60, 64, 67, 0.15);
  box-shadow: 0 .063rem .188rem rgba(60, 64, 67, 0.3), 0 .25rem .5rem rgba(60, 64, 67, 0.15);
}

.scTailwindThreadPostconfirmationdialogclose-button-row button {
  color: #e3e3e3;
}

.scTailwindThreadPostconfirmationdialogdialog-body p {
  color: #e3e3e3;
}

.scTailwindThreadPostconfirmationdialogdialog-container {
  background-color: #1f1f1f;
  -webkit-box-shadow: 0 .063rem .188rem rgba(60, 64, 67, 0.3), 0 .25rem .5rem rgba(60, 64, 67, 0.15);
  box-shadow: 0 .063rem .188rem rgba(60, 64, 67, 0.3), 0 .25rem .5rem rgba(60, 64, 67, 0.15);
}

.scTailwindThreadQuestionQuestioncardsub-content {
  background: #3c4043;
  border-top: 1px solid var(--TWPT-interop-subtle-border);
}

.scTailwindThreadQuestionQuestioncardtitle {
  color: #e3e3e3;
}

.scTailwindThreadQuestionQuestioncardbody {
  color: #e3e3e3;
}

.scTailwindThreadQuestionQuestioncardbody a {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadQuestionQuestioncarddisclaimer,
.scTailwindThreadQuestionQuestioncardedited {
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadQuestionQuestioncarddisclaimer a,
.scTailwindThreadQuestionQuestioncardedited a {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadQuestionQuestiondetailsdetail-link {
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadQuestionQuestionpurposetag {
  background: #394457;
  color: var(--TWPT-interop-blue);
}

.scTailwindThreadQuestionStatechipschip {
  border: 1px solid var(--TWPT-interop-subtle-border);
  color: var(--TWPT-interop-secondary-text);
}

.scTailwindThreadThreaddeleted-icon {
  color: var(--TWPT-interop-secondary-text);
}

/* Some fixes for the interop components in the Community Console */
/* Alumnus */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#0F9D58"] {
  --color: #C4EED0!important;
}

/* Bronze */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#896E63"] {
  --color: #B9ABA3!important;
}

/* Silver */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#5F6368"] {
  --color: #C4C7C5!important;
}

/* Gold */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#E37400"] {
  --color: #F09D00!important;
}

/* Platinum */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#455A64"] {
  --color: #E3E3E3!important;
}

/* Diamond, Community Specialist, Community Manager and Google Employee */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#1A73E8"] {
  --color: #A8C7FA!important;
}

/* Duplicate thread feature */
.search-results ec-thread-option material-expansionpanel .panel {
  background-color: var(--TWPT-primary-background)!important;
}

.search-results ec-thread-option material-expansionpanel.selected .panel,
    .search-results ec-thread-option material-expansionpanel .panel > .main-header > .header.closed:hover,
    .search-results ec-thread-option material-expansionpanel .panel > .main-header > .header.closed:focus {
  background-color: #17191c!important;
}

/* Disabled buttons */
material-button[disabled] {
  color: rgba(255, 255, 255, .26)!important;
}

/* Material icons */
ec-filter-drawer-item material-icon,
    ec-filter-drawer-item ec-icon,
    material-drawer .drawer-section material-icon,
    material-drawer .drawer-section ec-icon,
    material-list material-icon,
    ec-query-builder material-icon,
    ec-thread-summary material-expansionpanel .title material-icon,
    .search-results ec-thread-option material-icon,
    .search-results ec-thread-option ec-icon,
    ec-rich-text-editor material-icon,
    ec-editor-command material-icon,
    ec-canned-responses ec-canned-response-row material-icon,
    ec-ask-flow > .header material-button {
  color: rgba(255, 255, 255, .87)!important;
}

material-drawer ec-icon,
  .search-results ec-thread-option ec-icon,
  ec-thread-summary material-expansionpanel .title ec-icon,
  ec-announcements-menu-item ec-icon {
  fill: rgba(255, 255, 255, .87)!important;
}

/* Dialogs */
material-dialog, material-dialog .dialog-header {
  background-color: var(--TWPT-primary-background)!important;
}

ec-movable-dialog[showminimize] material-dialog .dialog-header {
  background-color: #d2e3fc!important;
}

material-dialog .title {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-movable-dialog[showminimize] material-dialog .dialog-header .title, ec-movable-dialog[showminimize] material-dialog header material-icon {
  color: var(--TWPT-primary-background)!important;
}

ec-movable-dialog[showminimize] material-dialog .header-notice, material-dialog .legal-prompt {
  background-color: #170f01!important;
}

ec-movable-dialog[showminimize] material-dialog .main .header-notice material-icon[icon="info_outline"] {
  color: var(--TWPT-blue-A100)!important;
}

material-dialog .section-title,
    material-dialog .select-label,
    material-dialog .input-label,
    material-dialog .btn-no,
    ec-display-name-editor,
    .forum-selection-label {
  color: var(--TWPT-secondary-text)!important;
}

material-dialog main > .user {
  border-bottom-color: var(--TWPT-card-border)!important;
}

ec-movable-dialog[showminimize] material-dialog footer > [footer] > .footer > [footer] > simple-html {
  color: var(--TWPT-secondary-text)!important;
  background-color: var(--TWPT-active-background)!important;
  border-top-color: #25231f!important;
}

ec-movable-dialog[showminimize] material-dialog footer > [footer] > .footer > [footer] > simple-html a {
  color: var(--TWPT-link)!important;
}

/* Keyboard shortcuts dialog */
material-dialog .main.with-scroll-strokes table th {
  color: var(--TWPT-primary-text)!important;
}

material-dialog .main.with-scroll-strokes table td {
  color: var(--TWPT-primary-text-alt)!important;
}

material-dialog .main.with-scroll-strokes table tr,
    material-dialog .main.with-scroll-strokes .shortcut {
  border-color: var(--TWPT-card-border)!important;
}

material-dialog .main.with-scroll-strokes.bottom-scroll-stroke {
  border-bottom-color: var(--TWPT-card-border)!important;
}

material-dialog .main.with-scroll-strokes.top-scroll-stroke {
  border-top-color: var(--TWPT-card-border)!important;
}

/* Rich text editor */
ec-editor-command material-button,
    ec-formatting-popup material-button {
  box-shadow: none!important;
}

ec-editor-command material-button.is-active {
  background: var(--TWPT-active-background)!important;
}

ec-rich-text-editor .placeholder {
  color: rgba(255, 255, 255, .38)!important;
}

ec-rich-text-editor .input-wrapper,
    ec-rich-text-editor .spacer {
  border-color: var(--TWPT-card-border)!important;
}

ec-rich-text-editor .input-wrapper.input-wrapper--focused {
  border-color: var(--TWPT-blue-A100)!important;
}

ec-rich-text-editor .input {
  color: var(--TWPT-primary-text)!important;
}

ec-rich-text-editor .hint {
  color: var(--TWPT-subtle-button-background)!important;
}

material-select-searchbox + material-list material-list-item {
  color: rgba(255, 255, 255, .87)!important;
}

ec-attachment .filename {
  color: var(--TWPT-primary-text)!important;
}

/* Thread insert */
ec-thread-insert .title {
  color: var(--TWPT-primary-text)!important;
}

ec-thread-insert ec-thread-counts,
    ec-thread-insert .details,
    ec-thread-insert ec-relative-time {
  color: var(--TWPT-subtle-button-background)!important;
}

/* Text input */
material-input input {
  color: var(--TWPT-primary-text)!important;
}

material-input .label-text,
    material-input .hint-text,
    material-input .counter {
  color: var(--TWPT-subtle-button-background)!important;
}

material-input .underline .unfocused-underline {
  background-color: var(--TWPT-input-underline)!important;
}

material-input .underline .focused-underline {
  background-color: var(--TWPT-blue-A100)!important;
}

label .label {
  color: var(--TWPT-primary-text)!important;
}

/* Input underline */
material-input .underline .unfocused-underline,
    material-dropdown-select dropdown-button [buttondecorator] {
  border-color: var(--TWPT-input-underline)!important;
}

/* Checkbox input (except for forum checkboxes in the drawer) */
material-checkbox material-icon:not(ec-forum-drawer-item material-icon, ec-thread-list material-icon),
    material-checkbox .content:not(ec-forum-drawer-item material-icon, ec-thread-list material-icon) {
  color: var(--TWPT-secondary-text)!important;
}

/* .gm-icons is added by the SMEI_GOOGLE_MATERIAL_ICONS experiment. */
material-checkbox material-icon.filled:not(ec-forum-drawer-item material-icon, ec-thread-list material-icon) {
  color: var(--TWPT-blue-A100)!important;
}

material-checkbox:focus:not(.disabled).gm-icons .icon,
    .gm-icons material-checkbox:focus:not(.disabled) .icon,
    material-checkbox:hover:not(.disabled).gm-icons .icon,
    .gm-icons material-checkbox:hover:not(.disabled) .icon {
  color: #cfd2d8!important; /* custom value */
}

material-checkbox:focus:not(.disabled).gm-icons .icon.filled,
    .gm-icons material-checkbox:focus:not(.disabled) .icon.filled,
    material-checkbox:hover:not(.disabled).gm-icons .icon.filled,
    .gm-icons material-checkbox:hover:not(.disabled) .icon.filled {
  color: var(--TWPT-blue-100)!important;
}

.gm-icons material-checkbox .icon-container::before{
  background-color: #dfdedb!important; /* custom value */
}

/* Radio input */
material-radio .icon-container:not(.checked) material-icon {
  color: var(--TWPT-secondary-text)!important;
}

material-radio .icon-container.checked material-icon {
  color: var(--TWPT-blue-A100)!important;
}

/* Material switch */
.mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {
  background-color: #7d7d7d!important; /* custom value */
}

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {
  border-color: #fff!important; /* custom value */
}

.mdc-switch.mdc-switch--checked .mdc-switch__track {
  background-color: var(--TWPT-blue-A100)!important;
}

.mdc-switch.mdc-switch--checked .mdc-switch__thumb {
  border-color: var(--TWPT-blue-A100)!important;
}

/* Material menu button and dropdown select */
material-menu material-button, material-dropdown-select dropdown-button {
  color: var(--TWPT-primary-text)!important;
}

material-dropdown-select dropdown-button .button.is-disabled .button-text,
    material-dropdown-select dropdown-button .button.is-disabled material-icon {
  color: rgba(255, 255, 255, .32)!important;
}

/* Announcements content */
ec-announcements-content .header,
    ec-announcements-content .no-announcements,
    ec-announcements-content .announcement {
  border-bottom-color: var(--TWPT-card-border)!important;
}

ec-announcements-content .header .title, ec-announcements-content .announcement-title {
  color: var(--TWPT-primary-text-alt)!important;
}

ec-announcements-content .announcement-date {
  color: var(--TWPT-secondary-text)!important;
}

ec-announcements-content .no-announcements-message {
  color: #c3bfbc!important;
}

ec-announcements-content .view-all-link,
    ec-announcements-content .read-more-button {
  color: var(--TWPT-link)!important;
}

ec-announcements-content ::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, .26)!important;
}

ec-announcements-content ::-webkit-scrollbar-thumb:hover {
  background-color: #4285f4!important;
}

/* Generic popup (for notification bell, account selector, etc.) */
.popup-wrapper .header-text {
  color: var(--TWPT-primary-text)!important;
}

/* Notifications bell popup/panel */
.notification-panel .header {
  border-bottom-color: var(--TWPT-card-border)!important;
}

.notification-panel .header material-button {
  color: var(--TWPT-secondary-text)!important;
}

.notification-panel .cards-container .promo-message {
  color: var(--TWPT-secondary-text)!important;
}

.notification-panel .cards-container .promo-message .header-text {
  color: var(--TWPT-primary-text)!important;
}

.notification-panel .cards-container ec-notification-card-content {
  border-bottom-color: var(--TWPT-card-border)!important;
}

.notification-panel .cards-container ec-notification-card-content .text {
  color: var(--TWPT-primary-text)!important;
}

.notification-panel .cards-container ec-notification-card-content .time,
    .notification-panel .cards-container ec-notification-card-content .close material-button {
  color: var(--TWPT-secondary-text)!important;
}

/* Account selector */
.popup-wrapper .profile .email {
  color: var(--TWPT-subtle-button-background)!important;
}

material-gaia-picker-footer {
  color: var(--TWPT-subtle-button-background)!important;
  background-color: var(--TWPT-active-background)!important;
}

material-gaia-picker-footer material-button {
  color: var(--TWPT-secondary-text)!important;
}

/* Canned responses */
ec-canned-responses .filter-label,
    ec-canned-responses ec-canned-response-row .name {
  color: var(--TWPT-primary-text)!important;
}

ec-canned-responses .label-row,
    ec-canned-responses ec-canned-response-row .snippet,
    ec-canned-responses ec-canned-response-row .tag .content,
    ec-canned-responses ec-canned-response-row .TWPT-tag .TWPT-content {
  color: var(--TWPT-secondary-text)!important;
}

ec-canned-responses ec-canned-response-row .header.closed:hover,
    ec-canned-responses ec-canned-response-row .header.closed:focus,
    ec-canned-responses ec-canned-response-row .header.closed:hover .toolbar,
    ec-canned-responses ec-canned-response-row .header.closed:focus .toolbar {
  background-color: var(--TWPT-active-background)!important;
}

ec-canned-responses .filter-row,
    ec-canned-responses .label-row,
    ec-canned-responses ec-canned-response-row material-expansionpanel {
  border-bottom-color: var(--TWPT-subtle-border)!important;
}

/* Reply button */
material-fab.reply-button,
    material-fab.reply-fab {
  background-color: var(--TWPT-link)!important;
  color: var(--TWPT-primary-background)!important;
}

/* Settings view */
ec-settings .forum-language-container {
  border-bottom-color: var(--TWPT-subtle-border)!important;
}

ec-settings .forum-language-container material-button {
  color: var(--TWPT-secondary-text)!important;
}

/* Loading spinner */
material-spinner {
  border-color: var(--TWPT-blue-A100)!important;
}

/* Custom injected components */
.TWPT-log {
  background-color: #424242!important;
}

.TWPT-log-entry.TWPT-log-entry--error {
  color: #ff8A80!important;
}
