Files
searchgit/web/style.css
T
claude BotandClaude Opus 5.5 02b51fed77 Scheduled searches with a weekly review of new and rising repositories
A search can now be saved with a schedule (every N hours, daily, or weekly at
a given day and time). An internal scheduler runs it and keeps a snapshot of
the results on a /data volume (JSON files, no new dependency). The new Watch
tab lists the scheduled searches; the review page of each one shows, for any
run of its history, the repositories never seen before and the ones that
gained the most stars since the previous run.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 16:36:50 +02:00

503 lines
23 KiB
CSS

/* Look and feel taken from Logstream: same tokens, top bar, filters, list and settings dialog. */
/* ---------- Theme: everything goes through these variables ---------- */
:root {
--bg: #f6f7f9;
--panel: #ffffff;
--panel-2: #f0f2f5;
--border: #e2e5ea;
--text: #1a1d23;
--muted: #6b7280;
--accent: #6366f1;
--accent-soft: rgba(99, 102, 241, .12);
--row-hover: #f5f6fa;
--shadow: 0 10px 30px rgba(15, 23, 42, .12);
--star: #d97706;
--ok: #0d9488;
--err: #dc2626;
--warn: #d97706;
--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;
--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--radius: 10px;
--row-pad: 12px; /* Settings > Interface > Density */
color-scheme: light;
}
:root[data-theme="dark"] {
--bg: #0f1115;
--panel: #161a20;
--panel-2: #1d222a;
--border: #2a3039;
--text: #e6e8ec;
--muted: #8b93a1;
--accent: #818cf8;
--accent-soft: rgba(129, 140, 248, .16);
--row-hover: #1a1f26;
--shadow: 0 10px 30px rgba(0, 0, 0, .5);
--star: #fbbf24;
--ok: #2dd4bf;
--err: #f87171;
--warn: #fbbf24;
color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg: #0f1115;
--panel: #161a20;
--panel-2: #1d222a;
--border: #2a3039;
--text: #e6e8ec;
--muted: #8b93a1;
--accent: #818cf8;
--accent-soft: rgba(129, 140, 248, .16);
--row-hover: #1a1f26;
--shadow: 0 10px 30px rgba(0, 0, 0, .5);
--star: #fbbf24;
--ok: #2dd4bf;
--err: #f87171;
--warn: #fbbf24;
color-scheme: dark;
}
}
:root[data-density="compact"] { --row-pad: 7px; }
/* ---------- Base ---------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
font: 14px/1.45 var(--sans);
padding-bottom: 44px;
}
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; }
svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.muted { color: var(--muted); }
.small { font-size: 12.5px; }
[hidden] { display: none !important; }
/* ---------- Top bar ---------- */
.topbar {
position: sticky; top: 0; z-index: 20;
display: flex; align-items: center; gap: 16px;
padding: 10px 20px;
background: color-mix(in srgb, var(--panel) 88%, transparent);
backdrop-filter: saturate(160%) blur(10px);
-webkit-backdrop-filter: saturate(160%) blur(10px);
border-bottom: 1px solid var(--border);
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 650; font-size: 16px; letter-spacing: -.01em; }
.brand svg { width: 26px; height: 26px; }
.brand svg rect { fill: var(--accent); stroke: none; }
.brand svg circle, .brand svg path { stroke: #fff; stroke-width: 3; }
.search {
flex: 1; max-width: 720px; margin: 0;
display: flex; align-items: center; gap: 8px;
padding: 0 5px 0 12px; height: 38px;
background: var(--panel-2);
border: 1px solid transparent;
border-radius: var(--radius);
transition: border-color .15s, box-shadow .15s;
}
.search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.search .ico { width: 17px; height: 17px; color: var(--muted); flex: none; }
.search input {
flex: 1; min-width: 0; height: 100%;
border: 0; outline: 0; background: transparent;
font-family: var(--mono); font-size: 13px;
}
.search input::-webkit-search-cancel-button { cursor: pointer; }
.chip-select {
flex: none; height: 28px; padding: 0 24px 0 9px;
border: 1px solid var(--border); border-radius: 7px;
background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 6px center / 12px;
appearance: none; -webkit-appearance: none;
font-size: 12px; font-weight: 600; color: var(--muted);
}
.chip-select.set { color: var(--accent); border-color: var(--accent); background-color: var(--accent-soft); }
.actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.icon-btn {
width: 36px; height: 36px; display: grid; place-items: center;
border: 1px solid transparent; background: transparent; border-radius: 9px; color: var(--muted);
}
.icon-btn:hover { background: var(--panel-2); color: var(--text); }
.icon-btn svg { width: 19px; height: 19px; }
/* Sun or moon depending on the effective theme */
#themeBtn .moon { display: none; }
:root[data-theme="dark"] #themeBtn .sun { display: none; }
:root[data-theme="dark"] #themeBtn .moon { display: block; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) #themeBtn .sun { display: none; }
:root:not([data-theme="light"]) #themeBtn .moon { display: block; }
}
.btn {
display: inline-flex; align-items: center; gap: 7px;
height: 34px; padding: 0 12px;
border: 1px solid var(--border); border-radius: 9px;
background: var(--panel); font-weight: 550; font-size: 13px; text-decoration: none;
}
.btn:hover { background: var(--panel-2); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.tool { height: 32px; padding: 0 10px; }
.btn.tool svg { width: 16px; height: 16px; }
.link-btn { border: 0; background: none; padding: 0; font-size: 12.5px; font-weight: 550; color: var(--accent); white-space: nowrap; }
.link-btn:hover { text-decoration: underline; }
.progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; overflow: hidden; }
body.busy .progress::after {
content: ""; position: absolute; inset: 0; width: 30%;
background: var(--accent);
animation: slide 1s ease-in-out infinite;
}
@keyframes slide { from { transform: translateX(-100%); } to { transform: translateX(400%); } }
/* ---------- Filters ---------- */
.filters {
display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
padding: 12px 20px 10px;
}
.filters select, .filter-input {
height: 32px; border: 1px solid var(--border); border-radius: 8px;
background-color: var(--panel); font-size: 13px;
}
.filters select {
padding: 0 28px 0 10px; max-width: 220px;
background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center / 14px;
appearance: none; -webkit-appearance: none;
}
.filter-input { width: 9.5rem; padding: 0 10px; font-family: var(--mono); font-size: 12.5px; outline: 0; }
.filter-input:focus, .filters select:focus { outline: 0; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.filters select.set, .filter-input.set { border-color: var(--accent); background-color: var(--accent-soft); }
.toggles { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.toggle {
height: 32px; padding: 0 11px; border: 1px solid var(--border); border-radius: 8px;
background: var(--panel); font-size: 12.5px; font-weight: 600; color: var(--muted); white-space: nowrap;
}
.toggle:hover { color: var(--text); }
.toggle[aria-pressed="true"] { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.filters .end { display: flex; align-items: center; gap: 8px; margin-left: auto; }
#count { font-size: 12.5px; font-variant-numeric: tabular-nums; }
/* ---------- Result list ---------- */
.list { margin: 4px 20px 0; background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.list:empty { display: none; }
.row {
display: grid;
grid-template-columns: 36px minmax(0, 1fr) auto;
grid-template-areas: "av main meta" "av details details";
gap: 0 14px; align-items: start;
padding: var(--row-pad) 16px var(--row-pad) 14px;
border-bottom: 1px solid var(--border);
cursor: pointer;
}
.row:last-child { border-bottom: 0; }
.row:hover { background: var(--row-hover); }
.row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.row.open { background: var(--row-hover); }
.row .av { grid-area: av; width: 36px; height: 36px; border-radius: 8px; background: var(--panel-2); margin-top: 2px; }
:root[data-density="compact"] .row .av { width: 28px; height: 28px; }
.row .main { grid-area: main; min-width: 0; }
.row .name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.row .name a { font-weight: 650; text-decoration: none; overflow-wrap: anywhere; }
.row .name a .owner { font-weight: 450; color: var(--muted); }
.row .name a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.row .desc { margin: 2px 0 0; color: var(--text); opacity: .85; overflow-wrap: anywhere; }
:root[data-density="compact"] .row .desc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.badge {
font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
padding: 1px 6px; border-radius: 5px; color: var(--muted); border: 1px solid var(--border);
}
.badge.archived { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, var(--border)); }
.topics { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
:root[data-density="compact"] .topics { display: none; }
.topic {
height: 22px; padding: 0 8px; border: 0; border-radius: 999px;
background: var(--accent-soft); color: var(--accent); font-size: 11.5px; font-weight: 600;
}
.topic:hover { filter: brightness(1.15); text-decoration: underline; }
.meta {
grid-area: meta;
display: grid; grid-template-columns: 7.5rem 4.5rem 4rem 6.5rem; gap: 12px;
align-items: center; padding-top: 2px;
font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.meta > span { display: inline-flex; align-items: center; gap: 5px; overflow: hidden; text-overflow: ellipsis; }
.meta svg { width: 14px; height: 14px; flex: none; }
.meta .stars { color: var(--text); font-weight: 600; }
.meta .stars svg { color: var(--star); fill: var(--star); }
.lang-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; background: var(--c, var(--muted)); }
.meta .lang[data-act]:hover { color: var(--accent); }
/* Repository details */
.details {
grid-area: details;
margin: 10px 0 2px; padding: 10px 12px;
background: var(--panel-2); border-radius: 8px; cursor: auto; font-size: 12.5px;
}
.details dl { display: grid; grid-template-columns: max-content 1fr; gap: 3px 16px; margin: 0; }
.details dt { color: var(--muted); }
.details dd { margin: 0; word-break: break-all; font-family: var(--mono); }
.details .acts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.details .acts .btn { height: 28px; font-size: 12px; }
.more { display: flex; justify-content: center; padding: 14px 20px 4px; }
/* ---------- States ---------- */
.empty { text-align: center; padding: 60px 20px; }
.empty svg { width: 40px; height: 40px; color: var(--muted); opacity: .6; }
.empty p { margin: 6px 0; }
.error-banner {
margin: 4px 20px 8px; padding: 10px 14px;
border: 1px solid color-mix(in srgb, var(--err) 40%, transparent);
background: color-mix(in srgb, var(--err) 10%, transparent);
color: var(--err); border-radius: var(--radius);
font-family: var(--mono); font-size: 12.5px; white-space: pre-wrap;
}
.status {
position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
display: flex; gap: 16px; align-items: center;
padding: 6px 20px; font-size: 12px;
background: var(--panel); border-top: 1px solid var(--border);
font-variant-numeric: tabular-nums;
}
.conn { white-space: nowrap; }
.conn::before { content: "●"; margin-right: 6px; color: var(--muted); }
.conn.ok::before { color: var(--ok); }
.conn.warn::before { color: var(--warn); }
.conn.ko::before { color: var(--err); }
.gh-query {
min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
font-family: var(--mono); font-size: 11.5px; color: var(--muted); text-decoration: none;
}
.gh-query:hover { color: var(--accent); text-decoration: underline; }
.toast {
position: fixed; bottom: 48px; left: 50%; transform: translateX(-50%); z-index: 50;
background: var(--text); color: var(--bg);
padding: 8px 14px; border-radius: 8px; font-size: 13px; box-shadow: var(--shadow);
}
/* ---------- Settings dialog ---------- */
dialog {
width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 64px);
padding: 0; border: 1px solid var(--border); border-radius: 14px;
background: var(--panel); color: var(--text); box-shadow: var(--shadow);
}
dialog::backdrop { background: rgba(10, 12, 16, .45); backdrop-filter: blur(2px); }
dialog.settings {
width: min(820px, calc(100vw - 32px));
height: min(560px, calc(100vh - 64px)); max-height: none;
}
.dlg { display: flex; flex-direction: column; height: 100%; }
.dlg > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 22px; border-bottom: 1px solid var(--border); }
.dlg h2 { margin: 0; font-size: 17px; }
.set-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 200px minmax(0, 1fr); }
.set-nav {
display: flex; flex-direction: column; gap: 2px;
padding: 12px 10px; border-right: 1px solid var(--border);
background: color-mix(in srgb, var(--panel-2) 50%, transparent);
}
.set-nav button {
display: flex; align-items: center; gap: 10px;
height: 38px; padding: 0 12px; border: 0; border-radius: 9px;
background: transparent; color: var(--muted); font-weight: 560; font-size: 13.5px; text-align: left;
white-space: nowrap;
}
.set-nav button:hover { background: var(--panel-2); color: var(--text); }
.set-nav button[aria-selected="true"] { background: var(--accent-soft); color: var(--accent); }
.set-nav svg { width: 18px; height: 18px; flex: none; }
.set-panels { overflow-y: auto; padding: 2px 24px 22px; }
.set-panel > .set-section:first-child { margin-top: 16px; }
.set-section { margin-top: 18px; }
.set-section + .set-section { padding-top: 16px; border-top: 1px solid var(--border); }
.set-section h3 { margin: 0 0 8px; font-size: 13px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.set-section p { margin: 0; }
.hint { margin-top: 8px !important; }
.lbl { font-size: 13px; font-weight: 550; }
.field-grid { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 14px; align-items: center; justify-items: start; }
.state-line { font-size: 13px; margin: 0 0 8px !important; }
.state-line.good::before, .state-line.bad::before, .state-line.warn::before { content: "●"; margin-right: 6px; }
.state-line.good::before { color: var(--ok); }
.state-line.warn::before { color: var(--warn); }
.state-line.bad { color: var(--err); }
.syntax { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 12.5px; }
.syntax code {
font: 12px var(--mono); padding: 2px 7px; border-radius: 5px;
background: var(--panel-2); border: 1px solid var(--border); margin-right: 6px;
}
.seg { display: inline-flex; padding: 3px; gap: 3px; background: var(--panel-2); border: 1px solid var(--border); border-radius: 10px; }
.seg button {
border: 0; background: transparent; border-radius: 7px;
height: 30px; padding: 0 14px; font-size: 13px; font-weight: 600; color: var(--muted);
}
.seg button:hover { color: var(--text); }
.seg button[aria-checked="true"] { background: var(--panel); color: var(--accent); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
/* ---------- Views (search / scheduled searches) ---------- */
.views { display: inline-flex; gap: 2px; padding: 3px; background: var(--panel-2); border-radius: 10px; flex: none; }
.views a {
display: inline-flex; align-items: center; gap: 6px;
height: 30px; padding: 0 12px; border-radius: 7px;
color: var(--muted); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.views a:hover { color: var(--text); }
.views a[aria-current="page"] { background: var(--panel); color: var(--accent); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.views svg { width: 16px; height: 16px; }
.pill {
min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
background: var(--accent); color: #fff; font-size: 11px; font-weight: 700;
display: inline-grid; place-items: center; font-variant-numeric: tabular-nums;
}
body:not([data-view="search"]) .view-search { visibility: hidden; }
body:not([data-view="search"]) .gh-query { display: none; }
.view-title { margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -.01em; overflow-wrap: anywhere; }
.review-head { flex-wrap: nowrap; }
.review-title { min-width: 0; }
.review-head .end { flex-wrap: wrap; justify-content: flex-end; }
.review-bar { padding-top: 0; }
#runSel { max-width: 260px; }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover { filter: brightness(1.08); background: var(--accent); }
.btn.danger { color: var(--err); }
.btn.danger:hover { background: color-mix(in srgb, var(--err) 10%, transparent); }
/* Saved search rows */
.srow {
display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px 18px; align-items: center;
padding: var(--row-pad) 12px var(--row-pad) 16px; border-bottom: 1px solid var(--border); cursor: pointer;
}
.srow:last-child { border-bottom: 0; }
.srow:hover { background: var(--row-hover); }
.srow:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.srow.off { opacity: .6; }
.srow .sname { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-weight: 650; }
.srow .sq { margin-top: 2px; font: 12px var(--mono); color: var(--muted); overflow-wrap: anywhere; }
.srow .ssched { margin-top: 4px; font-size: 12.5px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 2px 14px; }
.srow .ssched span { display: inline-flex; align-items: center; gap: 5px; }
.srow .ssched svg { width: 14px; height: 14px; }
.srow .sstats { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.srow .sacts { display: flex; gap: 2px; }
.srow .sacts .icon-btn { width: 32px; height: 32px; }
.srow .sacts .icon-btn svg { width: 17px; height: 17px; }
.stat {
display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 8px; border-radius: 999px;
font-size: 12px; font-weight: 650; background: var(--panel-2); color: var(--muted); white-space: nowrap;
font-variant-numeric: tabular-nums;
}
.stat.new { background: var(--accent-soft); color: var(--accent); }
.stat.up { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok); }
.stat.err { background: color-mix(in srgb, var(--err) 12%, transparent); color: var(--err); }
.stat svg { width: 12px; height: 12px; }
.spin { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
/* Review annotations */
.badge.new { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); background: var(--accent-soft); }
.meta .delta { color: var(--ok); font-weight: 650; }
.meta .delta.down { color: var(--err); }
.row.is-new { box-shadow: inset 3px 0 0 var(--accent); }
.review .meta { grid-template-columns: 4.5rem 7.5rem 4.5rem 4rem 6.5rem; }
/* Save dialog */
dialog.save-dlg { width: min(560px, calc(100vw - 32px)); }
.save-body {
display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 12px 16px; align-items: center;
padding: 18px 22px 4px;
}
.text-input {
height: 34px; padding: 0 10px; border: 1px solid var(--border); border-radius: 8px;
background: var(--panel); font-size: 13px; outline: 0; min-width: 0;
}
.text-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
#svName { width: 100%; }
#svHours { width: 5.5rem; }
.sched-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hours-wrap { display: inline-flex; align-items: center; gap: 8px; }
.query-box {
display: block; padding: 7px 10px; border-radius: 8px; background: var(--panel-2); border: 1px solid var(--border);
font: 12px/1.5 var(--mono); color: var(--muted); overflow-wrap: anywhere;
}
.check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.check input { width: 16px; height: 16px; accent-color: var(--accent); }
.save-hint { margin: 10px 22px 0; }
.save-hint:empty { display: none; }
.dlg-foot { display: flex; align-items: center; gap: 8px; padding: 16px 22px 18px; }
.grow { flex: 1; }
/* ---------- Medium screens: the meta columns go under the description ---------- */
@media (max-width: 1100px) {
.srow { grid-template-columns: minmax(0, 1fr) auto; }
.srow .sstats { grid-column: 1; justify-content: flex-start; }
.srow .sacts { grid-row: 1 / span 2; grid-column: 2; }
.row { grid-template-columns: 36px minmax(0, 1fr); grid-template-areas: "av main" "av meta" "av details"; }
.meta { display: flex; flex-wrap: wrap; gap: 4px 16px; padding-top: 6px; }
}
/* ---------- Mobile ---------- */
@media (max-width: 760px) {
body { font-size: 13.5px; }
.topbar { flex-wrap: wrap; padding: 8px 16px; gap: 8px 10px; }
.search { order: 3; flex-basis: 100%; max-width: none; }
.filters { padding: 10px 16px 8px; }
.filters select, .filter-input { flex: 1 1 calc(50% - 8px); max-width: none; min-width: 0; width: auto; }
.toggles { flex: 1 1 100%; }
.toggle { flex: 1; padding: 0 6px; }
.filters .end { flex: 1 1 100%; margin-left: 0; }
#count { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.filters .end select { flex: 0 1 auto; }
.list, .error-banner { margin-left: 16px; margin-right: 16px; }
.row { grid-template-columns: 28px minmax(0, 1fr); gap: 0 10px; padding-left: 12px; padding-right: 12px; }
.row .av { width: 28px; height: 28px; }
.details dl { grid-template-columns: 1fr; }
.details dt { margin-top: 4px; }
.status { padding: 6px 16px; }
.gh-query { display: none; }
dialog.settings { height: calc(100vh - 24px); width: calc(100vw - 16px); }
.views { order: 2; margin-left: auto; }
.views a { padding: 0 9px; }
.views a span:not(.pill) { display: none; }
.actions { order: 2; margin-left: 0; }
body:not([data-view="search"]) .view-search { display: none; }
.review-head { flex-wrap: wrap; }
.review-title { flex: 1; }
.review-head .end { flex: 1 1 100%; justify-content: flex-start; }
.review-head .end .lbl { display: none; }
#runSel { flex: 1 1 auto; max-width: none; }
.review-bar .seg { flex: 1 1 100%; }
.review-bar .seg button { flex: 1; padding: 0 6px; font-size: 12px; }
.srow { padding-left: 12px; padding-right: 8px; }
.save-body { grid-template-columns: 1fr; gap: 6px; padding: 14px 16px 4px; }
.save-body .lbl { margin-top: 6px; }
.save-hint { margin: 10px 16px 0; }
.dlg-foot { padding: 14px 16px 16px; }
.set-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
.set-nav {
display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 6px;
border-right: 0; border-bottom: 1px solid var(--border);
}
.set-nav button {
flex-direction: column; justify-content: center; height: auto; padding: 6px 2px; gap: 3px;
font-size: 11.5px; text-align: center;
}
.set-panels { padding: 0 16px 18px; }
.field-grid { grid-template-columns: 1fr; gap: 6px; }
}