/* Desktop chrome only: applications, icon artwork and wallpaper keep their colors. */
body.stable-desktop {
  --dt-ink: #e4eddf;
  --dt-muted: #a9baa0;
  --dt-faint: #879b7c;
  --dt-line: #b5c5a64a;
  --dt-line-strong: #b8caaa80;
  --dt-rail: #10221c99;
  --dt-panel: #14291fc9;
  --dt-chrome: #14251ff5;
  --dt-title: #243730;
  --dt-hover: #ffffff12;
  --dt-pressed: #bdd49a;
  --dt-on-pressed: #1d3226;
  --dt-mixed: #66542d;
  --dt-on-mixed: #f0dfb6;
  --dt-input: #10221c;
  --dt-glyph: #c5d5ae;
  --dt-glyph-ink: #26382e;
  --dt-backdrop: #071511dd;
  --dt-content: #182820;
  --dt-content-ink: #e1ead8;
  --dt-content-muted: #a9baa0;
  --dt-control: #22352b;
  --dt-control-hover: #2c4234;
  --dt-control-line: #657b5e;
  --dt-control-selected: #334a32;
  --dt-control-accent: #a9c986;
  --dt-scheme: dark;
  --accent: #d4e5a1;
  --line: var(--dt-line);
  color: var(--dt-ink);
  color-scheme: var(--dt-scheme);
}

body.stable-desktop[data-desktop-theme="light"] {
  --dt-ink: #273932;
  --dt-muted: #5b6e64;
  --dt-faint: #667363;
  --dt-line: #667c6460;
  --dt-line-strong: #667c6499;
  --dt-rail: #e8eee6f0;
  --dt-panel: #f9faf4ed;
  --dt-chrome: #f2f3eaf7;
  --dt-title: #dce5d8;
  --dt-hover: #34523a12;
  --dt-pressed: #cfdfbd;
  --dt-on-pressed: #263b2c;
  --dt-mixed: #ece0bc;
  --dt-on-mixed: #665226;
  --dt-input: #fffef8;
  --dt-glyph: #e3eada;
  --dt-glyph-ink: #304634;
  --dt-backdrop: #e1e7dce8;
  --dt-content: #f3f1e9;
  --dt-content-ink: #28382f;
  --dt-content-muted: #5f6f58;
  --dt-control: #fffdf6;
  --dt-control-hover: #edf0e2;
  --dt-control-line: #bdc8b4;
  --dt-control-selected: #e4ecd8;
  --dt-control-accent: #527147;
  --dt-scheme: light;
  --accent: #426a44;
}

body.stable-desktop[data-desktop-theme="amber"] {
  --dt-ink: #f1d6a0;
  --dt-muted: #bba16f;
  --dt-faint: #9b855f;
  --dt-line: #8d6b3770;
  --dt-line-strong: #ad834a9c;
  --dt-rail: #19140eeb;
  --dt-panel: #231b10eb;
  --dt-chrome: #1c1710f7;
  --dt-title: #302315;
  --dt-hover: #e9b35513;
  --dt-pressed: #deaa52;
  --dt-on-pressed: #24180a;
  --dt-mixed: #594222;
  --dt-on-mixed: #f5d596;
  --dt-input: #15110b;
  --dt-glyph: #d4b786;
  --dt-glyph-ink: #38250d;
  --dt-backdrop: #100d08e8;
  --dt-content: #211b12;
  --dt-content-ink: #f1d6a0;
  --dt-content-muted: #bba16f;
  --dt-control: #2c2317;
  --dt-control-hover: #3a2c1a;
  --dt-control-line: #8d6b37;
  --dt-control-selected: #463319;
  --dt-control-accent: #e8b357;
  --accent: #edb95f;
}

body.stable-desktop[data-desktop-theme="matrix"] {
  --dt-ink: #b9edc6;
  --dt-muted: #81aa8b;
  --dt-faint: #61876c;
  --dt-line: #43855870;
  --dt-line-strong: #58a56a99;
  --dt-rail: #07170ded;
  --dt-panel: #0b1e12eb;
  --dt-chrome: #08150ef7;
  --dt-title: #102a19;
  --dt-hover: #72e38b14;
  --dt-pressed: #7cdc8c;
  --dt-on-pressed: #0b2310;
  --dt-mixed: #244629;
  --dt-on-mixed: #afe7a8;
  --dt-input: #06100a;
  --dt-glyph: #8fc99d;
  --dt-glyph-ink: #102e18;
  --dt-backdrop: #030d07eb;
  --dt-content: #0b1b10;
  --dt-content-ink: #bbecc7;
  --dt-content-muted: #81aa8b;
  --dt-control: #102617;
  --dt-control-hover: #17321e;
  --dt-control-line: #438558;
  --dt-control-selected: #173b22;
  --dt-control-accent: #7ee497;
  --accent: #82e596;
}

/* Shelves retain their dimensions and all expanded/hidden states. */
.stable-desktop .desktop-columns > :is(#desktop-groups, #desktop-groups-right).desktop-rail {
  border-color: var(--dt-line);
  background: var(--dt-rail);
}
.stable-desktop .stable-toolbar {
  border-bottom-color: var(--dt-line);
  background: var(--dt-chrome);
}
.stable-desktop .stable-toolbar .rail-tabs > button {
  border-color: var(--dt-line);
  background: transparent;
  color: var(--dt-muted);
  text-shadow: none;
}
.stable-desktop .stable-toolbar .rail-tabs > button[data-expansion="expanded"] {
  border-color: var(--dt-pressed);
  background: var(--dt-pressed);
  color: var(--dt-on-pressed);
}
.stable-desktop .stable-toolbar .rail-tabs > button[data-expansion="mixed"] {
  border-color: var(--dt-line-strong);
  background: var(--dt-mixed);
  color: var(--dt-on-mixed);
}
.stable-desktop .stable-area-title { color: var(--dt-ink); }
.stable-desktop .stable-area-title::after { border-top-color: var(--dt-line); }
.stable-desktop .stable-area .tag-frame.desktop-frame {
  border-color: var(--dt-line-strong);
  background: var(--dt-panel);
}
.stable-desktop .stable-area .tag-frame:focus-within { border-color: var(--accent); }
.stable-desktop .stable-area .frame-heading :is(h2, h3),
.stable-desktop .tag-frame .frame-title { color: var(--dt-ink); }
.stable-desktop .tag-frame .frame-title:hover { color: var(--accent); }
.stable-desktop .tag-frame :is(.tag-frame-count, .frame-count) { color: var(--dt-muted); }
.stable-desktop .stable-area .frame-icons .desktop-icon { color: var(--dt-ink); text-shadow: none; }
.stable-desktop[data-desktop-layout="icons"] .stable-area .frame-icons .desktop-icon { text-shadow: none; }
.stable-desktop .stable-area .frame-icons .desktop-icon:hover {
  border-color: var(--dt-line);
  background: var(--dt-hover);
}
.stable-desktop[data-desktop-layout="icons"] .stable-area .frame-icons .glyph {
  color: var(--dt-glyph-ink);
  background: var(--dt-glyph);
}
.stable-desktop :is(.rail-panels, .start-results, .start-categories, .start-category-items,
  .desktop-search-results, .activity-body, .overview-grid, .desktop-size-settings, .wallpaper-settings) {
  scrollbar-color: var(--dt-line-strong) transparent;
}

/* Taskbar, Start and search use the same accent and contrast as the shelves. */
.stable-desktop footer { background: var(--dt-chrome); border-color: var(--dt-line); }
.stable-desktop #tasks { border-left-color: var(--dt-line); }
.stable-desktop .frame-actions-divider { border-left-color: var(--dt-line); }
.stable-desktop footer :is(#start-button, #toggle-all-frames, #toggle-left-frames, #toggle-right-frames, #expand-all-frames,
  #collapse-all-frames, #activity-button, #overview-button),
.stable-desktop #tasks .task {
  border-color: var(--dt-line);
  background: var(--dt-hover);
  color: var(--dt-ink);
}
.stable-desktop footer :is(#start-button, #toggle-all-frames, #toggle-left-frames, #toggle-right-frames, #expand-all-frames,
  #collapse-all-frames, #activity-button, #overview-button):hover,
.stable-desktop #tasks .task:hover { border-color: var(--dt-line-strong); background: var(--dt-hover); }
.stable-desktop footer :is(#start-button, #activity-button, #overview-button)[aria-expanded="true"],
.stable-desktop #tasks .task.active {
  border-color: var(--accent);
  background: var(--dt-pressed);
  color: var(--dt-on-pressed);
}
.stable-desktop footer :is(#toggle-left-frames, #toggle-right-frames)[aria-pressed="true"] {
  border-color: var(--accent);
  background: var(--dt-hover);
  color: var(--dt-ink);
}
.stable-desktop footer :is(#toggle-left-frames, #toggle-right-frames)[aria-pressed="false"] {
  border-color: var(--dt-line);
  background: transparent;
  color: var(--dt-muted);
}
.stable-desktop footer :is(#toggle-left-frames, #toggle-right-frames):hover {
  border-color: var(--accent);
  background: var(--dt-pressed);
  color: var(--dt-on-pressed);
}
.stable-desktop .footer-status { color: var(--dt-muted); }
.stable-desktop .footer-status a { color: var(--dt-ink); }
.stable-desktop footer #show-desktop-button { border-left-color: var(--dt-line); background: var(--dt-hover); }
.stable-desktop footer #show-desktop-button[aria-pressed="true"] { border-left-color: var(--accent); background: var(--dt-pressed); }
.stable-desktop .frame-controls,
.stable-desktop .wallpaper-context-menu,
.stable-desktop .app-transfer-notice {
  border-color: var(--dt-line-strong);
  background: var(--dt-chrome);
  color: var(--dt-ink);
}
.stable-desktop :is(.frame-controls-heading h2, .start-category-heading h3, .search-copy strong) { color: var(--dt-ink); }
.stable-desktop :is(.start-controls h3, .search-copy small, .category-count, #start-category-count,
  .start-category-status, .menu-empty, .tag-empty, .search-results-heading) { color: var(--dt-muted); }
.stable-desktop :is(.start-session-actions, .start-browser, .start-categories, .start-category-heading) { border-color: var(--dt-line); }
.stable-desktop :is(#restart-session, #shutdown-session, #menu-toggle-all, #start-back, .frame-visibility) {
  border-color: var(--dt-line);
  color: var(--dt-ink);
  background: transparent;
}
.stable-desktop :is(#close-start-menu, .category-browse) { color: var(--dt-ink); }
.stable-desktop :is(#restart-session, #shutdown-session, #menu-toggle-all, #start-back,
  #close-start-menu, .category-browse, .frame-visibility):hover { background: var(--dt-hover); }
.stable-desktop #start-menu .category-browse[aria-current="true"],
.stable-desktop #start-menu .category-browse[aria-current="true"]:hover {
  border-color: var(--accent);
  background: var(--dt-pressed);
  color: var(--dt-on-pressed);
}
.stable-desktop #start-menu .category-browse[aria-current="true"] :is(.category-name, .category-count, .category-arrow) { color: var(--dt-on-pressed); }
.stable-desktop .frame-visibility[aria-pressed="true"] { color: var(--accent); background: var(--dt-hover); }
.stable-desktop #start-search {
  border-color: var(--dt-line-strong);
  background: var(--dt-input);
  color: var(--dt-ink);
}
.stable-desktop #start-search::placeholder { color: var(--dt-muted); }
.stable-desktop .search-result:hover,
.stable-desktop .search-result:focus-visible { border-color: var(--dt-line-strong); background: var(--dt-hover); }
.stable-desktop .desktop-search,
.stable-desktop .desktop-search-results { border-color: var(--dt-line-strong); background: var(--dt-chrome); }
.stable-desktop .desktop-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px var(--dt-hover), 0 5px 20px #0003; }
.stable-desktop .desktop-search > .site-search-icon { stroke: var(--dt-muted); }
.stable-desktop .desktop-search > :is(input, button, .search-status),
.stable-desktop .desktop-search-results > .search-result { color: var(--dt-ink); }
.stable-desktop .desktop-search > input::placeholder { color: var(--dt-muted); }
.stable-desktop .desktop-search > button:hover { background: var(--dt-hover); }
.stable-desktop .desktop-search > #voice-search[aria-pressed="true"] { background: #a64a3c; color: #fff; }

/* Window chrome and built-in views are themed; iframe documents stay independent. */
.stable-desktop .window:not(.desktop-widget) { border-color: var(--dt-line-strong); background: var(--dt-content); color: var(--dt-content-ink); }
.stable-desktop .window:not(.desktop-widget) > .titlebar { background: var(--dt-title); color: var(--dt-ink); }
.stable-desktop .window .titlebar button:hover,
.stable-desktop .window .titlebar .maximize-between[aria-pressed="true"] { background: var(--dt-hover); }
.stable-desktop .window .titlebar .close:hover { background: #9e5145; color: #fff; }
.stable-desktop #workspace .window.desktop-widget { border-color: var(--dt-line); background: var(--dt-rail); }
.stable-desktop .window.desktop-widget .titlebar { color: var(--dt-ink); }
.stable-desktop :is(.desktop-size-settings, .wallpaper-settings) {
  background: var(--dt-content);
  color: var(--dt-content-ink);
  color-scheme: var(--dt-scheme);
}
.stable-desktop :is(.desktop-size-note, .desktop-size-copy > span, .wallpaper-local-note,
  .wallpaper-status, .wallpaper-brightness-value, .wallpaper-transparency-value) { color: var(--dt-content-muted); }
.stable-desktop :is(.desktop-size-option, .desktop-layout-option, .desktop-theme-option,
  .wallpaper-choice, .wallpaper-file-button, .wallpaper-field select, .wallpaper-custom-color input) {
  border-color: var(--dt-control-line);
  background: var(--dt-control);
  color: var(--dt-content-ink);
}
.stable-desktop :is(.desktop-size-option, .desktop-layout-option, .desktop-theme-option,
  .wallpaper-choice, .wallpaper-file-button):hover { background: var(--dt-control-hover); }
.stable-desktop :is(.desktop-size-option, .desktop-layout-option, .desktop-theme-option):has(input:checked),
.stable-desktop .wallpaper-choice[aria-pressed="true"] {
  border-color: var(--dt-control-accent);
  background: var(--dt-control-selected);
  box-shadow: inset 0 0 0 1px var(--dt-control-accent);
}
.stable-desktop :is(.desktop-size-option, .desktop-layout-option, .desktop-theme-option):focus-within,
.stable-desktop .wallpaper-settings :is(button, input, select):focus-visible {
  outline-color: var(--dt-control-accent);
}
.stable-desktop :is(.desktop-size-option input, .desktop-layout-option input, .desktop-theme-option input,
  .wallpaper-adjustment input[type="range"]) { accent-color: var(--dt-control-accent); }
.stable-desktop :is(.desktop-layout-preview i, .desktop-size-preview i) { border-color: var(--dt-control-line); background: var(--dt-control-selected); }
.stable-desktop [data-layout-preview="outline"] i::after,
.stable-desktop[data-desktop-layout="outline"] .desktop-size-preview i::after { background: var(--dt-control-accent); }
.stable-desktop[data-desktop-layout="outline"] .desktop-size-preview i { background: none; }
.stable-desktop[data-desktop-layout="outline"] .desktop-size-preview i::before { border-color: var(--dt-control-line); background: var(--dt-control-selected); }
.stable-desktop .wallpaper-remove-image { color: var(--dt-control-accent); }
.stable-desktop .wallpaper-swatch[aria-pressed="true"] { outline-color: var(--dt-control-accent); }
.stable-desktop .wallpaper-status.is-error { color: #ee9d8d; }
.stable-desktop[data-desktop-theme="light"] .wallpaper-status.is-error { color: #9b4335; }
.stable-desktop .wallpaper-context-menu button:hover,
.stable-desktop .wallpaper-context-menu button:focus-visible { background: var(--dt-hover); outline-color: var(--accent); }

/* The built-in Library and confirmation retain readable controls in every theme. */
.stable-desktop .library .sidebar { border-color: var(--dt-control-line); background: var(--dt-control); }
.stable-desktop .library .sidebar button.active { background: var(--dt-control-selected); }
.stable-desktop .library :is(.content p, .card small, .empty) { color: var(--dt-content-muted); }
.stable-desktop .library :is(.search, .card) { border-color: var(--dt-control-line); background: var(--dt-control); color: var(--dt-content-ink); }
.stable-desktop .library .card:hover { border-color: var(--dt-control-accent); background: var(--dt-control-hover); }
.stable-desktop .library .card .symbol { color: var(--dt-control-accent); }
.stable-desktop #game-close-dialog { border-color: var(--dt-control-line); background: var(--dt-content); color: var(--dt-content-ink); color-scheme: var(--dt-scheme); }
.stable-desktop #game-close-dialog p { color: var(--dt-content-muted); }
.stable-desktop .game-close-actions button:not(.confirm-game-close) { border-color: var(--dt-control-line); background: var(--dt-control); color: var(--dt-content-ink); }
.stable-desktop .game-close-actions button:focus-visible { outline-color: var(--dt-control-accent); }

/* Activity and Overview preserve red recording and warning indicators. */
.stable-desktop .activity-panel { border-color: var(--dt-line-strong); background: var(--dt-chrome); color: var(--dt-ink); color-scheme: var(--dt-scheme); }
.stable-desktop :is(.activity-close, .activity-clear, .overview-close, .overview-window-close) { color: var(--dt-ink); border-color: var(--dt-line); background: var(--dt-title); }
.stable-desktop :is(.activity-close, .activity-clear, .overview-close):hover { background: var(--dt-hover); }
.stable-desktop .activity-section + .activity-section { border-top-color: var(--dt-line); }
.stable-desktop :is(.activity-section h3, .activity-detail, .activity-empty, .overview-count, .overview-empty, .overview-card-status) { color: var(--dt-muted); }
.stable-desktop .activity-time { color: var(--dt-faint); }
.stable-desktop .activity-item { background: var(--dt-hover); }
.stable-desktop button.activity-item:hover { border-color: var(--dt-line); background: var(--dt-hover); }
.stable-desktop .activity-item.is-unread { background: var(--dt-hover); }
.stable-desktop .activity-dot { background: var(--dt-muted); }
.stable-desktop .activity-item[data-tone="alarm"] .activity-dot { background: #e7b474; }
.stable-desktop .activity-item[data-tone="recording"] .activity-dot { background: #d58b7f; }
.stable-desktop .activity-item[data-tone="warning"] .activity-dot { background: #d4be76; }
.stable-desktop .activity-count { background: var(--dt-pressed); color: var(--dt-on-pressed); }
.stable-desktop #activity-button[data-live="alarm"] { border-color: #d09b64; color: #ffd29a; }
.stable-desktop #activity-button[data-live="recording"] { border-color: #bd7770; color: #efb0a6; }
.stable-desktop[data-desktop-theme="light"] #activity-button[data-live="alarm"] { color: #805221; }
.stable-desktop[data-desktop-theme="light"] #activity-button[data-live="recording"] { color: #9b4335; }
.stable-desktop .window-overview-backdrop { background: var(--dt-backdrop); }
.stable-desktop .window-overview { color: var(--dt-ink); color-scheme: var(--dt-scheme); }
.stable-desktop .overview-header { border-bottom-color: var(--dt-line); }
.stable-desktop :is(.overview-card, .overview-card-label, .overview-card-status) { border-color: var(--dt-line); }
.stable-desktop .overview-card-label { background: var(--dt-chrome); }
.stable-desktop .overview-card:hover { border-color: var(--accent); background: var(--dt-hover); }
.stable-desktop .overview-window-close:hover { border-color: #dbac9f; background: #713b36; color: #fff1e9; }
.stable-desktop :is(.overview-card, .overview-window-close, .overview-close, #overview-button,
  #activity-button, .activity-panel button, #show-desktop-button):focus-visible { outline-color: var(--accent); }

/* Small swatches preview the theme itself, independently of the active theme. */
.desktop-theme-options { min-width: 0; margin: 0 0 14px; padding: 0; border: 0; }
.desktop-theme-options legend { margin-bottom: 9px; padding: 0; font-size: 12px; font-weight: 600; }
.desktop-theme-choices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.desktop-theme-option { display: grid; grid-template-columns: 14px minmax(0, 1fr); align-items: center; gap: 7px 5px; min-width: 0; padding: 8px 7px; border: 1px solid; border-radius: 6px; cursor: pointer; }
.desktop-theme-option input { width: 14px; height: 14px; margin: 0; }
.desktop-theme-option:focus-within { outline: 2px solid var(--dt-control-accent); outline-offset: 2px; }
.desktop-theme-copy { min-width: 0; }
.desktop-theme-copy strong { display: block; font-size: 11px; line-height: 16px; font-weight: 600; overflow-wrap: anywhere; }
.desktop-theme-preview { grid-column: 1 / -1; grid-row: 2; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 3px; height: 30px; padding: 5px 7px; border: 1px solid var(--swatch-line); border-radius: 3px; background: var(--swatch-background); }
.desktop-theme-preview i { display: block; width: 76%; height: 2px; background: var(--swatch-ink); border-radius: 1px; opacity: .7; }
.desktop-theme-preview i:first-child { width: 48%; opacity: 1; }
.desktop-theme-preview i:last-child { width: 62%; }
[data-theme-preview="dark"] { --swatch-background: #182820; --swatch-line: #657b5e; --swatch-ink: #d4e5a1; }
[data-theme-preview="light"] { --swatch-background: #f3f1e9; --swatch-line: #a7b49a; --swatch-ink: #426a44; }
[data-theme-preview="amber"] { --swatch-background: #211b12; --swatch-line: #8d6b37; --swatch-ink: #edb95f; }
[data-theme-preview="matrix"] { --swatch-background: #07170d; --swatch-line: #438558; --swatch-ink: #82e596; }

/* Matrix's restrained terminal lettering stays in desktop chrome. */
body.stable-desktop[data-desktop-theme="matrix"] :is(.stable-toolbar .rail-tabs > button,
  .stable-area-title, .stable-area .frame-heading h2, .stable-area .frame-heading h3,
  .stable-area .desktop-icon, .titlebar, .frame-controls, .desktop-search input,
  .desktop-search-results, footer, #activity-button, #overview-button, .activity-panel,
  .window-overview) { font-family: Consolas, "Liberation Mono", monospace; }

@media (max-width: 360px) {
  .desktop-theme-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .desktop-theme-option { grid-template-columns: 14px 26px minmax(0, 1fr); gap: 6px; padding: 7px; }
  .desktop-theme-option .desktop-theme-preview { grid-column: 2; grid-row: 1; height: 26px; padding: 4px; }
}

/* WebDrive's session guard is shared with the apps and may be opened here. */
body.stable-desktop .session-leave-dialog{background:var(--dt-content);color:var(--dt-content-ink);border-color:var(--dt-control-line);color-scheme:var(--dt-scheme)}
body.stable-desktop .session-leave-dialog .session-leave-status{color:var(--dt-content-muted)}
body.stable-desktop .session-leave-dialog a{color:var(--dt-control-accent)}
body.stable-desktop .session-leave-dialog button{background:var(--dt-control);color:var(--dt-content-ink);border-color:var(--dt-control-line)}
body.stable-desktop .session-leave-dialog button:hover:not(:disabled){background:var(--dt-control-hover)}
body.stable-desktop .session-leave-dialog :is(button,a):focus-visible{outline-color:var(--dt-control-accent)}
