/* Light mode is opt-in; the existing dark palette remains the default. */
html[data-oogc-color="light"] {
  color-scheme: light;
  --oogc-bg: #f3f6fa;
  --oogc-surface: #fff;
  --oogc-surface-2: #edf3f9;
  --oogc-border: #d3e0ec;
  --oogc-text: #172b40;
  --oogc-text-secondary: #425e76;
  --oogc-muted: #596f85;
  --oogc-primary: #0969da;
  --oogc-primary-hover: #0059bf;
  --oogc-focus: #0562c7;
  --oogc-success: #087f5b;
  --oogc-warning: #aa6500;
  --oogc-danger: #c33349;
  --oogc-shadow: 0 12px 32px #1c3b5914;
  --oogc-shadow-primary: 0 4px 18px #0969da1a;
  --bg: var(--oogc-bg);
  --surface: var(--oogc-surface);
  --surface-2: var(--oogc-surface-2);
  --text: var(--oogc-text);
  --muted: var(--oogc-muted);
  --border: var(--oogc-border);
  --primary: var(--oogc-primary);
  background-color: var(--oogc-bg);
}

/* Shared controls also appear in the independent touch theme. */
html[data-oogc-color="light"] .oogc-page .oogc-button-secondary {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text-secondary) !important;
}
html[data-oogc-color="light"] .oogc-page :is(.oogc-account-menu-content,.oogc-site-menu-content,.oogc-search-options,.oogc-message-panel) {
  box-shadow: var(--oogc-shadow);
  scrollbar-color: #aec0d1 transparent;
}
html[data-oogc-color="light"] .oogc-page :is(.oogc-account-sites .oogc-menu-link a,.oogc-account-menu-content .oogc-shortcuts a):hover,
html[data-oogc-color="light"] .oogc-page #um :is(.oogc-account-create,.oogc-account-list>a,.oogc-account-secondary>a):hover {
  background: #e0edfb;
  color: var(--oogc-focus);
}
html[data-oogc-color="light"] .oogc-page #um .oogc-account-footer>a { color: var(--oogc-danger); }
html[data-oogc-color="light"] .oogc-page :is(.oogc-language option,.oogc-eyebrow) { color: var(--oogc-muted); }
html[data-oogc-color="light"] .oogc-page .oogc-preview-notice { background: #e0edfb; color: #23537f; }
html[data-oogc-color="light"] :is(.oogc-brand-image,.oogc-preview-logo,.oogci-standalone-brand img[src*="oogc-logo"]) { filter: brightness(.22); }

/* Desktop chrome and flat content surfaces; media pixels are left untouched. */
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-header {
  background: #ffffffed;
  border-color: var(--oogc-border);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-topbar { background: var(--oogc-surface-2); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-panel,.oogc-game-announcement,.oogc-list-filter>table,.oogc-composer-help) {
  background: var(--oogc-surface);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-page-heading {
  background: linear-gradient(110deg,#fff,#edf4fd);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-search,.oogc-post-fields #subject,.oogc-post-fields #typeid_ctrl,.oogc-post-fields .ftid a) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-search-scope { border-color: var(--oogc-border); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-search input::placeholder { color: var(--oogc-muted); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-search,.oogc-forum-search):focus-within {
  border-color: var(--oogc-focus);
  box-shadow: 0 0 0 2px #0969da1c;
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-nav-item.is-active,.oogc-hub-nav>a:first-child) { color: var(--oogc-primary); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-sidebar-navigation,.oogc-sidebar-games,.oogc-filters) { scrollbar-color: #aec0d1 transparent; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-sidebar-games::-webkit-scrollbar-thumb { background: #aec0d1; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-sidebar-games:hover::-webkit-scrollbar-thumb { background: #819bb3; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-active-user,.oogc-resource+.oogc-resource) { border-color: var(--oogc-border); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-filters a.is-active {
  background: #e0edfb;
  border-color: #b5d3f4;
  color: var(--oogc-primary);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-tag { background: #e0edfb; color: #175a9b; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-tag-digest { background: #fff1d9; color: #8b590d; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-quick-icon { color: #fff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-mobile-nav { background: #fffffff5; }

/* Cover text stays white over the existing dark image masks. */
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-hero-copy,.oogc-hero h1,.oogc-featured,.oogc-carousel-controls,.oogc-hub-cover h1,.oogc-hub-cover h2) { color: #f7fbff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hero-copy .oogc-eyebrow,
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hero-copy p,
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-carousel-controls :is(.oogc-icon-button,[data-carousel-count]),
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hub-cover :is(.oogc-hub-description,.oogc-hub-description p,.oogc-hub-metadata,.oogc-hub-metadata a,.oogc-hub-native-stats,.oogc-hub-intro #pt a) { color: #dce9f5; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-carousel-controls .oogc-icon-button:hover { background: #ffffff24; color: #fff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-carousel-dots button::after { background: #adc5d9; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-carousel-dots button[aria-pressed=true]::after { background: #63b5ff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-default-cover-note { color: #dce9f5; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hub-cover .oogc-hub-readmore { color: #a9d8ff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hub-cover .oogc-hub-readmore:hover { color: #fff; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hub-cover .oogc-hub-readmore:focus-visible { outline-color: #a9d8ff; }

/* Forum lists, the author card and native composer share light surfaces. */
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(#threadlisttableid,#postlist .plhin>tbody>tr>.plc,#postlist .favatar,#f_pst,.keke_reward_box,.json-editor) {
  background: var(--oogc-surface);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-list-toolbar h2,.oogc-author-name,.oogc-author-heading,.favatar .tns a,.favatar .pil dd,.oogc-composer-help h2,.oogc-composer-section h2) { color: var(--oogc-text); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-author-uid,.favatar .pil dt,.oogc-author-profile .oogc-profile-level::before,.oogc-context-rail p,.oogc-game-announcement small,.oogc-composer-help p,.oogc-composer-menu>summary,.oogc-field-label,.oogc-forum-feed .oogct-list-excerpt,.oogc-view-switch>span,.keke_reward_box .keke_reward_empty,.keke_reward_box .reward_title) { color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(#threadlisttableid th,#threadlisttableid td,.oogc-author-heading,.favatar .tns th,.favatar .tns td,.plc .pi,.plhin .pob,#fastsmilies) { border-color: var(--oogc-border); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-list-filter>summary,.oogc-hub-quick-link,.favatar .xl2 li,.oogc-unavailable-attachment,.oogc-view-switch button,.oogc-forum-feed .oogct-list-gallery>a) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text-secondary);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-hub-quick-link:hover,
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-view-switch button[aria-pressed=true] {
  background: #e0edfb;
  border-color: #b5d3f4;
  color: var(--oogc-primary);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-filter-panel,.oogc-subforum-popover) {
  background: var(--oogc-surface);
  border-color: var(--oogc-border);
  color: var(--oogc-text-secondary);
  box-shadow: var(--oogc-shadow);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-filter-panel .oogc-filter-label,.oogc-filter-actions #atarget,.oogc-filter-actions a,.oogc-subforum-popover small,.oogc-subforum-info>summary) { color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-filter-panel .oogc-filter-options :is(a,button) { color: var(--oogc-text); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-filter-panel .oogc-filter-options :is(a:hover,button:hover,a.xw1,button[aria-pressed=true]) {
  background: #e0edfb;
  border-color: #b5d3f4;
  color: var(--oogc-primary);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-hub-quick-name small,.oogc-subforum-info[open]>summary,.oogc-filter-actions a:hover) { color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-pagination,#pgt.oogc-pagination) { border-color: var(--oogc-border); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-pagination :is(#autopbn,.oogc-load-more) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-focus);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-topic-thumb,.oogc-circle-avatar) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-muted);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) #threadlisttableid :is(th>em>a,.oogc-topic-title>em>a) {
  background: #e0edfb;
  border-color: #b5d3f4;
  color: #175a9b;
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) #threadlisttableid .oogc-topic-title>em>a:hover { background: #cee3fa; color: #13497c; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-forum-search input,.oogc-forum-search button,.oogc-hub-quick-arrow,#postlist .plhin .pob .po a) { color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-forum-search button:hover { background: var(--oogc-surface-2); color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.oogc-profile-group,.oogc-unavailable-attachment a) { color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.favatar .pbg2,.oogc-profile-progress .pbg2) { background: #d7e5f2; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(#fastposteditor,#fastposteditor .tedt,#fastposteditor .area,#fastposteditor .bar,#fastposteditor textarea,#fastpostmessage) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.ce-popover,.ce-inline-toolbar,#typeid_ctrl_menu) {
  background: var(--oogc-surface);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
  box-shadow: var(--oogc-shadow);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(.ce-toolbar__plus,.ce-toolbar__settings-btn,#oogc-reset-note) { color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .fpd a:is(.fbld,.fclr,.fmg,.flnk,.fqt,.fcd,.fsml,.fat) { background-color: #36536b; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .fpd a:is(.fbld,.fclr,.fmg,.flnk,.fqt,.fcd,.fsml,.fat):hover { background-color: #173e60; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .sllt .tb li.current a,
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .sllt .tb li a:hover { background: #e0edfb; color: var(--oogc-focus); border-color: #b5d3f4; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) #typeid_ctrl_menu li:hover,
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) #typeid_ctrl_menu li:focus { background: var(--oogc-surface-2); color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-unavailable-attachment button {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text-secondary);
}

/* Native menus, verification dialogs and messages keep their original actions. */
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .p_pop.card {
  border-color: var(--oogc-border);
  box-shadow: var(--oogc-shadow);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .p_pop.card .card_mn>.avt img { border-color: var(--oogc-border); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .fwinmask .flbc:hover { background: #dce9f6; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-chat-session.is-active { background: #e0edfb; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .oogc-chat #pm_ul .oogc-chat-own .oogc-chat-message-content {
  background: #e0edfb;
  border-color: #b5d3f4;
  color: var(--oogc-text);
}
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch)[data-oogc-view=friends] .buddy .note { color: var(--oogc-success); }
html[data-oogc-color="light"] .oogc-page[data-oogc-view=settings] :is(.tfm,.dt,.account-form) span[style*="color: green"] { color: var(--oogc-success) !important; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) :is(#scrolltop,#fwin_login .m_c) { box-shadow: var(--oogc-shadow); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) #scrolltop a:hover { color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .json-editor .codeflask :is(.token.keyword,.token.boolean,.token.number,.token.property,.token.tag,.token.attr-value) { color: #6f42a5; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .json-editor .codeflask :is(.token.string,.token.selector,.token.attr-name,.token.char,.token.builtin) { color: #087451; }
html[data-oogc-color="light"] .oogc-page:not(.oogc-touch) .json-editor .codeflask :is(.token.operator,.token.function,.token.class-name) { color: #a92a50; }

/* Shared game ratings: readable popovers, status messages and controls. */
html[data-oogc-color="light"] .oogc-page :is(.oogcr-inline-info,.oogcr-dialog) {
  background: var(--oogc-surface);
  border-color: var(--oogc-border);
  color: var(--oogc-text);
  box-shadow: var(--oogc-shadow);
}
html[data-oogc-color="light"] .oogc-page :is(.oogcr-inline-meta,.oogcr-inline-withdraw,.oogcr-label,.oogcr-count,.oogcr-scale,.oogcr-card-caption,.oogcr-dialog-game,.oogcr-dialog-note,.oogcr-score-hints,.oogcr-dialog-loading,.oogc-game-tile-footer>span) { color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page :is(.oogcr-score,.oogcr-status,.oogcr-dialog h2,.oogcr-form legend,.oogcr-selection) { color: var(--oogc-text); }
html[data-oogc-color="light"] .oogc-page .oogc-game-tile .oogcr-card { border-color: var(--oogc-border); color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page .oogcr-card:hover .oogcr-card-score { color: var(--oogc-primary-hover); }
html[data-oogc-color="light"] .oogc-page :is(.oogcr-dialog-summary,.oogcr-action,.oogcr-dialog-close) {
  background: var(--oogc-surface-2);
  border-color: var(--oogc-border);
  color: var(--oogc-text-secondary);
}
html[data-oogc-color="light"] .oogc-page .oogcr-action:hover { background: #e0edfb; color: var(--oogc-focus); }
html[data-oogc-color="light"] .oogc-page .oogcr-dialog :is(.oogcr-withdraw,.oogcr-retry) { border-color: var(--oogc-border); color: var(--oogc-text-secondary); }
html[data-oogc-color="light"] .oogc-page .oogcr-dialog .oogcr-submit { background: var(--oogc-primary); border-color: var(--oogc-primary); }
html[data-oogc-color="light"] .oogc-page .oogcr-feedback { background: #e6f6ee; border-color: #a6d6c1; color: var(--oogc-success); }
html[data-oogc-color="light"] .oogc-page .oogcr-feedback[data-error=true] { background: #fff0f2; border-color: #edbcc5; color: var(--oogc-danger); }
html[data-oogc-color="light"] .oogc-page .oogcr-inline-feedback { color: var(--oogc-success); }
html[data-oogc-color="light"] .oogc-page .oogcr-inline-feedback[data-error=true] { color: var(--oogc-danger); }
html[data-oogc-color="light"] .oogc-page .oogcr-stars::before { background: #c5d3e0; }
html[data-oogc-color="light"] .oogc-page .oogcr-stars::after { background: #b67b12; }
html[data-oogc-color="light"] .oogc-page .oogcr-dialog::backdrop { background: #172b4066; }
