Spaces:
Running
Running
File size: 5,586 Bytes
b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 3327822 b0f3e30 cf879cf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | /* Shared by both Spaces. Kept small and dependency-free on purpose: a demo whose
argument is "this thing needs nothing" should not pull a CSS framework. */
:root {
--ink: #14171a;
--muted: #5b6570;
--line: #e3e7eb;
--good: #0a7d35;
--good-bg: #eaf6ee;
--bad: #b3261e;
--bad-bg: #fdecea;
--accent: #1a4fd6;
--code-bg: #f5f7f9;
}
* { box-sizing: border-box; }
/* `display` on a class beats the `hidden` attribute's UA rule, so hiding the
boot banner by setting `hidden` silently did nothing and it stayed on screen
under the running app. Make the attribute win. */
[hidden] { display: none !important; }
body {
margin: 0;
padding: 0 1.25rem 4rem;
font: 16px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif;
color: var(--ink);
background: #fff;
}
header, main, footer { max-width: 62rem; margin: 0 auto; }
header { padding: 2.5rem 0 1.25rem; border-bottom: 1px solid var(--line); }
h1 { font-size: 2rem; line-height: 1.2; margin: 0 0 .6rem; letter-spacing: -.02em; }
.lede { font-size: 1.12rem; margin: 0 0 .5rem; }
.sub { color: var(--muted); margin: 0; font-size: .95rem; }
.boot {
max-width: 62rem; margin: 2.5rem auto; padding: 1rem 1.25rem;
border: 1px solid var(--line); border-radius: 10px; color: var(--muted);
display: flex; align-items: center; gap: .75rem;
}
.boot.failed { border-color: var(--bad); background: var(--bad-bg); color: var(--bad); }
.boot.failed .spinner { display: none; }
.spinner {
width: 1rem; height: 1rem; border: 2px solid var(--line);
border-top-color: var(--accent); border-radius: 50%;
animation: spin .8s linear infinite; flex: none;
}
@keyframes spin { to { transform: rotate(360deg); } }
.tabs { display: flex; gap: .25rem; margin: 1.5rem 0 0; flex-wrap: wrap; }
.tab {
border: 1px solid var(--line); border-bottom: none; background: #fafbfc;
padding: .55rem 1rem; font: inherit; font-size: .95rem; cursor: pointer;
border-radius: 8px 8px 0 0; color: var(--muted);
}
.tab.active { background: #fff; color: var(--ink); font-weight: 600; }
.panel { display: none; border: 1px solid var(--line); border-radius: 0 8px 8px 8px; padding: 1.5rem; }
.panel.active { display: block; }
.hint { margin: 0 0 1rem; color: var(--muted); font-size: .95rem; }
.row { display: flex; gap: .75rem; flex-wrap: wrap; align-items: flex-end; margin-bottom: 1rem; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
@media (max-width: 720px) { .grid { grid-template-columns: 1fr; } }
label { display: flex; flex-direction: column; gap: .35rem; font-size: .85rem;
font-weight: 600; color: var(--muted); }
label.wide { display: block; margin-bottom: 1rem; max-width: 34rem; }
textarea, input, select {
font: 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
border: 1px solid var(--line); border-radius: 8px; padding: .6rem .7rem;
color: var(--ink); background: #fff; width: 100%;
}
select, input[type="number"] { font-family: inherit; font-size: .95rem; font-weight: 400; }
textarea { resize: vertical; }
.btn {
font: inherit; font-size: .95rem; padding: .55rem 1.1rem; cursor: pointer;
border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink);
}
.btn:hover { border-color: var(--muted); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; }
.btn-warn { border-color: var(--bad); color: var(--bad); }
.out { margin-top: 1.25rem; }
.out:empty { margin-top: 0; }
.verdict {
display: inline-block; font-weight: 700; letter-spacing: .04em;
padding: .4rem .8rem; border-radius: 6px; margin: .5rem 0;
}
.verdict.good, td.good { color: var(--good); background: var(--good-bg); }
.verdict.bad, td.bad { color: var(--bad); background: var(--bad-bg); }
td.good, td.bad { font-weight: 600; }
.reason, .note, .witness { font-size: .95rem; }
.note { color: var(--muted); }
.witness { background: var(--bad-bg); padding: .6rem .8rem; border-radius: 8px; }
.obligations { margin: .5rem 0; padding-left: 1.2rem; font-size: .95rem; }
table { border-collapse: collapse; width: 100%; font-size: .93rem; margin: .5rem 0; }
th, td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--line); }
thead th { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }
table.kv th { width: 8rem; color: var(--muted); font-weight: 600; }
code { background: var(--code-bg); padding: .1rem .3rem; border-radius: 4px;
font: 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
pre { background: var(--code-bg); padding: .9rem 1rem; border-radius: 8px; overflow-x: auto; }
pre code { background: none; padding: 0; }
footer { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line);
color: var(--muted); font-size: .93rem; }
footer a { color: var(--accent); }
/* The mounted package sources are data for the runtime, not content for the
reader. Without this they render as a wall of raw Python before the script
runs -- which is what the previous build showed visitors when it failed. */
py-file { display: none; }
/* Contain long certificate/CVE rows and shrink input tracks on narrow viewports. */
.grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid > label, .row > label { min-width: 0; }
.row > label { flex: 1 1 12rem; }
.out { max-width: 100%; overflow-x: auto; }
.out th, .out td, .reason, .witness, .hint code { overflow-wrap: anywhere; }
select, textarea { max-width: 100%; min-width: 0; }
@media (max-width: 720px) { .grid { grid-template-columns: minmax(0, 1fr); } }
|