diff --git a/ui/src/app/file-panel/file-panel.html b/ui/src/app/file-panel/file-panel.html
index 137cb31..31b2c96 100644
--- a/ui/src/app/file-panel/file-panel.html
+++ b/ui/src/app/file-panel/file-panel.html
@@ -242,7 +242,7 @@
position:sticky, which is why it moved in here), the sorted column is
.highlighted.indicator[.up], and the selection band is tr.highlighted.
Widths come from
because 7.css sets table-layout:fixed. -->
-
+
@for (col of visibleColumns(); track col.key) {
diff --git a/ui/src/styles.css b/ui/src/styles.css
index 02078c3..55ae84e 100644
--- a/ui/src/styles.css
+++ b/ui/src/styles.css
@@ -610,10 +610,13 @@ body {
white header gradient) instead of --w7-* vars, so unlike the rest of the
skin it does NOT follow the hand-authored dark palette — the header labels
came out invisible, dark on dark. These restate the same rules in dark
- terms; they are scoped to the dark arms only so light keeps 7.css's own
- values untouched. */
- .win7[data-theme='dark'] table,
- .win7[data-theme='dark'] table > tbody > tr > * {
+ terms; light keeps 7.css's own values untouched.
+
+ CRITICAL: the base surface goes on `table`, NEVER on `tbody > tr > *`.
+ 7.css paints the selection band on the ROW, and a cell background paints
+ over a row background — setting one erased the selection highlight
+ entirely in dark mode. */
+ .win7[data-theme='dark'] table {
background-color: var(--w7-el-bg-s-2);
border-color: var(--w7-el-bd-d);
color: var(--w7-el-c);
@@ -626,11 +629,30 @@ body {
.win7[data-theme='dark'] table > tbody > tr > :not(:last-child) {
border-right-color: var(--w7-el-bd-d);
}
+ /* 7.css drops the cell separators inside a selected row; the rule above is
+ more specific than its, so restore that behaviour explicitly. */
+ .win7[data-theme='dark'] table > tbody > tr.highlighted > :not(:last-child) {
+ border-right: none;
+ }
+ .win7[data-theme='dark'] table > tbody > tr.highlighted {
+ background: var(--w7-li-bg-hl);
+ border-color: var(--w7-li-bd-hl);
+ }
- /* The keyboard cursor. 7.css models only selection (tr.highlighted); Win7
- drew the focused row with a dotted focus rectangle on top of it, which is
- what distinguishes "cursor" from "selected" when they differ. */
- .win7 table > tbody > tr.is-cursor > * {
+ /* Selection in the FOCUSED panel. 7.css's tr.highlighted is Win7's *inactive*
+ selection — a near-white wash that is almost invisible when it is the
+ panel you are actually working in. Win7 drew the focused pane's selection
+ as the stronger Aero band, which is what --w7-el-grad-h/-bd-h already are
+ (and the dark palette restates them, so this recolours for free). */
+ .win7 table.is-active > tbody > tr.highlighted {
+ background: var(--w7-el-grad-h);
+ border-color: var(--w7-el-bd-h);
+ }
+
+ /* The keyboard cursor: one dotted focus rectangle around the ROW, the way
+ Win7 drew a focused-but-unselected item. Applying this per cell (tr > *)
+ draws a dotted box around every cell instead — visibly wrong. */
+ .win7 table > tbody > tr.is-cursor {
outline: 1px dotted var(--w7-el-c);
outline-offset: -1px;
}