// dsh-window98-theme v0.1 — dynamic plugin form (single-file, one-click). // // This file is the complete Client function body for the DeepSeek Harness // dynamic Cordis plugin system: paste its content into the client code box // when defining a dynamic plugin (插件 → 动态 Cordis 插件), or keep it as the // reference source for `client.js`. No TypeScript, no JSX, no imports. // // What it does: // 1. theme.register — adds `window98` (light) and `window98-dark` (night) // themes to the theme picker. // 2. theme.overrideTokens — hot-applies the core Win98 palette over the // currently active theme (light + dark), instantly, no refresh. // 3. styles.insert — injects the full skin stylesheet (pixelated font, // beveled buttons, sunken inputs, checkerboard scrollbars, global // square corners). Owned by the plugin fiber: stopping the plugin // removes every effect. const TOKEN13 = [ '--dsw-alias-bg-base', '--dsw-alias-bg-layer-1', '--dsw-alias-bg-layer-2', '--dsw-alias-bg-overlay', '--dsw-alias-border-l1', '--dsw-alias-border-l2', '--dsw-alias-brand-primary', '--dsw-alias-label-primary', '--dsw-alias-label-secondary', '--dsw-alias-state-error-primary', '--dsw-alias-state-success-primary', '--dsw-alias-state-warn-primary', '--dsw-specific-sidebar-fill', ] const LIGHT13 = { '--dsw-alias-bg-base': '#008080', '--dsw-alias-bg-layer-1': '#c0c0c0', '--dsw-alias-bg-layer-2': '#d4d0c8', '--dsw-alias-bg-overlay': '#d4d0c8', '--dsw-alias-border-l1': '#808080', '--dsw-alias-border-l2': '#404040', '--dsw-alias-brand-primary': '#000080', '--dsw-alias-label-primary': '#000000', '--dsw-alias-label-secondary': '#404040', '--dsw-alias-state-error-primary': '#c00000', '--dsw-alias-state-success-primary': '#008000', '--dsw-alias-state-warn-primary': '#808000', '--dsw-specific-sidebar-fill': '#c0c0c0', } const DARK13 = { '--dsw-alias-bg-base': '#003f3f', '--dsw-alias-bg-layer-1': '#404040', '--dsw-alias-bg-layer-2': '#464646', '--dsw-alias-bg-overlay': '#4d4d4d', '--dsw-alias-border-l1': '#303030', '--dsw-alias-border-l2': '#505050', '--dsw-alias-brand-primary': '#3a6ea5', '--dsw-alias-label-primary': '#ffffff', '--dsw-alias-label-secondary': '#c0c0c0', '--dsw-alias-state-error-primary': '#ff8080', '--dsw-alias-state-success-primary': '#66cc66', '--dsw-alias-state-warn-primary': '#e0db5e', '--dsw-specific-sidebar-fill': '#3d3d3d', } const OVERRIDES = {} for (const name of TOKEN13) { OVERRIDES[name] = { light: LIGHT13[name], dark: DARK13[name] } } const LIGHT_FULL = { '--dsw-alias-bg-base': '#008080', '--dsw-alias-bg-layer-1': '#c0c0c0', '--dsw-alias-bg-layer-2': '#d4d0c8', '--dsw-alias-bg-layer-3': '#c8c8c8', '--dsw-alias-bg-mask-1': '#0000003d', '--dsw-alias-bg-mask-2': '#0000001f', '--dsw-alias-bg-mask-3': '#0000007a', '--dsw-alias-bg-mask-photo': '#000000e0', '--dsw-alias-bg-mask-drop': '#ffffffb3', '--dsw-alias-bg-module-platform': '#d4d0c8', '--dsw-alias-bg-multi-select': '#c0c0c0', '--dsw-alias-bg-overlay': '#d4d0c8', '--dsw-alias-bg-skeleton': '#80808033', '--dsw-alias-border-inverted2': '#0000', '--dsw-alias-border-inverted': '#0000', '--dsw-alias-border-l1': '#808080', '--dsw-alias-border-l2-darkmode-thin': '#404040', '--dsw-alias-border-l2': '#404040', '--dsw-alias-border-l3': '#303030', '--dsw-alias-border-l4': '#000000', '--dsw-alias-brand-primary-invert': '#ffffff', '--dsw-alias-brand-primary-new-colorprimary-new-color': '#000080', '--dsw-alias-brand-primary': '#000080', '--dsw-alias-brand-text': '#000000', '--dsw-alias-button-contrast-fill': '#404040', '--dsw-alias-button-elevated-fill': '#c0c0c0', '--dsw-alias-button-floating-fill': '#c0c0c0', '--dsw-alias-button-floating-hover': '#d4d0c8', '--dsw-alias-button-ghost-active-border': '#808080', '--dsw-alias-button-ghost-active-fill': '#d4d0c8', '--dsw-alias-button-ghost-active-hover': '#c8c8c8', '--dsw-alias-button-info-fill': '#000080', '--dsw-alias-button-info-hover': '#0000a8', '--dsw-alias-button-primary-dimmed': '#d4d0c8', '--dsw-alias-button-primary-fill': '#000080', '--dsw-alias-button-primary-hover': '#0000a8', '--dsw-alias-button-tool-bar-fill': '#c0c0c0', '--dsw-alias-button-tool-bar-fill-invisible': '#c0c0c000', '--dsw-alias-button-tool-bar-hover': '#d4d0c8', '--dsw-alias-interactive-bg-active': '#d4d0c8', '--dsw-alias-interactive-bg-hover-accent': '#d4d0c8', '--dsw-alias-interactive-bg-hover-danger': '#ffc0c0', '--dsw-alias-interactive-bg-hover-solid': '#d4d0c8', '--dsw-alias-interactive-bg-hover': '#d4d0c8', '--dsw-alias-label-caption': '#606060', '--dsw-alias-label-dimmed': '#808080', '--dsw-alias-label-primary-bluish': '#000080', '--dsw-alias-label-primary-dimmed': '#202020', '--dsw-alias-label-primary-foreground': '#ffffff', '--dsw-alias-label-primary-inverted': '#ffffff', '--dsw-alias-label-primary': '#000000', '--dsw-alias-label-secondary': '#404040', '--dsw-alias-label-tertiary': '#606060', '--dsw-alias-markdown-citation': '#c0c0c0', '--dsw-alias-markdown-code-block-banner': '#d4d0c8', '--dsw-alias-markdown-code-block': '#ffffff', '--dsw-alias-markdown-code-segment-selected': '#d4d0c8', '--dsw-alias-markdown-code-segment-unselected': '#c8c8c8', '--dsw-alias-markdown-inline-code': '#d4d0c8', '--dsw-alias-markdown-placeholder': '#909090', '--dsw-alias-markdown-tag': '#c0c0c0', '--dsw-alias-scrollbar-bg-l1': '#c0c0c0', '--dsw-alias-scrollbar-bg-l2': '#c0c0c0', '--dsw-alias-scrollbar-hover-l1': '#d4d0c8', '--dsw-alias-scrollbar-hover-l2': '#d4d0c8', '--dsw-alias-state-business-primary': '#000080', '--dsw-alias-state-business-tertiary': '#d4d0c8', '--dsw-alias-state-error-primary': '#c00000', '--dsw-alias-state-error-secondary': '#e00000', '--dsw-alias-state-success-primary': '#008000', '--dsw-alias-state-success-secondary': '#00a000', '--dsw-alias-state-success-tertiary': '#d8e8d8', '--dsw-alias-state-warn-label': '#808000', '--dsw-alias-state-warn-primary': '#808000', '--dsw-alias-state-warn-secondary': '#a0a000', '--dsw-alias-state-warn-tertiary': '#e8e8d0', '--dsw-alias-toast-bg': '#404040', '--dsw-alias-tooltip-bg': '#404040', '--dsw-specific-bubble-highlight': '#b8b8b8', '--dsw-specific-bubble': '#c0c0c0', '--dsw-specific-input-major': '#ffffff', '--dsw-specific-login-input': '#c0c0c0', '--dsw-specific-menu': '#c0c0c0', '--dsw-specific-selector': '#d4d0c8', '--dsw-specific-sidebar-fill': '#c0c0c0', '--dsw-specific-sidebar-nav-item-active-accent': '#000080', '--dsw-specific-sidebar-nav-item-active': '#d4d0c8', '--dsw-specific-sidebar-nav-item-hover': '#d0d0d0', '--dsw-specific-tip': '#d4d0c8', } const DARK_FULL = { '--dsw-alias-bg-base': '#003f3f', '--dsw-alias-bg-layer-1': '#404040', '--dsw-alias-bg-layer-2': '#464646', '--dsw-alias-bg-layer-3': '#4a4a4a', '--dsw-alias-bg-mask-1': '#00000080', '--dsw-alias-bg-mask-2': '#0003', '--dsw-alias-bg-mask-3': '#0000007a', '--dsw-alias-bg-mask-photo': '#000000e0', '--dsw-alias-bg-mask-drop': '#000000b3', '--dsw-alias-bg-module-platform': '#4a4a4a', '--dsw-alias-bg-multi-select': '#4a4a4a', '--dsw-alias-bg-overlay': '#4d4d4d', '--dsw-alias-bg-skeleton': '#ffffff14', '--dsw-alias-border-inverted2': '#ffffff14', '--dsw-alias-border-inverted': '#ffffff0f', '--dsw-alias-border-l1': '#303030', '--dsw-alias-border-l2-darkmode-thin': '#505050', '--dsw-alias-border-l2': '#505050', '--dsw-alias-border-l3': '#707070', '--dsw-alias-border-l4': '#808080', '--dsw-alias-brand-primary-invert': '#ffffff', '--dsw-alias-brand-primary-new-colorprimary-new-color': '#3a6ea5', '--dsw-alias-brand-primary': '#3a6ea5', '--dsw-alias-brand-text': '#c0c0c0', '--dsw-alias-button-contrast-fill': '#c0c0c0', '--dsw-alias-button-elevated-fill': '#4a4a4a', '--dsw-alias-button-floating-fill': '#4a4a4a', '--dsw-alias-button-floating-hover': '#505050', '--dsw-alias-button-ghost-active-border': '#808080', '--dsw-alias-button-ghost-active-fill': '#505050', '--dsw-alias-button-ghost-active-hover': '#555555', '--dsw-alias-button-info-fill': '#3a6ea5', '--dsw-alias-button-info-hover': '#4a90d9', '--dsw-alias-button-primary-dimmed': '#505050', '--dsw-alias-button-primary-fill': '#3a6ea5', '--dsw-alias-button-primary-hover': '#4a90d9', '--dsw-alias-button-tool-bar-fill': '#505050', '--dsw-alias-button-tool-bar-fill-invisible': '#0000', '--dsw-alias-button-tool-bar-hover': '#606060', '--dsw-alias-interactive-bg-active': '#505050', '--dsw-alias-interactive-bg-hover-accent': '#555555', '--dsw-alias-interactive-bg-hover-danger': '#5a3030', '--dsw-alias-interactive-bg-hover-solid': '#505050', '--dsw-alias-interactive-bg-hover': '#505050', '--dsw-alias-label-caption': '#909090', '--dsw-alias-label-dimmed': '#a0a0a0', '--dsw-alias-label-primary-bluish': '#9cc3e5', '--dsw-alias-label-primary-dimmed': '#d0d0d0', '--dsw-alias-label-primary-foreground': '#000000', '--dsw-alias-label-primary-inverted': '#ffffff', '--dsw-alias-label-primary': '#ffffff', '--dsw-alias-label-secondary': '#c0c0c0', '--dsw-alias-label-tertiary': '#a0a0a0', '--dsw-alias-markdown-citation': '#4a4a4a', '--dsw-alias-markdown-code-block-banner': '#3a3a3a', '--dsw-alias-markdown-code-block': '#2f2f2f', '--dsw-alias-markdown-code-segment-selected': '#4a4a4a', '--dsw-alias-markdown-code-segment-unselected': '#3a3a3a', '--dsw-alias-markdown-inline-code': '#4a4a4a', '--dsw-alias-markdown-placeholder': '#808080', '--dsw-alias-markdown-tag': '#4a4a4a', '--dsw-alias-scrollbar-bg-l1': '#505050', '--dsw-alias-scrollbar-bg-l2': '#505050', '--dsw-alias-scrollbar-hover-l1': '#606060', '--dsw-alias-scrollbar-hover-l2': '#606060', '--dsw-alias-state-business-primary': '#3a6ea5', '--dsw-alias-state-business-tertiary': '#2a4a6a', '--dsw-alias-state-error-primary': '#ff8080', '--dsw-alias-state-error-secondary': '#ff9a9a', '--dsw-alias-state-success-primary': '#66cc66', '--dsw-alias-state-success-secondary': '#80d680', '--dsw-alias-state-success-tertiary': '#2a4a2a', '--dsw-alias-state-warn-label': '#e0db5e', '--dsw-alias-state-warn-primary': '#e0db5e', '--dsw-alias-state-warn-secondary': '#e8e488', '--dsw-alias-state-warn-tertiary': '#4a4820', '--dsw-alias-toast-bg': '#505050', '--dsw-alias-tooltip-bg': '#505050', '--dsw-specific-bubble-highlight': '#555555', '--dsw-specific-bubble': '#4a4a4a', '--dsw-specific-input-major': '#4a4a4a', '--dsw-specific-login-input': '#404040', '--dsw-specific-menu': '#4a4a4a', '--dsw-specific-selector': '#4a4a4a', '--dsw-specific-sidebar-fill': '#3d3d3d', '--dsw-specific-sidebar-nav-item-active-accent': '#3a6ea5', '--dsw-specific-sidebar-nav-item-active': '#4a4a4a', '--dsw-specific-sidebar-nav-item-hover': '#454545', '--dsw-specific-tip': '#4a4a4a', } function tokenBlock(tokens) { let out = '' for (const key of Object.keys(tokens)) { out += key + ':' + tokens[key] + ';' } return out } const NO_BEVEL = [ "class*='tab'", "class*='crumb'", "class*='brand'", "class*='breadcrumb'", "class*='badge'", "class*='chip'", "class*='pill'", "class*='tag'", ] const noBevel = NO_BEVEL.map((s) => ':not([' + s + '])').join('') const UP_ARROW = "data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8 6H7v1H6v1H5v1H4v1h7V9h-1V8H9V7H8V6z' fill='%23000'/%3E%3C/svg%3E" const DOWN_ARROW = "data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 6H4v1h1v1h1v1h1v1h1V9h1V8h1V7h1V6z' fill='%23000'/%3E%3C/svg%3E" const LEFT_ARROW = "data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 4H8v1H7v1H6v1H5v1h1v1h1v1h1v1h1V4z' fill='%23000'/%3E%3C/svg%3E" const RIGHT_ARROW = "data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7 4H6v7h1v-1h1V9h1V8h1V7H9V6H8V5H7V4z' fill='%23000'/%3E%3C/svg%3E" const SELECT_ARROW = "data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 0H0v16h1V1h14V0z' fill='%23DFDFDF'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 1H1v14h1V2h12V1H2z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 17H0v-1h15V0h1v17z' fill='%23000'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15 1h-1v14H1v1h14V1z' fill='gray'/%3E%3Cpath fill='silver' d='M2 2h12v13H2z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 6H4v1h1v1h1v1h1v1h1V9h1V8h1V7h1V6z' fill='%23000'/%3E%3C/svg%3E" const CHECKER_TRACK = "data:image/svg+xml;charset=utf-8,%3Csvg width='2' height='2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1 0H0v1h1v1h1V1H1V0z' fill='silver'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2 0H1v1H0v1h1V1h1V0z' fill='%23fff'/%3E%3C/svg%3E" const FIELDSET_EDGE = "data:image/svg+xml;charset=utf-8,%3Csvg width='5' height='5' fill='gray' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h5v5H0V2h2v1h1V2H0' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h4v4H0V1h1v2h2V1H0'/%3E%3C/svg%3E" const SKIN = [ '@font-face{font-family:"Pixelated MS Sans Serif";font-style:normal;font-weight:400;src:url(https://unpkg.com/98.css@0.1.21/dist/ms_sans_serif.woff) format("woff");src:url(https://unpkg.com/98.css@0.1.21/dist/ms_sans_serif.woff2) format("woff2")}', '@font-face{font-family:"Pixelated MS Sans Serif";font-style:normal;font-weight:700;src:url(https://unpkg.com/98.css@0.1.21/dist/ms_sans_serif_bold.woff) format("woff");src:url(https://unpkg.com/98.css@0.1.21/dist/ms_sans_serif_bold.woff2) format("woff2")}', ':root{--dsw-corner-shape:superellipse(0);--dsw-shadow-lv3:none;--dsw-elevation-prominent:none;--dsw-elevation-stroke-color:#808080;--dsw-hovercard-bg:#d4d0c8;--dsw-mask-blur:none;--dsw-font-family:"Pixelated MS Sans Serif","MS Sans Serif",Tahoma,"Segoe UI",Arial,sans-serif;--ds-transition-duration:0s;--ds-transition-duration-fast:0s;--ds-transition-duration-slow:0s}', '*{border-radius:0!important;corner-shape:0!important}', 'html body{-webkit-font-smoothing:none;--win-bevel-hi:#ffffff;--win-bevel-soft:#dfdfdf;--win-bevel-mid:#808080;--win-bevel-lo:#0a0a0a;--win-face:#c0c0c0;' + tokenBlock(LIGHT_FULL) + '}', 'html body[data-ds-dark-theme]{--win-bevel-hi:#7a7a7a;--win-bevel-soft:#4a4a4a;--win-bevel-mid:#303030;--win-bevel-lo:#000000;--win-face:#404040;' + tokenBlock(DARK_FULL) + '}', 'button' + noBevel + '{box-shadow:inset -1px -1px var(--win-bevel-lo),inset 1px 1px var(--win-bevel-hi),inset -2px -2px var(--win-bevel-mid),inset 2px 2px var(--win-bevel-soft)!important;border:none!important;border-radius:0!important}', 'button' + noBevel + ':not(:disabled):active{box-shadow:inset -1px -1px var(--win-bevel-hi),inset 1px 1px var(--win-bevel-lo),inset -2px -2px var(--win-bevel-soft),inset 2px 2px var(--win-bevel-mid)!important}', 'button:focus-visible{outline:1px dotted #000000!important;outline-offset:-4px}', '[class*="logoRow"]{padding-right:8px!important}', 'input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none!important;border-radius:0!important;background-color:var(--dsw-specific-input-major)!important;box-shadow:inset -1px -1px var(--win-bevel-hi),inset 1px 1px var(--win-bevel-mid),inset -2px -2px var(--win-bevel-soft),inset 2px 2px var(--win-bevel-lo)!important}', 'select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none!important;border-radius:0!important;background-color:var(--dsw-specific-input-major)!important;background-image:url("' + SELECT_ARROW + '");background-position:top 2px right 2px;background-repeat:no-repeat;padding-right:32px;box-shadow:inset -1px -1px var(--win-bevel-hi),inset 1px 1px var(--win-bevel-mid),inset -2px -2px var(--win-bevel-soft),inset 2px 2px var(--win-bevel-lo)!important}', 'input[type=range]{-webkit-appearance:none;background:transparent;width:100%}', 'input[type=range]::-webkit-slider-runnable-track{background:#000;border-bottom:1px solid grey;border-right:1px solid grey;box-shadow:1px 0 0 #fff,1px 1px 0 #fff,0 1px 0 #fff,-1px 0 0 #a9a9a9,-1px -1px 0 #a9a9a9,0 -1px 0 #a9a9a9,-1px 1px 0 #fff,1px -1px #a9a9a9;box-sizing:border-box;height:2px;width:100%}', 'input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:21px;transform:translateY(-8px);background:var(--win-face);box-shadow:inset -1px -1px var(--win-bevel-lo),inset 1px 1px var(--win-bevel-hi),inset -2px -2px var(--win-bevel-mid),inset 2px 2px var(--win-bevel-soft)}', '::selection{background:#000080;color:#ffffff}', ':focus-visible{outline:1px dotted var(--dsw-alias-label-primary,#000000)!important;outline-offset:2px}', 'pre{box-shadow:inset -1px -1px var(--win-bevel-hi),inset 1px 1px var(--win-bevel-mid),inset -2px -2px var(--win-bevel-soft),inset 2px 2px var(--win-bevel-lo)!important;border-radius:0!important}', 'fieldset{border-image:url("' + FIELDSET_EDGE + '") 2;margin:0;padding:10px;padding-block-start:8px}', 'legend{background:var(--win-face)}', '::-webkit-scrollbar{width:16px}', '::-webkit-scrollbar:horizontal{height:17px}', '::-webkit-scrollbar-corner{background:#dfdfdf}', '::-webkit-scrollbar-track{background-image:url("' + CHECKER_TRACK + '")}', '::-webkit-scrollbar-thumb{background-color:#dfdfdf;box-shadow:inset -1px -1px #0a0a0a,inset 1px 1px #fff,inset -2px -2px grey,inset 2px 2px #dfdfdf}', '::-webkit-scrollbar-button:horizontal:end:increment,::-webkit-scrollbar-button:horizontal:start:decrement,::-webkit-scrollbar-button:vertical:end:increment,::-webkit-scrollbar-button:vertical:start:decrement{display:block}', '::-webkit-scrollbar-button:vertical:start{background-image:url("' + UP_ARROW + '");height:17px}', '::-webkit-scrollbar-button:vertical:end{background-image:url("' + DOWN_ARROW + '");height:17px}', '::-webkit-scrollbar-button:horizontal:start{background-image:url("' + LEFT_ARROW + '");width:16px}', '::-webkit-scrollbar-button:horizontal:end{background-image:url("' + RIGHT_ARROW + '");width:16px}', ].join('\n') return { apply(ctx) { const theme = ctx.get('theme') if (theme !== undefined) { const disposers = [] try { disposers.push(theme.register({ id: 'window98', colorScheme: 'light', tokens: LIGHT13 })) disposers.push(theme.register({ id: 'window98-dark', colorScheme: 'dark', tokens: DARK13 })) } catch (err) { console.error('[window98-theme] register failed:', err) } try { disposers.push(theme.overrideTokens('window98-theme', OVERRIDES)) } catch (err) { console.error('[window98-theme] overrideTokens failed:', err) } ctx.effect(() => () => { for (const dispose of disposers) dispose() }) } styles.insert(SKIN) }, }