@charset "UTF-8"; :root { --primary-color: #000; --primary-background: #ddd; --header-background: var(--soft-color); --header-color: #ccc; --input-background: #fff; --input-color: #000; --primary-color: #000; --soft-color: #146; --accent-color: #f80; --transition-time: 0.2s; /* The following are overridden by responsive layouts */ --root-font-size: 1rem; --header-font-size: 1rem; --header-height: 4rem; } @media (prefers-color-scheme: dark) { :root { --primary-color: #ddd; --primary-background: var(--soft-color); --header-background: #000; --header-color: #ccc; --input-background: var(--soft-color); --input-color: #ddd; } } @media screen and (max-width: 600px) { .size, .modified, .summary { display: none; } } @media screen and (min-width: 1000px) { :root { --root-font-size: calc(8px + 8 * 100vw / 1000); } } @media screen and (min-width: 2000px) { :root { --root-font-size: 1.5rem; } } /* Low (landscape) screens: smaller header */ @media screen and (max-height: 600px) { :root { --header-font-size: calc(10px + 10 * 100vh / 600); /* 20px at 600px height */ --root-font-size: 0.8rem; --header-height: 2rem; } header .breadcrumb > * { padding-top: calc(8 + 8 * 100vh / 600) !important; padding-bottom: calc(8 + 8 * 100vh / 600) !important; } } @media screen and (max-height: 300px) { :root { --header-font-size: 15px; /* Don't go smaller than this, no benefit */ --header-height: calc(1.75 * 16px); --root-font-size: 0.6rem; } header .breadcrumb > * { padding-top: 14px !important; padding-bottom: 14px !important; } } @media screen and (orientation: landscape) and (min-width: 700px) { /* Breadcrumbs and buttons side by side */ :root { --header-font-size: calc(8px + 8 * 100vh / 600); /* 16px (1rem nominal) at 600px height */ } header { display: flex; justify-content: space-between; } header .headermain { order: 1; } header .breadcrumb { align-self: stretch; } header .action-button { width: 2em; height: 2em; } } @media print { :root { --primary-color: black; --primary-background: none; --header-background: none; --header-color: black; } nav, .menu, .rename-button { display: none !important; } .breadcrumb > a { color: black !important; background: none !important; padding: 0 !important; margin: 0 !important; clip-path: none !important; max-width: none !important; } .breadcrumb > a::after { content: '/'; } .breadcrumb svg { fill: black !important; } main { height: auto !important; padding-bottom: 0 !important; } thead tr { font-size: 1rem !important; position: static !important; background: none !important; border-bottom: 1pt solid black !important; } .selection { min-width: 0 !important; padding: 0 !important; } .selection input { display: none; } .selection input:checked { display: inherit; } tbody .selection input:checked { opacity: 1 !important; transform: scale(0.5); left: 0; } } * { box-sizing: border-box; } html { font-size: var(--root-font-size); overflow: hidden; } main { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } body { background-color: var(--primary-background); font-size: 1rem; font-family: 'Roboto'; color: var(--primary-color); margin: 0; } tbody .size, tbody .modified { font-family: 'Roboto Mono'; } header { background-color: var(--header-background); color: var(--header-color); font-size: var(--header-font-size); } main { height: 100%; } ::selection { color: #000; background: yellow !important; } button { font: inherit; color: inherit; margin: 0; border: 0; padding: 0; background: none; cursor: pointer; min-width: 1rem; min-height: 1rem; } input { margin: 0; } :focus { outline: none; } a:link, a:visited, a:active, a:hover { color: var(--primary-color); text-decoration: none; } table { border-collapse: collapse; border-spacing: 0; border: 0; gap: 0; } #app { height: 100%; display: flex; flex-direction: column; } header nav.headermain { /* Position so that tooltips can appear on top of other positioned elements */ position: relative; z-index: 100; } main { height: calc(100svh - var(--header-height)); padding-bottom: 3em; /* convenience space on the bottom */ overflow-y: scroll; } .spacer { flex-grow: 1 } .smallgap { flex-shrink: 1; width: 2em } [data-tooltip]:hover:after { z-index: 101; content: attr(data-tooltip); position: absolute; font-size: 1rem; text-align: center; padding: .5rem 1rem; border-radius: 3rem 0 3rem 0; box-shadow: 0 0 1rem var(--accent-color); transform: translate(calc(1rem + -50%), 150%); background-color: var(--accent-color); color: var(--primary-color); white-space: pre; animation: appearbriefly calc(10 * var(--transition-time)) linear forwards; } .modified [data-tooltip]:hover:after { transform: translate(calc(1rem + 1ex + -100%), calc(-1.5rem + 100%)); } @keyframes appearbriefly { from { opacity: 0; } 30% { opacity: 0; } 40% { opacity: 1; } 90% { opacity: 1; } to { opacity: 0; } } .error-message { padding: .5em; font-weight: bold; background: var(--accent-color); color: #000; }