: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 {
  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);
}

.scTailwindThreadReplyeditorroot {
  background: #2a2b2f;
  border-color: var(--TWPT-interop-subtle-border);
}

.scTailwindThreadReplyeditortop-row {
  border-bottom-color: 1px solid rgba(255, 255, 255, 0.239);
}

.scTailwindThreadReplyeditorfooter {
  background: #36373a;
  border-top-color: rgba(255, 255, 255, 0.239);
}

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

.scTailwindThreadReplyeditorroot .scTailwindThreadReplyeditorerror {
  color: #ec928e;
}

.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"],
    .scTailwindThreadMessageMessageinteractionsuser-label[style*="--userLabelColor:#0F9D58"] {
  --color: #C4EED0!important;
  --userLabelColor: #C4EED0!important;
}

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

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

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

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

/* Diamond, Community Specialist, Community Manager and Google Employee */
.scTailwindThreadPost_headerUserinfotag[style*="--color:#1A73E8"],
    .scTailwindThreadMessageMessageinteractionsuser-label[style*="--userLabelColor:#1A73E8"] {
  --color: #A8C7FA!important;
  --userLabelColor: #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;
}

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

.search-results ec-thread-option material-expansionpanel .panel > .main > .main-content .snippet {
  color: var(--TWPT-secondary-text)!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;
}

material-dialog .footer material-button[raised]:not([disabled]) {
  background-color: var(--TWPT-blue-A100)!important;
  color: #1f1f1f!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,
    material-input .leading-text,
    material-input .leading-text material-icon {
  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;
}

/* Material yes/no buttons */
material-yes-no-buttons material-button:not([disabled]).highlighted:not([raised]) {
  color: var(--TWPT-blue-A100)!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;
}
