/* CSS Reset */ *, *::before, *::after { box-sizing: border-box; /* Include padding and border in element's total width and height */ margin: 0; padding: 0; } /*:root {*/ [data-theme='dark'] { --color-red: #cc0000; --color-bg: white; --color-bg-overlay: rgba(0, 0, 0, 0.4); --color-bg-textfield: #f2f2f2; --color-border: #ddd; --color-shadow: #aaa; --color-focus: #930d17; --color-text-contrast: white; --color-text-main: black; --color-table-header: #f2f2f2; --modal-bg: #fefefe; } /*[data-theme='dark'] {*/ :root { --color-red: #ff4444; --color-bg: #2f2f2f; --color-bg-overlay: rgba(255, 255, 255, 0.1); --color-bg-textfield: #1a1a1a; --color-border: #757575; --color-shadow: #777; --color-focus: #ffa6a6; --color-text-contrast: white; --color-text-main: white; --color-table-header: #444444; --modal-bg: #3e3e3e; /* Shared */ --color-a-default: #137bfc; --color-a-visited: #a44fff; } body, html { margin: 0; padding: 0; height: 100%; font-size: 16px; line-height: 1.5; font-family: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; background-color: var(--color-bg); color: var(--color-text-main); } body { display: flex; flex-direction: column; } /* Topbar */ .topbar { background-color: var(--color-red); color: var(--color-text-contrast); padding: 10px; display: flex; justify-content: space-between; align-items: center; } .topbar-logo { font-weight: bold; font-size: 18px; } @media screen and (max-width: 450px) { .topbar-nav-container { display: flex; align-items: stretch; flex-direction: column; gap: 4px; list-style-type: none; } } .topbar-nav-button { background-color: var(--color-red); color: var(--color-text-contrast); border: none; padding: 5px 10px; margin-left: 10px; cursor: pointer; text-decoration: none; display: inline-block; } .topbar-nav-container li { display: inline-block; } /* Main */ .main-container { max-width: 1000px; width: calc(100% - 40px); /* Ensures horizontal margins 20px */ margin-block: 20px; /* Vertical margins */ background-color: var(--color-bg); border: 2px solid var(--color-red); padding: 20px; display: flex; flex-direction: column; flex: 1; /* Grow and take up available space in parent */ overflow: hidden; /* Clips not fitting content */ align-self: center; /* Center horizontally */ } @media screen and (max-width: 450px) { .main-container { width: calc(100% - 10px); /* Ensures horizontal margins 5px */ margin-block: 5px; } } .main-header { color: var(--color-red); margin-top: 0; } .main-container-content { width: 100%; margin-top: 20px; flex: 1; /* Grow and take up available space in parent (main-container) */ overflow-y: auto; /* Enable vertical scrolling if content not fits */ padding: 10px; display: flex; flex-direction: column; gap: 10px; } .main-bottom-button { background-color: var(--color-red); color: var(--color-text-contrast); border: none; padding: 10px 20px; font-size: 16px; cursor: pointer; display: block; width: 100%; } /* Base tags */ th, td { border: 1px solid var(--color-border); padding: 8px; text-align: left; } th { background-color: var(--color-table-header); } table { width: 100%; } input { background-color: var(--color-bg-textfield); border: 1px solid var(--color-border); padding: 5px; color: var(--color-text-main); } select { padding: 5px; background-color: var(--color-bg); border: 1px solid var(--color-border); color: var(--color-text-main); } a { color: var(--color-a-default); } a:visited { color: var(--color-a-visited); } h1, h2, h3, h4, h5, h6 { line-height: 1.2; margin-bottom: 0.5em; } p { margin-bottom: 1em; } /* Certs */ .certs-actions-td { display: flex; gap: 5px; } @media screen and (max-width: 450px) { /* Stack buttons vertically */ .certs-actions-td { flex-direction: column; align-items: stretch; } } @media screen and (min-width: 451px) and (max-width: 600px) { .certs-actions-td { /* Needs to be duplicated */ flex-direction: column; align-items: center; } .certs-actions-td button { width: 70%; } } /* Logs */ .logs-filters-container { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; width: 80%; } .logs-filters-item { display: flex; gap: 5px; flex-direction: row; align-items: center; } .logs-filters-fieldset { display: flex; align-items: center; /* Centers legend vertically in fieldset */ padding-block: 5px; padding-left: 30px; margin-left: 50px; position: relative; } .logs-filters-legend { position: absolute; left: -40px; background-color: var(--color-bg); } /* Modal */ .modal { /* Lays 100% over the whole page */ display: none; /* Initially hidden */ position: fixed; /* Stay in place relive to the browser window */ z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; /* Scroll if needed */ background-color: var(--color-bg-overlay); /* slightly shaded background */ } .modal-content { background-color: var(--modal-bg); margin-inline: auto; /* Horizontally */ margin-block: 15%; /* Vertically */ padding: 20px; border: 1px solid var(--color-border); width: 80%; max-width: 600px; display: flex; flex-direction: column; gap: 10px; } .modal-close { color: var(--color-shadow); float: right; /* Positioned at the right relative to the modal-content */ font-size: 28px; font-weight: bold; cursor: pointer; } .modal-cert-form { display: flex; flex-direction: column; gap: 5px; } .modal button { background-color: var(--color-red); color: var(--color-text-contrast); border: none; padding-inline: 20px; /* Horizontal */ padding-block: 10px; /* Vertical */ cursor: pointer; } .modal pre { display: none; background-color: var(--color-bg-textfield); padding: 10px; border: 1px solid var(--color-border); overflow-x: auto; /* Horizontal scrolling if needed */ font-size: 14px; } .modal-logs { background-color: var(--color-bg-textfield); border: 1px solid var(--color-border); padding: 10px; min-height: 200px; overflow-y: auto; font-family: monospace; font-size: 14px; } .modal-logs h3 { margin-top: 0; } /* Generic */ .small-button { background-color: var(--color-red); color: var(--color-text-contrast); border: none; padding: 5px 10px; margin-right: 5px; cursor: pointer; }