ouroboros/web/reviewer_slots.css
Ouroboros 227b99b4f3 ui: establish a coherent shared design system
Centralize shared UI primitives and repair cross-surface chat, form, and interaction presentation while preserving existing task and Project behavior.
2026-09-09 20:24:35 +03:00

74 lines
3.2 KiB
CSS

/* Shared Review-lanes layout for Settings and the setup wizard. */
.reviewer-slots-group { display: flex; flex-direction: column; gap: var(--space-2); }
.reviewer-slots-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-2);
}
.reviewer-slots-heading {
margin: 0;
font-size: var(--type-body);
line-height: var(--line-title);
font-weight: 600;
color: var(--text-primary);
}
.reviewer-slot-rows { display: flex; flex-direction: column; gap: var(--space-2); }
.reviewer-slot-row {
border: 1px solid var(--divider);
border-radius: 8px;
padding: 10px 12px;
}
.reviewer-slot-route-identity {
margin-bottom: var(--space-1);
color: var(--text-primary);
font-size: var(--type-meta);
line-height: var(--line-meta);
}
.reviewer-slot-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
/* Field chrome comes from ui.css .ui-control;
only the row's sizing is local. Proportions follow the content (owner
feedback): the route select stays compact — its widest dropdown OPTION must
not set the closed width; the free-text model id (long provider/model ids)
takes the flexible room; effort stays compact; Remove docks right. */
.reviewer-slot-controls select,
.reviewer-slot-controls input { min-width: 140px; max-width: 100%; width: auto; flex: 0 1 auto; }
.reviewer-slot-controls select[data-slot-route],
.reviewer-slot-controls select[data-advisory-route] { max-width: 240px; }
.reviewer-slot-controls [data-slot-remove] { margin-left: auto; }
/* The base .local-toggle carries padding-bottom:8px for form layouts; inside a
center-aligned control row that padding shoves the checkbox off-axis. The
row's generic input sizing above also hits the toggle's CHECKBOX (an input),
stretching an empty 140px box between the glyph and its label. */
.reviewer-slot-controls .local-toggle { padding-bottom: 0; }
.reviewer-slot-controls .local-toggle input[type="checkbox"] {
min-width: 0;
width: 14px;
padding: 0;
}
.reviewer-slot-meta {
font-size: var(--type-meta);
line-height: var(--line-meta);
color: var(--text-meta);
margin-top: 6px;
}
/* Source / Model / Account stays one compact row at desktop widths, including
raw subscription models; the same proportions apply to every review category. */
.reviewer-slot-controls select:is([data-slot-route], [data-advisory-route], [data-deep-review-route]) {
flex: 0 1 210px; max-width: 240px;
}
.reviewer-slot-controls input:is([data-slot-custom-api], [data-advisory-api-model], [data-deep-review-api-model]),
.reviewer-slot-controls select:is([data-slot-model], [data-advisory-model], [data-deep-review-model]),
.reviewer-slot-controls > .ui-model-chooser {
flex: 1 1 180px; min-width: min(160px, 100%); max-width: 100%;
}
.reviewer-slot-controls .ui-model-chooser .ui-control { width: 100%; min-width: 0; }
.reviewer-slot-controls select:is([data-slot-profile], [data-advisory-profile], [data-deep-review-profile]) {
flex: 0 1 170px; min-width: 110px;
}
.reviewer-slot-controls select:is([data-slot-effort], [data-advisory-effort], [data-deep-review-effort]) {
flex: 0 1 110px; min-width: 100px;
}
.reviewer-slot-row[data-invalid] { border-color: var(--status-error-border); }