|
| 1 | +/* Import Work Sans font */ |
| 2 | +@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;500;600;700&display=swap'); |
| 3 | + |
1 | 4 | /* Put these with your other :root vars */
|
2 | 5 | :root {
|
3 | 6 | /* header fills (light) */
|
|
17 | 20 | }
|
18 | 21 | }
|
19 | 22 |
|
20 |
| -/* Variables mapped to the other app’s palette (light) */ |
| 23 | +/* Variables mapped to the other app's palette (light) */ |
21 | 24 | :root {
|
| 25 | + --font-work-sans: "Work Sans", ui-sans-serif, system-ui, sans-serif; |
22 | 26 | --bg: #ffffff; /* base background */
|
23 | 27 | --fg: rgb(24, 33, 57); /* text-primary */
|
24 | 28 | --muted: rgb(73, 85, 115); /* use secondary (clearer than ultra-muted) */
|
|
37 | 41 | /* Dark mode: override only color variables */
|
38 | 42 | @media (prefers-color-scheme: dark) {
|
39 | 43 | body {
|
40 |
| - background: var(--bg); /* now uses the dark --bg (#1e2640) */ |
| 44 | + background: var(--bg); /* now uses the dark --bg (#1d2740) */ |
41 | 45 | color: var(--fg); /* ensures text switches too */
|
42 | 46 | }
|
43 | 47 | :root {
|
44 |
| - --bg: #1e2640; |
| 48 | + --bg: #1d2740; /* inactive background */ |
45 | 49 | --fg: #ffffff;
|
46 | 50 | --muted: rgb(193, 199, 215);
|
47 |
| - --box: #26314c; /* surface (dark) */ |
| 51 | + --box: #26314c; /* active (interactable zone) background */ |
48 | 52 | --stroke: rgba(193, 199, 215, 0.35);
|
49 | 53 | --key: #10b981;
|
50 | 54 | --fk: #38bdf8;
|
51 | 55 | --danger: #ef4444;
|
52 | 56 | --accent: #38bdf8;
|
53 |
| - --canvas: #1e2640; |
| 57 | + --canvas: #1d2740; /* inactive background */ |
54 | 58 | --control-bg: #1f2937;
|
55 | 59 | --control-border: #94a3b8;
|
56 | 60 | --fk: #ffffff; /* arrows & markers turn white in dark theme */
|
|
61 | 65 | html,body{height:100%;margin:0}
|
62 | 66 |
|
63 | 67 | body{
|
64 |
| - font-family:"Work Sans","Work Sans Fallback",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; |
| 68 | + font-family: "Work Sans", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
65 | 69 | color:var(--fg);
|
66 | 70 | background:var(--bg)
|
67 | 71 | }
|
|
71 | 75 | border-bottom:1px solid var(--stroke);
|
72 | 76 | background:var(--box)
|
73 | 77 | }
|
| 78 | + |
| 79 | + /* Light theme navigation bar background */ |
| 80 | + @media (prefers-color-scheme: light) { |
| 81 | + header { |
| 82 | + background: rgb(238, 239, 246); |
| 83 | + } |
| 84 | + } |
74 | 85 | header h1{font-size:1.1rem;margin:0}
|
75 | 86 | #status{font-size:.9rem;color:var(--muted)}
|
76 | 87 |
|
|
88 | 99 | border:1px solid #e2e8f0;
|
89 | 100 | border-radius:8px;padding:10px;margin-bottom:10px
|
90 | 101 | }
|
| 102 | + |
| 103 | + /* Header styles for card sections */ |
| 104 | + .card h2 { |
| 105 | + font-size: 1.15rem; |
| 106 | + font-weight: 500; |
| 107 | + margin: 0.8rem 0 0.5rem 0; |
| 108 | + color: var(--fg); |
| 109 | + } |
| 110 | + |
| 111 | + .card h3 { |
| 112 | + font-size: 1.05rem; |
| 113 | + font-weight: 500; |
| 114 | + margin: 0.6rem 0 0.4rem 0; |
| 115 | + color: var(--fg); |
| 116 | + } |
91 | 117 | .row{display:flex;align-items:center;gap:.5rem}
|
92 |
| - .row-between{display:flex;align-items:center;justify-content:space-between} |
93 |
| - label{display:flex;flex-direction:column;gap:.25rem;margin:.4rem 0} |
94 |
| - label.row{flex-direction:row;align-items:center;gap:.5rem} |
| 118 | + .row-between{display:flex;align-items:center;justify-content:flex-start;gap:1rem} |
| 119 | + |
| 120 | + /* FK status text styling to fix alignment */ |
| 121 | + #fk-status-text { |
| 122 | + flex: 0 1 auto; |
| 123 | + max-width: none; |
| 124 | + margin: 0; |
| 125 | + padding: 0; |
| 126 | + white-space: nowrap; |
| 127 | + overflow: hidden; |
| 128 | + text-overflow: ellipsis; |
| 129 | + } |
| 130 | + label{display:flex;flex-direction:column;gap:.25rem;margin:.8rem 0 .4rem 0} |
| 131 | + label.row{flex-direction:row;align-items:center;gap:.5rem;margin:.3rem 0} |
95 | 132 |
|
96 | 133 | /* Make controls use the tokens in both modes */
|
97 | 134 | input, select, button {
|
98 | 135 | padding: .5rem;
|
99 |
| - border: 0.5px solid var(--control-border); |
| 136 | + border: 1px solid var(--control-border); |
100 | 137 | border-radius: 6px;
|
101 | 138 | background: var(--control-bg);
|
102 | 139 | color: var(--fg);
|
103 | 140 | font: inherit;
|
104 | 141 | }
|
| 142 | + |
| 143 | + /* Input field specific styles (exclude checkboxes) */ |
| 144 | + input:not([type="checkbox"]) { |
| 145 | + min-height: 3.75rem; |
| 146 | + max-height: 8.737499999999999rem; |
| 147 | + padding-left: 1rem; |
| 148 | + padding-right: 2.75rem; |
| 149 | + padding-top: 0.94975rem; |
| 150 | + padding-bottom: 0.94975rem; |
| 151 | + } |
| 152 | + |
| 153 | + /* Select field specific styles to match inputs */ |
| 154 | + select { |
| 155 | + min-height: 3.75rem; |
| 156 | + max-height: 8.737499999999999rem; |
| 157 | + padding-left: 1rem; |
| 158 | + padding-right: 2.75rem; |
| 159 | + padding-top: 0.94975rem; |
| 160 | + padding-bottom: 0.94975rem; |
| 161 | + } |
| 162 | + |
| 163 | + input:not([type="checkbox"]):hover, select:hover { |
| 164 | + border-color: #26314c; |
| 165 | + } |
| 166 | + |
| 167 | + input:not([type="checkbox"]):focus-visible, select:focus-visible { |
| 168 | + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); |
| 169 | + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); |
| 170 | + box-shadow: var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000); |
| 171 | + border-color: #377dff; |
| 172 | + } |
105 | 173 | input[type="checkbox"]{padding:0}
|
106 |
| - button{cursor:pointer;border-radius:.5rem} |
| 174 | + button{cursor:pointer;border-radius:.5rem;margin-top:.5rem} |
| 175 | + |
| 176 | + /* Fix for FK remove button positioning */ |
| 177 | + .row-between button { |
| 178 | + margin-top: 0; |
| 179 | + flex-shrink: 0; |
| 180 | + } |
| 181 | + |
| 182 | + /* Ensure FK status wrapper takes full width */ |
| 183 | + .row-between { |
| 184 | + width: 100%; |
| 185 | + } |
107 | 186 |
|
108 | 187 | /* Dark-mode specifics */
|
109 | 188 | @media (prefers-color-scheme: dark) {
|
110 |
| - /* 1) Sidebar “menus” (cards) should have no border in dark */ |
| 189 | + /* 1) Sidebar "menus" (cards) should have no border in dark */ |
111 | 190 | .card { border: none; }
|
112 | 191 |
|
113 | 192 | /* 2) Buttons should be dark with light-grey border */
|
114 |
| - button { background: var(--control-bg); border-color: var(--control-border); } |
| 193 | + button { |
| 194 | + background: rgb(45 56 85 / 0.25); |
| 195 | + border-color: rgb(57 69 99); |
| 196 | + color: rgb(187 193 209); |
| 197 | + } |
| 198 | + |
| 199 | + button:hover { |
| 200 | + background: rgb(73 85 115 / 0.25); |
| 201 | + color: rgb(215 218 230); |
| 202 | + } |
115 | 203 |
|
116 |
| - /* Optional: make the danger button less blinding in dark */ |
| 204 | + /* Update delete buttons to transparent red in dark mode */ |
117 | 205 | button.danger {
|
118 |
| - background: rgba(239, 68, 68, 0.12); |
119 |
| - border-color: rgba(239, 68, 68, 0.45); |
| 206 | + background: rgba(239, 68, 68, 0.05); |
| 207 | + border-color: rgba(239, 68, 68, 0.6); |
120 | 208 | color: var(--danger);
|
121 | 209 | }
|
122 | 210 |
|
123 |
| - /* 3) Inputs dark with grey default (placeholder) text */ |
| 211 | + /* Save buttons keep existing dark mode styles (exclude help button) */ |
| 212 | + button:not(.danger):not(.as-button) { |
| 213 | + background: rgba(250, 90, 90, 0.7); |
| 214 | + border-color: rgb(57 69 99); |
| 215 | + color: rgb(187 193 209); |
| 216 | + } |
| 217 | + |
| 218 | + button:not(.danger):not(.as-button):hover { |
| 219 | + background: rgb(73 85 115 / 0.25); |
| 220 | + color: rgb(215 218 230); |
| 221 | + } |
| 222 | + |
| 223 | + /* 3) Inputs and selects dark with grey default (placeholder) text */ |
| 224 | + input:not([type="checkbox"]), select { |
| 225 | + background: rgb(23 32 55); |
| 226 | + color: #c1c7d7; |
| 227 | + border-color: transparent; |
| 228 | + } |
| 229 | + |
| 230 | + input:not([type="checkbox"]):hover, select:hover { |
| 231 | + border-color: #26314c; |
| 232 | + } |
| 233 | + |
| 234 | + input:not([type="checkbox"]):focus-visible, select:focus-visible { |
| 235 | + border-color: #377dff; |
| 236 | + } |
| 237 | + |
124 | 238 | input::placeholder,
|
125 | 239 | textarea::placeholder {
|
126 | 240 | color: var(--muted);
|
127 | 241 | opacity: 1; /* ensure consistent grey */
|
128 | 242 | }
|
129 | 243 | }
|
130 | 244 |
|
131 |
| - /* Danger button colors mapped to semantic tokens (no layout change) */ |
132 |
| - button.danger{ |
133 |
| - background:#fef2f2; /* error-bg */ |
134 |
| - border-color:#fecaca; /* error-border */ |
135 |
| - color:var(--danger) |
| 245 | + /* Danger button colors for light mode */ |
| 246 | + @media (prefers-color-scheme: light) { |
| 247 | + button.danger{ |
| 248 | + background:#ffe1e1; /* error-bg */ |
| 249 | + border-color:#fecaca; /* error-border */ |
| 250 | + color:var(--danger) |
| 251 | + } |
| 252 | + } |
| 253 | + |
| 254 | + /* Save button styles for light mode (exclude help button) */ |
| 255 | + button:not(.danger):not(.as-button) { |
| 256 | + background: rgba(148, 163, 184, 0.1); /* transparent grey */ |
| 257 | + border-color: rgba(148, 163, 184, 0.3); |
| 258 | + color: var(--fg); |
136 | 259 | }
|
137 | 260 |
|
138 |
| - hr{border:none;border-top:1px solid #e2e8f0;margin:10px 0} |
| 261 | + hr{border:none;border-top:0.5px solid rgb(238, 239, 246);margin:10px 0} |
| 262 | + |
| 263 | + /* Dark mode section borders */ |
| 264 | + @media (prefers-color-scheme: dark) { |
| 265 | + hr { |
| 266 | + border-top-color: #26314c; |
| 267 | + } |
| 268 | + } |
139 | 269 |
|
140 | 270 | text{font-size:12px;fill:var(--fg);dominant-baseline:middle}
|
141 | 271 | .table-title{font-weight:600}
|
|
173 | 303 | font-weight: 600;
|
174 | 304 | }
|
175 | 305 |
|
176 |
| - .table-header-bg { /* fill set in SVG */ } |
| 306 | + /* .table-header-bg - fill set in SVG */ |
177 | 307 |
|
178 | 308 | /* --- help button alignment --- */
|
179 | 309 | .spacer { flex: 1; }
|
|
196 | 326 | border-color: #e2e8f0;
|
197 | 327 | }
|
198 | 328 | @media (prefers-color-scheme: dark) {
|
199 |
| - .as-button.ghost { background: #2b3654; } |
| 329 | + .as-button.ghost { |
| 330 | + background: rgb(45 56 85 / 0.25); |
| 331 | + border-color: rgb(57 69 99); |
| 332 | + color: rgb(187 193 209); |
| 333 | + } |
| 334 | + .as-button.ghost:hover { |
| 335 | + background: rgb(73 85 115 / 0.25); |
| 336 | + color: rgb(215 218 230); |
| 337 | + } |
200 | 338 | }
|
201 | 339 |
|
202 | 340 | /* --- Help Modal Styles --- */
|
|
0 commit comments