/* Layout */ * { margin: 0; padding: 0; box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } body { font-family: var(--font-family); text-rendering: optimizeLegibility; color: var(--body-color); background: var(--body-background); } hr { border: 0; height: 0; border-top: 1px dotted var(--hr-border-color); padding-bottom: 10px; } h1, h2, h3 { color: var(--title-color); } main { padding-left: 3px; padding-right: 3px; margin-bottom: 30px; } a { color: var(--link-color); } a:focus { outline: 0; color: var(--link-focus-color); text-decoration: none; outline: 1px dotted #aaa; } a:hover { color: var(--link-hover-color); text-decoration: none; } .sr-only { border: 0 !important; clip: rect(1px, 1px, 1px, 1px) !important; clip-path: inset(50%) !important; height: 1px !important; overflow: hidden !important; margin: -1px !important; padding: 0 !important; position: absolute !important; width: 1px !important; white-space: nowrap !important; } .skip-to-content-link { --padding-size: 8px; --border-size: 1px; background-color: var(--category-background-color); color: var(--category-color); border: var(--border-size) solid var(--category-border-color); border-radius: 5px; inset-inline-start: 50%; padding: var(--padding-size); position: absolute; transition: translate 0.3s; translate: -50% calc(-100% - calc(var(--padding-size) * 2) - calc(var(--border-size) * 2)); } .skip-to-content-link:focus { translate: -50% 0; } /* Smoother pages transition */ @media not all and (prefers-reduced-motion: reduce) { @view-transition { navigation: auto; } } @media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } } /* Header and main menu */ .header { margin-top: 10px; margin-bottom: 20px; } .header nav { display: flex; align-items: stretch; flex-direction: column; } .header nav .logo svg { padding: 5px; inline-size: 24px; block-size: 24px; } .header nav .logo[aria-expanded="true"] svg { rotate: 180deg; } .header ul.js-menu-show { display: initial; } .header ul:not(.js-menu-show) { display: none; } .header li { cursor: pointer; padding-left: 10px; line-height: 2.1em; font-size: 1.2em; border-bottom: 1px dotted var(--header-list-border-color); } .header li :is(a, .logout-button):hover { color: #888; } .header :is(a, summary, .logout-button) { font-size: 0.9em; color: var(--header-link-color); text-decoration: none; border: none; font-weight: 400; } .header .logout-form { display: inline; } .header .logout-button { background: none; padding: 0; cursor: pointer; font-family: inherit; } .header .active a { color: var(--header-active-link-color); /* Note: Firefox on Windows does not show the link as bold if the value is under 600 */ font-weight: 600; } .header a:focus { color: var(--header-link-focus-color); } /* Page header and footer*/ .page-header { padding-inline: 3px; margin-bottom: 10px; } .page-footer { margin-bottom: 10px; } .page-header h1 { font-weight: 500; border-bottom: 1px dotted var(--page-header-title-border-color); font-size: 1.5rem; } .page-header h1 a { text-decoration: none; color: var(--page-header-title-color); } .page-header h1 a:hover, .page-header h1 a:focus { color: #666; } .page-header li, .page-footer li { list-style-type: none; line-height: 1.8em; white-space: nowrap; } #header-menu .icon, .page-header ul a .icon { margin-bottom: 2px; } .page-header-action-form { display: inline-flex; } :is(.page-button, .page-link) { color: var(--link-color); border: none; background-color: transparent; font-size: 1rem; cursor: pointer; &:is(:hover, :focus) { color: var(--link-hover-color); } } .page-button:active { translate: 1px 1px; } /* Logo */ .logo { text-align: center; display: flex; justify-content: center; } .logo a { color: var(--logo-color); letter-spacing: 1px; display: flex; align-items: center; } .logo a:hover { color: #339966; } .logo a span { color: #339966; } .logo a:hover span { color: var(--logo-hover-color-span); } /* PWA prompt */ #prompt-home-screen { display: none; position: fixed; bottom: 0; right: 0; width: 100%; text-align: center; background: #000; opacity: 85%; } #btn-add-to-home-screen { text-decoration: none; height: 30px; color: #fff; background-color: transparent; border: 0; } #btn-add-to-home-screen:hover { color: red; } /* Notification - "Toast" */ #toast-wrapper { visibility: hidden; opacity: 0; position: fixed; left: 0; bottom: 10%; color: #fff; width: 100%; text-align: center; } #toast-msg { background-color: rgba(0,0,0,0.7); padding-bottom: 4px; padding-left: 4px; padding-right: 5px; border-radius: 5px; } .toast-animate { animation: toastKeyFrames 2s; } @keyframes toastKeyFrames { 0% {visibility: hidden; opacity: 0;} 25% {visibility: visible; opacity: 1; z-index: 9999} 50% {visibility: visible; opacity: 1; z-index: 9999} 75% {visibility: visible; opacity: 1; z-index: 9999} 100% {visibility: hidden; opacity: 0; z-index: 0} } /* Hide the logo when there is not enough space to display menus when using languages more verbose than English */ @media (min-width: 620px) and (max-width: 850px) { .logo { display: none; } } @media (min-width: 850px) { .logo { padding-right: 8px; } } @media (min-width: 620px) { body { margin: auto; max-width: 900px; /* Wide enough to display the logo and the menu one a single row for any languages */ } .header { padding-left: 3px; } .header li { display: inline-block; padding: 0 5px 0 0; line-height: normal; border: none; font-size: 1.0em; } .header nav { flex-direction: row; } .header .logo svg { display: none; } .header ul:not(.js-menu-show), .header ul.js-menu-show { display: revert; } .header :is(a, summary):hover { color: var(--header-link-hover-color); } .page-header li, .page-footer li { display: inline; padding-right: 15px; } .pagination-backward, .pagination-forward { display: flex; } } /* Tables */ table { width: 100%; border-collapse: collapse; } table, th, td { border: 1px solid var(--table-border-color); } th, td { padding: 5px; text-align: left; } td { vertical-align: top; } th { background: var(--table-th-background); color: var(--table-th-color); font-weight: 400; } tr:hover { color: var(--table-tr-hover-color); background-color: var(--table-tr-hover-background-color); } .column-40 { width: 40%; } .column-25 { width: 25%; } .column-20 { width: 20%; } /* Forms */ fieldset { border: 1px dotted #ddd; padding: 8px; margin-bottom: 20px; } legend { font-weight: 500; padding-left: 3px; padding-right: 3px; } label { cursor: pointer; display: block; } .radio-group { line-height: 1.9em; } div.radio-group label { display: inline-block; } select { margin-bottom: 15px; } input[type="search"], input[type="url"], input[type="password"], input[type="text"], input[type="number"] { color: var(--input-color); background: var(--input-background); border: var(--input-border); padding: 3px; line-height: 20px; width: 250px; font-size: 99%; margin-top: 5px; margin-bottom: 10px;; appearance: none; } input[type="search"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="text"]:focus, input[type="number"]:focus { color: var(--input-focus-color); border-color: var(--input-focus-border-color); outline: 0; box-shadow: var(--input-focus-box-shadow); } #form-entries-per-page { max-width: 80px; } input[type="checkbox"] { margin-top: 10px; margin-bottom: 10px; } .search-form { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; } .search-input-row { display: flex; align-items: center; gap: 12px; } .search-input-row input[type="search"] { margin: 0; } .search-input-row .button { margin: 0; } .search-filter { display: inline-flex; align-items: center; gap: 6px; margin: 0; } .search-filter input[type="checkbox"] { margin: 0; } textarea { width: 350px; color: var(--input-color); background: var(--input-background); border: var(--input-border); padding: 3px; margin-bottom: 10px; margin-top: 5px; appearance: none; } textarea:focus { color: var(--input-focus-color); border-color: var(--input-focus-border-color); outline: 0; box-shadow: var(--input-focus-box-shadow); } input::placeholder { color: var(--input-placeholder-color); padding-top: 2px; } /* Rule editor fields (scraper, content/URL rewrite, block/keep filters) are essentially code, so render them monospaced and the same width as the filter textareas. */ input.code-input, textarea.code-input { width: 350px; max-width: 100%; font-family: ui-monospace, Consolas, monospace; /* Match the page's base text size; a bare