Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions apps/web/src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -1173,6 +1173,47 @@ select:disabled,
color: var(--primary);
}

/* Mission Control — pinned above the footer rail as its own row (DESIGN.md),
never a 7th button mixed into Routines/Files/Skills/Agents/Plugins/
Insights below. The border-bottom is what reads it as a separate band
rather than the first row of that rail. */
.shell-sidebar-mission-control {
flex-shrink: 0;
padding: 0.35rem;
border-bottom: 1px solid var(--border);
}
.shell-sidebar-mission-control-row {
display: flex;
align-items: center;
gap: 0.55rem;
width: 100%;
padding: 0.45rem 0.4rem;
border: 0;
border-radius: 0;
background: transparent;
color: var(--foreground);
font: inherit;
font-weight: 600;
cursor: pointer;
text-align: left;
}
.shell-sidebar-mission-control-row svg {
width: 1.05rem;
height: 1.05rem;
color: var(--muted-foreground);
}
.shell-sidebar-mission-control-row:hover,
.shell-sidebar-mission-control-row[data-active="true"] {
background: color-mix(in srgb, var(--foreground) 8%, transparent);
}
.shell-sidebar-mission-control-row[data-active="true"] {
box-shadow: inset 2px 0 0 0 var(--shell-accent);
}
.shell-sidebar-mission-control-row:focus-visible {
outline: 1px solid var(--foreground);
outline-offset: -1px;
}

/* Footer (reference shape): a Plugins row, then the account row that
anchors the pop-up menu. Both are full-width quiet rows; the account
row has no top margin of its own so the two never read as separate
Expand Down Expand Up @@ -3298,3 +3339,146 @@ tr.insights-row-clickable:hover {
font-size: 0.75rem;
color: var(--muted-foreground);
}

/* Mission Control (CL-6488/CL-6489) — stat strip, then a main column
(Needs you / In flight) beside a 320px rail (Jump back in / This week),
the same "stack under 1100px" rule DESIGN.md gives every right rail. */
.mission-control-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) 20rem;
grid-template-areas:
"stats stats"
"main rail";
gap: 1rem;
width: 100%;
}
.mission-control-layout > .mission-control-stats {
grid-area: stats;
}
.mission-control-layout > .mission-control-panel {
grid-area: main;
}
.mission-control-layout > .mission-control-panel + .mission-control-panel {
margin-top: 1rem;
}
.mission-control-layout > .mission-control-rail {
grid-area: rail;
display: flex;
flex-direction: column;
gap: 1rem;
min-width: 0;
}
@media (max-width: 1100px) {
.mission-control-layout {
grid-template-columns: 1fr;
grid-template-areas:
"stats"
"main"
"rail";
}
}
.mission-control-layout [data-slot="stat-grid-item"] {
border-radius: 0;
}

.mission-control-panel {
padding: 0.9rem 1rem;
border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
background: var(--card, var(--background));
min-width: 0;
}
.mission-control-panel-header {
display: flex;
align-items: baseline;
gap: 0.6rem;
margin-bottom: 0.6rem;
}
.mission-control-panel-header h2 {
margin: 0;
font-size: 0.85rem;
font-weight: 700;
}
.mission-control-hint {
font-size: 0.72rem;
color: var(--muted-foreground);
}
.mission-control-hint-link {
margin-left: auto;
font-size: 0.75rem;
font-weight: 700;
color: var(--primary);
}
.mission-control-empty-note {
margin: 0;
font-size: 0.8rem;
color: var(--muted-foreground);
}
.mission-control-cell-primary {
font-size: 0.85rem;
font-weight: 700;
}
.mission-control-cell-context {
font-size: 0.7rem;
color: var(--muted-foreground);
}
.mission-control-row-actions {
display: flex;
justify-content: flex-end;
gap: 0.4rem;
}
.mission-control-opt {
white-space: nowrap;
}
@media (max-width: 880px) {
.mission-control-opt {
display: none;
}
}

.mission-control-rows {
display: flex;
flex-direction: column;
border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
}
.mission-control-jump-row {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 0.6rem;
width: 100%;
padding: 0.55rem 0.7rem;
border: 0;
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 8%, transparent);
background: transparent;
color: var(--foreground);
font: inherit;
text-align: left;
cursor: pointer;
}
button.mission-control-jump-row:hover {
background: color-mix(in srgb, var(--primary) 8%, transparent);
}
.mission-control-rows > .mission-control-jump-row:last-child {
border-bottom: 0;
}
.mission-control-jump-row svg {
width: 1rem;
height: 1rem;
color: var(--muted-foreground);
flex-shrink: 0;
}
.mission-control-jump-body {
display: flex;
flex-direction: column;
min-width: 0;
}
.mission-control-jump-when {
font-size: 0.72rem;
color: var(--muted-foreground);
white-space: nowrap;
}
.mission-control-week-summary {
margin: 0;
font-size: 0.85rem;
font-weight: 600;
}
Loading
Loading