diff options
Diffstat (limited to 'renderer/src/styles/globals.css')
| -rw-r--r-- | renderer/src/styles/globals.css | 337 |
1 files changed, 318 insertions, 19 deletions
diff --git a/renderer/src/styles/globals.css b/renderer/src/styles/globals.css index 20275ae..c463432 100644 --- a/renderer/src/styles/globals.css +++ b/renderer/src/styles/globals.css | |||
| @@ -122,23 +122,6 @@ body { | |||
| 122 | background: var(--bg-tertiary); | 122 | background: var(--bg-tertiary); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | .session-rename-input { | ||
| 126 | padding: 5px 10px; | ||
| 127 | background: var(--bg-tertiary); | ||
| 128 | border: 1px solid var(--accent); | ||
| 129 | border-radius: 2px; | ||
| 130 | color: var(--text-primary); | ||
| 131 | font-size: 12px; | ||
| 132 | font-family: inherit; | ||
| 133 | min-width: 140px; | ||
| 134 | outline: none; | ||
| 135 | box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.2); | ||
| 136 | } | ||
| 137 | |||
| 138 | html[data-theme="light"] .session-rename-input { | ||
| 139 | box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2); | ||
| 140 | } | ||
| 141 | |||
| 142 | /* Theme toggle */ | 125 | /* Theme toggle */ |
| 143 | .theme-toggle { | 126 | .theme-toggle { |
| 144 | font-size: 11px; | 127 | font-size: 11px; |
| @@ -167,6 +150,17 @@ html[data-theme="light"] .session-rename-input { | |||
| 167 | border-radius: 2px; | 150 | border-radius: 2px; |
| 168 | background: var(--bg-tertiary); | 151 | background: var(--bg-tertiary); |
| 169 | color: var(--text-secondary); | 152 | color: var(--text-secondary); |
| 153 | border: none; | ||
| 154 | font-family: inherit; | ||
| 155 | } | ||
| 156 | |||
| 157 | /* Reachable phases rendered as <button> — add pointer + hover */ | ||
| 158 | button.phase-step { | ||
| 159 | cursor: pointer; | ||
| 160 | } | ||
| 161 | |||
| 162 | button.phase-step:hover { | ||
| 163 | filter: brightness(1.15); | ||
| 170 | } | 164 | } |
| 171 | 165 | ||
| 172 | .phase-step.active { | 166 | .phase-step.active { |
| @@ -179,6 +173,12 @@ html[data-theme="light"] .session-rename-input { | |||
| 179 | color: white; | 173 | color: white; |
| 180 | } | 174 | } |
| 181 | 175 | ||
| 176 | /* Viewing a historical artifact: outline on the viewed badge */ | ||
| 177 | .phase-step.viewing { | ||
| 178 | outline: 2px solid var(--accent); | ||
| 179 | outline-offset: -2px; | ||
| 180 | } | ||
| 181 | |||
| 182 | /* ── Branch Badge ────────────────────────────────────────────── */ | 182 | /* ── Branch Badge ────────────────────────────────────────────── */ |
| 183 | .branch-badge { | 183 | .branch-badge { |
| 184 | padding: 3px 10px; | 184 | padding: 3px 10px; |
| @@ -206,13 +206,277 @@ html[data-theme="light"] .session-rename-input { | |||
| 206 | color: white; | 206 | color: white; |
| 207 | } | 207 | } |
| 208 | 208 | ||
| 209 | /* ── Main Content ─────────────────────────────────────────────── */ | 209 | /* ── Main Layout (sidebar + content row) ─────────────────────── */ |
| 210 | .main-layout { | ||
| 211 | flex: 1; | ||
| 212 | display: flex; | ||
| 213 | overflow: hidden; | ||
| 214 | } | ||
| 215 | |||
| 216 | /* ── Main Content (document + chat row) ──────────────────────── */ | ||
| 210 | .main-content { | 217 | .main-content { |
| 211 | flex: 1; | 218 | flex: 1; |
| 212 | display: flex; | 219 | display: flex; |
| 213 | overflow: hidden; | 220 | overflow: hidden; |
| 214 | } | 221 | } |
| 215 | 222 | ||
| 223 | /* ── Sidebar ─────────────────────────────────────────────────── */ | ||
| 224 | .sidebar { | ||
| 225 | display: flex; | ||
| 226 | flex-direction: column; | ||
| 227 | background: var(--bg-secondary); | ||
| 228 | border-right: 1px solid var(--border); | ||
| 229 | flex-shrink: 0; | ||
| 230 | overflow: hidden; | ||
| 231 | min-width: 0; | ||
| 232 | } | ||
| 233 | |||
| 234 | .sidebar.collapsed { | ||
| 235 | width: 32px !important; | ||
| 236 | align-items: center; | ||
| 237 | padding-top: 8px; | ||
| 238 | } | ||
| 239 | |||
| 240 | .sidebar-header { | ||
| 241 | display: flex; | ||
| 242 | align-items: center; | ||
| 243 | justify-content: space-between; | ||
| 244 | padding: 8px 10px; | ||
| 245 | border-bottom: 1px solid var(--border); | ||
| 246 | flex-shrink: 0; | ||
| 247 | } | ||
| 248 | |||
| 249 | .sidebar-title { | ||
| 250 | font-size: 10px; | ||
| 251 | font-weight: 700; | ||
| 252 | letter-spacing: 0.12em; | ||
| 253 | text-transform: uppercase; | ||
| 254 | color: var(--text-secondary); | ||
| 255 | user-select: none; | ||
| 256 | } | ||
| 257 | |||
| 258 | .sidebar-header-actions { | ||
| 259 | display: flex; | ||
| 260 | gap: 4px; | ||
| 261 | } | ||
| 262 | |||
| 263 | .sidebar-action-btn, | ||
| 264 | .sidebar-collapse-btn { | ||
| 265 | background: transparent; | ||
| 266 | border: none; | ||
| 267 | color: var(--text-secondary); | ||
| 268 | cursor: pointer; | ||
| 269 | font-size: 13px; | ||
| 270 | font-family: inherit; | ||
| 271 | padding: 2px 5px; | ||
| 272 | border-radius: 2px; | ||
| 273 | line-height: 1; | ||
| 274 | transition: background 0.1s, color 0.1s; | ||
| 275 | } | ||
| 276 | |||
| 277 | .sidebar-action-btn:hover, | ||
| 278 | .sidebar-collapse-btn:hover { | ||
| 279 | background: var(--bg-tertiary); | ||
| 280 | color: var(--text-primary); | ||
| 281 | } | ||
| 282 | |||
| 283 | .sidebar-tree { | ||
| 284 | flex: 1; | ||
| 285 | overflow-y: auto; | ||
| 286 | padding: 4px 0; | ||
| 287 | } | ||
| 288 | |||
| 289 | /* ── Sidebar Resize Handle ───────────────────────────────────── */ | ||
| 290 | .sidebar-resize-handle { | ||
| 291 | width: 5px; | ||
| 292 | background: transparent; | ||
| 293 | cursor: col-resize; | ||
| 294 | flex-shrink: 0; | ||
| 295 | transition: background 0.15s; | ||
| 296 | } | ||
| 297 | |||
| 298 | .sidebar-resize-handle:hover { | ||
| 299 | background: var(--accent); | ||
| 300 | } | ||
| 301 | |||
| 302 | /* ── Project Items ───────────────────────────────────────────── */ | ||
| 303 | .project-item { | ||
| 304 | display: flex; | ||
| 305 | align-items: center; | ||
| 306 | justify-content: space-between; | ||
| 307 | padding: 5px 10px; | ||
| 308 | cursor: default; | ||
| 309 | user-select: none; | ||
| 310 | gap: 4px; | ||
| 311 | } | ||
| 312 | |||
| 313 | .project-item:hover { | ||
| 314 | background: var(--bg-tertiary); | ||
| 315 | } | ||
| 316 | |||
| 317 | .project-item.selected { | ||
| 318 | background: var(--bg-tertiary); | ||
| 319 | } | ||
| 320 | |||
| 321 | .project-name { | ||
| 322 | flex: 1; | ||
| 323 | font-size: 11px; | ||
| 324 | font-weight: 600; | ||
| 325 | letter-spacing: 0.04em; | ||
| 326 | text-transform: uppercase; | ||
| 327 | color: var(--text-primary); | ||
| 328 | cursor: pointer; | ||
| 329 | white-space: nowrap; | ||
| 330 | overflow: hidden; | ||
| 331 | text-overflow: ellipsis; | ||
| 332 | min-width: 0; | ||
| 333 | } | ||
| 334 | |||
| 335 | .project-item.selected .project-name { | ||
| 336 | color: var(--accent); | ||
| 337 | } | ||
| 338 | |||
| 339 | /* ── Session Items ───────────────────────────────────────────── */ | ||
| 340 | .session-item { | ||
| 341 | display: flex; | ||
| 342 | align-items: center; | ||
| 343 | padding: 4px 10px 4px 22px; | ||
| 344 | gap: 4px; | ||
| 345 | user-select: none; | ||
| 346 | } | ||
| 347 | |||
| 348 | .session-item:hover { | ||
| 349 | background: var(--bg-tertiary); | ||
| 350 | } | ||
| 351 | |||
| 352 | .session-item.selected { | ||
| 353 | background: var(--bg-tertiary); | ||
| 354 | border-left: 2px solid var(--accent); | ||
| 355 | padding-left: 20px; | ||
| 356 | } | ||
| 357 | |||
| 358 | .session-name { | ||
| 359 | flex: 1; | ||
| 360 | font-size: 12px; | ||
| 361 | color: var(--text-secondary); | ||
| 362 | cursor: pointer; | ||
| 363 | white-space: nowrap; | ||
| 364 | overflow: hidden; | ||
| 365 | text-overflow: ellipsis; | ||
| 366 | min-width: 0; | ||
| 367 | display: flex; | ||
| 368 | align-items: center; | ||
| 369 | gap: 5px; | ||
| 370 | } | ||
| 371 | |||
| 372 | .session-item.selected .session-name { | ||
| 373 | color: var(--text-primary); | ||
| 374 | } | ||
| 375 | |||
| 376 | /* ── Activity dot ────────────────────────────────────────────── */ | ||
| 377 | .session-activity-dot { | ||
| 378 | display: inline-block; | ||
| 379 | width: 6px; | ||
| 380 | height: 6px; | ||
| 381 | border-radius: 50%; | ||
| 382 | background: var(--accent); | ||
| 383 | flex-shrink: 0; | ||
| 384 | animation: activity-pulse 1.8s ease-in-out infinite; | ||
| 385 | } | ||
| 386 | |||
| 387 | @keyframes activity-pulse { | ||
| 388 | 0%, 100% { opacity: 0.4; } | ||
| 389 | 50% { opacity: 1; } | ||
| 390 | } | ||
| 391 | |||
| 392 | /* ── Shared item controls (shown on hover) ───────────────────── */ | ||
| 393 | .item-controls { | ||
| 394 | display: flex; | ||
| 395 | gap: 2px; | ||
| 396 | flex-shrink: 0; | ||
| 397 | opacity: 0; | ||
| 398 | transition: opacity 0.1s; | ||
| 399 | } | ||
| 400 | |||
| 401 | .project-item:hover .item-controls, | ||
| 402 | .session-item:hover .item-controls { | ||
| 403 | opacity: 1; | ||
| 404 | } | ||
| 405 | |||
| 406 | .session-item.selected .item-controls { | ||
| 407 | opacity: 1; | ||
| 408 | } | ||
| 409 | |||
| 410 | .item-btn { | ||
| 411 | background: transparent; | ||
| 412 | border: none; | ||
| 413 | color: var(--text-secondary); | ||
| 414 | cursor: pointer; | ||
| 415 | font-size: 11px; | ||
| 416 | font-family: inherit; | ||
| 417 | padding: 1px 4px; | ||
| 418 | border-radius: 2px; | ||
| 419 | line-height: 1.4; | ||
| 420 | transition: background 0.1s, color 0.1s; | ||
| 421 | } | ||
| 422 | |||
| 423 | .item-btn:hover { | ||
| 424 | background: var(--bg-primary); | ||
| 425 | color: var(--text-primary); | ||
| 426 | } | ||
| 427 | |||
| 428 | .item-btn-danger:hover { | ||
| 429 | background: var(--danger); | ||
| 430 | color: white; | ||
| 431 | } | ||
| 432 | |||
| 433 | /* ── Sidebar empty states ────────────────────────────────────── */ | ||
| 434 | .sidebar-empty { | ||
| 435 | font-size: 11px; | ||
| 436 | color: var(--text-secondary); | ||
| 437 | font-style: italic; | ||
| 438 | padding: 10px 12px; | ||
| 439 | text-align: center; | ||
| 440 | } | ||
| 441 | |||
| 442 | .session-empty { | ||
| 443 | padding: 4px 10px 4px 22px; | ||
| 444 | text-align: left; | ||
| 445 | } | ||
| 446 | |||
| 447 | /* ── Sidebar scrollbar ───────────────────────────────────────── */ | ||
| 448 | .sidebar-tree::-webkit-scrollbar { | ||
| 449 | width: 4px; | ||
| 450 | } | ||
| 451 | |||
| 452 | .sidebar-tree::-webkit-scrollbar-track { | ||
| 453 | background: transparent; | ||
| 454 | } | ||
| 455 | |||
| 456 | .sidebar-tree::-webkit-scrollbar-thumb { | ||
| 457 | background: var(--bg-tertiary); | ||
| 458 | border-radius: 2px; | ||
| 459 | } | ||
| 460 | |||
| 461 | /* ── Session rename input (in sidebar) ───────────────────────── */ | ||
| 462 | .session-rename-input { | ||
| 463 | flex: 1; | ||
| 464 | padding: 2px 6px; | ||
| 465 | background: var(--bg-tertiary); | ||
| 466 | border: 1px solid var(--accent); | ||
| 467 | border-radius: 2px; | ||
| 468 | color: var(--text-primary); | ||
| 469 | font-size: 12px; | ||
| 470 | font-family: inherit; | ||
| 471 | min-width: 0; | ||
| 472 | outline: none; | ||
| 473 | box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.2); | ||
| 474 | } | ||
| 475 | |||
| 476 | html[data-theme="light"] .session-rename-input { | ||
| 477 | box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2); | ||
| 478 | } | ||
| 479 | |||
| 216 | /* ── Document Pane ───────────────────────────────────────────── */ | 480 | /* ── Document Pane ───────────────────────────────────────────── */ |
| 217 | .document-pane { | 481 | .document-pane { |
| 218 | flex: 1; | 482 | flex: 1; |
| @@ -406,6 +670,11 @@ html[data-theme="light"] .session-rename-input { | |||
| 406 | text-transform: uppercase; | 670 | text-transform: uppercase; |
| 407 | } | 671 | } |
| 408 | 672 | ||
| 673 | .badge-readonly { | ||
| 674 | background: var(--bg-tertiary); | ||
| 675 | color: var(--text-secondary); | ||
| 676 | } | ||
| 677 | |||
| 409 | /* ── Chat Pane ───────────────────────────────────────────────── */ | 678 | /* ── Chat Pane ───────────────────────────────────────────────── */ |
| 410 | .chat-pane { | 679 | .chat-pane { |
| 411 | display: flex; | 680 | display: flex; |
| @@ -432,7 +701,8 @@ html[data-theme="light"] .session-rename-input { | |||
| 432 | /* ── Chat Header Strip ───────────────────────────────────────── */ | 701 | /* ── Chat Header Strip ───────────────────────────────────────── */ |
| 433 | .chat-header { | 702 | .chat-header { |
| 434 | display: flex; | 703 | display: flex; |
| 435 | justify-content: space-between; | 704 | justify-content: flex-start; |
| 705 | gap: 8px; | ||
| 436 | align-items: center; | 706 | align-items: center; |
| 437 | padding: 7px 12px; | 707 | padding: 7px 12px; |
| 438 | background: var(--bg-secondary); | 708 | background: var(--bg-secondary); |
| @@ -982,6 +1252,35 @@ html[data-theme="light"] .settings-textarea:focus { | |||
| 982 | border-color: var(--accent); | 1252 | border-color: var(--accent); |
| 983 | } | 1253 | } |
| 984 | 1254 | ||
| 1255 | /* ── Phase model override rows ───────────────────────────────── */ | ||
| 1256 | .settings-phase-model-list { | ||
| 1257 | display: flex; | ||
| 1258 | flex-direction: column; | ||
| 1259 | gap: 8px; | ||
| 1260 | margin-top: 8px; | ||
| 1261 | } | ||
| 1262 | |||
| 1263 | .settings-phase-model-row { | ||
| 1264 | display: grid; | ||
| 1265 | grid-template-columns: 80px 1fr auto; | ||
| 1266 | align-items: center; | ||
| 1267 | gap: 8px; | ||
| 1268 | } | ||
| 1269 | |||
| 1270 | .settings-phase-model-label { | ||
| 1271 | font-size: 12px; | ||
| 1272 | font-weight: 600; | ||
| 1273 | color: var(--text-secondary); | ||
| 1274 | text-transform: uppercase; | ||
| 1275 | letter-spacing: 0.05em; | ||
| 1276 | } | ||
| 1277 | |||
| 1278 | .settings-phase-model-actions { | ||
| 1279 | display: flex; | ||
| 1280 | align-items: center; | ||
| 1281 | gap: 6px; | ||
| 1282 | } | ||
| 1283 | |||
| 985 | /* ── Settings Actions Row ────────────────────────────────────── */ | 1284 | /* ── Settings Actions Row ────────────────────────────────────── */ |
| 986 | .settings-actions { | 1285 | .settings-actions { |
| 987 | display: flex; | 1286 | display: flex; |
