html, body { display: flex; flex-direction: column; height: 100%; } body { background-color: #dee3e7; color: black; font-family: sans-serif; margin: 0; padding: 0; text-align: center; display: flex; flex-direction: column; } dialog { box-shadow: 0 0 6px 0 #444; max-width: 600px; min-width: 60%; text-align: left; padding: 0; } dialog[open] { display: flex; flex-direction: column; } dialog.big { max-width: 100vw; width: 100vw; height: 100vh; max-height: 100dvh; border: none; margin: 0; } fieldset { font-family: sans-serif; display: grid; grid-template-columns: repeat(auto-fit, 180px); grid-auto-rows: 1fr; gap: 1em; padding: 0; text-align: center; justify-content: center; border: 0; } footer { font-size: smaller; } footer span { display: inline-block; } a { color: black; } nav ul li a { display: block; padding: 0.5em 1em; user-select: none; text-decoration: none; font-size: small; } a:focus { background-color: black; color: white; outline: 1px solid black; } nav ul li a:hover { background-color: #efefef; color: black; cursor: pointer; border: 0; outline: 0; } nav ul li a.selected { background-color: #c4cdd4; color: black; outline: 0; } #sidebar-toggler-button { height: 2em; width: 2em; text-align: center; display: inline-grid; place-items: center; margin-left: 1em; padding: 0; } .userinfo { padding-right: 1em; font-size: small; } .userinfo svg, .userinfo span { vertical-align: middle; } nav { left: -250px; } nav.topbar { display: flex; flex-direction: row; place-content: end; border-radius: .5em; padding-right: 1em; padding-left: 1em; flex-grow: 1; } nav.sidebar { background-color: white; position: fixed; width: 180px; height: 100dvh; top: 0; transition: left 0.5s ease, visibility 0.5s ease; box-shadow: 0 0 10px 0 #444; z-index: -1; flex-direction: column; display: flex; visibility: hidden; } nav.sidebar.shown { visibility: visible; left: 0; } .sidebar #navigation-links { padding-top: 4em; flex-grow: 1; } #supplemental-links { flex-grow: 0; } h1 { display: inline; font-size: small; padding-left: .5em; flex-grow: 1; margin: 0; } dialog h1 { padding-left: 0; } nav ul { margin: 0; padding: 0; } nav.topbar ul { display: inline-block; } nav.topbar ul li { display: inline-block; font-size: small; } nav.topbar ul li a { border-radius: .5em; } nav.sidebar ul li { list-style: none; text-align: left; border-bottom: 1px solid #ccc; } table { background-color: white; border-collapse: collapse; width: 100%; } th, td { border-top: 1px solid #efefef; text-align: left; padding: 0.6em; } th:first-child { width: 5%; } tr:hover td { background-color: beige; } legend { font-family: sans-serif; padding-top: 1em; text-align: center; width: 100%; padding-bottom: 1em; font-weight: bold; } span.icon { display: block; font-size: 3em; } span.icon img { width: 1em; } .action-header { display: flex; align-items: center; } .action-header span.icon, tr.log-row span.icon { display: inline-block; padding-right: 0.2em; vertical-align: middle; } .error { background-color: salmon; color: black; } .title.temporary-status-message { color: gray; } h2 { display: inline-block; font-size: 1em; margin-top: 0; flex-grow: 1; } div.entity h2 { grid-column: 1 / span all; } details { display: inline-block; flex-grow: 1; } /* General Buttons */ button { transition: none; font-weight: bold; border-radius: .7em; box-shadow: none; font-size: 1em; padding: 0.6em 1em; border: 1px solid #ccc; font-family: sans-serif; color: black; text-align: center; background-color: white; user-select: none; } button.directory { font-size: .85em; font-weight: normal; flex-grow: 1; width: 100%; z-index: 1; padding: 1em; box-shadow: 0 0 6px 0 #aaa; transition: background-color 1s ease, color .3s ease; } action-button { display: flex; flex-direction: column; } action-button button { font-size: .85em; font-weight: normal; flex-grow: 1; width: 100%; z-index: 1; padding: 1em; box-shadow: 0 0 6px 0 #aaa; transition: background-color 1s ease, color .3s ease; } execution-button button { margin-top: 0.2em; margin-bottom: 0.2em; } button:focus { outline: 1px solid black; } button:hover { background-color: #ececec; color: black; cursor: pointer; } button:disabled { color: #3c3c3c; background-color: #cecece; cursor: not-allowed; text-decoration: line-through; } button[name="cancel"]:hover { background-color: salmon; color: black; } button[name="start"]:hover { background-color: #aceaac; color: black; } action-button button:hover { box-shadow: 0 0 10px 0 #666; } span.title { display: inline; } action-button details { flex-grow: 1; } action-button details[open] { margin-top: 0; } action-button details summary div { display: inline-flex; } action-button details summary div span:first-child { flex-grow: 1; } .action-button-footer { text-align: left; font-size: smaller; overflow: auto; } execution-button { display: inline-block; margin-right: .2em; margin-left: .2em; margin-top: .2em; } .action-status { padding: .4em; border-radius: .4em; } .action-failed { background-color: #e78284; } .action-success { background-color: #a6d189; color: black; } .action-nonzero-exit { background-color: #ef9f76; color: black; } .action-timeout { background-color: #99d1db; color: black; } .action-blocked { background-color: #ca9ee6; color: black; } img.logo { width: 1em; height: 1em; vertical-align: middle; } main { padding: 1em; padding-top: 3.5em; flex-grow: 1; } summary { cursor: pointer; } form div.wrapper { background-color: white; text-align: left; } label { text-align: right; display: inline-block; } header { text-align: left; display: flex; flex-direction: row; z-index: 3; align-items: center; padding-bottom: .2em; padding-top: 1em; position: fixed; background-color: #dee3e7; width: 100vw; } input { font-family: sans-serif; padding: 0.6em; border: 1px solid #ccc; border-radius: .4em; } input:invalid { outline: 2px solid red; } input[type="checkbox"] { justify-self: baseline; } form .wrapper span.icon { display: inline-block; vertical-align: middle; } div.arguments { display: grid; grid-template-columns: max-content auto auto; /* We don't want the label or the description to wrap, and the input to take up the rest of the space */ grid-template-rows: auto; gap: 1em; align-items: center; } p.argument-wrapper { display: flex; } div.buttons { display: flex; justify-content: end; gap: 1em; } input.invalid { background-color: salmon; } #available-version { background-color: #aceaac; padding: 0.2em; border-radius: 1em; } span.tag { border-radius: 0.4em; margin-top: .2em; margin-right: .2em; display: inline-block; background-color: lightgray; padding: .4em; color: black; } span.annotation { display: inline-block; margin-top: .2em; margin-right: .2em; } span.annotation-key { padding: 0.4em; border-radius: 0.4em 0 0 .4em; display: inline-block; background-color: lightgray; color: #666; } span.annotation-value { padding: 0.4em; border-radius: 0 .4em .4em 0; display: inline-block; background-color: lightgray; color: black; } .box-shadow { box-shadow: 0 0 5px 0 #444; background-color: #fff; text-align: left; } .border-radius { border-radius: .7em; } .box-shadow p { padding: .6em; margin: 0; } div.toolbar { padding: .4em; text-align: left; background-color: #fff; display: flex; flex-direction: row; } div.display { border: 1px solid #666; box-shadow: 0 0 6px 0 #aaa; border-radius: .7em; display: flex; align-items: center; place-content: center center; flex-direction: column; font-size: small; } #execution-dialog-xterm { flex-grow: 1; } .padded-content { padding: 1em; } .padded-content-sides { padding-left: 1em; padding-right: 1em; } .ta-left { text-align: left; } .xterm { padding: 1em; } .flex-col { display: flex; flex-direction: column; } label.input-with-icons { border: 1px solid #ccc; display: flex; flex-direction: row; align-items: center; } label.input-with-icons input { border: 0; padding: .6em; flex-grow: 1; } label.input-with-icons svg { font-size: 1.5em; } label.input-with-icons button { border: 0; background-color: transparent; padding-top: 0; padding-bottom: 0; box-shadow: none; transition: color .3s ease; } .sm-side-icons action-button button { display: flex; flex-direction: row; align-items: center; } .sm-imageicons-fullwidth action-button button .icon img { width: 100%; } label.input-with-icons button:disabled { display: none; } #content-login hr { border: 0; border-top: 1px dashed #ccc; } #content-login button { width: 100%; grid-column: 1 / span 3; margin-bottom: 1em; } #content-login button:last-child { margin-bottom: 0; } #content-login ul { list-style: none; padding: 0; } #content-login form { width: auto; place-self: center; } .oauth2-icon { font-size: 1.8em; vertical-align: middle; } @media screen and (width <= 600px) { fieldset { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } label { text-align: left; margin-bottom: .6em; font-weight: bold; } p.argument-wrapper { flex-direction: column; } div.arguments { grid-template-columns: auto; } dialog { border-left: 0; border-right: 0; margin-left: 0; margin-right: 0; width: 100vw; max-width: 100vw; } .xterm { margin-left: 0; margin-right: 0; width: fit-content; } } @media (prefers-color-scheme: dark) { body, header { background-color: #333; color: white; } .box-shadow { box-shadow: 0 0 6px 0 #625c5c; background-color: #222; } dialog { background-color: #222; color: white; } form div.wrapper { background-color: #222; } label.input-with-icons { border: 1px solid #666; background-color: #383838; } input { background-color: #383838; color: white; border: 1px solid #666; } button { border: 1px solid #666; background-color: #222; color: white; } action-button button { box-shadow: 0 0 6px 0 #444; } button:focus { outline: 2px solid #72B7F4; } button:disabled { background-color: black; } button:hover { background-color: #444; color: white; } footer { color: #bbb; } a, a:visited { color: #bbb; } a:focus { background-color: #72B7F4; color: black; outline: 1px solid #72B7F4; } nav.sidebar { background-color: #111; color: white; } nav.sidebar ul li { border-bottom: 1px solid #3e3e3e; } nav ul li a:hover { background-color: #1b5988; color: white; } nav ul li a.selected { background-color: #0c3351; color: white; } table, td, th { border-top: 1px solid gray; } td, tr { background-color: #222; color: white; } tr:hover td { background-color: #1b5988; } div.toolbar { background-color: black; } div.display { box-shadow: 0 0 6px 0 #444; } }