/**
 * themes.css
 *
 * Alternate visual themes for daxOS, toggled via a `data-theme` attribute
 * on <html> (set by theme.js). Default (no attribute) is the classic
 * Windows-98-style look already provided by 98.css / app.scss.
 *
 * These rules intentionally only restyle the outer chrome - taskbar, Start
 * menu, and window frames/title bars - plus the custom win98-menubar
 * component used by the desktop apps (Minesweeper, Solitaire, Paint), so
 * every window looks consistent regardless of which theme is active.
 */

/* ======================================================================
   DARK THEME
   ====================================================================== */
html[data-theme="dark"] .window:not(#daxamp-mount *) {
    background: #2b2b2b !important;
    box-shadow: inset -1px -1px #000, inset 1px 1px #444, inset -2px -2px #1a1a1a, inset 2px 2px #3a3a3a !important;
    color: #e0e0e0;
}

html[data-theme="dark"] .window .title-bar:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #0d0d1a, #26263f) !important;
}

html[data-theme="dark"] .window .title-bar.inactive:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #2a2a2a, #444) !important;
}

html[data-theme="dark"] .window .title-bar-text:not(#daxamp-mount *) {
    color: #e8e8e8 !important;
}

html[data-theme="dark"] .window-body:not(#daxamp-mount *) {
    color: #e0e0e0;
}

html[data-theme="dark"] .status-bar-field:not(#daxamp-mount *) {
    background: #2b2b2b;
    box-shadow: inset -1px -1px #444, inset 1px 1px #111 !important;
    color: #d8d8d8;
}

html[data-theme="dark"] .taskbar:not(#daxamp-mount *) {
    background: #1c1c1c !important;
    box-shadow: inset 0 1px #3a3a3a !important;
}

/* The taskbar is itself built from a nested .window/.window-body - without
   this, the generic .window rule above paints over the taskbar's own
   background instead of letting it show through. */
html[data-theme="dark"] .taskbar .window:not(#daxamp-mount *),
html[data-theme="dark"] .taskbar .window-body:not(#daxamp-mount *) {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

html[data-theme="dark"] .taskbar button:not(#daxamp-mount *) {
    background: #2b2b2b;
    color: #e0e0e0;
    box-shadow: inset -1px -1px #000, inset 1px 1px #444, inset -2px -2px #1a1a1a, inset 2px 2px #3a3a3a;
}

html[data-theme="dark"] .taskbar button.set-active:not(#daxamp-mount *) {
    box-shadow: inset -1px -1px #444, inset 1px 1px #000, inset -2px -2px #3a3a3a, inset 2px 2px #1a1a1a;
}

html[data-theme="dark"] .startmenu:not(#daxamp-mount *) {
    background: #2b2b2b !important;
    color: #e0e0e0 !important;
}

html[data-theme="dark"] .menu:not(#daxamp-mount *) {
    background: #2b2b2b !important;
    box-shadow: inset -1px -1px #000, inset 1px 1px #444, inset -2px -2px #1a1a1a, inset 2px 2px #3a3a3a !important;
    color: #e0e0e0;
}

html[data-theme="dark"] .menu-item-title:not(#daxamp-mount *),
html[data-theme="dark"] .status-bar-label:not(#daxamp-mount *) {
    color: #e0e0e0;
}

html[data-theme="dark"] .menu-item:hover:not(#daxamp-mount *) {
    background: #3a5a8a !important;
    color: #fff !important;
}

html[data-theme="dark"] .start-menu-content:not(#daxamp-mount *) {
    background: #2b2b2b;
    color: #e0e0e0;
}

html[data-theme="dark"] .win98-menubar:not(#daxamp-mount *) {
    background: #2b2b2b !important;
    color: #e0e0e0;
}

html[data-theme="dark"] .win98-menubar-item:hover:not(#daxamp-mount *),
html[data-theme="dark"] .win98-menubar-item.open:not(#daxamp-mount *) {
    background: #3a5a8a !important;
}

html[data-theme="dark"] .win98-menubar-dropdown:not(#daxamp-mount *) {
    background: #2b2b2b !important;
    box-shadow: 1px 1px 0 #1a1a1a inset, -1px -1px 0 #444 inset !important;
    color: #e0e0e0;
}

html[data-theme="dark"] .win98-menubar-dropdown-item:hover:not(#daxamp-mount *) {
    background: #3a5a8a !important;
    color: #fff !important;
}

html[data-theme="dark"] .win98-menubar-dropdown-separator:not(#daxamp-mount *) {
    border-top-color: #1a1a1a;
    border-bottom-color: #444;
}

/* Command Prompt is meant to look like an actual terminal regardless of
   which daxOS theme is active - not themed chrome, a black screen with
   white text, the same in Classic/Dark/Blue/XP alike. .window-terminal's
   own background-color (app.scss) has no !important, so every theme's
   .window rule above (which does use !important) was silently winning
   and tinting it to match the rest of that theme's windows instead.
   Reasserting the exact same background/box-shadow/padding 98.css itself
   uses by default (Classic, no data-theme attribute at all) here - not
   inventing a new "dark theme's own" terminal look, genuinely the same
   look Classic already has, just re-declared with enough specificity to
   win against this theme's own .window override. */
html[data-theme="dark"] .window-terminal:not(#daxamp-mount *) {
    background: #000 !important;
    box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff !important;
}

/* ======================================================================
   BLUE THEME
   ====================================================================== */
/* Based on a classic-Windows "Appearance" color scheme reference:
   a blue active/inactive title bar pairing, a dark navy menu bar with a
   maroon selection highlight (not blue - the reference image shows this
   distinctly, an authentic period combination some real Windows color
   schemes used), and a deep blue window body/button face throughout with
   bright green window text - matching the reference's "Message Box"
   preview specifically, which every window now uses consistently rather
   than only some of them. Styled like Dark (recolor the existing classic
   chrome, keep its beveled 3D shape) rather than like XP (a different,
   flatter shape/style) - title-bar-controls buttons are deliberately
   left at 98.css's own default gray/black-icon styling, same reasoning
   as Dark: the classic beveled button reads fine against any title bar
   color, so there's no need for XP's white-icon-recolor treatment here. */
html[data-theme="blue"] .window:not(#daxamp-mount *) {
    background: #3a5a96 !important;
    box-shadow: inset -1px -1px #16264a, inset 1px 1px #7a9fd0, inset -2px -2px #24406e, inset 2px 2px #567ab4 !important;
    color: #4ade9a;
}

html[data-theme="blue"] .window .title-bar:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #4a7dc4 0%, #1e4d95 100%) !important;
}

html[data-theme="blue"] .window .title-bar.inactive:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #2c3e63 0%, #1c2843 100%) !important;
}

html[data-theme="blue"] .window .title-bar-text:not(#daxamp-mount *) {
    color: #fff !important;
}

html[data-theme="blue"] .window-body:not(#daxamp-mount *) {
    color: #4ade9a;
}

/* Buttons get their own lighter, more vivid blue "3D Objects" face -
   the reference's OK button is visibly a step lighter than the darker
   Message Box body behind it, not the identical color, so now that every
   window body uses that same deep blue (see .window above), buttons need
   their own distinct shade to still stand out the way the reference
   shows rather than blending into the background they sit on. Scoped to
   .window-body so title-bar-controls (minimize/maximize/close, which sit
   outside .window-body) are untouched and keep their default styling,
   same reasoning as leaving them alone entirely elsewhere in this theme.
   98.css renders button text via text-shadow with color left transparent
   (not via color directly, which does nothing here) - overriding
   text-shadow's color is what actually makes this text render white. */
html[data-theme="blue"] .window-body button:not(#daxamp-mount *),
html[data-theme="blue"] .window-body input[type="reset"]:not(#daxamp-mount *),
html[data-theme="blue"] .window-body input[type="submit"]:not(#daxamp-mount *) {
    background: #4f74b8;
    box-shadow: inset -1px -1px #1e3a6e, inset 1px 1px #93b4e6, inset -2px -2px #2e4e8e, inset 2px 2px #6690d0;
    text-shadow: 0 0 #fff;
}

html[data-theme="blue"] .window-body button:not(:disabled):active:not(#daxamp-mount *),
html[data-theme="blue"] .window-body input[type="reset"]:not(:disabled):active:not(#daxamp-mount *),
html[data-theme="blue"] .window-body input[type="submit"]:not(:disabled):active:not(#daxamp-mount *) {
    box-shadow: inset -1px -1px #93b4e6, inset 1px 1px #1e3a6e, inset -2px -2px #6690d0, inset 2px 2px #2e4e8e;
    text-shadow: 1px 1px #16264a;
}

html[data-theme="blue"] .status-bar-field:not(#daxamp-mount *) {
    background: #2e4a80;
    box-shadow: inset -1px -1px #7a9fd0, inset 1px 1px #16264a !important;
    color: #4ade9a;
}

html[data-theme="blue"] .taskbar:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #4a7dc4 0%, #1e4d95 100%) !important;
    box-shadow: inset 0 1px #7ab0f0 !important;
}

/* The taskbar is itself built from a nested .window/.window-body - without
   this, the generic .window rule above paints over the taskbar's own
   gradient instead of letting it show through. */
html[data-theme="blue"] .taskbar .window:not(#daxamp-mount *),
html[data-theme="blue"] .taskbar .window-body:not(#daxamp-mount *) {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

html[data-theme="blue"] .taskbar button:not(#daxamp-mount *) {
    background: #3a5a96;
    color: #fff;
    font-weight: bold;
    box-shadow: inset -1px -1px #1e3a6e, inset 1px 1px #7a9fd0, inset -2px -2px #2a4880, inset 2px 2px #5a80b8;
}

html[data-theme="blue"] .taskbar button.set-active:not(#daxamp-mount *) {
    box-shadow: inset -1px -1px #7a9fd0, inset 1px 1px #1e3a6e, inset -2px -2px #5a80b8, inset 2px 2px #2a4880;
}

html[data-theme="blue"] .startmenu:not(#daxamp-mount *) {
    background: linear-gradient(90deg, #4a7dc4 0%, #1e4d95 100%) !important;
    color: #fff !important;
}

html[data-theme="blue"] .menu:not(#daxamp-mount *) {
    background: #1c2c52 !important;
    box-shadow: inset -1px -1px #0e1730, inset 1px 1px #3a527e, inset -2px -2px #131e3d, inset 2px 2px #2a3c66 !important;
    color: #fff;
}

html[data-theme="blue"] .menu-item-title:not(#daxamp-mount *),
html[data-theme="blue"] .status-bar-label:not(#daxamp-mount *) {
    color: #fff;
}

html[data-theme="blue"] .menu-item:hover:not(#daxamp-mount *) {
    background: #7b1a2b !important;
    color: #fff !important;
}

html[data-theme="blue"] .start-menu-content:not(#daxamp-mount *) {
    background: #1c2c52;
    color: #fff;
}

html[data-theme="blue"] .win98-menubar:not(#daxamp-mount *) {
    background: #1c2c52 !important;
    color: #fff;
}

html[data-theme="blue"] .win98-menubar-item:hover:not(#daxamp-mount *),
html[data-theme="blue"] .win98-menubar-item.open:not(#daxamp-mount *) {
    background: #7b1a2b !important;
}

html[data-theme="blue"] .win98-menubar-dropdown:not(#daxamp-mount *) {
    background: #1c2c52 !important;
    box-shadow: 1px 1px 0 #0e1730 inset, -1px -1px 0 #3a527e inset !important;
    color: #fff;
}

html[data-theme="blue"] .win98-menubar-dropdown-item:hover:not(#daxamp-mount *) {
    background: #7b1a2b !important;
    color: #fff !important;
}

html[data-theme="blue"] .win98-menubar-dropdown-separator:not(#daxamp-mount *) {
    border-top-color: #0e1730;
    border-bottom-color: #3a527e;
}

/* Command Prompt is meant to look like an actual terminal regardless of
   which daxOS theme is active - not themed chrome, a black screen with
   white text, the same in Classic/Dark/Blue/XP alike. Same reasoning as
   the equivalent rule in the Dark theme above - reasserting 98.css's own
   default (Classic) look, not inventing a Blue-specific one. */
html[data-theme="blue"] .window-terminal:not(#daxamp-mount *) {
    background: #000 !important;
    box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff !important;
}

/* ======================================================================
   WINDOWS XP (LUNA-INSPIRED) THEME
   ====================================================================== */
html[data-theme="xp"] .window:not(#daxamp-mount *) {
    background: #ece9d8 !important;
    border: 1px solid #0831d9 !important;
    border-radius: 7px 7px 6px 6px !important;
    box-shadow: none !important;
    padding: 0 3px 3px !important;
    overflow: hidden;
}

/* border-radius here matches .window's own top corners above (7px) - the
   title-bar is a separate element sitting inside .window, and without its
   own matching radius it stays a sharp-cornered rectangle even though
   .window's overflow:hidden clips it to the rounded outline. That clip
   only trims the title-bar down to the rounded silhouette; it doesn't
   itself round the title-bar's own drawn corners, so a sliver of
   .window's beige background peeked through in the 1-2px gap between the
   title-bar's sharp corner and the curve of the clip - visible in the
   corners of every XP-themed window. Matching the radius here means both
   curves coincide exactly, the way a real XP title bar's own corners are
   actually rounded rather than relying on a parent clip.
   margin/width: the actual, larger source of the beige gap turned out to
   be separate from the corner radius above - .window's padding is
   0 3px 3px (see above), so the title-bar's content box normally starts
   4px in from the window's outer edge (1px border + 3px padding) on the
   left/right, and this needs to pull out by exactly that much (not the
   previous -1px, which only compensated for the border and left a full
   3px beige strip down the entire height of the title bar, not just its
   corners) to actually reach the window's outer edge. Top only needs -1px
   since .window's own padding-top is 0 (nothing to compensate there
   beyond the border), which is why the top edge alone never showed this -
   the window's own border is blue already, so a 1px shortfall there was
   invisible. width is widened to match (2 * 4px, one per side) so the
   right edge reaches exactly as far as the left edge now does. */
html[data-theme="xp"] .window .title-bar:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #2f7ee6 0%, #1c5fd6 4%, #0e4bd4 8%, #1560e0 40%, #1c72f2 60%, #1560e0 88%, #0d47c9 100%) !important;
    margin: -1px -4px 0 -4px !important;
    width: calc(100% + 8px) !important;
    box-sizing: border-box !important;
    padding: 4px 5px 4px 7px !important;
    border-radius: 7px 7px 0 0 !important;
}

html[data-theme="xp"] .window .title-bar.inactive:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #9db8dd 0%, #93b0da 50%, #82a4d6 100%) !important;
}

html[data-theme="xp"] .window .title-bar-text:not(#daxamp-mount *) {
    color: #fff !important;
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif !important;
    font-weight: bold !important;
    text-shadow: 1px 1px 1px rgba(0, 0, 40, 0.6);
}

/* The minimize/maximize/restore/help/close glyphs aren't text - 98.css
   draws each one as a small black SVG baked into the button's own
   background-image (see 98.min.css). A CSS filter can recolor that, but
   only by filtering the *entire* button box as composited - which also
   caught this button's own background-color and inset box-shadow
   highlight, crushing the whole thing to solid white with no visible
   icon at all (that's what shipped last time). To recolor just the icon,
   the icon is redrawn here (same paths as 98.css, white fill instead of
   black) on its own ::after layer stacked on top of the button, leaving
   the button's own background-color/box-shadow on the button element
   itself untouched. The base background-image is turned off on the
   button so it doesn't also render (doubled up) behind this layer. */
html[data-theme="xp"] .title-bar-controls button:not(#daxamp-mount *) {
    border-radius: 3px;
    background-color: #3f7fe6;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    background-image: none !important;
    position: relative;
}

html[data-theme="xp"] .title-bar-controls button:not(#daxamp-mount *)::after {
    content: "";
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
}

html[data-theme="xp"] .title-bar-controls button[aria-label="Minimize"]:not(#daxamp-mount *)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M0 0h6v2H0z'/%3E%3C/svg%3E");
    background-position: bottom 3px left 4px;
}

html[data-theme="xp"] .title-bar-controls button[aria-label="Maximize"]:not(#daxamp-mount *)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='9' height='9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 0H0v9h9V0zM8 2H1v6h7V2z' fill='%23fff'/%3E%3C/svg%3E");
    background-position: top 2px left 3px;
}

html[data-theme="xp"] .title-bar-controls button[aria-label="Restore"]:not(#daxamp-mount *)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M2 0h6v2H2zM7 2h1v4H7zM2 2h1v1H2zM6 5h1v1H6zM0 3h6v2H0zM5 5h1v4H5zM0 5h1v4H0zM1 8h4v1H1z'/%3E%3C/svg%3E");
    background-position: top 2px left 3px;
}

html[data-theme="xp"] .title-bar-controls button[aria-label="Help"]:not(#daxamp-mount *)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='6' height='9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M0 1h2v2H0zM1 0h4v1H1zM4 1h2v2H4zM3 3h2v1H3zM2 4h2v2H2zM2 7h2v2H2z'/%3E%3C/svg%3E");
    background-position: top 2px left 5px;
}

html[data-theme="xp"] .title-bar-controls button[aria-label="Close"]:not(#daxamp-mount *)::after {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0h2v1h1v1h2V1h1V0h2v1H7v1H6v1H5v1h1v1h1v1h1v1H6V6H5V5H3v1H2v1H0V6h1V5h1V4h1V3H2V2H1V1H0V0z' fill='%23fff'/%3E%3C/svg%3E");
    background-position: top 3px left 4px;
}

/* Close specifically gets a red button face rather than the blue every
   other control uses, matching real XP - its own background-color and a
   subtle red-tinted inset highlight in place of the blue-tinted one
   every other button gets. The icon layer above (button::after) is a
   separate element stacked on top, so this button-level background
   change doesn't affect it either way. */
html[data-theme="xp"] .title-bar-controls button[aria-label="Close"]:not(#daxamp-mount *) {
    background-color: #e2503f;
    box-shadow: inset 0 0 0 1px rgba(255, 220, 210, 0.5);
}

html[data-theme="xp"] .window-body:not(#daxamp-mount *) {
    color: #000;
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

/* .window-body's font-family above only reaches plain text via normal
   inheritance - actual form controls (button/input/label/select/option/
   textarea) don't inherit font-family by default, the same reason 98.css
   itself has to target them explicitly rather than relying on the
   cascade. Without this, Settings' checkboxes/labels/dropdowns (and the
   same for every other window) fall back to 98.css's own pixel-font rule
   for those elements instead of picking up Tahoma. */
html[data-theme="xp"] .window-body button:not(#daxamp-mount *),
html[data-theme="xp"] .window-body input:not(#daxamp-mount *),
html[data-theme="xp"] .window-body label:not(#daxamp-mount *),
html[data-theme="xp"] .window-body select:not(#daxamp-mount *),
html[data-theme="xp"] .window-body option:not(#daxamp-mount *),
html[data-theme="xp"] .window-body textarea:not(#daxamp-mount *) {
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

html[data-theme="xp"] .status-bar-field:not(#daxamp-mount *) {
    background: #ece9d8;
    box-shadow: inset -1px -1px #fff, inset 1px 1px #aca998 !important;
}

html[data-theme="xp"] .taskbar:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #3d8eff 0%, #2f7cf6 4%, #1f68ef 8%, #1a5de6 50%, #1550d8 90%, #0f42c4 100%) !important;
    box-shadow: inset 0 1px #7ab2ff !important;
    border-top: 1px solid #0b3a9e;
}

/* The taskbar is itself built from a nested .window/.window-body - without
   this, the generic .window rule above paints over the taskbar's own
   blue gradient instead of letting it show through. */
html[data-theme="xp"] .taskbar .window:not(#daxamp-mount *),
html[data-theme="xp"] .taskbar .window-body:not(#daxamp-mount *) {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

html[data-theme="xp"] .taskbar button:not(#daxamp-mount *) {
    background: #3f7ae0;
    color: #fff;
    border-radius: 3px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
    text-shadow: 1px 1px 1px rgba(0, 0, 30, 0.5);
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

html[data-theme="xp"] .taskbar button.set-active:not(#daxamp-mount *) {
    background: #1a49b0;
    box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.5);
}

html[data-theme="xp"] .widgets-item-title:not(#daxamp-mount *) {
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

html[data-theme="xp"] .startmenu:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #9dea4f 0%, #6cc71e 45%, #57ad12 55%, #3f8f0c 100%) !important;
    color: #fff !important;
    font-weight: bold;
    border-radius: 0 10px 10px 0;
    text-shadow: 1px 1px 1px rgba(0, 30, 0, 0.5);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
}

html[data-theme="xp"] .menu:not(#daxamp-mount *),
html[data-theme="xp"] .start-menu-content:not(#daxamp-mount *) {
    background: #fff !important;
    border: 1px solid #0831d9 !important;
    border-radius: 0 6px 6px 6px !important;
    color: #000;
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

html[data-theme="xp"] .menu-item:hover:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #3f95ff, #1560e0) !important;
    color: #fff !important;
    border-radius: 3px;
}

html[data-theme="xp"] .win98-menubar:not(#daxamp-mount *) {
    background: #ece9d8 !important;
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

html[data-theme="xp"] .win98-menubar-item:hover:not(#daxamp-mount *),
html[data-theme="xp"] .win98-menubar-item.open:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #3f95ff, #1560e0) !important;
    color: #fff !important;
}

html[data-theme="xp"] .win98-menubar-dropdown:not(#daxamp-mount *) {
    background: #fff !important;
    border: 1px solid #0831d9 !important;
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3) !important;
}

html[data-theme="xp"] .win98-menubar-dropdown-item:hover:not(#daxamp-mount *) {
    background: linear-gradient(180deg, #3f95ff, #1560e0) !important;
    color: #fff !important;
    border-radius: 2px;
}

html[data-theme="xp"] .win98-menubar-dropdown-separator:not(#daxamp-mount *) {
    border-top-color: #d8d5c4;
    border-bottom-color: #fff;
}

/* The games.css/paint.css elements below previously fell back to Tahoma
   by accident (their font-family referenced a font that was never
   actually loaded, so the browser skipped straight to the fallback) -
   now that the underlying bug is fixed and they correctly use the pixel
   font by default, these preserve the Tahoma look already established
   for XP everywhere else, rather than switching XP over to the pixel
   font along with Classic/Dark. (.card isn't listed here - it was
   reverted back to Tahoma in every theme directly in games.css, so it no
   longer needs an XP-specific exception.) */
html[data-theme="xp"] .mine-cell:not(#daxamp-mount *),
html[data-theme="xp"] .solitaire-status:not(#daxamp-mount *),
html[data-theme="xp"] .doom-message:not(#daxamp-mount *),
html[data-theme="xp"] .pinball-message:not(#daxamp-mount *),
html[data-theme="xp"] .paint-tool:not(#daxamp-mount *),
html[data-theme="xp"] .paint-status-bar:not(#daxamp-mount *) {
    font-family: Tahoma, "MS Sans Serif", Arial, sans-serif;
}

/* Command Prompt is meant to look like an actual terminal regardless of
   which daxOS theme is active - not themed chrome, a black screen with
   white text, the same in Classic/Dark/Blue/XP alike. Same reasoning as
   the equivalent rule in the Dark/Blue themes above - reasserting
   98.css's own default (Classic) look, not inventing an XP-specific one.
   XP's own #column-window-... .window rule (further up) additionally
   changes border/border-radius/padding/overflow beyond just background
   and box-shadow, unlike Dark/Blue - all of those need resetting back to
   Classic's plain values here too, not just the two Dark/Blue needed. */
html[data-theme="xp"] .window-terminal:not(#daxamp-mount *) {
    background: #000 !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 3px !important;
    box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #dfdfdf, inset -2px -2px grey, inset 2px 2px #fff !important;
    overflow: visible !important;
}
