/* SPM's own rules, on Sol UI's tokens and its workspace (docs/workspace.md);
   everything shared is Sol UI's. */
:root { --q-core: #c44e27; --q-slate: #4c5b70; --q-steel: #7c8a9e; --q-mist: #aeb8c5; }
[data-theme='dark'] { --q-core: #ea7a57; --q-slate: #8796ad; --q-steel: #a9b5c6; --q-mist: #d3dae3; }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) { --q-core: #ea7a57; --q-slate: #8796ad; --q-steel: #a9b5c6; --q-mist: #d3dae3; } }
[data-theme='hc-light'] { --q-core: #000; --q-slate: #000; --q-steel: #000; --q-mist: #000; }
[data-theme='hc-dark'] { --q-core: #fff; --q-slate: #fff; --q-steel: #fff; --q-mist: #fff; }
.spm-mark { width: 1.5rem; height: 1.5rem; flex: none; }
.spm-mark .q-core { fill: var(--q-core); } .spm-mark .q-slate { fill: var(--q-slate); }
.spm-mark .q-steel { fill: var(--q-steel); } .spm-mark .q-mist { fill: var(--q-mist); }
.sol-bar sol-account form { display: contents; }
.sol-bar .sol-bar-search { margin-right: var(--sol-space-2); }
@media (max-width: 40rem) { .spm-anon-theme { display: none; } }

/* --- the page --- */
.spm-page { display: flex; flex-direction: column; gap: var(--sol-space-6); min-width: 0; }
.spm-pagehead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sol-space-3) var(--sol-space-5); }
.spm-pagehead > div:first-child { display: flex; flex-direction: column; gap: var(--sol-space-1); min-width: 0; flex: 1 1 24rem; }
.spm-pagehead h1 { margin: 0; font-size: var(--sol-text-2xl); line-height: var(--sol-leading-2xl); font-weight: var(--sol-weight-semibold); letter-spacing: -0.02em; }
.spm-pagehead p { margin: 0; max-width: var(--sol-width-read, 45rem); color: var(--sol-text-muted); }
.spm-section { display: flex; flex-direction: column; gap: var(--sol-space-3); min-width: 0; }
.spm-section > header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sol-space-3); }
.spm-section > header h2 { margin: 0; font-size: var(--sol-text-base); font-weight: var(--sol-weight-semibold); }
.spm-section > header a { font-size: var(--sol-text-sm); }
.spm-small { font-size: var(--sol-text-sm); }
.spm-narrow { max-width: 34rem; margin: clamp(1rem, 6vw, 4rem) auto 0; width: 100%; }
.spm-narrow.wide { max-width: 46rem; margin-top: var(--sol-space-4); display: flex; flex-direction: column; gap: var(--sol-space-5); }
.spm-device { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sol-space-4); padding: clamp(1.5rem, 4vw, 2.25rem); }
.spm-device h1 { margin: 0; font-size: var(--sol-text-2xl); font-weight: var(--sol-weight-semibold); letter-spacing: -0.02em; }
.spm-device p { margin: 0; }
.spm-code { margin: 0; padding: var(--sol-space-3) var(--sol-space-5); border-radius: var(--sol-radius-md); background: var(--sol-sunken);
	font-family: var(--sol-font-mono); font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-weight: 700; letter-spacing: 0.12em; }
.spm-code-input { font-family: var(--sol-font-mono); font-size: var(--sol-text-xl); letter-spacing: 0.12em; text-transform: uppercase; max-width: 16rem; }
.spm-secret { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sol-space-2); margin-top: var(--sol-space-2); }
.spm-secret code { padding: var(--sol-space-2) var(--sol-space-3); border-radius: var(--sol-radius-sm); background: var(--sol-layer-1); font-size: var(--sol-text-sm); overflow-wrap: anywhere; }

/* --- rows in a box: an icon, a title over a line of detail, what's at the end --- */
.spm-item { align-items: center; padding-block: var(--sol-space-3); }
.spm-item-main { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.spm-item-title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sol-space-2); color: var(--sol-text); font-weight: var(--sol-weight-semibold); overflow-wrap: anywhere; }
.spm-item-text { color: var(--sol-text-muted); font-size: var(--sol-text-sm); overflow-wrap: anywhere; }
.spm-item-end { flex: none; color: var(--sol-text-muted); font-size: var(--sol-text-sm); white-space: nowrap; }
a.spm-item:hover .spm-item-title, .spm-link-plain:hover { color: var(--sol-text-link); text-decoration: underline; }
.spm-link-plain { text-decoration: none; }
.spm-row-actions { display: flex; flex: none; gap: var(--sol-space-2); }
.spm-box-note { margin: 0; padding: var(--sol-space-3) var(--sol-space-4) 0; color: var(--sol-text-muted); font-size: var(--sol-text-md); }
.sol-box-body + .sol-box-row, .spm-box-note + .sol-box-row { border-top: 1px solid var(--sol-divider); }
.spm-danger { border-color: var(--sol-danger-border); }
@media (max-width: 40rem) { .spm-item-end { display: none; } .spm-filerow { flex-wrap: wrap; } .spm-filerow .spm-row-actions { width: 100%; justify-content: flex-end; } }

/* --- a side column of names (the dashboard's) --- */
.spm-dash { --sol-aside: 17rem; --sol-aside-end: 19rem; }
.spm-dash-side { display: flex; flex-direction: column; gap: var(--sol-space-6); min-width: 0; }
.spm-side-section { display: flex; flex-direction: column; gap: var(--sol-space-3); }
.spm-side-section > header { display: flex; align-items: center; justify-content: space-between; gap: var(--sol-space-2); }
.spm-side-section h2 { margin: 0; font-size: var(--sol-text-md); font-weight: var(--sol-weight-semibold); }
.spm-side-section p { margin: 0; font-size: var(--sol-text-md); }
.spm-mini { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0; list-style: none; }
.spm-mini a { display: flex; align-items: center; gap: var(--sol-space-3); min-height: 2rem; padding: var(--sol-space-1) var(--sol-space-2); margin-inline: calc(-1 * var(--sol-space-2));
	border-radius: var(--sol-radius-md); color: var(--sol-text); font-size: var(--sol-text-md); font-weight: var(--sol-weight-medium); text-decoration: none; }
.spm-mini a:hover { background: var(--sol-layer-hover); }
.spm-mini a:focus-visible { outline: 2px solid var(--sol-focus-ring); outline-offset: -2px; }
.spm-mini a > span:not(.sol-avatar, .sol-tile, .spm-mini-end) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spm-mini sol-icon { width: 0.875rem; height: 0.875rem; color: var(--sol-text-muted); flex: none; }
.spm-mini-end { margin-left: auto; font-size: var(--sol-text-xs); color: var(--sol-text-muted); }
.spm-mini li[hidden] { display: none; }

/* --- what happened --- */
.spm-feed > li { padding-bottom: var(--sol-space-5); }
.spm-feed .sol-timeline-head { font-size: var(--sol-text-md); }
.spm-feed .sol-timeline-head b { font-weight: var(--sol-weight-semibold); }
.spm-feed .sol-timeline-head sol-icon { width: 0.8rem; height: 0.8rem; color: var(--sol-text-muted); vertical-align: -1px; }
.spm-feed-commits { display: flex; flex-direction: column; gap: var(--sol-space-1); margin: var(--sol-space-2) 0 0; padding: var(--sol-space-3) var(--sol-space-4);
	border: 1px solid var(--sol-border); border-radius: var(--sol-radius-md); background: var(--sol-layer-1); list-style: none; font-size: var(--sol-text-sm); }
.spm-feed-commits li { display: flex; gap: var(--sol-space-3); min-width: 0; }
.spm-feed-commits a { flex: none; font-size: var(--sol-text-xs); }
.spm-feed-commits span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sol-aside .spm-feed .sol-timeline-head { font-size: var(--sol-text-sm); }

/* --- the front, signed out --- */
.spm-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--sol-space-8); align-items: center; padding: clamp(1.5rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.spm-hero-text { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sol-space-4); }
.spm-hero h1 { margin: 0; font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem); line-height: 1.05; letter-spacing: -0.035em; font-weight: var(--sol-weight-semibold); text-wrap: balance; }
.spm-lede { margin: 0; max-width: 38rem; color: var(--sol-text-muted); font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem); line-height: 1.55; }
.spm-hero-term { border: 1px solid var(--sol-border); border-radius: var(--sol-radius-lg); background: var(--sol-sunken); overflow: hidden; box-shadow: var(--sol-shadow-1); }
.spm-hero-term::before { content: ''; display: block; height: 2rem; border-bottom: 1px solid var(--sol-divider); background:
	radial-gradient(circle at 1rem 50%, var(--q-core) 0.3rem, transparent 0.32rem), radial-gradient(circle at 2rem 50%, var(--q-steel) 0.3rem, transparent 0.32rem),
	radial-gradient(circle at 3rem 50%, var(--q-mist) 0.3rem, transparent 0.32rem), var(--sol-layer-1); }
.spm-hero-term pre { margin: 0; padding: var(--sol-space-5); font-family: var(--sol-font-mono); font-size: var(--sol-text-sm); line-height: 1.75; overflow-x: auto; }
@media (max-width: 56rem) { .spm-hero { grid-template-columns: minmax(0, 1fr); } }
.spm-features li { align-items: flex-start; }
.spm-features li > span { color: var(--sol-text-muted); }
.spm-features b { color: var(--sol-text); }

/* --- a person --- */
.spm-person { --sol-aside: 16rem; }
.spm-profile { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sol-space-4); }
.spm-profile h1 { margin: 0; font-size: var(--sol-text-2xl); font-weight: var(--sol-weight-semibold); letter-spacing: -0.02em; overflow-wrap: anywhere; }
.spm-profile p { margin: 0; }
@media (max-width: 56rem) { .spm-profile { flex-direction: row; flex-wrap: wrap; align-items: center; } }

/* --- a repo --- */
.sol-band .sol-object-mark.sol-tile { --_s: 2rem; }
.spm-toolbar { gap: var(--sol-space-3); }
.spm-toolbar .sol-cluster { gap: var(--sol-space-2) var(--sol-space-4); align-items: center; }
.spm-count-link { display: inline-flex; align-items: center; gap: var(--sol-space-1); color: var(--sol-text-muted); font-size: var(--sol-text-sm); text-decoration: none; }
.spm-count-link b { color: var(--sol-text); font-weight: var(--sol-weight-semibold); }
.spm-count-link:hover, .spm-count-link:hover b { color: var(--sol-text-link); }
.spm-count-link sol-icon { width: 1rem; height: 1rem; }
.spm-find-open kbd { margin-left: var(--sol-space-2); padding: 0 var(--sol-space-2); border: 1px solid var(--sol-border); border-radius: var(--sol-radius-sm); color: var(--sol-text-muted); font: inherit; font-size: var(--sol-text-xs); line-height: 1.125rem; }
/* only when open: a display of its own would show it closed too */
.spm-clonepanel:popover-open { display: flex; flex-direction: column; gap: var(--sol-space-2); }
.spm-clonepanel { width: min(28rem, calc(100vw - 2rem)); max-width: none; }
.spm-clonepanel .sol-label { margin: var(--sol-space-2) 0 0; }
.spm-clonepanel .sol-label:first-child { margin-top: 0; }
.spm-clonepanel hr { width: 100%; margin: var(--sol-space-2) 0; border: 0; border-top: 1px solid var(--sol-divider); }
.spm-clonepanel p { margin: 0; }
.spm-downloads { display: flex; flex-wrap: wrap; gap: var(--sol-space-2); }
.spm-clone { display: flex; align-items: center; gap: var(--sol-space-2); min-width: 0; }
.spm-clone code { flex: 1; min-width: 0; padding: var(--sol-space-2) var(--sol-space-3); border: 1px solid var(--sol-border); border-radius: var(--sol-radius-md); background: var(--sol-field);
	font-size: var(--sol-text-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spm-cmd { display: flex; align-items: flex-start; gap: var(--sol-space-3); }
.spm-cmd pre { flex: 1; min-width: 0; margin: 0; padding: var(--sol-space-3) var(--sol-space-4); border-radius: var(--sol-radius-md); background: var(--sol-sunken); font-family: var(--sol-font-mono); font-size: var(--sol-text-sm); overflow-x: auto; }
.sol-aside .spm-cmd { flex-direction: column; align-items: stretch; gap: var(--sol-space-2); }
.sol-aside .spm-cmd pre { white-space: pre; font-size: var(--sol-text-xs); }
.sol-aside .spm-cmd .sol-button { align-self: flex-end; }
.spm-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sol-space-2); font-family: var(--sol-font-mono); font-size: var(--sol-text-md); }
.spm-crumbs a { color: var(--sol-text-link); text-decoration: none; }
.spm-crumbs a:hover { text-decoration: underline; }
.spm-crumbs a:last-child { color: var(--sol-text); font-weight: var(--sol-weight-semibold); }
.spm-crumbs span { color: var(--sol-text-muted); }
.spm-latest { font-size: var(--sol-text-md); flex-wrap: nowrap; }
.spm-latest b { flex: none; font-weight: var(--sol-weight-semibold); }
.spm-latest a { color: inherit; text-decoration: none; }
.spm-latest a:hover { color: var(--sol-text-link); text-decoration: underline; }
.spm-latest-subject { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--sol-text-muted) !important; }
.spm-latest > .sol-mono, .spm-latest > .sol-muted { flex: none; white-space: nowrap; }
.spm-history-link { display: inline-flex; align-items: center; gap: var(--sol-space-1); flex: none; margin-left: var(--sol-space-2); font-size: var(--sol-text-sm); }
.spm-history-link sol-icon { width: 1rem; height: 1rem; }
@media (max-width: 40rem) { .spm-latest > .sol-mono, .spm-latest-subject { display: none; } }
.spm-boxtab { display: inline-flex; align-items: center; gap: var(--sol-space-2); font-weight: var(--sol-weight-semibold); }
.spm-boxtab sol-icon { width: 1rem; height: 1rem; color: var(--sol-text-muted); }
.spm-readme-body { padding: var(--sol-space-6) clamp(1rem, 3vw, 2.5rem) var(--sol-space-7); max-width: none; }
.spm-readme-body > * { max-width: 56rem; }
.spm-start h2 { margin: 0; }
.spm-langbar { display: block; width: 100%; height: 0.5rem; border-radius: var(--sol-radius-full); }
.spm-langbar .t-blue { fill: var(--sol-tone-blue-text); } .spm-langbar .t-green { fill: var(--sol-tone-green-text); }
.spm-langbar .t-purple { fill: var(--sol-tone-purple-text); } .spm-langbar .t-amber { fill: var(--sol-tone-amber-text); }
.spm-langbar .t-teal { fill: var(--sol-tone-teal-text); } .spm-langbar .t-pink { fill: var(--sol-tone-pink-text); }
.spm-langbar .t-other { fill: var(--sol-text-muted); }
[data-theme^='hc'] .spm-langbar rect { fill: var(--sol-text); }
.spm-form { max-width: 44rem; }
.spm-prefix { display: flex; align-items: stretch; }
.spm-prefix > span { display: inline-flex; align-items: center; padding: 0 var(--sol-space-3); border: 1px solid var(--sol-border); border-right: 0;
	border-radius: var(--sol-radius-md) 0 0 var(--sol-radius-md); background: var(--sol-sunken); color: var(--sol-text-muted); white-space: nowrap; }
.spm-prefix .sol-input { border-top-left-radius: 0; border-bottom-left-radius: 0; min-width: 0; flex: 1; }
.spm-add { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--sol-space-3); }
.spm-add .sol-input { flex: 1; min-width: 12rem; }
.spm-pages { display: flex; justify-content: center; gap: var(--sol-space-3); }

/* the commits, a day at a time */
.spm-day { display: flex; flex-direction: column; gap: var(--sol-space-3); }
.spm-day-head { display: flex; align-items: center; gap: var(--sol-space-2); margin: 0; color: var(--sol-text-muted); font-size: var(--sol-text-md); font-weight: var(--sol-weight-medium); }
.spm-day-head sol-icon { width: 1rem; height: 1rem; }

/* a commit, and its changes */
.spm-commit h2 { margin: 0; font-size: var(--sol-text-xl); font-weight: var(--sol-weight-semibold); overflow-wrap: anywhere; }
.spm-commit .sol-box-head { border-top: 1px solid var(--sol-divider); border-bottom: 0; }
.spm-commit-meta { font-size: var(--sol-text-sm); }
.spm-commit-meta .sol-mono { overflow-wrap: anywhere; }
.spm-diffsum { margin: 0; color: var(--sol-text-muted); }
.spm-diffsum b { color: var(--sol-text); }
.spm-diff-head { font-size: var(--sol-text-sm); }
.spm-diff-name { min-width: 0; overflow-wrap: anywhere; }
.spm-adds { color: var(--sol-success-subtle-text); font-weight: var(--sol-weight-semibold); }
.spm-dels { color: var(--sol-danger-subtle-text); font-weight: var(--sol-weight-semibold); }
.spm-diff-note { margin: 0; padding: var(--sol-space-3) var(--sol-space-5); font-size: var(--sol-text-sm); }
.spm-plain { margin: 0; padding: var(--sol-space-4) var(--sol-space-5); font-family: var(--sol-font-mono); font-size: var(--sol-text-sm); white-space: pre-wrap; overflow-wrap: anywhere; }
.spm-commit .spm-plain { padding: 0; border: 0; background: none; color: var(--sol-text-muted); }
.spm-readme table, .spm-md table { border-collapse: collapse; margin: var(--sol-space-4) 0; }
.spm-readme :is(th, td), .spm-md :is(th, td) { padding: var(--sol-space-2) var(--sol-space-4); border: 1px solid var(--sol-divider); text-align: left; }
.spm-readme th, .spm-md th { background: var(--sol-sunken); }
.spm-md { padding: var(--sol-space-6) clamp(1rem, 3vw, 2.5rem); max-width: none; }

/* code, in lines */
.spm-file-head { font-size: var(--sol-text-md); }
.spm-src { overflow-x: auto; font-family: var(--sol-font-mono); font-size: var(--sol-text-sm); line-height: 1.6; }
.spm-src:focus-visible { outline: 2px solid var(--sol-focus-ring); outline-offset: -2px; }
.spm-src table { border-collapse: collapse; min-width: 100%; }
.spm-src td { padding: 0; vertical-align: top; }
.spm-src .spm-ln { width: 1%; padding: 0 var(--sol-space-3); color: var(--sol-text-muted); text-align: right; white-space: nowrap; user-select: none; }
.spm-ln a { color: inherit; text-decoration: none; }
.spm-ln a:hover { color: var(--sol-text); }
.spm-src .spm-lc { padding: 0 var(--sol-space-5) 0 var(--sol-space-3); white-space: pre; tab-size: 4; }
.spm-src tr:target { background: var(--sol-warning-subtle); }
.spm-src tr:first-child td { padding-top: var(--sol-space-3); }
.spm-src tr:last-child td { padding-bottom: var(--sol-space-3); }
.spm-d-add { background: var(--sol-success-subtle); }
.spm-d-del { background: var(--sol-danger-subtle); }
.spm-d-add td { color: var(--sol-success-subtle-text); }
.spm-d-del td { color: var(--sol-danger-subtle-text); }
.spm-d-hunk { background: var(--sol-sunken); color: var(--sol-text-muted); }
.spm-diff .spm-src tr:first-child td { padding-top: var(--sol-space-1); }
.spm-src .spm-d-hunk td { padding-block: var(--sol-space-1); }
.spm-sign { display: inline-block; width: 1.5ch; }
.spm-src .spm-d-hunk .spm-lc { padding-left: calc(var(--sol-space-3) + 1.5ch); }
/* code, coloured (highlight.go): Sol UI's tone colours, measured for every theme */
:is(.spm-hl, .chroma) :is(.k, .kc, .kd, .kn, .kp, .kr, .ow) { color: var(--sol-tone-purple-text); }
:is(.spm-hl, .chroma) :is(.kt, .nb, .bp) { color: var(--sol-tone-teal-text); }
:is(.spm-hl, .chroma) :is(.s, .s1, .s2, .sa, .sb, .sc, .dl, .sd, .se, .sh, .si, .sx, .sr, .ss) { color: var(--sol-tone-green-text); }
:is(.spm-hl, .chroma) :is(.m, .mb, .mf, .mh, .mi, .il, .mo, .no, .na) { color: var(--sol-tone-amber-text); }
:is(.spm-hl, .chroma) :is(.nf, .fm, .nc, .nn, .ne, .nd) { color: var(--sol-tone-blue-text); }
:is(.spm-hl, .chroma) :is(.nt, .nl) { color: var(--sol-tone-pink-text); }
:is(.spm-hl, .chroma) :is(.c, .ch, .cm, .c1, .cs, .cp, .cpf) { color: var(--sol-text-muted); font-style: italic; }
:is(.spm-hl, .chroma) :is(.err, .gd) { color: var(--sol-danger-subtle-text); }
:is(.spm-hl, .chroma) :is(.gi) { color: var(--sol-success-subtle-text); }
:is(.spm-hl, .chroma) :is(.gh, .gu, .gs) { font-weight: var(--sol-weight-semibold); }
:is(.spm-hl, .chroma) :is(.ge) { font-style: italic; }
.spm-src .spm-d-add .spm-lc, .spm-src .spm-d-del .spm-lc { color: var(--sol-text); }

/* --- files --- */
.spm-drop { display: flex; flex-direction: column; align-items: center; gap: var(--sol-space-3); padding: var(--sol-space-6) var(--sol-space-4); text-align: center;
	border: 2px dashed var(--sol-border); border-radius: var(--sol-radius-lg); transition: border-color var(--sol-duration-fast) var(--sol-ease), background var(--sol-duration-fast) var(--sol-ease); }
.spm-drop.is-over { border-color: var(--sol-accent); background: var(--sol-accent-subtle); }
.spm-drop > sol-icon { width: 1.75rem; height: 1.75rem; color: var(--sol-text-muted); }
.spm-drop p { margin: 0; max-width: 34rem; }
.spm-pick { color: var(--sol-text-link); text-decoration: underline; cursor: pointer; }
.spm-drop:focus-within { outline: 2px solid var(--sol-focus-ring); outline-offset: 2px; }
.spm-queue { display: flex; flex-direction: column; gap: var(--sol-space-3); margin: 0; padding: 0; list-style: none; }
.spm-qitem { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--sol-space-1) var(--sol-space-3); padding: var(--sol-space-3) var(--sol-space-4);
	border-radius: var(--sol-radius-md); background: var(--sol-sunken); }
.spm-qitem:has(.spm-qtarget) { grid-template-columns: 1fr auto auto; }
.spm-qtarget select { min-width: 9.5rem; }
.spm-qname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--sol-weight-medium); }
.spm-qitem .sol-progress, .spm-qmeta { grid-column: 1 / -1; }
.spm-qmeta { font-size: var(--sol-text-sm); }
.spm-qitem.is-done .sol-progress { color: var(--sol-success-solid); }
.spm-qitem.is-done .sol-progress::-webkit-progress-value { background: var(--sol-success-solid); }
.spm-qitem.is-done .sol-progress::-moz-progress-bar { background: var(--sol-success-solid); }
.spm-qitem.is-failed .spm-qmeta { color: var(--sol-danger-subtle-text); }
.spm-usage { display: flex; flex-direction: column; gap: var(--sol-space-2); }
.spm-usage-head { display: flex; justify-content: space-between; gap: var(--sol-space-3); font-size: var(--sol-text-sm); }
.spm-usage-head .sol-label { margin: 0; }
.spm-usage p { margin: 0; }
.spm-filerow { align-items: flex-start; }
.spm-filename { overflow-wrap: anywhere; text-decoration: none; }
.spm-link { display: flex; align-items: center; gap: var(--sol-space-2); margin-top: var(--sol-space-1); min-width: 0; }
.spm-link code { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--sol-text-xs); color: var(--sol-text-muted); }

/* --- packages --- */
.spm-search { max-width: none; }
.spm-stats p { margin: 0; color: var(--sol-text-muted); font-size: var(--sol-text-sm); }
.spm-bars { display: block; width: 100%; height: 2rem; color: var(--sol-accent); }
.spm-bars rect { fill: currentColor; }
.spm-bars rect.none { fill: var(--sol-divider); }
.spm-sample { margin: 0; padding: var(--sol-space-3) var(--sol-space-4); border-radius: var(--sol-radius-md); background: var(--sol-sunken);
	font-family: var(--sol-font-mono); font-size: var(--sol-text-xs); line-height: 1.6; overflow-x: auto; }
.sol-box > .spm-sample { margin: var(--sol-space-4); }
.spm-big { font-size: var(--sol-text-sm); }
.spm-filelist { grid-template-columns: minmax(0, 1fr) 0 auto; }
.spm-filelist .sol-listing-note { padding: 0; }

/* --- Max's --- */
.spm-totals { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr)); gap: var(--sol-space-4); }
.spm-totals .sol-box-body { display: flex; flex-direction: column; gap: var(--sol-space-1); }
.spm-totals .sol-label { margin: 0; }
.spm-totals b { font-size: var(--sol-text-2xl); font-weight: var(--sol-weight-semibold); letter-spacing: -0.02em; }
.spm-people td { vertical-align: middle; }
.spm-quota { display: flex; align-items: center; gap: var(--sol-space-2); }
.spm-quota .sol-input { width: 6.5rem; height: var(--sol-control-sm); padding-block: 0; }

/* --- not here, and nothing yet, inside a repo or a package --- */
.spm-missing .sol-box-body { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sol-space-4) var(--sol-space-5); padding: var(--sol-space-7) var(--sol-space-6); }
.spm-missing .sol-box-body > div:not(.sol-cluster) { flex: 1 1 20rem; min-width: 0; }
.spm-missing h2 { margin: 0 0 var(--sol-space-1); font-size: var(--sol-text-lg); font-weight: var(--sol-weight-semibold); }
.spm-missing p { margin: 0; }

/* --- Go to file --- */
.spm-finder { width: min(40rem, calc(100vw - 2rem)); margin-top: 12vh; padding: 0; }
.spm-finder input { width: 100%; height: 3rem; padding: 0 var(--sol-space-5); border: 0; border-bottom: 1px solid var(--sol-divider); background: transparent; color: var(--sol-text); font: inherit; font-size: var(--sol-text-base); }
.spm-finder input:focus { outline: none; }
.spm-finder ul { max-height: min(60vh, 28rem); margin: 0; padding: var(--sol-space-2); overflow-y: auto; list-style: none; }
.spm-finder a { display: flex; align-items: center; gap: var(--sol-space-3); padding: var(--sol-space-2) var(--sol-space-3); border-radius: var(--sol-radius-md); color: var(--sol-text); font-family: var(--sol-font-mono); font-size: var(--sol-text-sm); text-decoration: none; overflow-wrap: anywhere; }
.spm-finder a[aria-selected='true'], .spm-finder a:hover { background: var(--sol-layer-hover); }
.spm-finder a sol-icon { width: 1rem; height: 1rem; color: var(--sol-text-muted); flex: none; }
.spm-finder mark { background: none; color: var(--sol-text-link); font-weight: var(--sol-weight-semibold); }
.spm-finder p { margin: 0; padding: var(--sol-space-5); color: var(--sol-text-muted); }

/* --- the foot --- */
.spm-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sol-space-3) var(--sol-space-5); width: min(var(--sol-bar-width, 100rem), 100% - 2 * var(--sol-gutter, 1.5rem));
	margin: var(--sol-space-10) auto 0; padding: var(--sol-space-6) 0 var(--sol-space-8); border-top: 1px solid var(--sol-divider); font-size: var(--sol-text-sm); }
.spm-foot-brand { display: inline-flex; align-items: center; gap: var(--sol-space-2); color: var(--sol-text-muted); }
.spm-foot-brand .spm-mark { width: 1.125rem; height: 1.125rem; }
.spm-foot a { color: var(--sol-text-muted); text-decoration: none; }
.spm-foot a:hover { color: var(--sol-text); text-decoration: underline; }
@media (max-width: 40rem) { .spm-foot { padding-bottom: calc(var(--sol-space-8) + 4rem); } }
