Raw
  1:root {
  2  --fg: #1d1f21;
  3  --bg: #ffffff;
  4  --muted: #5c6166;
  5  --rule: #d6d9dc;
  6  --accent: #1f5fbf;
  7  --danger: #b3261e;
  8  --font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  9  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
 10  color-scheme: light dark;
 11}
 12
 13@media (prefers-color-scheme: dark) {
 14  :root {
 15    --fg: #e4e6e8;
 16    --bg: #15171a;
 17    --muted: #9aa0a6;
 18    --rule: #34383d;
 19    --accent: #8ab4ff;
 20    --danger: #ff8a80;
 21  }
 22}
 23
 24*, *::before, *::after { box-sizing: border-box; }
 25
 26body {
 27  margin: 0;
 28  padding: 2rem 1.25rem 3rem;
 29  background: var(--bg);
 30  color: var(--fg);
 31  font: 1rem/1.5 var(--font-ui);
 32}
 33
 34main { max-width: 42rem; }
 35body.wide main { max-width: 72rem; }
 36body.wide form:not(.toolbar) { max-width: 42rem; }
 37body.narrow main { max-width: 22rem; margin: 3rem auto 0; }
 38
 39h1 { font-size: 1.5rem; font-weight: 600; line-height: 1.25; margin: 0 0 1rem; }
 40h2 { font-size: 1.125rem; font-weight: 600; margin: 2rem 0 0.75rem; }
 41p { margin: 0 0 1rem; }
 42small, .small { font-size: 0.875rem; color: var(--muted); }
 43
 44a { color: var(--accent); text-underline-offset: 0.15em; }
 45
 46code, .ident { font-family: var(--font-mono); font-size: 0.95em; overflow-wrap: anywhere; }
 47
 48hr { border: 0; border-top: 1px solid var(--rule); margin: 1.5rem 0; }
 49
 50label { display: block; margin: 1rem 0 0.25rem; }
 51
 52input, select, textarea {
 53  width: 100%;
 54  padding: 0.5rem 0.625rem;
 55  font: inherit;
 56  color: var(--fg);
 57  background: var(--bg);
 58  border: 1px solid var(--rule);
 59  border-radius: 3px;
 60}
 61
 62input.ident, select.ident { font-family: var(--font-mono); }
 63
 64:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
 65
 66button {
 67  font: inherit;
 68  padding: 0.5rem 1rem;
 69  color: var(--fg);
 70  background: var(--bg);
 71  border: 1px solid var(--rule);
 72  border-radius: 3px;
 73  cursor: pointer;
 74}
 75
 76button.primary { color: var(--bg); background: var(--accent); border-color: var(--accent); }
 77button.destructive { color: var(--bg); background: var(--danger); border-color: var(--danger); }
 78button:disabled { opacity: 0.6; cursor: default; }
 79
 80.actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.5rem; }
 81body.narrow .actions button { width: 100%; }
 82
 83.flash { margin: 0 0 1.5rem; padding: 0.5rem 0.75rem; border-left: 3px solid var(--accent); }
 84.flash.warning { border-left-color: var(--danger); }
 85
 86table { width: 100%; border-collapse: collapse; }
 87@media (max-width: 40rem) { table { display: block; overflow-x: auto; } }
 88th { position: sticky; top: 0; background: var(--bg); text-align: left; font-weight: 600; border-bottom: 1px solid var(--rule); }
 89th, td { padding: 0.375rem 0.5rem; vertical-align: top; }
 90td { border-bottom: 1px solid var(--rule); }
 91
 92.badge { font-family: var(--font-mono); font-size: 0.875rem; padding: 0 0.375rem; border: 1px solid var(--rule); border-radius: 3px; }
 93
 94nav a + a { margin-left: 1rem; }
 95li form, td form { display: inline; }
 96
 97.secret { display: block; margin: 0.5rem 0; padding: 0.75rem; border: 1px solid var(--rule); user-select: all; }
 98pre.secret { white-space: pre-wrap; overflow-wrap: anywhere; }
 99.meta { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
100.bar { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: baseline; justify-content: space-between; }
101.bar h1, .bar p { margin: 0; }
102h1 + .toolbar, .bar + .toolbar { margin-top: 1rem; }
103.toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; margin-bottom: 1rem; }
104.toolbar label { margin: 0; }
105.toolbar input { width: auto; flex: 1 1 12rem; max-width: 24rem; }
106.toolbar p { margin: 0 0 0 auto; }
107.sessions dl, .ssh-keys dl { display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; margin: 0; padding: 0.5rem 0; border-bottom: 1px solid var(--rule); }
108.sessions dd, .ssh-keys dd { grid-column: 1; margin: 0; font-size: 0.875rem; color: var(--muted); }
109.sessions dd:last-child, .ssh-keys dd:last-child { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
110
111.icon { width: 1em; height: 1em; vertical-align: -0.125em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
112
113.skip { position: absolute; left: -100vw; }
114.skip:focus { position: static; display: inline-block; margin-bottom: 1rem; }
115
116[hidden] { display: none; }
117.qr { display: block; width: 100%; max-width: 16rem; height: auto; margin: 1rem 0; }