| 8d2caf12 Andy McCall ↶ |
1 |
|
| d23464c0 Andy McCall ↶ |
2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
@font-face { font-family: "Barlow"; font-weight: 300; font-display: swap; src: url(/static/fonts/Barlow-300.woff2) format("woff2"); } |
| 7 |
@font-face { font-family: "Barlow"; font-weight: 400; font-display: swap; src: url(/static/fonts/Barlow-400.woff2) format("woff2"); } |
| 8 |
@font-face { font-family: "Barlow"; font-weight: 500; font-display: swap; src: url(/static/fonts/Barlow-500.woff2) format("woff2"); } |
| 9 |
@font-face { font-family: "Barlow"; font-weight: 600; font-display: swap; src: url(/static/fonts/Barlow-600.woff2) format("woff2"); } |
| 10 |
@font-face { font-family: "Press Start 2P"; font-weight: 400; font-display: swap; src: url(/static/fonts/PressStart2P-400.woff2) format("woff2"); } |
| 11 |
|
| 12 |
:root { |
| 5c6eb1fe Andy McCall ↶ |
13 |
|
| 14 |
--bg:#070c18; --panel:#0e1526; --soft:#141d33; --ink:#e6ecf7; --mute:#8592ad; --line:#1f2b47; --dim:#43506d; |
| c40c2d3e Andy McCall ↶ |
15 |
--acc:#00e0f0; --acc-2:#0072ff; --band:#0b3f9e; --band-ink:#ffffff; --band-acc:#00f0ff; --band-line:rgba(7,12,24,.5); --now:#00f0ff; --now-ink:#070c18; |
| 42a0ba4b Andy McCall ↶ |
16 |
--ok:#5fe3a1; --bad:#ff5e7a; --warn:#b48cff; |
| 5c6eb1fe Andy McCall ↶ |
17 |
--add:#0d3a3a; --del:#3f1a2e; --add-ink:#8ff0d8; --del-ink:#ffa5b8; |
| 18 |
--m1:#00f0ff; --m2:#d6dcea; --m3:#5aa8ff; --m4:#0072ff; --m5:#8592ad; |
| d23464c0 Andy McCall ↶ |
19 |
|
| 756fe44a Andy McCall ↶ |
20 |
--sy-kw:#7fb4ff; --sy-str:#8ff0d8; --sy-num:#9fd3ff; --sy-cmt:#7a86a4; --sy-fn:#00e0f0; --sy-ty:#c6a0ff; --sy-var:#e6ecf7; --sy-const:#b48cff; |
| 17ca6cdd Andy McCall ↶ |
21 |
|
| 22 |
--bd-mark:rgba(0,224,240,.12); --bd-lit:rgba(0,240,255,.85); --bd-link:rgba(0,240,255,.35); |
| d23464c0 Andy McCall ↶ |
23 |
color-scheme: dark; |
| 24 |
} |
| 25 |
:root[data-theme="light"] { |
| 756fe44a Andy McCall ↶ |
26 |
--bg:#f4f7fc; --panel:#ffffff; --soft:#e9eef8; --ink:#1b2333; --mute:#5f6a81; --line:#d6dded; --dim:#b3bccf; |
| 27 |
--acc:#0064e0; --acc-2:#00b8d4; --band:#0b3f9e; --band-ink:#ffffff; --band-acc:#9ff3ff; --band-line:rgba(255,255,255,.25); --now:#0064e0; --now-ink:#ffffff; |
| 28 |
--ok:#1a7850; --bad:#c62d47; --warn:#6b3fd1; |
| 5c6eb1fe Andy McCall ↶ |
29 |
--add:#e1f5ee; --del:#fbe3e8; --add-ink:#176b48; --del-ink:#a1243c; |
| 30 |
--m1:#0090a8; --m2:#7a8290; --m3:#2f6fcf; --m4:#0055c0; --m5:#8a8f9c; |
| 756fe44a Andy McCall ↶ |
31 |
--sy-kw:#0b4fc9; --sy-str:#1a7850; --sy-num:#1e63b8; --sy-cmt:#606b81; --sy-fn:#007394; --sy-ty:#7a3fd1; --sy-var:#1b2333; --sy-const:#6b3fd1; |
| 17ca6cdd Andy McCall ↶ |
32 |
--bd-mark:rgba(95,106,129,.18); --bd-lit:rgba(0,100,224,.7); --bd-link:rgba(0,100,224,.25); |
| d23464c0 Andy McCall ↶ |
33 |
color-scheme: light; |
| 34 |
} |
| 35 |
|
| 36 |
* { box-sizing: border-box; } |
| e9bfea8e Andy McCall ↶ |
37 |
|
| 38 |
html { background: var(--bg); scrollbar-gutter: stable; } |
| d23464c0 Andy McCall ↶ |
39 |
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--bg); color: var(--ink); font: 15px/1.45 "Barlow", "IBM Plex Sans", system-ui, sans-serif; } |
| 40 |
a { color: var(--acc); text-decoration: none; } |
| 41 |
a:hover { text-decoration: underline; } |
| 42 |
code, pre, kbd, .mono { font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; } |
| 43 |
.px { font-family: "Press Start 2P", "Silkscreen", monospace; font-size: 13px; } |
| 44 |
.pxs { font-family: "Press Start 2P", "Silkscreen", monospace; font-size: 11px; } |
| 45 |
h1, h2, h3 { margin: 0; } |
| 46 |
h2 { font-size: 16px; font-weight: 600; margin: 0 0 8px; } |
| 47 |
h3 { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--mute); margin: 14px 0 6px; } |
| 48 |
p { margin: 0 0 10px; } |
| 49 |
.small { font-size: 12px; } |
| 50 |
.mute { color: var(--mute); } |
| 756fe44a Andy McCall ↶ |
51 |
.dim { color: var(--mute); } |
| d23464c0 Andy McCall ↶ |
52 |
.center { text-align: center; } |
| 53 |
.right { text-align: right; } |
| 54 |
.empty { color: var(--mute); padding: 22px; text-align: center; border: 1px dashed var(--line); } |
| 55 |
.lead { font-size: 16px; } |
| 56 |
kbd { background: var(--soft); border: 1px solid var(--line); padding: 1px 5px; font-size: 11px; } |
| 57 |
|
| 58 |
|
| 59 |
header { background: var(--panel); border-bottom: 1px solid var(--line); padding: 14px 22px; display: flex; align-items: center; gap: 16px; } |
| 5c6eb1fe Andy McCall ↶ |
60 |
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); } |
| 61 |
.brand svg { height: 22px; width: auto; } |
| 62 |
.brand em { font-style: normal; color: var(--acc); } |
| 63 |
.brand:hover { text-decoration: none; } |
| 19bb31ff Andy McCall ↶ |
64 |
header nav { margin-left: auto; display: flex; gap: 8px; align-items: center; } |
| 65 |
header nav .me { color: var(--ink); font-weight: 600; padding: 0 6px; } |
| c40c2d3e Andy McCall ↶ |
66 |
header nav .theme-toggle { background: none; border: 1px solid var(--line); color: var(--ink); font-size: 15px; line-height: 1; padding: 4px 7px; cursor: pointer; } |
| 67 |
header nav .theme-toggle:hover { border-color: var(--acc); } |
| 68 |
fieldset.choices { border: 0; padding: 0; margin: 0 0 10px; display: flex; gap: 18px; flex-wrap: wrap; } |
| 69 |
fieldset.choices legend { padding: 0; margin-bottom: 6px; } |
| 70 |
form.card label.choice, label.choice { display: inline-flex; gap: 6px; align-items: center; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); margin: 0; } |
| 19bb31ff Andy McCall ↶ |
71 |
form.inline { display: inline; margin: 0; } |
| c40c2d3e Andy McCall ↶ |
72 |
.band a.admin { color: var(--band-acc); } |
| d23464c0 Andy McCall ↶ |
73 |
form.find { margin: 0; flex: 0 1 320px; } |
| 74 |
form.find input { width: 100%; background: var(--bg); border: 1px solid var(--line); color: var(--ink); padding: 6px 10px; font: inherit; } |
| 75 |
form.find input:focus { outline: 2px solid var(--band); outline-offset: 0; } |
| 76 |
.band { background: var(--band); display: flex; align-items: stretch; padding: 0 22px; } |
| 77 |
.band a { color: var(--band-ink); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; padding: 9px 14px; border-right: 1px solid var(--band-line); } |
| 78 |
.band a:first-child { border-left: 1px solid var(--band-line); } |
| 5c6eb1fe Andy McCall ↶ |
79 |
.band a.on { box-shadow: inset 0 -3px 0 var(--acc); background: rgba(0,0,0,.18); } |
| d23464c0 Andy McCall ↶ |
80 |
.band a:hover { text-decoration: none; background: rgba(0,0,0,.12); } |
| 81 |
.band .grow { flex: 1; } |
| 82 |
.band a.dim { opacity: .6; border: 0; } |
| 83 |
.tabs { background: var(--panel); border-bottom: 1px solid var(--line); } |
| e9bfea8e Andy McCall ↶ |
84 |
|
| 85 |
|
| 86 |
|
| 87 |
.tabs-in { width: fit-content; min-width: min(1180px, 100%); max-width: 100%; box-sizing: border-box; margin: 0 auto; padding: 0 22px; display: flex; align-items: center; gap: 2px; flex-wrap: wrap; } |
| 88 |
.tabs .crumb { white-space: nowrap; } |
| d23464c0 Andy McCall ↶ |
89 |
.tabs .crumb { margin-right: 18px; padding: 10px 0; font-size: 16px; } |
| 90 |
.tabs a:not(.crumb a) { padding: 10px 12px; color: var(--ink); font-size: 13px; } |
| 91 |
.tabs a.on { border-bottom: 2px solid var(--acc); font-weight: 600; } |
| 92 |
.tabs a:hover { text-decoration: none; background: var(--soft); } |
| 16ee5d19 Andy McCall ↶ |
93 |
|
| 94 |
|
| 95 |
|
| 96 |
.tab-menu { position: relative; } |
| 97 |
.tab-menu > summary { list-style: none; cursor: pointer; padding: 10px 12px; color: var(--ink); font-size: 13px; } |
| 98 |
.tab-menu > summary::-webkit-details-marker { display: none; } |
| 99 |
.tab-menu > summary::after { content: " \25BE"; color: var(--mute); } |
| 100 |
.tab-menu > summary.on { border-bottom: 2px solid var(--acc); font-weight: 600; } |
| 101 |
.tab-menu > summary:hover { background: var(--soft); } |
| 102 |
.tab-menu-list { position: absolute; top: 100%; left: 0; z-index: 30; min-width: 190px; display: flex; flex-direction: column; padding: 4px 0; background: var(--panel); border: 1px solid var(--line); box-shadow: 0 6px 18px rgba(0,0,0,.18); } |
| 103 |
.tabs .tab-menu-list a { padding: 8px 14px; white-space: nowrap; } |
| 104 |
.tabs .tab-menu-list a[aria-current] { font-weight: 600; box-shadow: inset 2px 0 0 var(--acc); } |
| d23464c0 Andy McCall ↶ |
105 |
main { flex: 1; width: 100%; max-width: 1180px; margin: 0 auto; padding: 14px 22px 28px; } |
| 106 |
main.wide { max-width: none; } |
| 107 |
footer { background: var(--panel); border-top: 1px solid var(--line); margin-top: 28px; } |
| 108 |
.foot { max-width: 1180px; margin: 0 auto; padding: 22px; display: grid; grid-template-columns: 1fr auto; gap: 22px; } |
| 109 |
.foot .cols { display: flex; gap: 32px; } |
| 110 |
.foot .cols a { display: block; font-size: 13px; } |
| 5c6eb1fe Andy McCall ↶ |
111 |
.head { border-bottom: 2px solid var(--band); border-image: linear-gradient(90deg, var(--acc), var(--acc-2)) 1; margin: 6px 0 16px; padding-bottom: 6px; } |
| d23464c0 Andy McCall ↶ |
112 |
.head h1 { font-size: 30px; font-weight: 300; color: var(--mute); } |
| 113 |
.head h1 small { display: block; font-size: 13px; color: var(--acc); font-weight: 400; } |
| 114 |
.strip { padding: 8px 12px; margin: 0 0 12px; border: 1px solid; font-size: 13px; } |
| 115 |
.strip.warn { border-color: var(--warn); color: var(--warn); background: color-mix(in srgb, var(--warn) 10%, transparent); } |
| 116 |
.strip.bad { border-color: var(--bad); color: var(--bad); background: color-mix(in srgb, var(--bad) 10%, transparent); } |
| 117 |
.strip a { color: inherit; text-decoration: underline; } |
| 118 |
.sheet { position: fixed; right: 22px; bottom: 22px; background: var(--panel); border: 1px solid var(--line); padding: 14px 18px; box-shadow: 0 2px 12px rgba(0,0,0,.35); } |
| 119 |
.sheet td { padding: 2px 8px 2px 0; font-size: 13px; } |
| 120 |
|
| 121 |
|
| 6ad368c5 Andy McCall ↶ |
122 |
button, a.go, button.go, summary.go { font: inherit; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; background: var(--panel); color: var(--acc); border: 1px solid var(--acc); padding: 5px 10px; cursor: pointer; } |
| 5c6eb1fe Andy McCall ↶ |
123 |
button:hover, a.go:hover { background: var(--acc); color: var(--now-ink); text-decoration: none; } |
| d23464c0 Andy McCall ↶ |
124 |
button.small, a.go.small { padding: 2px 8px; font-size: 11px; } |
| a549ddd5 Andy McCall ↶ |
125 |
a.go { display: inline-block; line-height: normal; } |
| 126 |
|
| 127 |
|
| 78763257 Andy McCall ↶ |
128 |
form .actions { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; margin: 12px 0 0; } |
| 129 |
form .actions > *, form.card .actions > button[type=submit] { margin: 0; } |
| 130 |
form .actions > a.go { display: inline-flex; align-items: center; } |
| 131 |
|
| 132 |
form.card.drop-form { max-width: none; } |
| a549ddd5 Andy McCall ↶ |
133 |
|
| 134 |
|
| 135 |
.head.with-action { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; } |
| 136 |
.head.with-action h1 { margin: 0; } |
| d23464c0 Andy McCall ↶ |
137 |
.tag { display: inline-block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--acc); background: var(--soft); padding: 1px 6px; vertical-align: middle; } |
| 138 |
.tag.bad { color: var(--bad); } |
| 139 |
.tag.warn { color: var(--warn); } |
| 8597fb5c Andy McCall ↶ |
140 |
.tag.ok { color: var(--ok); } |
| 0b20f1ec Andy McCall ↶ |
141 |
.warn-text { color: var(--warn); } |
| d23464c0 Andy McCall ↶ |
142 |
.tag.head { color: var(--now-ink); background: var(--now); } |
| 143 |
.chip { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; background: var(--soft); padding: 1px 6px; border: 1px solid var(--line); } |
| 144 |
.lbl { display: inline-block; font-size: 11px; padding: 1px 7px; margin-right: 4px; border: 1px solid; vertical-align: middle; } |
| 145 |
.lbl-bm { color: var(--band-ink); background: var(--band); border-color: var(--band); } |
| 146 |
.lbl-tag { color: var(--acc); border-color: var(--acc); } |
| 147 |
.sig { display: inline-block; width: 1.2em; text-align: center; font-weight: 600; } |
| 148 |
.sig-valid { color: var(--ok); } |
| 756fe44a Andy McCall ↶ |
149 |
.sig-unsigned { color: var(--mute); } |
| d23464c0 Andy McCall ↶ |
150 |
.sig-invalid { color: var(--bad); } |
| 151 |
.sig-revoked { color: var(--warn); } |
| 152 |
|
| 153 |
|
| 154 |
ul.plain { list-style: none; margin: 0; padding: 0; } |
| 155 |
ul.plain li { padding: 2px 0; } |
| 156 |
ul.rows { list-style: none; margin: 0; padding: 0; } |
| 157 |
ul.rows li { display: flex; justify-content: space-between; align-items: center; gap: 14px; background: var(--panel); border: 1px solid var(--line); padding: 12px 14px; margin-bottom: 6px; } |
| 158 |
ul.rows .name { font-size: 16px; } |
| 159 |
ul.rows p { margin: 4px 0 0; color: var(--mute); } |
| 160 |
.table { border: 1px solid var(--line); overflow-x: auto; } |
| 161 |
table { border-collapse: collapse; width: 100%; } |
| 162 |
th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--mute); padding: 8px 10px; border-bottom: 1px solid var(--line); background: var(--soft); } |
| 163 |
td { padding: 7px 10px; background: var(--panel); border-bottom: 1px solid var(--line); vertical-align: top; } |
| 164 |
td.px { color: var(--acc); } |
| 165 |
.panel { background: var(--panel); border: 1px solid var(--line); padding: 14px 16px; margin-bottom: 14px; } |
| 166 |
dl.facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; background: var(--panel); border: 1px solid var(--line); padding: 12px 16px; margin: 0 0 14px; } |
| 167 |
dl.facts dt { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--mute); padding-top: 3px; } |
| 168 |
dl.facts dd { margin: 0; } |
| 169 |
code.full { word-break: break-all; } |
| 170 |
pre.msg { background: var(--panel); border: 1px solid var(--line); padding: 10px 12px; white-space: pre-wrap; font-family: inherit; font-size: 14px; } |
| 171 |
pre.marked { background: var(--panel); border: 1px solid var(--bad); padding: 10px 12px; overflow-x: auto; } |
| 172 |
|
| 173 |
|
| 26d0d091 Andy McCall ↶ |
174 |
.side-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 22px; } |
| 61ecbd29 Andy McCall ↶ |
175 |
.side-layout.rev { grid-template-columns: minmax(0, 1fr) 380px; } |
| 9198231c Andy McCall ↶ |
176 |
|
| 177 |
|
| 178 |
|
| 179 |
.side-layout.conversation { max-width: 1240px; } |
| 180 |
.side-layout.conversation > div > article.doc, |
| 181 |
.side-layout.conversation > div > form.card, |
| 182 |
.side-layout.conversation > div > .comment { max-width: none; box-sizing: border-box; } |
| d23464c0 Andy McCall ↶ |
183 |
.side h3:first-child { margin-top: 0; } |
| 25ab8c73 Andy McCall ↶ |
184 |
.dash h2 { font-size: 15px; margin: 18px 0 8px; } |
| 185 |
.dash h2:first-child { margin-top: 0; } |
| 186 |
.dash .side .bar { justify-content: space-between; } |
| 187 |
.dash .side .bar h3 { margin: 0; } |
| 188 |
ul.feed { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); background: var(--panel); } |
| 189 |
ul.feed li { padding: 8px 14px; border-top: 1px solid var(--line); } |
| 190 |
ul.feed li:first-child { border-top: 0; } |
| 191 |
ul.feed .who { font-weight: 600; } |
| d23464c0 Andy McCall ↶ |
192 |
.clone { display: flex; gap: 6px; align-items: center; } |
| 193 |
.clone code { background: var(--bg); border: 1px solid var(--line); padding: 4px 8px; flex: 1; overflow-x: auto; white-space: nowrap; } |
| 4edcf240 Andy McCall ↶ |
194 |
.quickstart { background: var(--panel); border: 1px solid var(--line); padding: 16px 20px; } |
| 195 |
.quickstart h2 { margin-top: 0; } |
| 196 |
.quickstart h3 { font-size: 14px; margin: 18px 0 6px; } |
| 197 |
.cmds { display: flex; gap: 6px; align-items: flex-start; } |
| 198 |
.cmds pre { flex: 1; margin: 0; background: var(--bg); border: 1px solid var(--line); padding: 8px 10px; overflow-x: auto; } |
| d23464c0 Andy McCall ↶ |
199 |
.bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; } |
| 200 |
.ref { color: var(--acc); } |
| 201 |
.crumbs a { color: var(--ink); } |
| 1656dc14 Andy McCall ↶ |
202 |
|
| 203 |
|
| 204 |
|
| 205 |
table.tree { width: 100%; table-layout: fixed; } |
| 206 |
table.tree col.c-g { width: 44px; } |
| 207 |
table.tree col.c-name { width: 30%; } |
| 208 |
table.tree col.c-age { width: 8.5em; } |
| d23464c0 Andy McCall ↶ |
209 |
table.tree td { padding: 6px 10px; } |
| 1656dc14 Andy McCall ↶ |
210 |
table.tree td.g { color: var(--acc); text-align: center; } |
| 211 |
table.tree td.name, table.tree td.last { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 212 |
table.tree td.last { color: var(--mute); } |
| d23464c0 Andy McCall ↶ |
213 |
table.tree td.last a { color: var(--mute); } |
| 1656dc14 Andy McCall ↶ |
214 |
table.tree td.age { text-align: right; white-space: nowrap; } |
| d23464c0 Andy McCall ↶ |
215 |
article.doc { max-width: 60rem; background: var(--panel); border: 1px solid var(--line); padding: 18px 24px; margin-top: 14px; } |
| 216 |
article.doc h1 { font-size: 26px; font-weight: 500; margin: 0 0 12px; } |
| 217 |
article.doc h2 { font-size: 20px; margin: 18px 0 8px; } |
| 218 |
article.doc h3 { text-transform: none; letter-spacing: 0; font-size: 16px; color: var(--ink); } |
| 219 |
article.doc pre { background: var(--bg); border: 1px solid var(--line); padding: 10px 12px; overflow-x: auto; } |
| 220 |
article.doc code { background: var(--soft); padding: 0 3px; } |
| 221 |
article.doc pre code { background: none; padding: 0; } |
| 222 |
article.doc table { width: auto; } |
| 223 |
article.doc img { max-width: 100%; } |
| 224 |
article.doc blockquote { border-left: 3px solid var(--band); margin: 0; padding: 2px 12px; color: var(--mute); } |
| 225 |
|
| 226 |
|
| 227 |
.filebox { background: var(--panel); border: 1px solid var(--line); } |
| 228 |
.filebox > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 12px; border-bottom: 1px solid var(--line); background: var(--soft); } |
| 229 |
.modes a { font-size: 12px; padding: 2px 8px; border: 1px solid var(--line); margin-left: 4px; color: var(--ink); } |
| 230 |
.modes a.on { border-color: var(--acc); color: var(--acc); } |
| 231 |
table.code { width: 100%; } |
| 232 |
table.code td { padding: 0 8px; border: 0; background: transparent; line-height: 1.5; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 13px; } |
| 756fe44a Andy McCall ↶ |
233 |
table.code td.n { width: 1%; min-width: 3em; text-align: right; color: var(--mute); user-select: none; cursor: pointer; padding-right: 12px; } |
| d23464c0 Andy McCall ↶ |
234 |
table.code td.n:hover { color: var(--acc); } |
| 235 |
table.code td.t pre { margin: 0; white-space: pre; } |
| 236 |
table.code tr.hl td { background: color-mix(in srgb, var(--acc) 18%, transparent); } |
| 237 |
table.code td.blame { width: 1%; white-space: nowrap; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--soft); font-family: "Barlow", sans-serif; font-size: 12px; padding: 0 10px; vertical-align: top; line-height: 1.5; } |
| 238 |
table.code td.blame .px { font-size: 9px; } |
| 239 |
table.code td.blame .who { color: var(--ink); } |
| 240 |
table.diff td.s { width: 1%; user-select: none; color: var(--mute); } |
| 241 |
table.diff tr.add td { background: var(--add); color: var(--add-ink); } |
| 242 |
table.diff tr.del td { background: var(--del); color: var(--del-ink); } |
| 243 |
table.diff tr.gap td { background: var(--soft); color: var(--mute); font-family: "Barlow", sans-serif; font-size: 12px; padding: 2px 8px; } |
| 244 |
.file-diff { background: var(--panel); border: 1px solid var(--line); margin: 0 0 14px; } |
| 9df855f2 Andy McCall ↶ |
245 |
.file-diff > header, .file-diff > summary { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--soft); border-bottom: 1px solid var(--line); } |
| 246 |
.file-diff > summary { cursor: pointer; list-style: none; } |
| 247 |
.file-diff > summary::-webkit-details-marker { display: none; } |
| 248 |
.file-diff > summary::before { content: "▾"; color: var(--mute); width: 1em; } |
| 249 |
.file-diff:not([open]) > summary::before { content: "▸"; } |
| 250 |
.file-diff:not([open]) > summary { border-bottom: 0; } |
| 251 |
.diff-bar { display: flex; gap: 16px; align-items: center; margin: 0 0 10px; } |
| 252 |
.diff-bar .modes a { padding: 3px 10px; border: 1px solid var(--line); color: var(--mute); } |
| 253 |
.diff-bar .modes a.on { color: var(--ink); border-color: var(--acc); } |
| 254 |
table.diff .wx { border-radius: 2px; } |
| 255 |
table.diff tr.add .wx, table.diff td.add .wx { background: color-mix(in srgb, var(--add-ink) 28%, transparent); } |
| 256 |
table.diff tr.del .wx, table.diff td.del .wx { background: color-mix(in srgb, var(--del-ink) 28%, transparent); } |
| 257 |
table.diff.split { table-layout: fixed; } |
| 258 |
table.diff.split col.n { width: 3.5em; } |
| 259 |
table.diff.split td.t { overflow-x: auto; } |
| 260 |
table.diff.split td.t pre { white-space: pre-wrap; word-break: break-word; } |
| 261 |
table.diff.split td.add { background: var(--add); color: var(--add-ink); } |
| 262 |
table.diff.split td.del { background: var(--del); color: var(--del-ink); } |
| 263 |
table.diff.split td.none { background: var(--soft); } |
| 264 |
table.diff.split td.t.mid { border-left: 1px solid var(--line); } |
| d23464c0 Andy McCall ↶ |
265 |
.file-diff .counts { margin-left: auto; font-family: ui-monospace, monospace; font-size: 12px; } |
| 266 |
.counts .add { color: var(--add-ink); } |
| 267 |
.counts .del { color: var(--del-ink); } |
| 268 |
.kind { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; padding: 1px 6px; border: 1px solid var(--line); color: var(--mute); } |
| 269 |
.kind-added { color: var(--ok); border-color: var(--ok); } |
| 270 |
.kind-removed { color: var(--bad); border-color: var(--bad); } |
| 271 |
.kind-renamed, .kind-modified { color: var(--acc); border-color: var(--acc); } |
| 272 |
nav.files { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 12px; } |
| 273 |
|
| 274 |
|
| 275 |
.hist { background: var(--panel); border: 1px solid var(--line); } |
| 276 |
.hrow { display: flex; align-items: stretch; border-bottom: 1px solid var(--line); } |
| 277 |
.hrow:last-child { border-bottom: 0; } |
| 278 |
.hrow svg.lanes { flex: 0 0 auto; display: block; } |
| 279 |
.lane { stroke: var(--band); stroke-width: 2; fill: none; } |
| 280 |
.lane.none { stroke: none; } |
| 281 |
.lane.dashed { stroke-dasharray: 3 3; stroke: var(--dim); } |
| 5c6eb1fe Andy McCall ↶ |
282 |
.node { fill: var(--acc-2); stroke: var(--acc); stroke-width: 1.5; } |
| d23464c0 Andy McCall ↶ |
283 |
.node.head { fill: var(--now); stroke: var(--ink); stroke-width: 1.5; } |
| 284 |
.node.res { fill: var(--ok); } |
| 92574625 Andy McCall ↶ |
285 |
|
| 286 |
.lanes-board { border: 1px solid var(--line); background: var(--panel); padding: 6px; } |
| 287 |
.lanes-board rect.node { fill: var(--soft); stroke: var(--acc); } |
| 288 |
.lanes-board rect.node.head { stroke: var(--now); stroke-width: 2; } |
| 289 |
.lanes-board a:hover rect.node { fill: var(--line); } |
| 290 |
.lanes-board text { fill: var(--ink); font-size: 11px; } |
| d23464c0 Andy McCall ↶ |
291 |
.chg { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 8px 12px; flex: 1; min-width: 0; } |
| 292 |
.chg + .chg, .chg:only-child { border-bottom: 1px solid var(--line); } |
| 293 |
.hrow .chg { border-bottom: 0; } |
| 294 |
.chg .title { color: var(--ink); font-weight: 500; } |
| 62cdf34d Andy McCall ↶ |
295 |
|
| 296 |
.chg-main { min-width: 0; overflow-wrap: anywhere; } |
| d23464c0 Andy McCall ↶ |
297 |
.chg .meta { color: var(--mute); font-size: 12px; margin-top: 2px; } |
| 298 |
.chg-side { display: flex; align-items: center; gap: 10px; white-space: nowrap; } |
| 299 |
.chg .hash { font-size: 9px; } |
| 300 |
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 12px; } |
| 301 |
|
| 302 |
@media (max-width: 760px) { |
| 303 |
header { flex-wrap: wrap; } |
| c9aacc0e Andy McCall ↶ |
304 |
.side-layout, .side-layout.rev { grid-template-columns: 1fr; } |
| d23464c0 Andy McCall ↶ |
305 |
.foot { grid-template-columns: 1fr; } |
| 306 |
main { padding: 10px 14px 20px; } |
| 307 |
.band { padding: 0 8px; overflow-x: auto; } |
| 308 |
.tabs-in { padding: 0 8px; } |
| 309 |
} |
| 310 |
|
| c40c2d3e Andy McCall ↶ |
311 |
|
| 312 |
.sy-source .sy-keyword, .sy-source .sy-storage { color: var(--sy-kw); } |
| 313 |
.sy-source .sy-string { color: var(--sy-str); } |
| 314 |
.sy-source .sy-constant.sy-numeric, .sy-source .sy-constant.sy-language { color: var(--sy-num); } |
| 315 |
.sy-source .sy-constant { color: var(--sy-const); } |
| 316 |
.sy-source .sy-comment { color: var(--sy-cmt); font-style: italic; } |
| 317 |
.sy-source .sy-entity.sy-name.sy-function, .sy-source .sy-support.sy-function, .sy-source .sy-meta.sy-function-call .sy-variable.sy-function { color: var(--sy-fn); } |
| 318 |
.sy-source .sy-entity.sy-name.sy-type, .sy-source .sy-storage.sy-type, .sy-source .sy-support.sy-type, .sy-source .sy-entity.sy-name.sy-struct, .sy-source .sy-entity.sy-name.sy-enum, .sy-source .sy-entity.sy-name.sy-class { color: var(--sy-ty); } |
| 319 |
.sy-source .sy-variable { color: var(--sy-var); } |
| 320 |
.sy-source .sy-entity.sy-name.sy-tag { color: var(--sy-kw); } |
| 321 |
.sy-source .sy-entity.sy-other.sy-attribute-name { color: var(--sy-const); } |
| 322 |
.sy-source .sy-markup.sy-heading { color: var(--sy-ty); font-weight: 600; } |
| 323 |
.sy-source .sy-markup.sy-bold { font-weight: 600; } |
| 324 |
.sy-source .sy-markup.sy-italic { font-style: italic; } |
| 325 |
.sy-source .sy-markup.sy-raw { color: var(--sy-str); } |
| 326 |
.sy-source .sy-markup.sy-underline.sy-link { color: var(--sy-fn); } |
| 19bb31ff Andy McCall ↶ |
327 |
|
| 328 |
|
| 329 |
form.card { max-width: 460px; background: var(--panel); border: 1px solid var(--line); padding: 18px 20px; margin: 0 0 16px; } |
| 330 |
form.card.wide { max-width: 720px; } |
| 8f0efa07 Andy McCall ↶ |
331 |
|
| 332 |
form.card.full { max-width: none; } |
| 333 |
form .actions > .end, form.card .actions > button.end[type=submit] { margin-left: auto; } |
| 334 |
|
| 335 |
|
| 336 |
form.card .assist-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; } |
| 337 |
form.card .assist-row button.agent-btn { background: var(--panel); color: var(--ink); border: 1px solid var(--line); margin: 0; } |
| 338 |
form.card .assist-row button.agent-btn:hover { border-color: var(--acc); } |
| 19bb31ff Andy McCall ↶ |
339 |
form.card label, .field label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--mute); margin: 10px 0 4px; } |
| ae138eea Andy McCall ↶ |
340 |
form.card input[type=text], form.card input[type=password], form.card input[type=email], form.card input[type=search], form.card input[type=number], form.card input[type=url], form.card textarea, form.card select, |
| 19bb31ff Andy McCall ↶ |
341 |
.field input, .field select, .field textarea { width: 100%; background: var(--bg); border: 1px solid var(--line); color: var(--ink); padding: 7px 10px; font: inherit; } |
| 342 |
form.card input:focus, form.card textarea:focus, form.card select:focus { outline: 2px solid var(--band); outline-offset: 0; } |
| 343 |
form.card button[type=submit], form.card .primary { background: var(--acc); color: var(--now-ink); border: 0; margin-top: 12px; } |
| 344 |
form.card .row { display: flex; gap: 10px; align-items: end; } |
| 345 |
form.card .row > * { flex: 1; } |
| 346 |
form.card .choice { display: flex; gap: 12px; flex-wrap: wrap; margin: 6px 0; } |
| 347 |
form.card .choice label { display: inline-flex; gap: 6px; align-items: center; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); margin: 0; } |
| 348 |
.note { color: var(--ok); } |
| 349 |
.error { color: var(--bad); } |
| 350 |
details.danger { border: 1px solid var(--bad); padding: 10px 14px; margin-top: 18px; } |
| d0fbea2e Andy McCall ↶ |
351 |
.panel.danger-zone { border-color: var(--bad); } |
| 352 |
.danger-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 10px 0; border-top: 1px solid var(--line); } |
| 353 |
.danger-row:first-of-type { border-top: 0; } |
| 354 |
.danger-row > div { flex: 1; min-width: 0; } |
| 355 |
.danger-row p { margin: 2px 0 0; } |
| 356 |
.danger-row details.danger-act { flex: 0 0 auto; max-width: 420px; } |
| 357 |
.danger-row details.danger-act summary { list-style: none; display: inline-block; cursor: pointer; border: 1px solid var(--bad); color: var(--bad); padding: 6px 12px; font-weight: 600; } |
| 358 |
.danger-row details.danger-act summary::-webkit-details-marker { display: none; } |
| 359 |
.danger-row details.danger-act[open] { flex: 1; } |
| 360 |
.danger-row details.danger-act form.card { margin-top: 8px; } |
| 19bb31ff Andy McCall ↶ |
361 |
details.danger summary { color: var(--bad); cursor: pointer; font-weight: 600; } |
| 362 |
.secret { font-family: ui-monospace, monospace; background: var(--bg); border: 1px solid var(--acc); padding: 8px 10px; word-break: break-all; } |
| 363 |
.qr { background: #fff; display: inline-block; padding: 8px; } |
| 364 |
ul.codes { columns: 2; font-family: ui-monospace, monospace; } |
| 365 |
table.small td, table.small th { padding: 5px 8px; font-size: 13px; } |
| 366 |
form.tiny { display: inline; margin: 0; } |
| 367 |
form.tiny button { padding: 1px 6px; font-size: 10px; } |
| 03bfb945 Andy McCall ↶ |
368 |
.flow-job > form.job-rerun { display: block; margin: 0 0 8px; } |
| 369 |
|
| 370 |
.runner-serves form.tiny { display: flex; gap: 4px; margin-top: 4px; white-space: nowrap; } |
| de505df5 Andy McCall ↶ |
371 |
|
| 372 |
|
| 373 |
.comment { background: var(--panel); border: 1px solid var(--line); padding: 10px 14px; margin: 0 0 10px; } |
| 374 |
.comment .who { font-weight: 600; } |
| 375 |
.comment .body { margin-top: 6px; } |
| 376 |
.comment .body p:last-child { margin: 0; } |
| 377 |
.comment.resolved { opacity: .6; } |
| 378 |
.comment.review-approve { border-color: var(--ok); } |
| 379 |
.comment.review-changes { border-color: var(--bad); } |
| 380 |
td.thread { background: var(--soft); padding: 8px 12px; } |
| 381 |
td.thread .comment { margin: 4px 0; font-family: "Barlow", sans-serif; font-size: 14px; } |
| 382 |
details.linecomment { display: inline; float: right; } |
| 756fe44a Andy McCall ↶ |
383 |
details.linecomment summary { list-style: none; cursor: pointer; color: var(--mute); font-size: 12px; padding: 0 4px; } |
| de505df5 Andy McCall ↶ |
384 |
details.linecomment summary:hover { color: var(--acc); } |
| 385 |
details.linecomment form { font-family: "Barlow", sans-serif; background: var(--panel); border: 1px solid var(--acc); padding: 8px; margin: 4px 0; } |
| 386 |
details.linecomment textarea { width: 100%; font: inherit; background: var(--bg); color: var(--ink); border: 1px solid var(--line); } |
| 18e381ea Andy McCall ↶ |
387 |
|
| 388 |
|
| 389 |
.label { display: inline-block; font-size: 11px; padding: 1px 7px; margin-right: 4px; border: 1px solid var(--c, var(--acc)); color: var(--c, var(--acc)); vertical-align: middle; } |
| 8bb7baeb Andy McCall ↶ |
390 |
|
| 391 |
|
| 392 |
.tl-event { margin: 0 0 8px 14px; } |
| 4f840409 Andy McCall ↶ |
393 |
.refs-day summary { cursor: pointer; } |
| 657e7d5c Andy McCall ↶ |
394 |
.board-filter { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 10px; } |
| 395 |
.board-filter input[type=search] { min-width: 0; flex: 1 1 14em; max-width: 24em; } |
| 396 |
.col-hidden { margin: 0 0 6px; } |
| 439ecd87 Andy McCall ↶ |
397 |
.col-archives { margin: 0 0 6px; } |
| 398 |
.board-archived-link { margin-left: auto; } |
| 399 |
.col-archive { margin-top: 8px; } |
| 400 |
.col-archive .inline-fields { align-items: center; } |
| 401 |
.col-archive input[type=number] { width: 6em; margin: 0; } |
| 4f840409 Andy McCall ↶ |
402 |
.refs-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 0; max-width: 100%; } |
| 403 |
.refs-chips .chip { overflow-wrap: anywhere; } |
| 18e381ea Andy McCall ↶ |
404 |
details.inline-edit { display: inline; margin-left: 8px; } |
| 405 |
details.inline-edit summary { cursor: pointer; color: var(--acc); } |
| 406 |
details.inline-edit input, details.inline-edit textarea { width: 100%; font: inherit; background: var(--bg); color: var(--ink); border: 1px solid var(--line); margin: 4px 0; } |
| 407 |
.tiny-form input[type=text], .tiny-form select { background: var(--bg); border: 1px solid var(--line); color: var(--ink); padding: 3px 6px; font: inherit; font-size: 13px; } |
| 408 |
header nav .bell { color: var(--ink); position: relative; font-size: 16px; padding: 0 6px; } |
| 409 |
header nav .bell .count { position: absolute; top: -6px; right: -4px; background: var(--acc); color: var(--now-ink); font-size: 10px; font-weight: 600; padding: 0 5px; border-radius: 9px; } |
| 410 |
ul.rows li.unread { border-color: var(--acc); } |
| 411 |
mark { background: color-mix(in srgb, var(--acc) 30%, transparent); color: inherit; } |
| 14530604 Andy McCall ↶ |
412 |
|
| 413 |
|
| 414 |
form.editor { max-width: none; } |
| 415 |
form.editor textarea.code { width: 100%; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 13px; background: var(--bg); color: var(--ink); border: 1px solid var(--line); padding: 8px; } |
| 416 |
.cm-host { border: 1px solid var(--line); margin: 8px 0; min-height: 360px; max-height: 70vh; overflow: auto; font-size: 13px; } |
| 417 |
.cm-host .cm-editor { min-height: 360px; } |
| 418 |
button.danger-btn { color: var(--bad); border-color: var(--bad); } |
| 4f692533 Andy McCall ↶ |
419 |
button.primary-btn { background: var(--acc); color: var(--now-ink); } |
| 420 |
button.primary-btn:hover { filter: brightness(1.1); } |
| 14530604 Andy McCall ↶ |
421 |
button:disabled { opacity: .45; cursor: not-allowed; } |
| 422 |
|
| 423 |
|
| 424 |
.EasyMDEContainer .CodeMirror { background: var(--bg); color: var(--ink); border-color: var(--line); } |
| 425 |
.EasyMDEContainer .CodeMirror-cursor { border-color: var(--acc); } |
| 426 |
.editor-toolbar { border-color: var(--line); background: var(--soft); opacity: 1; } |
| 427 |
.editor-toolbar button.mde-btn { color: var(--ink); border: 0; background: transparent; font-weight: 600; font-size: 12px; text-transform: none; letter-spacing: 0; padding: 2px 6px; width: auto; } |
| 428 |
.editor-toolbar button.mde-btn:hover, .editor-toolbar button.active { background: var(--panel); color: var(--acc); } |
| 429 |
.editor-preview, .editor-preview-side { background: var(--panel); color: var(--ink); } |
| 3f4b0ea6 Andy McCall ↶ |
430 |
|
| 431 |
|
| 432 |
.inline-find { flex: 0 1 220px; } |
| 433 |
.hits .hit { margin: 0; padding: 4px 8px; border-bottom: 1px solid var(--line); background: var(--panel); font-size: 13px; overflow-x: auto; white-space: nowrap; } |
| 434 |
.hits .hit code { background: none; } |
| b45384c9 Andy McCall ↶ |
435 |
|
| 436 |
.scopes label { display: block; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); margin: 4px 0; } |
| 10174045 Andy McCall ↶ |
437 |
|
| 438 |
|
| a160b98f Andy McCall ↶ |
439 |
img.avatar { display: inline-block; vertical-align: middle; border: 1px solid var(--line); object-fit: cover; } |
| 10174045 Andy McCall ↶ |
440 |
img.avatar.xs { width: 18px; height: 18px; } |
| 441 |
img.avatar.sm { width: 24px; height: 24px; } |
| 442 |
img.avatar.xl { width: 100%; max-width: 240px; height: auto; aspect-ratio: 1; } |
| 443 |
.profile .who-card h1.display { font-size: 24px; font-weight: 600; margin: 12px 0 0; } |
| 444 |
.profile .who-card .handle { font-size: 18px; color: var(--mute); margin: 2px 0 10px; } |
| 445 |
.profile .who-card .bio { margin: 0 0 10px; } |
| 446 |
.profile .who-card .facts-list li { padding: 2px 0; } |
| 89e89836 Andy McCall ↶ |
447 |
.profile .who-card .facts-list li.social .icon { vertical-align: -2px; } |
| b951c587 Andy McCall ↶ |
448 |
|
| 449 |
.profile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0 18px; } |
| 450 |
.profile-actions a.go { display: block; text-align: center; padding: 6px 10px; } |
| 451 |
.profile-actions a.go.wide { grid-column: 1 / -1; } |
| 10174045 Andy McCall ↶ |
452 |
.profile h2 { font-size: 15px; margin: 0 0 8px; } |
| 453 |
.profile h2 ~ h2 { margin-top: 18px; } |
| 454 |
.profile .keys li { margin-bottom: 6px; } |
| 455 |
.profile .side-layout, .side-layout.profile { grid-template-columns: 260px 1fr; } |
| 456 |
@media (max-width: 760px) { .side-layout.profile { grid-template-columns: 1fr; } img.avatar.xl { max-width: 120px; } } |
| 1553bfc9 Andy McCall ↶ |
457 |
|
| 458 |
|
| 459 |
.topics { margin: 4px 0 0; display: flex; flex-wrap: wrap; gap: 4px; } |
| 460 |
.topic { display: inline-block; font-size: 12px; padding: 1px 8px; border-radius: 10px; background: color-mix(in srgb, var(--acc) 14%, transparent); color: var(--acc); } |
| 461 |
.topic:hover { text-decoration: none; background: color-mix(in srgb, var(--acc) 24%, transparent); } |
| 462 |
.explore-bar input[type=search] { flex: 1 1 240px; } |
| 463 |
.counts-line span { margin-right: 2px; } |
| 1ac84c62 Andy McCall ↶ |
464 |
.count-chip { display: inline-block; min-width: 1.6em; padding: 0 6px; margin-left: 4px; border-radius: 9px; background: var(--soft); color: var(--mute); font-size: 11px; text-align: center; } |
| 465 |
.pager { display: flex; gap: 12px; align-items: center; justify-content: center; margin: 14px 0; } |
| 64caed18 Andy McCall ↶ |
466 |
|
| 467 |
|
| 468 |
.top-clone { margin-left: auto; flex: 0 1 380px; min-width: 200px; } |
| 469 |
.top-clone code { font-size: 12px; overflow: hidden; text-overflow: ellipsis; } |
| 470 |
.latest-line { margin: -4px 0 8px; } |
| 471 |
article.doc.readme { max-width: none; } |
| 472 |
|
| 473 |
|
| 474 |
.sectioned { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; align-items: start; } |
| 475 |
.section-nav { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 2px; } |
| 476 |
.section-nav a { padding: 6px 12px; border-left: 2px solid var(--line); color: var(--mute); font-size: 14px; } |
| 477 |
.section-nav a:hover, .section-nav a.on { border-left-color: var(--acc); color: var(--ink); text-decoration: none; } |
| 478 |
.sections > form.card, .sections > form.card.wide, .sections > .panel, .sections > details { max-width: none; width: 100%; box-sizing: border-box; scroll-margin-top: 14px; } |
| 479 |
.sections .panel form.card { max-width: 720px; } |
| 480 |
.sections > details > form.card { max-width: none; } |
| c7067c7b Andy McCall |
481 |
|
| 737de0fa Andy McCall ↶ |
482 |
|
| 483 |
|
| 484 |
.admin-counts { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; } |
| 485 |
.admin-counts strong { font-size: 18px; margin-right: 4px; } |
| 486 |
.admin-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 16px; } |
| c7067c7b Andy McCall |
487 |
.settings-layout { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: start; } |
| 488 |
.settings-nav { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 14px; } |
| 489 |
.settings-group h2 { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--mute); margin: 0 0 4px; padding: 0 12px; } |
| 490 |
.settings-group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; } |
| 491 |
.settings-group a { display: block; padding: 5px 12px; border-left: 2px solid var(--line); color: var(--mute); font-size: 14px; } |
| 492 |
.settings-group a:hover { border-left-color: var(--dim); color: var(--ink); text-decoration: none; } |
| 493 |
.settings-group a.on { border-left-color: var(--acc); color: var(--ink); background: var(--soft); } |
| 494 |
@media (max-width: 720px) { |
| 495 |
.settings-layout { grid-template-columns: minmax(0, 1fr); gap: 14px; } |
| 496 |
.settings-nav { position: static; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--line); } |
| 497 |
.settings-group { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: baseline; gap: 10px; } |
| 498 |
.settings-group h2 { padding: 0; margin: 0; } |
| 499 |
.settings-group ul { flex-direction: row; flex-wrap: wrap; gap: 4px; min-width: 0; } |
| 500 |
.settings-group a { border-left: 0; border: 1px solid var(--line); padding: 3px 8px; font-size: 13px; } |
| 501 |
.settings-group a.on { border-color: var(--acc); } |
| 502 |
} |
| 64caed18 Andy McCall ↶ |
503 |
@media (max-width: 760px) { |
| 504 |
.sectioned { grid-template-columns: 1fr; gap: 12px; } |
| 505 |
.section-nav { position: static; flex-direction: row; flex-wrap: wrap; } |
| 506 |
.section-nav a { border-left: 0; border-bottom: 2px solid var(--line); } |
| 507 |
} |
| 6ae41081 Andy McCall ↶ |
508 |
|
| 509 |
|
| 510 |
.file-layout { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: 16px; align-items: start; } |
| 511 |
.file-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; font-size: 13px; background: var(--panel); border: 1px solid var(--line); padding: 8px 0; } |
| 512 |
.file-side .side-root { display: block; padding: 2px 12px 6px; font-weight: 600; } |
| 513 |
.file-side ul { list-style: none; margin: 0; padding: 0; } |
| af9c6ca1 Andy McCall ↶ |
514 |
.file-side li a { display: block; padding: 2px 12px 2px calc(12px + var(--d, 0) * 14px); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } |
| 6ae41081 Andy McCall ↶ |
515 |
.file-side li a:hover { background: var(--soft); text-decoration: none; } |
| 516 |
.file-side li.here a { background: color-mix(in srgb, var(--acc) 16%, transparent); font-weight: 600; box-shadow: inset 3px 0 0 var(--acc); } |
| 756fe44a Andy McCall ↶ |
517 |
.file-side .glyph { color: var(--mute); font-size: 10px; } |
| 6ae41081 Andy McCall ↶ |
518 |
.file-main { min-width: 0; overflow-x: auto; } |
| 519 |
.linebar { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--acc) 8%, var(--panel)); } |
| 520 |
.linebar[hidden] { display: none; } |
| 521 |
.linebar [data-linebar-label] { margin-right: auto; } |
| 522 |
table.code td.blame { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--acc) calc(var(--age, 0) * 10%), transparent); } |
| 523 |
table.code td.blame.age-0 { --age: 1; } table.code td.blame.age-1 { --age: 2; } table.code td.blame.age-2 { --age: 3; } |
| 524 |
table.code td.blame.age-3 { --age: 4; } table.code td.blame.age-4 { --age: 5; } table.code td.blame.age-5 { --age: 6; } |
| 525 |
table.code td.blame.age-6 { --age: 7; } table.code td.blame.age-7 { --age: 8; } table.code td.blame.age-8 { --age: 9; } |
| 526 |
table.code td.blame.age-9 { --age: 10; } |
| 756fe44a Andy McCall ↶ |
527 |
table.code td.blame .before { color: var(--mute); margin-left: 4px; } |
| 6ae41081 Andy McCall ↶ |
528 |
table.code td.blame .before:hover { color: var(--acc); text-decoration: none; } |
| 529 |
@media (max-width: 900px) { |
| 530 |
.file-layout { grid-template-columns: minmax(0, 1fr); } |
| 531 |
.file-side { display: none; } |
| 532 |
} |
| 42fa9554 Andy McCall ↶ |
533 |
|
| 534 |
|
| 535 |
|
| 536 |
.flow-glyph { display: inline-block; width: 1.2em; text-align: center; font-weight: 700; } |
| 537 |
.flow-glyph.st-passed, .node.st-passed .g { color: var(--ok); fill: var(--ok); } |
| 538 |
.flow-glyph.st-failed, .flow-glyph.st-error, .node.st-failed .g, .node.st-error .g { color: var(--bad); fill: var(--bad); } |
| 539 |
.flow-glyph.st-running, .node.st-running .g { color: var(--acc); fill: var(--acc); } |
| 745d225d Andy McCall ↶ |
540 |
.flow-glyph.st-queued, .flow-glyph.st-skipped, .flow-glyph.st-cancelled, .node.st-queued .g, .node.st-skipped .g, .node.st-cancelled .g { color: var(--mute); fill: var(--mute); } |
| 42fa9554 Andy McCall ↶ |
541 |
.flow-glyph.st-running, .node.st-running .g { animation: flow-pulse 1.2s ease-in-out infinite; } |
| 542 |
@keyframes flow-pulse { 50% { opacity: .35; } } |
| 543 |
@media (prefers-reduced-motion: reduce) { .flow-glyph.st-running, .node.st-running .g { animation: none; } } |
| 544 |
.flow-dots .flow-glyph { width: 1em; } |
| 545 |
.flow-graph-box { overflow-x: auto; padding: 12px; } |
| 546 |
.flow-graph { display: block; max-width: none; font-family: "Barlow", sans-serif; } |
| 547 |
.flow-graph .edge { fill: none; stroke: var(--line); stroke-width: 2; } |
| 548 |
.flow-graph .edge.st-passed { stroke: color-mix(in srgb, var(--ok) 60%, var(--line)); } |
| 549 |
.flow-graph .edge.st-failed, .flow-graph .edge.st-error { stroke: color-mix(in srgb, var(--bad) 60%, var(--line)); stroke-dasharray: 4 4; } |
| 550 |
.flow-graph .node rect { fill: var(--panel); stroke: var(--line); stroke-width: 1.5; } |
| 551 |
.flow-graph .node:hover rect, .flow-graph .node:focus rect { stroke: var(--acc); } |
| 552 |
.flow-graph .node.st-passed rect { stroke: var(--ok); } |
| 553 |
.flow-graph .node.st-failed rect, .flow-graph .node.st-error rect { stroke: var(--bad); fill: color-mix(in srgb, var(--bad) 8%, var(--panel)); } |
| 554 |
.flow-graph .node.st-running rect { stroke: var(--acc); fill: color-mix(in srgb, var(--acc) 8%, var(--panel)); } |
| 745d225d Andy McCall ↶ |
555 |
.flow-graph .node.st-skipped rect, .flow-graph .node.st-cancelled rect { stroke-dasharray: 4 3; } |
| 42fa9554 Andy McCall ↶ |
556 |
.flow-graph .node .g { font-size: 18px; } |
| af9c6ca1 Andy McCall ↶ |
557 |
.flow-graph text { font-family: "Barlow", sans-serif; stroke: none; } |
| 558 |
.flow-graph .node .name { fill: var(--ink); font-size: 14px; font-weight: 600; } |
| 559 |
.flow-graph .node .meta { fill: var(--mute); font-size: 11.5px; font-weight: 400; } |
| 42fa9554 Andy McCall ↶ |
560 |
details.flow-job { padding: 0; margin-top: 10px; } |
| 561 |
details.flow-job > summary { padding: 10px 12px; cursor: pointer; list-style-position: inside; } |
| 562 |
details.flow-job .pad { padding: 0 12px 10px; margin: 0; } |
| 563 |
pre.flow-log { margin: 0; padding: 8px 0; max-height: 70vh; overflow: auto; border-top: 1px solid var(--line); background: var(--soft); font-size: 12.5px; line-height: 1.5; } |
| 564 |
pre.flow-log:empty { display: none; } |
| 10708ab8 Andy McCall ↶ |
565 |
ul.flow-artifacts { list-style: none; margin: 0; padding: 6px 12px; border-top: 1px solid var(--line); } |
| 566 |
ul.flow-artifacts li { padding: 2px 0; overflow-wrap: anywhere; } |
| 567 |
ul.flow-artifacts select { font-size: 11px; } |
| 0b203bbf Andy McCall ↶ |
568 |
.flow-tests { padding: 6px 12px; border-top: 1px solid var(--line); } |
| 569 |
.flow-tests > p { margin: 0 0 4px; } |
| 570 |
.flow-tests .tests-count.ok { color: var(--ok); } |
| 571 |
.flow-tests .tests-count.bad, .flow-tests .bad { color: var(--bad); font-weight: 600; } |
| 572 |
.tests-failure { border-left: 3px solid var(--bad); margin: 4px 0; padding: 2px 8px; } |
| 573 |
.tests-failure summary { cursor: pointer; overflow-wrap: anywhere; } |
| 574 |
.tests-failure pre.flow-log { padding: 6px 8px; margin: 4px 0; white-space: pre-wrap; word-break: break-word; max-height: 24em; overflow: auto; } |
| 42fa9554 Andy McCall ↶ |
575 |
pre.flow-log .ln { display: block; padding: 0 12px; white-space: pre-wrap; word-break: break-word; } |
| af9c6ca1 Andy McCall ↶ |
576 |
pre.flow-log .t { display: inline-block; min-width: 5.5em; color: var(--mute); user-select: none; } |
| d9b3b846 Andy McCall ↶ |
577 |
pre.flow-log details.log-group > summary { cursor: pointer; font-weight: 600; list-style: none; } |
| 578 |
pre.flow-log details.log-group > summary::before { content: "▸ "; color: var(--mute); } |
| 579 |
pre.flow-log details.log-group[open] > summary::before { content: "▾ "; } |
| 580 |
pre.flow-log details.log-group > summary .took { font-weight: 400; color: var(--mute); margin-left: 6px; } |
| af9c6ca1 Andy McCall ↶ |
581 |
pre.flow-log .s-err { color: color-mix(in srgb, var(--bad) 75%, var(--ink)); } |
| 582 |
pre.flow-log .s-flow, pre.flow-log .s-console { color: var(--mute); font-style: italic; } |
| 42fa9554 Andy McCall ↶ |
583 |
table.flow-runs td.st { width: 1.5em; } |
| 3d1e74cd Andy McCall ↶ |
584 |
|
| 585 |
|
| 586 |
.compare-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; } |
| 587 |
.compare-bar label { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--mute); margin: 0; } |
| 588 |
.compare-bar input { width: 16em; margin: 0; } |
| 589 |
.compare-bar .swap { font-size: 18px; padding: 0 4px; } |
| 590 |
.compare-bar .swap:hover { text-decoration: none; color: var(--ink); } |
| 591 |
.compare-bar button { margin: 0; } |
| 43e8ca33 Andy McCall ↶ |
592 |
|
| 593 |
|
| 594 |
.help section.panel { padding: 16px 20px; scroll-margin-top: 14px; } |
| 595 |
.help section.panel h2 { margin-top: 0; } |
| 596 |
.help ol, .help ul { padding-left: 1.3em; } |
| 597 |
.help li { margin: 4px 0; } |
| 598 |
table.glossary td:first-child { white-space: nowrap; color: var(--mute); } |
| 599 |
table.glossary td:nth-child(2) { white-space: nowrap; } |
| 34beb1a7 Andy McCall ↶ |
600 |
|
| 601 |
button.linkish { background: none; border: 0; padding: 0; margin: 0; color: var(--acc); font: inherit; cursor: pointer; text-transform: none; letter-spacing: normal; } |
| 602 |
button.linkish:hover { text-decoration: underline; } |
| eb0c44a9 Andy McCall ↶ |
603 |
|
| 604 |
|
| 605 |
.inbox-nav h3 { margin: 14px 0 4px 12px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--mute); } |
| 606 |
.inbox .rows.threads .tag.dim { opacity: .7; } |
| a160b98f Andy McCall ↶ |
607 |
|
| 608 |
|
| 609 |
.picture-row { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; } |
| 610 |
.picture-row img.avatar.xl { width: 96px; height: 96px; } |
| 611 |
.picture-row > div { flex: 1; min-width: 220px; } |
| 756fe44a Andy McCall ↶ |
612 |
|
| 613 |
|
| 614 |
:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; } |
| 615 |
.band a:focus-visible, .tabs a:focus-visible { outline-offset: -2px; } |
| 616 |
.skip { position: absolute; left: 12px; top: -48px; z-index: 100; padding: 8px 14px; background: var(--acc); color: var(--bg); font-weight: 600; } |
| 617 |
.skip:focus { top: 8px; } |
| 618 |
main:focus { outline: none; } |
| 619 |
@media (max-width: 760px) { |
| 883c77ea Andy McCall ↶ |
620 |
.tabs-in { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; -webkit-overflow-scrolling: touch; } |
| 621 |
.side-layout > * { min-width: 0; } |
| 1656dc14 Andy McCall ↶ |
622 |
|
| 623 |
|
| 624 |
table.tree col.c-name { width: auto; } |
| 625 |
table.tree col.c-last { width: 0; } |
| 626 |
table.tree col.c-age { width: 7.5em; } |
| 627 |
table.tree td.last { padding: 0; font-size: 0; } |
| 883c77ea Andy McCall ↶ |
628 |
article.doc, .panel { overflow-x: auto; } |
| 629 |
article.doc pre, article.doc table { max-width: 100%; overflow-x: auto; } |
| 756fe44a Andy McCall ↶ |
630 |
.tabs-in > * { flex-shrink: 0; } |
| 16ee5d19 Andy McCall ↶ |
631 |
.tab-menu { position: static; } |
| 632 |
.tab-menu > summary { display: inline-block; } |
| 633 |
.tab-menu-list { position: static; display: inline-flex; flex-direction: row; min-width: 0; padding: 0; border: 0; box-shadow: none; background: var(--soft); } |
| 756fe44a Andy McCall ↶ |
634 |
.band { overflow-x: auto; white-space: nowrap; } |
| 635 |
main table.list, main table.flow-runs { display: block; overflow-x: auto; } |
| 636 |
.sectioned { grid-template-columns: 1fr; } |
| 637 |
.section-nav { position: static; display: flex; flex-wrap: wrap; gap: 4px; } |
| 638 |
header .find { display: none; } |
| 639 |
} |
| 640 |
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } } |
| e1ec9fbf Andy McCall ↶ |
641 |
|
| 642 |
|
| 643 |
.board { display: flex; gap: 12px; align-items: flex-start; overflow-x: auto; padding-bottom: 8px; } |
| 644 |
.board-col { flex: 0 0 290px; background: var(--soft); border: 1px solid var(--line); padding: 8px; } |
| 645 |
.board-col > header { display: flex; justify-content: space-between; align-items: center; gap: 6px; } |
| 646 |
.board-col h2 { font-size: 14px; margin: 2px 0 8px; } |
| 647 |
.board-col ul.cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; min-height: 12px; } |
| 648 |
.card-item { background: var(--panel); border: 1px solid var(--line); padding: 8px 10px; } |
| 649 |
.card-item.note { border-left: 3px solid var(--warn); } |
| 650 |
.card-item p { margin: 4px 0 0; } |
| 6a306cd0 Andy McCall ↶ |
651 |
.card-item .card-labels { display: flex; flex-wrap: wrap; gap: 4px; } |
| 652 |
.card-item .card-labels .label { margin-right: 0; text-decoration: none; } |
| 653 |
.card-item .card-labels .label:hover, .card-item .card-labels .label:focus-visible { background: color-mix(in srgb, var(--c, var(--acc)) 14%, transparent); } |
| 654 |
.card-item .card-who { color: inherit; } |
| e1ec9fbf Andy McCall ↶ |
655 |
.card-item .card-actions { margin-top: 6px; display: flex; gap: 4px; flex-wrap: wrap; align-items: center; } |
| 656 |
.card-item .card-actions select { width: auto; margin: 0; padding: 1px 4px; font-size: 12px; } |
| 657 |
.board .add-card { margin-top: 8px; } |
| 658 |
.board .add-card form { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; } |
| 659 |
.board .inline-fields { display: flex; gap: 4px; } |
| 660 |
.board .inline-fields select { width: 40%; } |
| 661 |
.board .add-col form { display: flex; flex-direction: column; gap: 6px; } |
| 662 |
.state-open { color: var(--ok); } .state-closed, .state-landed { color: var(--acc); } |
| 663 |
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } |
| decb6304 Andy McCall ↶ |
664 |
.card-item.note > p { color: var(--ink); } |
| 9756c67d Andy McCall ↶ |
665 |
|
| 666 |
|
| 667 |
ul.hooks { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; } |
| 668 |
li.hook { border: 1px solid var(--line); background: var(--soft); padding: 8px 12px; min-width: 0; } |
| 669 |
.hook-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } |
| 670 |
code.hook-url { overflow-wrap: anywhere; word-break: break-all; } |
| 671 |
li.hook p { margin: 4px 0; } |
| 672 |
li.hook .hook-edit { margin-top: 4px; } |
| 83d5052b Andy McCall ↶ |
673 |
|
| 674 |
|
| 675 |
.clone-pop { position: relative; } |
| 676 |
.clone-pop > summary { list-style: none; cursor: pointer; } |
| 677 |
.clone-pop > summary::-webkit-details-marker { display: none; } |
| 678 |
.clone-pop[open] > summary { background: var(--soft); } |
| 679 |
.clone-panel { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: min(440px, 88vw); background: var(--panel); border: 1px solid var(--line); box-shadow: 0 6px 24px rgba(0,0,0,.25); padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; } |
| 680 |
.clone-panel .clone input { flex: 1; min-width: 0; margin: 0; font-family: var(--mono, monospace); font-size: 12px; } |
| 681 |
.clone-panel p { margin: 0; overflow-wrap: anywhere; } |
| 67b24adb Andy McCall ↶ |
682 |
.clone-panel .download { border-top: 1px solid var(--line); padding-top: 8px; margin-top: 2px; font-weight: 600; text-decoration: none; } |
| 683 |
.clone-panel .download:hover { text-decoration: underline; } |
| 83d5052b Andy McCall ↶ |
684 |
.bar .inline-find { flex: 1 1 200px; } |
| 685 |
ul.contributors li { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 4px 0; } |
| 686 |
ul.contributors img.avatar.sm { width: 20px; height: 20px; vertical-align: middle; } |
| 206c1fc1 Andy McCall ↶ |
687 |
ul.contributors ul.via-list { flex-basis: 100%; margin: 0 0 0 26px; padding: 0; } |
| 688 |
ul.contributors ul.via-list li { margin: 2px 0; } |
| 689 |
ul.contributors ul.via-list img.avatar.sm { width: 16px; height: 16px; } |
| 83d5052b Andy McCall ↶ |
690 |
.avatar-none { display: inline-block; width: 20px; text-align: center; color: var(--mute); } |
| 691 |
.lang-bar { display: flex; height: 8px; overflow: hidden; background: var(--soft); margin: 6px 0 8px; } |
| 692 |
.lang-bar > span { display: block; height: 100%; } |
| 693 |
.lang-bar > span + span { margin-left: 1px; } |
| 694 |
ul.langs { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; } |
| 695 |
ul.langs li { margin: 0; } |
| 696 |
.lang-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; vertical-align: middle; } |
| 697 |
.vis { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: 1px 8px; border: 1px solid var(--line); border-radius: 10px; margin-left: 8px; vertical-align: middle; } |
| 698 |
.vis-public { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 45%, transparent); } |
| 699 |
.vis-internal { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, transparent); } |
| 700 |
.vis-private { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 45%, transparent); } |
| 6ad368c5 Andy McCall ↶ |
701 |
summary.go { display: inline-block; user-select: none; } |
| 702 |
.clone-pop > summary.go:hover { background: var(--soft); } |
| df940d75 Andy McCall ↶ |
703 |
|
| 704 |
|
| 705 |
.audit ul.checks li { padding: 3px 0; } |
| 706 |
.audit ul.checks li .glyph { display: inline-block; width: 1.2em; text-align: center; font-weight: 700; } |
| 707 |
.audit ul.checks li.pass .glyph { color: var(--ok); } |
| 708 |
.audit ul.checks li.warn .glyph { color: var(--warn); } |
| 709 |
.audit ul.checks li.fail .glyph { color: var(--bad); } |
| 710 |
.audit-fail { border-left: 3px solid var(--bad); } |
| 711 |
.audit-warn { border-left: 3px solid var(--warn); } |
| 712 |
.audit-pass { border-left: 3px solid var(--ok); } |
| 713 |
.trust-graph-wrap { overflow-x: auto; } |
| bf5101d3 Andy McCall ↶ |
714 |
svg.trust-graph { max-width: 100%; height: auto; display: block; } |
| 715 |
svg.trust-graph .node .badge { fill: var(--bg); stroke: none; } |
| 716 |
svg.trust-graph .node.pass .badge { fill: color-mix(in srgb, var(--ok) 15%, var(--panel)); } |
| 717 |
svg.trust-graph .node.warn .badge { fill: color-mix(in srgb, var(--warn) 18%, var(--panel)); } |
| 718 |
svg.trust-graph .node.fail .badge { fill: color-mix(in srgb, var(--bad) 15%, var(--panel)); } |
| 719 |
svg.trust-graph .node .lock { fill: var(--ok); stroke: none; } |
| 720 |
svg.trust-graph .node .shackle { fill: none; stroke: var(--ok); stroke-width: 1.6; } |
| 721 |
svg.trust-graph .node.warn .mark { fill: var(--warn); font-weight: 700; font-size: 13px; } |
| 722 |
svg.trust-graph .node.fail .mark { fill: var(--bad); font-weight: 700; font-size: 12px; } |
| 723 |
svg.trust-graph text.t { font-weight: 600; } |
| 724 |
|
| 6ff75554 Andy McCall ↶ |
725 |
ul.plain.trust-summary { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 16px; } |
| 726 |
|
| 727 |
ul.plain.trust-summary li.tb { padding: 5px 14px 5px 12px; gap: 8px; } |
| bf5101d3 Andy McCall ↶ |
728 |
.tb { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); font-size: 13px; font-weight: 500; } |
| 6ff75554 Andy McCall ↶ |
729 |
.tb-sm { padding: 2px 10px; font-size: 12px; vertical-align: middle; } |
| bf5101d3 Andy McCall ↶ |
730 |
.tb-mark { display: inline-flex; font-weight: 700; } |
| 731 |
.tb-pass { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 45%, var(--line)); background: color-mix(in srgb, var(--ok) 8%, transparent); } |
| 732 |
.tb-warn { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 45%, var(--line)); background: color-mix(in srgb, var(--warn) 8%, transparent); } |
| 733 |
.tb-fail { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 45%, var(--line)); background: color-mix(in srgb, var(--bad) 8%, transparent); } |
| df940d75 Andy McCall ↶ |
734 |
svg.trust-graph .edge { fill: none; stroke: var(--line); stroke-width: 1.5; } |
| 735 |
svg.trust-graph .edge.dashed { stroke-dasharray: 5 4; stroke: var(--warn); } |
| 20c36ed9 Andy McCall ↶ |
736 |
|
| 737 |
svg.trust-graph .node { fill: none; stroke: none; stroke-width: 1; } |
| 738 |
svg.trust-graph text { stroke: none; } |
| 739 |
svg.trust-graph .node rect { fill: var(--panel); stroke: var(--line); stroke-width: 1.5; } |
| df940d75 Andy McCall ↶ |
740 |
svg.trust-graph .node.pass rect { stroke: var(--ok); } |
| 741 |
svg.trust-graph .node.warn rect { stroke: var(--warn); } |
| 742 |
svg.trust-graph .node.fail rect { stroke: var(--bad); } |
| 743 |
svg.trust-graph text { font-size: 11px; fill: var(--ink); } |
| 744 |
svg.trust-graph text.s { font-size: 10px; fill: var(--mute); } |
| b6b7e4cf Andy McCall ↶ |
745 |
|
| 746 |
.runner-status { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: 1px 6px; border: 1px solid var(--line); } |
| 747 |
.runner-status.st-online { color: var(--ok); border-color: var(--ok); } |
| 748 |
.runner-status.st-offline { color: var(--mute); } |
| 749 |
.runner-status.st-draining { color: var(--warn); border-color: var(--warn); } |
| 750 |
.runner-status.st-disabled { color: var(--bad); border-color: var(--bad); } |
| 38833ed7 Andy McCall ↶ |
751 |
|
| 752 |
|
| 753 |
|
| 754 |
.kind-issue::before { content: "◇ "; color: var(--warn); } |
| 755 |
.kind-proposal::before { content: "⇄ "; color: var(--acc); } |
| 756 |
p.chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 10px 0 14px; padding: 8px 12px; border: 1px solid var(--line); border-left: 3px solid var(--acc); background: var(--panel); font-size: 13px; } |
| 757 |
.chain-link { display: inline-flex; align-items: baseline; gap: 6px; padding: 2px 8px; border: 1px solid var(--line); background: var(--soft); color: var(--ink); text-decoration: none; } |
| 758 |
a.chain-link:hover { border-color: var(--acc); text-decoration: none; } |
| 759 |
.chain-kind { font-weight: 600; } |
| 760 |
.chain-state { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--mute); } |
| 761 |
.st-open .chain-state, .chain-state.st-open { color: var(--ok); } |
| 762 |
.st-landed .chain-state, .chain-state.st-landed { color: var(--acc); } |
| 763 |
.st-closed .chain-state { color: var(--mute); } |
| 764 |
.chain-arrow { color: var(--acc); font-weight: 700; } |
| 765 |
.chain-and { color: var(--mute); } |
| a1b98695 Andy McCall ↶ |
766 |
|
| 767 |
|
| 768 |
|
| 769 |
.timeline { position: relative; min-width: 0; } |
| 770 |
.timeline::before { content: ""; position: absolute; left: 17px; top: 12px; bottom: 12px; border-left: 2px solid var(--line); z-index: 0; } |
| 771 |
.tl-item { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; margin: 0 0 18px; z-index: 1; } |
| 772 |
.tl-avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--bg); background: var(--panel); } |
| 773 |
.tl-card { min-width: 0; background: var(--panel); border: 1px solid var(--line); } |
| 774 |
.tl-head { padding: 8px 14px; border-bottom: 1px solid var(--line); background: var(--soft); font-size: 13px; color: var(--mute); } |
| 775 |
.tl-head strong { color: var(--ink); } |
| 776 |
.tl-head .tl-edit { float: right; } |
| 777 |
.tl-card article.doc.tl-doc { max-width: none; margin: 0; border: 0; } |
| 778 |
.tl-text { padding: 10px 14px; overflow-wrap: anywhere; } |
| 779 |
.tl-empty { padding: 10px 14px; margin: 0; } |
| 780 |
.tl-card form { padding: 10px 14px; margin: 0; } |
| 781 |
.tl-card textarea { width: 100%; box-sizing: border-box; } |
| 782 |
.tl-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding-top: 0; } |
| 783 |
form.tl-actions { padding: 0 14px 12px; } |
| 784 |
.tl-item.review-approve .tl-card { border-color: var(--ok); } |
| 785 |
.tl-item.review-changes .tl-card { border-color: var(--bad); } |
| 786 |
.tl-event { position: relative; z-index: 1; display: flex; align-items: center; gap: 6px; margin: -6px 0 16px 10px; font-size: 13px; color: var(--mute); } |
| 787 |
.tl-event strong { color: var(--ink); font-weight: 600; } |
| 788 |
.tl-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--soft); border: 2px solid var(--line); flex: none; } |
| 789 |
.tl-mini { width: 18px; height: 18px; border-radius: 50%; } |
| 790 |
.timeline form.card.tl-review { max-width: none; margin-left: 50px; } |
| 791 |
.tl-editbox { margin-left: 50px; } |
| 792 |
.tl-editbox summary { cursor: pointer; font-weight: 600; } |
| 793 |
.tl-editbox input[type=text], .tl-editbox textarea { width: 100%; box-sizing: border-box; } |
| 794 |
.head-edit { margin-left: 8px; vertical-align: middle; } |
| 795 |
aside.side h3 .side-edit { float: right; font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0; } |
| 796 |
.side-picker summary { cursor: pointer; font-size: 12px; color: var(--acc); } |
| 797 |
.side-picker form { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; } |
| 798 |
.side-check { display: flex; align-items: center; gap: 6px; font-size: 13px; } |
| 799 |
.side-picker-inline { display: flex; gap: 6px; align-items: center; margin-top: 4px; } |
| 800 |
.side-picker-inline select { flex: 1; min-width: 0; } |
| 801 |
@media (max-width: 760px) { .timeline::before { display: none; } .tl-item { grid-template-columns: 1fr; } .tl-avatar { display: none; } .timeline form.card.tl-review, .tl-editbox { margin-left: 0; } } |
| cb71e18e Andy McCall ↶ |
802 |
|
| 803 |
|
| 804 |
|
| 805 |
|
| 806 |
form.card.comment-form { max-width: none; } |
| 7f283f8e Andy McCall ↶ |
807 |
|
| 808 |
|
| 809 |
|
| 810 |
.side-sections { display: flex; flex-direction: column; gap: 14px; } |
| cb71e18e Andy McCall ↶ |
811 |
.side-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; } |
| 26d0d091 Andy McCall ↶ |
812 |
|
| 813 |
|
| 814 |
|
| 815 |
|
| 816 |
|
| 817 |
.side-sections .side-sec { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); padding: 0 12px 10px; } |
| 818 |
.side-sections .side-sec > * { grid-column: 1; } |
| a2ef53c5 Andy McCall ↶ |
819 |
|
| 820 |
|
| 821 |
.side-sections .side-sec { min-width: 0; overflow-wrap: anywhere; } |
| 26d0d091 Andy McCall ↶ |
822 |
.side-sections .side-sec > .side-head { display: contents; } |
| 823 |
.side-sections .side-sec > .side-head > h3 { grid-column: 1 / -1; grid-row: 1; margin: 0 -12px 10px; padding: 8px 12px; background: var(--soft); border-bottom: 1px solid var(--line); border-radius: 6px 6px 0 0; } |
| 824 |
.side-sections .side-sec > .side-head > details.menu { grid-column: 2; grid-row: 2; margin-left: 8px; } |
| 7f283f8e Andy McCall ↶ |
825 |
.side-sections .side-sec.side-actions { padding-top: 6px; } |
| cb71e18e Andy McCall ↶ |
826 |
.side-empty, .side-note { margin: 0; font-size: 12px; color: var(--mute); } |
| 827 |
.side-empty button.linkish { font-size: inherit; } |
| 828 |
.side-note { margin-top: 6px; } |
| 829 |
.side-value { margin: 0; font-size: 14px; } |
| 830 |
.side-labels { margin: 0; display: flex; flex-wrap: wrap; gap: 4px; } |
| 831 |
.side-labels .label { margin: 0; } |
| 832 |
.side-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; } |
| 833 |
.side-people a { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 600; font-size: 13px; } |
| 834 |
.side-people img.avatar, .menu-item img.avatar { border-radius: 50%; } |
| 835 |
.side-wide { width: 100%; } |
| 836 |
form.inline { display: inline; margin: 0; } |
| 837 |
details.menu { position: relative; } |
| 838 |
details.menu > summary { list-style: none; cursor: pointer; color: var(--mute); display: inline-flex; padding: 3px; border-radius: 6px; } |
| 839 |
details.menu > summary::-webkit-details-marker { display: none; } |
| 840 |
details.menu > summary:hover, details.menu[open] > summary { color: var(--acc); background: var(--soft); } |
| 841 |
.menu-pop { position: absolute; right: 0; top: 28px; z-index: 30; width: 290px; margin: 0; padding: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); } |
| 842 |
.menu-title { margin: 0; padding: 9px 12px; font-size: 12px; font-weight: 600; color: var(--ink); } |
| 843 |
.menu-filter { display: block; width: calc(100% - 20px); margin: 0 10px 10px; box-sizing: border-box; } |
| 844 |
.menu-list { max-height: 300px; overflow-y: auto; border-top: 1px solid var(--line); } |
| 845 |
aside.side .menu-item { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--line); cursor: pointer; font-size: 13px; font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: 0; } |
| 846 |
aside.side .menu-item:hover { background: var(--soft); } |
| 847 |
.menu-item input { margin: 2px 0 0; flex: none; } |
| 848 |
.menu-name { display: flex; flex-direction: column; gap: 2px; min-width: 0; } |
| 849 |
.menu-name small { color: var(--mute); font-size: 12px; } |
| 850 |
.menu-empty { margin: 0; padding: 10px 12px; font-size: 12px; color: var(--mute); } |
| 851 |
.menu-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 8px 12px; } |
| 852 |
.menu-foot a { margin-right: auto; } |
| 853 |
.swatch { flex: none; width: 12px; height: 12px; margin-top: 3px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); } |
| 854 |
.side-actions form { display: grid; gap: 2px; } |
| 855 |
button.side-action { all: unset; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 13px; font-weight: 600; color: var(--ink); } |
| 856 |
button.side-action span { width: 16px; text-align: center; color: var(--mute); } |
| 857 |
button.side-action:hover { color: var(--acc); } |
| 858 |
button.side-action:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; } |
| 4da8b828 Andy McCall ↶ |
859 |
|
| 860 |
|
| 861 |
.device-done h2 { display: flex; align-items: center; gap: 10px; margin-top: 0; } |
| 862 |
.device-mark { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 16px; color: #fff; } |
| 863 |
.device-done.ok .device-mark { background: var(--ok); } |
| 864 |
.device-done.no .device-mark { background: var(--bad); } |
| 8e96499f Andy McCall ↶ |
865 |
.side-note-inline { font-size: 12px; color: var(--mute); font-weight: 400; } |
| 866 |
.side-list li { margin: 0 0 4px; } |
| 991b5563 Andy McCall ↶ |
867 |
.side-list form.inline { margin-left: 6px; } |
| e1dc108b Andy McCall ↶ |
868 |
.side-assist { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 8px; } |
| 869 |
.side-assist form.inline { display: block; margin: 0; } |
| 155cab14 Andy McCall ↶ |
870 |
.model-row { display: flex; gap: 6px; align-items: center; } |
| 871 |
.model-row input { flex: 1; } |
| 3ea0b8af Andy McCall ↶ |
872 |
|
| 873 |
button.agent-btn { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px 4px 6px; font-size: 11px; line-height: 16px; } |
| 874 |
button.agent-btn img { width: 16px; height: 16px; border-radius: 50%; flex: 0 0 16px; } |
| 875 |
button.agent-btn:hover img { filter: brightness(1.1); } |
| 991b5563 Andy McCall ↶ |
876 |
|
| 877 |
|
| 878 |
.panel form.card { max-width: none; } |
| 879 |
.panel .table + form { margin-top: 12px; } |
| 4f37afcc Andy McCall ↶ |
880 |
|
| 881 |
|
| 882 |
|
| 883 |
|
| 884 |
.head-pencil { color: var(--mute); display: inline-flex; vertical-align: middle; padding: 4px; margin-left: 6px; border-radius: 6px; } |
| 885 |
.head-pencil:hover { color: var(--acc); background: var(--soft); } |
| 886 |
.tl-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; } |
| 887 |
.tl-head .tl-when { color: inherit; } |
| 888 |
.tl-menu > summary.dots { font-weight: 700; letter-spacing: 1px; padding: 0 6px; line-height: 20px; } |
| 889 |
.menu-pop.menu-actions { width: 180px; padding: 6px 0; top: 26px; } |
| 890 |
.menu-actions hr { border: 0; border-top: 1px solid var(--line); margin: 6px 0; } |
| 891 |
.menu-action { all: unset; display: block; box-sizing: border-box; width: 100%; padding: 6px 14px; font-size: 13px; color: var(--ink); cursor: pointer; } |
| 892 |
.menu-action:hover { background: var(--soft); color: var(--ink); } |
| 893 |
.tl-editform { display: none; padding: 12px 14px; } |
| 7d2eb590 Andy McCall ↶ |
894 |
.tl-editform:target, .tl-editform.open { display: block; } |
| 895 |
.tl-card:has(.tl-editform:target) .tl-view, .tl-card:has(.tl-editform.open) .tl-view { display: none; } |
| 4f37afcc Andy McCall ↶ |
896 |
.edit-row { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 10px; margin-bottom: 8px; } |
| 897 |
.edit-row label { margin: 0; font-size: 13px; font-weight: 600; color: var(--ink); text-transform: none; letter-spacing: 0; } |
| 898 |
.tl-editform .tl-actions { margin-top: 10px; align-items: center; } |
| 899 |
.tl-compose { padding: 12px 14px; } |
| 900 |
.tl-card.tl-compose form { padding: 0; } |
| 901 |
form.tl-card.tl-compose { padding: 12px 14px; margin: 0; } |
| 902 |
.tl-compose textarea:not(.md) { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--bg); color: var(--ink); resize: vertical; } |
| 903 |
.compose-title { margin: 0 0 8px; font-weight: 600; font-size: 14px; color: var(--ink); } |
| 904 |
.compose-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 10px; } |
| 905 |
.compose-actions .segmented { margin-right: auto; } |
| 906 |
.compose-note { margin: 10px 0 0; font-size: 12px; color: var(--mute); } |
| 907 |
.segmented { display: inline-flex; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; } |
| 908 |
.segmented label { margin: 0; text-transform: none; letter-spacing: 0; cursor: pointer; } |
| 909 |
.segmented input { position: absolute; opacity: 0; pointer-events: none; } |
| 910 |
.segmented span { display: block; padding: 5px 12px; font-size: 13px; font-weight: 500; color: var(--ink); border-right: 1px solid var(--line); } |
| 911 |
.segmented label:last-child span { border-right: 0; } |
| 912 |
.segmented input:checked + span { background: var(--acc); color: #fff; } |
| 913 |
.segmented input:focus-visible + span { outline: 2px solid var(--acc); outline-offset: -2px; } |
| 914 |
.tl-badge { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: var(--mute); font-size: 15px; } |
| 915 |
.tl-badge.review { background: var(--soft); color: var(--mute); border: 1px solid var(--line); } |
| 916 |
.tl-outcome.landed .tl-badge { background: #8250df; } |
| 917 |
.tl-outcome.closed .tl-badge { background: var(--bad); } |
| 918 |
.outcome-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; } |
| 919 |
.tl-outcome.landed .outcome-card { border-color: #8250df; } |
| 920 |
.outcome-card p { margin: 4px 0 0; color: var(--mute); } |
| 921 |
.outcome-card form { margin: 0; padding: 0; } |
| 922 |
.outcome-card form button { white-space: nowrap; } |
| 9e50caed Andy McCall ↶ |
923 |
|
| 924 |
|
| 925 |
|
| 926 |
|
| 927 |
|
| 928 |
:where(input[type=text], input[type=search], input[type=email], input[type=password], input[type=number], input[type=url], input[type=date], input:not([type]), textarea, select) { |
| 929 |
box-sizing: border-box; font: inherit; font-size: 14px; line-height: 20px; color: var(--ink); |
| 930 |
background-color: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 5px 10px; |
| 931 |
} |
| 932 |
:where(input[type=text], input[type=search], input[type=email], input[type=password], input[type=number], input[type=url], input[type=date], input:not([type]), textarea, select):focus { |
| 933 |
outline: none; border-color: var(--acc); box-shadow: 0 0 0 3px color-mix(in srgb, var(--acc) 22%, transparent); |
| 934 |
} |
| 935 |
:where(input, textarea)::placeholder { color: var(--mute); opacity: 1; } |
| 936 |
select:not([multiple]) { |
| 937 |
appearance: none; -webkit-appearance: none; padding-right: 30px; cursor: pointer; |
| 938 |
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%238592ad' d='M4.4 6.2a.75.75 0 0 1 1.06 0L8 8.74l2.54-2.54a.75.75 0 1 1 1.06 1.06l-3.07 3.07a.75.75 0 0 1-1.06 0L4.4 7.26a.75.75 0 0 1 0-1.06Z'/%3E%3C/svg%3E"); |
| 939 |
background-repeat: no-repeat; background-position: right 8px center; background-size: 16px 16px; |
| 940 |
} |
| 941 |
input[type=checkbox], input[type=radio] { accent-color: var(--acc); } |
| 4866be1c Andy McCall ↶ |
942 |
|
| 943 |
|
| 944 |
form.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 12px; } |
| 945 |
form.filters > select, form.filters > input { width: auto; max-width: 100%; min-width: 0; margin: 0; } |
| 946 |
form.filters > button { margin: 0; align-self: stretch; } |
| 947 |
form.filters > .end { margin-left: auto; } |
| e97500b7 Andy McCall ↶ |
948 |
|
| 949 |
|
| 950 |
.insights-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; } |
| 951 |
.insights-bar form.filters { margin: 0; } |
| 952 |
.insights-links { margin-left: auto; display: flex; flex-wrap: wrap; gap: 14px; } |
| 953 |
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 14px 0; } |
| 954 |
.kpi { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; min-width: 0; } |
| 955 |
.kpi-v { font-size: 28px; font-weight: 600; line-height: 1.15; font-variant-numeric: tabular-nums; } |
| 956 |
.kpi-l { font-size: 13px; } |
| 957 |
.kpi-s { font-size: 12px; color: var(--mute); } |
| 958 |
.kpi-warn { border-color: var(--warn); } |
| 959 |
.kpi-bad { border-color: var(--bad); } |
| 960 |
.chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 12px; margin-bottom: 14px; } |
| 961 |
.chart-card { margin: 0; padding: 10px 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; min-width: 0; } |
| 962 |
.chart-card figcaption { font-weight: 600; margin-bottom: 4px; } |
| 963 |
svg.chart { display: block; width: 100%; height: auto; } |
| 964 |
svg.chart .grid { stroke: var(--line); stroke-width: 1; } |
| 965 |
svg.chart .axis { fill: var(--mute); font-size: 11px; } |
| 966 |
svg.chart .line { fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; } |
| 967 |
svg.chart .dot, svg.chart .bar { fill: currentColor; } |
| 968 |
.s-main { color: var(--acc); } |
| 969 |
.s-warn { color: var(--warn); } |
| 970 |
.s-ok { color: var(--ok); } |
| 971 |
.s-bad { color: var(--bad); } |
| 972 |
.s-mute { color: var(--mute); } |
| 973 |
.legend { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; margin-top: 4px; } |
| 974 |
.legend .key { color: var(--ink); } |
| 975 |
.legend .key::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 2px; background: var(--acc); vertical-align: -1px; } |
| 976 |
.legend .key.s-warn::before { background: var(--warn); } |
| 977 |
.legend .key.s-ok::before { background: var(--ok); } |
| 978 |
.legend .key.s-bad::before { background: var(--bad); } |
| 979 |
.legend .key.s-mute::before { background: var(--mute); } |
| 980 |
|
| 981 |
body.wall > header, body.wall > .band, body.wall > footer, body.wall > .skip { display: none; } |
| 982 |
body.wall main { max-width: none; padding: 18px 28px; } |
| 983 |
body.wall .kpi-v { font-size: 40px; } |
| 984 |
body.wall .kpi-l { font-size: 15px; } |
| 985 |
body.wall .chart-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 560px), 1fr)); } |
| 2a8b6216 Andy McCall ↶ |
986 |
|
| 987 |
details.land-over { margin-top: 10px; } |
| 988 |
details.land-over > summary { cursor: pointer; color: var(--mute); } |
| 989 |
details.land-over form { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; } |
| 4866be1c Andy McCall ↶ |
990 |
|
| 991 |
details.tf-versions { margin-top: 14px; } |
| 992 |
details.tf-versions > summary { cursor: pointer; } |
| 9e50caed Andy McCall ↶ |
993 |
.edit-row input { width: 100%; } |
| 994 |
button.menu-item.menu-pick { all: unset; box-sizing: border-box; width: 100%; display: flex; padding: 8px 12px; border-bottom: 1px solid var(--line); cursor: pointer; font-size: 13px; color: var(--ink); } |
| 995 |
button.menu-item.menu-pick:hover, button.menu-item.menu-pick:focus-visible { background: var(--soft); } |
| 84751769 Andy McCall ↶ |
996 |
|
| 997 |
|
| 998 |
figure.mermaid-diagram { margin: 1em 0; overflow-x: auto; text-align: center; } |
| 999 |
figure.mermaid-diagram svg { max-width: 100%; height: auto; } |
| 554ccacf Andy McCall ↶ |
1000 |
|
| c987c865 Andy McCall ↶ |
1001 |
|
| 1002 |
.cov-good { color: var(--ok); } .cov-fair { color: color-mix(in srgb, var(--ok) 60%, var(--warn)); } .cov-low { color: var(--warn); } .cov-poor { color: var(--bad); } .cov-none { color: var(--mute); } |
| 1003 |
.cov-hero { border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(180deg, var(--soft), var(--panel)); padding: 1.1em 1.3em .4em; margin: 1em 0; overflow: hidden; } |
| 1004 |
.cov-hero-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1em; flex-wrap: wrap; } |
| 1005 |
.cov-hero h1 { margin: 0; font-size: 1.6em; letter-spacing: .01em; } |
| 1006 |
.cov-sub { margin-top: .3em; font-size: .95em; } |
| 1007 |
.cov-score { text-align: right; } |
| 1008 |
.cov-big { font-size: 3.4em; font-weight: 700; line-height: 1; letter-spacing: -.02em; } |
| 1009 |
.cov-change { font-size: .9em; font-weight: 600; } |
| 1010 |
.cov-change.up { color: var(--ok); } .cov-change.down { color: var(--bad); } .cov-change.same { color: var(--mute); font-weight: 400; } |
| 1011 |
.cov-hero-chart { margin: .4em -.6em 0; } |
| 1012 |
.cov-chart { width: 100%; height: auto; display: block; } |
| 1013 |
.cov-chart .grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 2 4; } |
| 1014 |
.cov-chart .axis { font-size: 11px; fill: var(--mute); } |
| 1015 |
.cov-chart .area { stroke: none; } |
| 1016 |
.cov-chart .line { fill: none; stroke-width: 2.2; stroke-linejoin: round; } |
| 1017 |
.cov-chart .area.cov { fill: color-mix(in srgb, var(--ok) 18%, transparent); } .cov-chart .line.cov, .cov-chart .dot.cov { stroke: var(--ok); fill: var(--ok); } |
| 1018 |
.cov-chart .line.cov { fill: none; } |
| 1019 |
.cov-chart .area.relevant { fill: color-mix(in srgb, var(--bad) 14%, transparent); } .cov-chart .line.relevant { stroke: var(--bad); } .cov-chart .dot.relevant { fill: var(--bad); } |
| 1020 |
.cov-chart .area.covered { fill: color-mix(in srgb, var(--ok) 30%, transparent); } .cov-chart .line.covered { stroke: var(--ok); } .cov-chart .dot.covered { fill: var(--ok); } |
| 1021 |
.cov-chart .hit { fill: transparent; } .cov-chart .hit:hover { fill: color-mix(in srgb, var(--acc) 10%, transparent); } |
| 1022 |
.cov-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5em, 1fr)); gap: .6em; margin: 0 0 1em; } |
| 1023 |
.cov-facts > div { border: 1px solid var(--line); border-radius: 8px; padding: .55em .8em; background: var(--panel); } |
| 1024 |
.cov-facts .k { display: block; font-size: .72em; text-transform: uppercase; letter-spacing: .06em; color: var(--mute); } |
| 1025 |
.cov-facts .v { display: block; font-size: 1.25em; font-weight: 600; margin-top: .15em; } |
| 1026 |
.cov-facts .v small { font-size: .7em; font-weight: 400; color: var(--mute); } |
| 1027 |
.cov-badge { vertical-align: middle; } |
| 1028 |
.cov-copy { font-size: .65em; margin-left: .4em; vertical-align: middle; } |
| 1029 |
.cov-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20em, 1fr)); gap: 1em; align-items: start; } |
| 1030 |
.cov-card h3 { font-size: .95em; margin: 1em 0 .4em; } |
| 1031 |
.cov-stats { list-style: none; padding: 0; margin: 0; line-height: 1.8; } |
| 1032 |
.cov-moved, .cov-runs { width: 100%; } |
| 1033 |
.cov-moved td { padding: .15em .3em; } .cov-moved td.num, .cov-files td.num, .cov-files th.num, .cov-runs .num { text-align: right; white-space: nowrap; } |
| 1034 |
.cov-runs tr.on td { background: var(--soft); } |
| 1035 |
.cov-bands { display: grid; gap: .55em; margin-top: .4em; } |
| 1036 |
.cov-band { display: grid; grid-template-columns: 6.5em 1fr 2.5em; align-items: center; gap: .6em; } |
| 1037 |
.cov-band-lbl { font-size: .9em; color: var(--mute); white-space: nowrap; } |
| 1038 |
.cov-band .bar { height: .9em; background: var(--soft); border-radius: 4px; overflow: hidden; } |
| 1039 |
.cov-band .bar > span { display: block; height: 100%; background: currentColor; border-radius: 4px; min-width: 2px; } |
| 1040 |
.cov-band .n { text-align: right; font-weight: 600; } |
| 1041 |
.cov-bar { display: inline-block; width: 8em; height: .7em; background: var(--soft); border-radius: 3px; vertical-align: middle; overflow: hidden; } |
| 554ccacf Andy McCall ↶ |
1042 |
.cov-bar > span { display: block; height: 100%; background: currentColor; } |
| c987c865 Andy McCall ↶ |
1043 |
.cov-key { padding: 0 .4em; border-radius: 3px; font-size: .85em; } |
| 1044 |
.cov-key.relevant { background: color-mix(in srgb, var(--bad) 18%, transparent); } .cov-key.covered { background: color-mix(in srgb, var(--ok) 22%, transparent); } |
| 1045 |
.cov-code tr.cov-hit td.t, .cov-key.cov-hit { background: color-mix(in srgb, var(--ok) 16%, transparent); } |
| 1046 |
.cov-code tr.cov-miss td.t, .cov-key.cov-miss { background: color-mix(in srgb, var(--bad) 16%, transparent); } |
| 36e5a9c1 Andy McCall ↶ |
1047 |
.t-list { list-style: none; padding: 0; margin: 0; line-height: 1.7; overflow-wrap: anywhere; } |
| c987c865 Andy McCall ↶ |
1048 |
.cov-code td.cov-hits { text-align: right; padding: 0 .5em; color: var(--mute); font-size: .85em; white-space: nowrap; user-select: none; } |
| 7b26e611 Andy McCall ↶ |
1049 |
|
| 1050 |
|
| 1051 |
|
| 1052 |
|
| 1053 |
.store { position: relative; display: inline-flex; align-items: center; margin-left: 8px; vertical-align: middle; cursor: pointer; border-radius: 3px; } |
| 1054 |
.store svg { display: block; } |
| 1055 |
.store:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; } |
| 1056 |
.store-card { display: none; position: absolute; top: calc(100% + 8px); left: -6px; z-index: 30; width: max-content; max-width: min(420px, 90vw); background: var(--panel); border: 1px solid var(--line); box-shadow: 0 8px 24px rgba(0, 0, 0, .28); padding: 10px 12px; font-size: 13px; font-weight: 400; line-height: 1.45; white-space: normal; color: var(--ink); cursor: auto; } |
| 1057 |
.store-card::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; } |
| 1058 |
.store:hover .store-card, .store:focus .store-card, .store:focus-within .store-card { display: block; } |
| 1059 |
.store-card strong { display: block; margin-bottom: 4px; } |
| 1060 |
.store-card dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 6px 0 8px; } |
| 1061 |
.store-card dt { color: var(--mute); } |
| 1062 |
.store-card dd { margin: 0; min-width: 0; } |
| 1063 |
.store-card code { word-break: break-all; } |
| 1064 |
|
| 1065 |
|
| 1066 |
|
| 1067 |
.proj-bar { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; } |
| 1068 |
.proj-filter { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; margin: 0; padding: 0 10px; border: 1px solid var(--line); background: var(--panel); color: var(--mute); } |
| 1069 |
.proj-filter:focus-within { border-color: var(--acc); } |
| 1070 |
.proj-filter input { flex: 1; min-width: 0; width: auto; margin: 0; padding: 7px 0; border: 0; background: transparent; color: var(--ink); outline: none; } |
| 1071 |
.proj-new { display: none; max-width: 560px; margin: 0 0 16px; } |
| 1072 |
.proj-new:target, .proj-new.open { display: block; } |
| 1073 |
.proj-new h2 { margin-top: 0; } |
| 1074 |
.proj-new-actions { display: flex; align-items: center; gap: 14px; margin-top: 4px; } |
| 1075 |
.proj-list { border: 1px solid var(--line); background: var(--panel); } |
| 1076 |
.proj-tabs { display: flex; gap: 4px; padding: 8px 12px; background: var(--soft); border-bottom: 1px solid var(--line); } |
| 1077 |
.proj-tabs a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; color: var(--mute); font-size: 14px; } |
| 1078 |
.proj-tabs a:hover { color: var(--ink); text-decoration: none; } |
| 1079 |
.proj-tabs a.on { color: var(--ink); font-weight: 600; } |
| 1080 |
.proj-rows { list-style: none; margin: 0; padding: 0; } |
| 1081 |
.proj-rows li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); } |
| 1082 |
.proj-rows li:last-child { border-bottom: 0; } |
| 1083 |
.proj-rows li:hover { background: var(--soft); } |
| 1084 |
.proj-icon { flex: none; margin-top: 3px; color: var(--mute); } |
| 1085 |
.proj-main { flex: 1; min-width: 0; } |
| 1086 |
.proj-main p { margin: 2px 0 0; } |
| 1087 |
.proj-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } |
| 1088 |
.proj-title .name { font-size: 16px; font-weight: 600; } |
| 1089 |
.proj-title .vis { margin-left: 2px; } |
| 1090 |
.proj-desc { color: var(--ink); font-size: 14px; } |
| 1091 |
.proj-list .empty { border: 0; margin: 0; } |
| c8df33a6 Andy McCall ↶ |
1092 |
|
| 1093 |
|
| f3e5e2bc Andy McCall ↶ |
1094 |
.rep-top h1 { margin-bottom: .2em; } |
| 1095 |
.rep-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(21em, 1fr)); gap: 1em; margin-top: 1.2em; } |
| 1096 |
.rep-card { --tone: var(--mute); position: relative; display: flex; flex-direction: column; gap: .7em; padding: 1.1em 1.2em 1em; border: 1px solid var(--line); border-top: 3px solid var(--tone); border-radius: 12px; |
| 1097 |
background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 9%, var(--panel)), var(--panel) 70%); transition: border-color .15s, transform .15s, box-shadow .15s; } |
| 1098 |
.rep-card:hover { transform: translateY(-1px); box-shadow: 0 6px 18px color-mix(in srgb, var(--tone) 18%, transparent); border-color: color-mix(in srgb, var(--tone) 55%, var(--line)); } |
| 1099 |
.rep-card.rep-good { --tone: var(--ok); } .rep-card.rep-bad { --tone: var(--bad); } .rep-card.rep-neutral { --tone: var(--acc); } |
| 1100 |
.rep-head { display: flex; align-items: center; gap: .7em; } |
| 1101 |
.rep-icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; color: var(--kind); background: color-mix(in srgb, var(--kind) 14%, transparent); } |
| 1102 |
.rep-icon.rep-performance { --kind: var(--acc); } .rep-icon.rep-coverage { --kind: var(--ok); } .rep-icon.rep-tests { --kind: var(--warn); } .rep-icon.rep-custom { --kind: var(--mute); } |
| 1103 |
.rep-name { display: flex; flex-direction: column; min-width: 0; flex: 1; } |
| 1104 |
.rep-link { color: var(--ink); font-weight: 600; font-size: 1.08em; } |
| 1105 |
.rep-link::after { content: ""; position: absolute; inset: 0; border-radius: 12px; } |
| 1106 |
.rep-kindname { color: var(--mute); font-size: .8em; text-transform: uppercase; letter-spacing: .06em; } |
| 1107 |
.rep-badge { flex: none; font-size: .8em; font-weight: 600; padding: .2em .65em; border-radius: 999px; color: var(--tone); background: color-mix(in srgb, var(--tone) 14%, transparent); } |
| 1108 |
.rep-summary { margin: 0; color: var(--ink); } |
| 1109 |
.rep-tiles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5em; } |
| 1110 |
.rep-tiles li { display: flex; flex-direction: column; padding: .5em .65em; border-radius: 8px; background: var(--soft); min-width: 0; } |
| 1111 |
.rep-tiles .v { font-size: 1.15em; font-weight: 600; font-variant-numeric: tabular-nums; } |
| 1112 |
.rep-tiles .v small { font-weight: 400; color: var(--mute); font-size: .7em; } |
| 1113 |
.rep-tiles .k { font-size: .78em; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 1114 |
.rep-tiles li.rep-failing { box-shadow: inset 3px 0 0 var(--bad); } |
| 1115 |
.rep-hero { display: flex; flex-direction: column; gap: .1em; } |
| 1116 |
.rep-big { font-size: 2em; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--tone); line-height: 1.1; } |
| 1117 |
.rep-foot { margin-top: auto; font-size: .82em; color: var(--mute); display: flex; flex-wrap: wrap; align-items: center; gap: .35em; } |
| c8df33a6 Andy McCall ↶ |
1118 |
.rep-kind { text-transform: lowercase; } |
| 1119 |
.rep-performance { color: var(--acc); } .rep-coverage { color: var(--ok); } .rep-tests { color: var(--warn); } .rep-custom { color: var(--mute); } |
| f3e5e2bc Andy McCall ↶ |
1120 |
.rep-delta { font-size: .8em; font-weight: 600; font-variant-numeric: tabular-nums; } |
| c8df33a6 Andy McCall ↶ |
1121 |
.rep-delta.better { color: var(--ok); } .rep-delta.worse { color: var(--bad); } .rep-delta.same { color: var(--mute); } |
| 1122 |
.rep-failing .v, .rep-failing strong { color: var(--bad); } |
| 1123 |
.rep-table { width: 100%; border-collapse: collapse; } |
| 1124 |
.rep-table th, .rep-table td { padding: .45em .6em; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; } |
| 1125 |
.rep-table .num { text-align: right; font-variant-numeric: tabular-nums; } |
| 1126 |
.rep-spark polyline { fill: none; stroke: var(--acc); stroke-width: 1.5; } |
| 1127 |
.rep-spark circle { fill: var(--acc); } |
| 1128 |
.rep-frame-wrap { margin: 1em 0; } |
| f3e5e2bc Andy McCall ↶ |
1129 |
.rep-frame { display: block; width: 100%; height: 70vh; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); } |
| 1130 |
.rep-frame.sized { overflow: hidden; } |
| c8df33a6 Andy McCall ↶ |
1131 |
.rep-context { display: grid; grid-template-columns: max-content 1fr; gap: .3em 1em; margin: 0; } |
| 1132 |
.rep-context dt { color: var(--mute); } |
| 1133 |
.rep-context dd { margin: 0; font-variant-numeric: tabular-nums; } |
| 1134 |
.rep-runs { list-style: none; padding: 0; margin: 0; } |
| 1135 |
.rep-runs li { padding: .25em 0; } |
| 1136 |
.rep-runs li.on a { font-weight: 700; } |
| 95b525b0 Andy McCall ↶ |
1137 |
|
| 1138 |
|
| 1139 |
.rep-timeline { margin: 1em 0; padding: .8em 1em; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); } |
| 1140 |
.rep-tl-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1.2em; margin-bottom: .7em; } |
| 1141 |
.rep-tl-btn { font: inherit; font-weight: 600; padding: .3em .9em; border-radius: 999px; border: 1px solid var(--acc); color: var(--acc); background: transparent; cursor: pointer; } |
| 1142 |
.rep-tl-btn:hover { background: color-mix(in srgb, var(--acc) 12%, transparent); } |
| 1143 |
.rep-tl-keys { margin-left: auto; } |
| 1144 |
.rep-tl-stops { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; } |
| 1145 |
.rep-tl-stops li { flex: 1; min-width: 4px; } |
| 1146 |
.rep-tl-stop { display: block; height: 14px; border-radius: 3px; background: color-mix(in srgb, var(--acc) 22%, var(--soft)); } |
| 1147 |
.rep-tl-stop:hover { background: color-mix(in srgb, var(--acc) 55%, var(--soft)); } |
| 1148 |
.rep-tl-stop.on { background: var(--acc); height: 22px; } |
| 1149 |
.rep-tl-stop.cmp { background: var(--warn); height: 22px; } |
| 1150 |
.rep-tl-ends { display: flex; justify-content: space-between; margin-top: .3em; } |
| 1151 |
.rep-cmp-h { display: flex; align-items: baseline; gap: 1em; font-size: 1.05em; margin: 0 0 .6em; } |
| 1152 |
.rep-frame-wrap.rep-side { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; } |
| 1153 |
.rep-frame-wrap.rep-side > p { grid-column: 1 / -1; } |
| 1154 |
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } |
| 16626c0d Andy McCall ↶ |
1155 |
|
| 1156 |
|
| 03bfb945 Andy McCall ↶ |
1157 |
|
| 1158 |
|
| 1159 |
|
| 19355e22 Andy McCall ↶ |
1160 |
button[aria-busy=true] { opacity: 1; } |
| 16626c0d Andy McCall ↶ |
1161 |
.oxy-spin { display: inline-block; width: 1em; text-align: center; } |
| 1162 |
.oxy-wait-mark { display: none; position: fixed; z-index: 1000; pointer-events: none; padding: 4px 6px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); line-height: 0; } |
| 1163 |
.oxy-wait-mark svg { width: 36px; height: 18px; } |
| 1164 |
.oxy-wait-mark.corner { left: auto !important; top: calc(env(safe-area-inset-top, 0px) + 68px) !important; right: 16px; } |
| 1165 |
.oxy-wait .oxy-wait-mark { display: block; } |
| 1166 |
.oxy-wait header .brand svg circle[r="10"], .oxy-wait-mark svg circle[r="10"] { stroke-dasharray: 44 18.8; animation: oxy-ring .9s linear infinite; } |
| 1167 |
.oxy-wait header .brand svg circle[cx="11"][r="10"], .oxy-wait-mark svg circle[cx="11"][r="10"] { animation-direction: reverse; } |
| 03bfb945 Andy McCall ↶ |
1168 |
.oxy-wait header .brand svg .arm, .oxy-wait-mark svg .arm { animation: oxy-arm .9s ease-in-out infinite alternate; } |
| 1169 |
.oxy-wait header .brand svg .arm + .arm, .oxy-wait-mark svg .arm + .arm { animation-direction: alternate-reverse; } |
| 16626c0d Andy McCall ↶ |
1170 |
@keyframes oxy-ring { to { stroke-dashoffset: -62.8; } } |
| 03bfb945 Andy McCall ↶ |
1171 |
@keyframes oxy-arm { from { transform: translateX(-3px); } to { transform: translateX(3px); } } |
| 16626c0d Andy McCall ↶ |
1172 |
@media (prefers-reduced-motion: reduce) { |
| 1173 |
.oxy-wait header .brand svg circle[r="10"], .oxy-wait-mark svg circle[r="10"] { animation: none; stroke-dasharray: none; } |
| 03bfb945 Andy McCall ↶ |
1174 |
.oxy-wait header .brand svg .arm, .oxy-wait-mark svg .arm { animation: none; } |
| 16626c0d Andy McCall ↶ |
1175 |
} |
| 6ca0b971 Andy McCall ↶ |
1176 |
|
| 1177 |
|
| 1178 |
table.images td { vertical-align: top; } |
| 1179 |
table.images tr.stranded td:first-child { box-shadow: inset 3px 0 0 var(--bad); } |
| 1180 |
.lbl.img-hub { color: var(--acc); border-color: var(--acc); } |
| 1181 |
.lbl.img-holds { color: var(--ok); border-color: var(--ok); } |
| 1182 |
.lbl.img-fetching { color: var(--warn); border-color: var(--warn); } |
| 757195ad Andy McCall ↶ |
1183 |
|
| 1184 |
|
| 1185 |
.df-chip { display: inline-block; font-size: 12px; padding: 1px 8px; border-radius: 10px; border: 1px solid; white-space: nowrap; } |
| 1186 |
.df-green { color: var(--ok); border-color: var(--ok); } |
| 1187 |
.df-amber { color: #b7791f; border-color: #e3a008; background: color-mix(in srgb, #e3a008 12%, transparent); } |
| 1188 |
.df-red { color: var(--bad); border-color: var(--bad); } |
| 1189 |
.df-grey { color: var(--mute); border-color: var(--line); } |
| 1190 |
.df-current { color: var(--acc); border-color: var(--acc); } |
| 1191 |
.df-off { color: var(--dim); border-color: var(--line); border-style: dashed; } |
| 1192 |
.df-key .df-chip { margin-right: 2px; } |
| 1193 |
table.diffusion td { vertical-align: middle; } |
| c9aacc0e Andy McCall ↶ |
1194 |
|
| 1195 |
|
| 1196 |
table.diffusion { table-layout: fixed; width: 100%; min-width: 880px; } |
| 1197 |
table.diffusion td { overflow-wrap: anywhere; } |
| 1198 |
table.diffusion .df-c-repo { width: 26%; } |
| 1199 |
table.diffusion .df-c-pin { width: 10%; } |
| 1200 |
table.diffusion .df-c-behind { width: 7%; } |
| 1201 |
table.diffusion .df-c-pill { width: 17%; } |
| 1202 |
table.diffusion .df-c-bump { width: 16%; } |
| 1203 |
table.diffusion .df-c-landed { width: 14%; } |
| 1204 |
table.diffusion .df-c-follow { width: 10%; } |
| 1205 |
table.diffusion .df-path { display: block; } |
| 73ef9f76 Andy McCall ↶ |
1206 |
|
| 1207 |
|
| 1208 |
|
| 1209 |
.df-pill { display: inline-flex; border-radius: 999px; overflow: hidden; font-size: 12px; line-height: 1.6; vertical-align: middle; box-shadow: inset 0 0 0 1px var(--line); white-space: nowrap; } |
| 1210 |
.df-half { padding: 0 9px; font-weight: 600; } |
| 1211 |
.df-half + .df-half { border-left: 1px solid rgba(255, 255, 255, .55); } |
| 1212 |
.df-half.df-green { background: #1a7f4b; color: #fff; } |
| 1213 |
.df-half.df-amber { background: #e3a008; color: #2b1d00; } |
| 1214 |
.df-half.df-red { background: #c62d47; color: #fff; } |
| 1215 |
.df-half.df-grey { background: var(--soft); color: var(--mute); } |
| c9aacc0e Andy McCall ↶ |
1216 |
.df-half.df-off { background: transparent; color: var(--mute); border-style: solid; border-width: 0; } |
| 1217 |
.df-half + .df-half.df-off { border-left: 1px solid var(--line); } |
| 1218 |
|
| 1219 |
|
| 1220 |
svg.ic { width: 16px; height: 16px; vertical-align: -3px; flex: none; } |
| 1221 |
.band a { display: inline-flex; align-items: center; gap: 6px; } |
| 1222 |
.band a svg.ic { opacity: .8; } |
| 1223 |
table.tree td.g svg.ic { vertical-align: -3px; } |
| 1224 |
table.tree td.g.ic-dir { color: #54aeff; } |
| 1225 |
table.tree td.g.ic-file, table.tree td.g.ic-link { color: var(--mute); } |
| 1226 |
table.tree td.g.ic-sub { color: var(--acc); } |
| 1227 |
|
| 1228 |
|
| 1229 |
.tree-box { margin-top: 4px; } |
| 1230 |
.tree-head { display: flex; align-items: center; gap: 10px; background: var(--soft); border: 1px solid var(--line); border-bottom: 0; border-radius: 6px 6px 0 0; padding: 8px 16px; font-size: 13px; } |
| 1231 |
.tree-head .tree-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 1232 |
.tree-head .tree-title a.t { color: var(--ink); } |
| 1233 |
.tree-head .tree-title a.who { font-weight: 600; color: var(--ink); } |
| 1234 |
.tree-head img.avatar { width: 20px; height: 20px; border-radius: 50%; vertical-align: middle; } |
| 1235 |
.tree-head .tree-meta { display: flex; align-items: center; gap: 12px; white-space: nowrap; color: var(--mute); } |
| 1236 |
.tree-head .tree-meta a { color: var(--mute); } |
| 1237 |
.tree-head .tree-meta a.hist { display: inline-flex; align-items: center; gap: 4px; color: var(--ink); font-weight: 600; } |
| 1238 |
.tree-box .tree-head + table.tree { border-top-left-radius: 0; border-top-right-radius: 0; margin-top: 0; } |
| 1239 |
@media (max-width: 760px) { .tree-head .tree-meta .ago { display: none; } } |
| 1240 |
|
| 1241 |
|
| 1242 |
|
| 1243 |
aside.side.cards { display: flex; flex-direction: column; gap: 14px; } |
| 1244 |
.side-card { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); overflow: hidden; } |
| 1245 |
.side-card > h3 { margin: 0; padding: 8px 12px; background: var(--soft); border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 6px; } |
| 1246 |
.side-card > h3 .more { margin-left: auto; font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; } |
| 1247 |
.side-card > .body { padding: 10px 12px; } |
| 1248 |
.side-card > .body > :first-child { margin-top: 0; } |
| 1249 |
.side-card > .body > :last-child { margin-bottom: 0; } |
| 1250 |
.side-card h4 { margin: 10px 0 4px; font-size: 12px; font-weight: 600; color: var(--mute); } |
| 1251 |
.side-card h4:first-child { margin-top: 0; } |
| 1252 |
ul.contributors li.c { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } |
| 1253 |
ul.contributors li.c > .who { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 1254 |
ul.contributors li.c > .n { margin-left: auto; } |
| 1255 |
ul.df-list { margin: 0; } |
| 1256 |
ul.df-list li { padding: 6px 0; border-top: 1px solid var(--line); } |
| 1257 |
ul.df-list li:first-child { border-top: 0; padding-top: 0; } |
| 1258 |
ul.df-list .df-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 1259 |
ul.df-list .df-line { display: flex; align-items: center; gap: 8px; margin-top: 3px; font-size: 12px; } |
| 1260 |
ul.bookmarks li { display: flex; align-items: center; gap: 6px; } |
| 1261 |
ul.bookmarks li > a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| f8cf54e9 Andy McCall ↶ |
1262 |
|
| 1263 |
|
| 1264 |
|
| 1265 |
|
| 1266 |
.card-box { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); overflow: hidden; margin-bottom: 16px; } |
| 1267 |
.card-box > .card-head { display: flex; align-items: center; gap: 8px; padding: 8px 16px; background: var(--soft); border-bottom: 1px solid var(--line); } |
| 1268 |
.card-box > .card-head h2, .card-box > .card-head h3 { margin: 0; font-size: 14px; font-weight: 600; } |
| 1269 |
.card-box > .card-head .more { margin-left: auto; font-size: 12px; } |
| 1270 |
.card-box > ul.rows, .card-box > ul.feed { border: 0; border-radius: 0; margin: 0; } |
| 1271 |
.card-box > ul.rows li { margin: 0; border: 0; border-top: 1px solid var(--line); } |
| 1272 |
.card-box > ul.rows li:first-child, .card-box > ul.feed li:first-child { border-top: 0; } |
| 1273 |
.card-box > .empty { margin: 0; padding: 12px 16px; } |
| 1274 |
ul.repo-list li { display: flex; align-items: center; gap: 6px; margin: 3px 0; } |
| 1275 |
ul.repo-list li > a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 17ca6cdd Andy McCall ↶ |
1276 |
|
| 1277 |
|
| 1278 |
|
| 1279 |
|
| 1280 |
#backdrop { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; display: block; } |
| 1281 |
html:has(#backdrop) body { background: transparent; } |
| df5c69cb Andy McCall ↶ |
1282 |
.bd-label { position: fixed; z-index: -1; pointer-events: none; transform: translate(-50%, -100%); font-size: 12px; color: var(--mute); opacity: 0; transition: opacity .3s; white-space: nowrap; } |
| 17ca6cdd Andy McCall ↶ |
1283 |
@media (prefers-reduced-motion: reduce) { .bd-label { transition: none; } } |
| 7f283f8e Andy McCall ↶ |
1284 |
|
| 1285 |
|
| 1286 |
a.go.primary, summary.go.primary { background: var(--acc); color: var(--panel); border-color: var(--acc); } |
| 1287 |
a.go.primary:hover, summary.go.primary:hover { filter: brightness(1.1); text-decoration: none; } |
| 1288 |
|
| 1289 |
|
| 1290 |
.side-card.about > h3 .about-counts { display: inline-flex; align-items: center; gap: 12px; color: var(--mute); font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; } |
| 1291 |
.side-card.about > h3 .about-counts > * { display: inline-flex; align-items: center; gap: 4px; color: var(--mute); } |
| 1292 |
.side-card.about > h3 .about-counts svg.ic { width: 14px; height: 14px; vertical-align: 0; } |
| 1293 |
.side-card.about .topics { margin: 10px 0; } |
| 1294 |
.about-actions { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); } |
| 1295 |
.about-actions form { margin: 0; } |
| 1296 |
.about-propose { text-align: center; margin: 10px 0 0; } |
| 1297 |
|
| 1298 |
|
| 1299 |
|
| 1300 |
ul.df-list .df-row { display: flex; align-items: center; gap: 8px; } |
| 1301 |
ul.df-list .df-row .df-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } |
| 1302 |
ul.df-list .df-row .df-pill { flex: none; } |
| 1303 |
ul.df-list .df-sub { display: flex; gap: 10px; margin-top: 2px; font-size: 12px; color: var(--mute); } |
| 61ecbd29 Andy McCall ↶ |
1304 |
|
| 1305 |
|
| 1306 |
|
| 1307 |
|
| 1308 |
.panel { --box-py: 14px; --box-px: 16px; } |
| 1309 |
form.card { --box-py: 18px; --box-px: 20px; } |
| 1310 |
:is(.panel, form.card) > h2:first-child, |
| 1311 |
:is(.panel, form.card) > input[type=hidden]:first-child + h2 { |
| 1312 |
margin: calc(-1 * var(--box-py)) calc(-1 * var(--box-px)) 14px; |
| 1313 |
padding: 10px var(--box-px); |
| 1314 |
background: var(--soft); |
| 1315 |
border-bottom: 1px solid var(--line); |
| 1316 |
font-size: 15px; |
| 1317 |
} |
| 1318 |
|
| 1319 |
|
| 1320 |
.side-sections .side-sec:not(:has(> .side-head)) { padding-top: 10px; } |
| 1321 |
.card-box > ul.card-list { margin: 0; padding: 10px 16px; } |
| 1322 |
.who-card .side-card { margin-top: 14px; } |
| d7d18246 Andy McCall ↶ |
1323 |
|
| 1324 |
|
| 1325 |
.backup-status { display: inline-block; padding: 0 8px; border-radius: 10px; font-size: 12px; font-weight: 600; border: 1px solid; } |
| 1326 |
.backup-status.st-ok { color: var(--ok); } |
| 1327 |
.backup-status.st-partial { color: var(--warn); } |
| 1328 |
.backup-status.st-failed { color: var(--bad); } |
| 1329 |
.backup-status.st-running { color: var(--mute); } |
| 1330 |
.backup-what { max-width: 760px; } |
| 6ae3fa0a Andy McCall ↶ |
1331 |
|
| 1332 |
|
| 1333 |
|
| 1334 |
.tl-event, .tl-event code { overflow-wrap: anywhere; } |
| 1335 |
article.doc :not(pre) > code, .comment :not(pre) > code, .tl-card :not(pre) > code { overflow-wrap: anywhere; } |
| 00ef7b83 Andy McCall ↶ |
1336 |
|
| 1337 |
.card-box > .pad, .card-box .pad { padding: 14px 16px; } |
| 1338 |
.token-rows li { display: flex; align-items: flex-start; gap: 16px; padding: 12px 16px; } |
| 1339 |
.token-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; } |
| 1340 |
.token-scopes { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; } |
| 1341 |
.token-scopes .chip { font-size: 11.5px; padding: 1px 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); } |
| 1342 |
.token-actions { display: flex; gap: 6px; flex-shrink: 0; } |
| 1343 |
button.danger { color: var(--bad); } |
| 1344 |
.agent-pill { font-size: 11px; padding: 1px 7px; border-radius: 10px; background: color-mix(in srgb, var(--acc) 18%, transparent); color: var(--ink); } |
| 8597fb5c Andy McCall ↶ |
1345 |
|
| 1346 |
|
| 1347 |
.sec-form p { margin: 0 0 10px; } |
| 1348 |
.sec-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } |
| 1349 |
.sec-row label { margin: 0; font-weight: 600; } |
| 1350 |
.sec-row input { flex: 0 1 320px; min-width: 0; } |
| 1351 |
.sec-split { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; } |
| 1352 |
.sec-split p { margin: 0; } |
| 1353 |
.card-box > .card-head form.more { margin-left: auto; } |
| 1354 |
.card-box > .sec-foot { margin: 0; border-top: 1px solid var(--line); } |
| 00ef7b83 Andy McCall ↶ |
1355 |
.token-form { display: flex; flex-direction: column; gap: 6px; max-width: 720px; } |
| 1356 |
.token-form .scopes { display: flex; flex-direction: column; gap: 2px; } |
| 1357 |
.token-form button[type=submit] { align-self: flex-start; margin-top: 8px; } |
| 1358 |
.token-form .token-agent { margin-top: 8px; } |
| 1359 |
.token-form .token-hint { margin: 0 0 0 24px; } |
| 1360 |
@media (max-width: 700px) { .token-rows li { flex-direction: column; } } |
| ffb67a81 Andy McCall |
1361 |
|
| 1362 |
form.card.keys-verify { max-width: none; } |
| 1363 |
form.card.backup-form { max-width: none; } |
| 1364 |
|
| 1365 |
.side-sec pre.snippet { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; } |
| 1366 |
|
| 1367 |
details.ref-pick { position: relative; } |
| 1368 |
details.ref-pick > summary { list-style: none; cursor: pointer; } |
| 1369 |
details.ref-pick > summary::-webkit-details-marker { display: none; } |
| 1370 |
.ref-panel { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; min-width: 240px; max-width: min(360px, 90vw); max-height: 60vh; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.15); padding: 8px 0; } |
| 1371 |
.ref-panel p { margin: 4px 12px; } |
| 1372 |
.ref-panel ul { margin: 0; } |
| 1373 |
.ref-panel li a { display: block; padding: 4px 12px; overflow-wrap: anywhere; } |
| 1374 |
.ref-panel li a:hover, .ref-panel li a.on { background: var(--soft); text-decoration: none; } |
| 1375 |
.ref-panel li a.on { font-weight: 600; } |
| 1376 |
|
| 1377 |
|
| 1378 |
.EasyMDEContainer { border: 1px solid var(--line); border-radius: 6px; background: var(--bg); overflow: hidden; } |
| 1379 |
.EasyMDEContainer:focus-within { border-color: var(--acc); box-shadow: 0 0 0 2px color-mix(in srgb, var(--acc) 25%, transparent); } |
| 1380 |
.EasyMDEContainer .editor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: var(--panel); padding: 4px 6px; } |
| 1381 |
.EasyMDEContainer .editor-toolbar i.separator { border-left: 1px solid var(--line); border-right: 0; height: 18px; margin: 0 4px; } |
| 1382 |
.EasyMDEContainer .editor-toolbar button.mde-btn { border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 28px; padding: 0; border-radius: 6px; color: var(--mute); } |
| 1383 |
.EasyMDEContainer .editor-toolbar button.mde-btn.mde-text { width: auto; padding: 0 10px; font-size: 13px; font-weight: 500; color: var(--ink); } |
| 1384 |
.EasyMDEContainer .editor-toolbar button.mde-btn:hover, .EasyMDEContainer .editor-toolbar button.mde-btn.active { background: var(--soft); color: var(--ink); } |
| 1385 |
.EasyMDEContainer .editor-toolbar button.fullscreen { margin-left: auto; } |
| 1386 |
.EasyMDEContainer .editor-toolbar .mde-ico { display: inline-flex; } |
| 1387 |
.EasyMDEContainer .CodeMirror { border: 0; border-radius: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; } |
| 1388 |
.EasyMDEContainer .CodeMirror .CodeMirror-placeholder { color: var(--mute); } |
| 1389 |
.EasyMDEContainer .editor-preview { background: var(--bg); color: var(--ink); } |
| 1390 |
.mde-foot { display: flex; justify-content: space-between; align-items: center; padding: 4px 10px; border-top: 1px solid var(--line); background: var(--panel); } |
| 1391 |
.mde-md { font-weight: 700; border: 1px solid currentColor; border-radius: 3px; padding: 0 3px; font-size: 10px; } |
| 1392 |
.EasyMDEContainer .editor-toolbar.fullscreen, .EasyMDEContainer .CodeMirror-fullscreen, .EasyMDEContainer .editor-preview-active-side { background: var(--bg); } |
| 1393 |
|
| 1394 |
|
| 1395 |
.wiki-top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); } |
| 1396 |
.wiki-title { min-width: 0; } |
| 1397 |
.wiki-title h1 { margin: 0 0 4px; text-wrap: balance; } |
| 1398 |
.wiki-title p { margin: 0; } |
| 1399 |
.wiki-actions { display: flex; gap: 8px; flex-shrink: 0; } |
| 1400 |
article.wiki-doc.card-doc { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); padding: 20px 28px; } |
| 1401 |
.wiki-foot { margin-top: 8px; } |
| 1402 |
.wiki-side-col .side-sec { min-width: 0; } |
| 1403 |
details.wiki-pages > summary { list-style: none; cursor: pointer; } |
| 1404 |
details.wiki-pages > summary::-webkit-details-marker { display: none; } |
| 1405 |
details.wiki-pages > summary h3::before { content: "▸ "; color: var(--mute); } |
| 1406 |
details.wiki-pages[open] > summary h3::before { content: "▾ "; } |
| 1407 |
.wiki-pages ul, .wiki-toc { margin: 0; padding: 6px 12px; } |
| 1408 |
.wiki-pages li a, .wiki-toc li a { display: block; padding: 2px 0; overflow-wrap: anywhere; } |
| 1409 |
.wiki-pages li a.on { font-weight: 600; } |
| 1410 |
.wiki-pages p { margin: 0 12px 8px; } |
| 1411 |
.wiki-toc li.lv2 { padding-left: 12px; } |
| 1412 |
.wiki-toc li.lv3 { padding-left: 24px; font-size: 13px; } |
| 1413 |
.wiki-side-col .clone { display: flex; gap: 6px; padding: 8px 12px; } |
| 1414 |
.wiki-side-col .clone input { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; } |
| 1415 |
.wiki-doc h1[id], .wiki-doc h2[id], .wiki-doc h3[id] { scroll-margin-top: 16px; } |
| 1416 |
.EasyMDEContainer .editor-toolbar button.mde-btn.mde-text, .EasyMDEContainer .editor-toolbar button.mde-btn.mde-text::first-letter { text-transform: none; } |
| addec2bd Andy McCall ↶ |
1417 |
|
| 1418 |
|
| 1419 |
.hash-tip { position: relative; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; cursor: help; border-bottom: 1px dotted currentColor; white-space: nowrap; } |
| 1420 |
.hash-tip::after { content: attr(data-full); position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; width: min(34ch, 80vw); padding: 8px 10px; background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.15); white-space: normal; overflow-wrap: anywhere; word-break: break-all; line-height: 1.45; font-size: 12px; visibility: hidden; opacity: 0; transition: opacity .12s; pointer-events: none; text-transform: none; font-weight: 400; } |
| 1421 |
.hash-tip:hover::after, .hash-tip:focus::after { visibility: visible; opacity: 1; } |
| 810896d4 Andy McCall ↶ |
1422 |
|
| 1423 |
|
| 1424 |
.signin-layout { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; } |
| 1425 |
.signin-layout > form.card { flex: 1 1 320px; margin: 0; } |
| 1426 |
.signin-or { display: flex; flex-direction: column; align-items: center; align-self: stretch; color: var(--mute); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; } |
| 1427 |
.signin-or::before, .signin-or::after { content: ""; flex: 1; width: 1px; background: var(--line); } |
| 1428 |
.signin-or span { padding: 8px 0; } |
| 1429 |
.signin-with { display: flex; flex-direction: column; gap: 10px; flex: 0 1 280px; min-width: 0; } |
| 1430 |
|
| 1431 |
:root .signin-with a.signin-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 16px; border-radius: 4px; color: #fff; font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; } |
| 1432 |
:root .signin-with a.signin-btn svg { flex-shrink: 0; fill: currentColor; } |
| 1433 |
:root .signin-with a.signin-btn:hover, :root .signin-with a.signin-btn:focus-visible { filter: brightness(1.08); text-decoration: none; color: #fff; } |
| 1434 |
:root .signin-with a.signin-btn:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; } |
| 1435 |
:root .signin-with a.signin-btn.gitlab { background: #cf3d1b; } |
| 1436 |
:root .signin-with a.signin-btn.github { background: #24292f; } |
| 1437 |
:root .signin-with a.signin-btn.google { background: #fff; color: #3c4043; border-color: #dadce0; } |
| 1438 |
:root .signin-with a.signin-btn.google:hover, :root .signin-with a.signin-btn.google:focus-visible { color: #3c4043; background: #f8f9fa; filter: none; } |
| 1439 |
@media (max-width: 700px) { |
| 1440 |
.signin-or { flex-direction: row; width: 100%; } |
| 1441 |
.signin-or::before, .signin-or::after { height: 1px; width: auto; } |
| 1442 |
.signin-or span { padding: 0 8px; } |
| 1443 |
.signin-with { flex-basis: 100%; } |
| 1444 |
} |
| 2a0c09c0 Andy McCall ↶ |
1445 |
|
| 1446 |
|
| 1447 |
:root { --pu1: #2f81f7; --pu2: #0fb5c9; --pu3: #2da44e; --pu4: #e3832a; --pu5: #d1453b; --pu6: #c2307a; --pu7: #b08800; --pu8: #8c959f; --pu-agent: #8a63d2; } |
| 1448 |
.pulse-box .card-head { flex-wrap: wrap; row-gap: 6px; } |
| 1449 |
.pulse-total { font-weight: 700; font-variant-numeric: tabular-nums; } |
| 1450 |
.pulse-legend { display: flex; flex-wrap: wrap; gap: 4px; } |
| a2fbad48 Andy McCall ↶ |
1451 |
:root .pulse-legend button.pu-chip { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; font-size: 11.5px; line-height: 1.6; border-radius: 999px; text-transform: none; letter-spacing: 0; font-weight: 500; min-height: 0; } |
| 1452 |
:root .pulse-legend button.pu-chip::first-letter { text-transform: none; } |
| 1453 |
:root .pulse-legend button.pu-chip i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; } |
| 1454 |
:root .pulse-legend button.pu-chip[aria-pressed="true"] { border-color: var(--ink); background: var(--soft); } |
| 2a0c09c0 Andy McCall ↶ |
1455 |
.pulse-stage { position: relative; padding: 8px 12px 4px; } |
| 1456 |
.pulse-stage svg { width: 100%; height: auto; display: block; touch-action: pan-y; } |
| 1457 |
.pulse-stage .pu-axis { font: 10px var(--mono, ui-monospace, monospace); fill: var(--mute); } |
| 1458 |
.pulse-stage .pu-peak { font: 11px var(--mono, ui-monospace, monospace); fill: var(--ink); } |
| 1459 |
.pulse-card { position: absolute; top: 6px; pointer-events: none; opacity: 0; transition: opacity .15s; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; min-width: 170px; font-size: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.15); } |
| 1460 |
.pulse-card b { display: block; margin-bottom: 3px; } |
| 1461 |
.pulse-card .row { display: flex; justify-content: space-between; gap: 14px; color: var(--mute); font-variant-numeric: tabular-nums; } |
| 1462 |
.pulse-card .row span:last-child { color: var(--ink); } |
| 1463 |
.pulse-card .bar { display: flex; height: 5px; border-radius: 3px; overflow: hidden; margin-top: 6px; background: var(--soft); } |
| 1464 |
@keyframes pu-ring { from { r: 4; opacity: .9; } to { r: 15; opacity: 0; } } |
| 1465 |
.pu-ring { animation: pu-ring 2.4s ease-out infinite; } |
| 1466 |
@media (prefers-reduced-motion: reduce) { .pu-ring { animation: none; opacity: 0; } } |
| 166f6e9b Andy McCall |
1467 |
|
| 1468 |
|
| 1469 |
.drop-filebox { margin-bottom: 16px; } |
| 8bf30107 Andy McCall ↶ |
1470 |
|
| 1471 |
|
| 1472 |
.drop-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px 24px; flex-wrap: wrap; margin: 6px 0 14px; padding-bottom: 12px; border-bottom: 2px solid var(--band); border-image: linear-gradient(90deg, var(--acc), var(--acc-2)) 1; } |
| 1473 |
.drop-id { flex: 1 1 320px; min-width: 0; } |
| 1474 |
.drop-id h1 { font-size: 30px; font-weight: 300; color: var(--ink); margin: 0 0 6px; overflow-wrap: anywhere; } |
| 1475 |
.drop-id h1 small { font-size: 13px; color: var(--acc); font-weight: 400; } |
| 1476 |
.drop-id .drop-desc { margin: 0 0 6px; font-size: 15px; } |
| 1477 |
.drop-id p.small { margin: 0; } |
| 1478 |
.drop-actions { display: flex; gap: 8px; align-items: stretch; } |
| 1479 |
.drop-actions form { margin: 0; display: flex; } |
| 1480 |
.drop-actions a.go { display: inline-flex; align-items: center; } |
| 1481 |
.drop-clone { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-size: 13px; } |
| 1482 |
.drop-clone label { color: var(--mute); } |
| 1483 |
.drop-clone input { flex: 0 1 640px; min-width: 0; } |
| 1484 |
.drop-filebox article.doc { max-width: none; margin: 0; border: 0; } |
| 8ac2aa4c Andy McCall ↶ |
1485 |
|
| 1486 |
body.drop-embedded { margin: 0; padding: 8px; } |
| 1487 |
.embed-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin: 0 0 8px; } |
| ca0c443c Andy McCall ↶ |
1488 |
.drop-comment-rows li { align-items: flex-start; } |
| 1489 |
.drop-comment { flex: 1; min-width: 0; } |
| 1490 |
.drop-comment .doc { margin-top: 4px; overflow-wrap: anywhere; } |
| 1491 |
.drop-comment-form textarea { width: 100%; box-sizing: border-box; } |
| 166f6e9b Andy McCall |
1492 |
.drop-file { border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px; margin: 0 0 12px; } |
| 1493 |
.drop-file-actions { display: flex; align-items: flex-end; justify-content: flex-end; } |
| 8501fd58 Andy McCall ↶ |
1494 |
|
| 1495 |
.pol-row, .pol-form { display: flex; flex-wrap: wrap; align-items: end; gap: 6px 14px; margin: 6px 0; } |
| 1496 |
.pol-form > strong { align-self: center; min-width: 8em; } |
| 1497 |
label.pol { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: normal; } |
| 1498 |
label.pol input[type=text], label.pol input[type=number], label.pol select { width: auto; margin: 0; } |
| 1499 |
td .pol-form { flex-wrap: nowrap; gap: 4px 8px; } |
| 1500 |
.update-group h3 small { font-weight: normal; } |