a[target="_blank"]::after {
  content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);
  margin: 0 3px 0 5px;
}

.text-justify {text-align: justify;}

menu a.nav-link, menu a.nav-link:hover, menu a.nav-link:visited {color: var(--bs-nav-tabs-link-active-color);}
menu a.nav-link:hover {background-color: #f0f0f0;}

table.sso_user_table {margin: 0 auto;}

img.spsostrov-logo {display: block; margin: 5em auto; max-width: 70%;}

div.adminer-frame {margin-top: .5em; width: 100%; height: 50vh; border-top: 2px solid black; position: relative; overflow: hidden;}
div.adminer-frame > iframe {width: 100%; height: 100%; margin: 0; padding: 0;}
div.adminer-link {padding: .5em 1em; float: right;}

table.thin-headings th {width: 1em;}

span.student-class-pattern .sg {font-weight: bold; color: #006;}
span.student-class-pattern .wc {font-weight: bold; color: #A00;}

div.student-assignment-box {display: none;}
div.student-assignment-sidebox {float: right;}
div.student-assignment-sidebox .owner {color: #888; text-align: right;}
div.student-assignment-sidebox .deadline {font-size: .9em; text-align: right;}
div.student-assignment-actions {text-align: center;}

div.foot {height: 2em;}

table.submitted-files {table-layout: fixed; width: 100%;}
table.submitted-files td {vertical-align: middle;}
.submitted-file-size {width: 5em;}
.submitted-file-actions {width: 5.5em;}
.submitted-file-edit {display: none;}
.file-link {text-decoration: none;}
.file-link:hover {text-decoration: underline;}
a.file-link[target="_blank"]::after {content: ''}

.hscroll > div {overflow: auto; scrollbar-width: none;}
.hscroll {position: relative;}
.hscroll > .button-left {position: absolute; display: block; left: 0}
.hscroll > .button-right {position: absolute; display: block; right: 0}

/* modal progress bar */
.modal-foreground {position: fixed; left: 0; top: 0; right: 0; bottom: 0; background-color: #b0b0b080; z-index: 10;}
.progress {width: 150px; height: 150px; background: none; margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}
.progress:after {content: ""; width: 100%; height: 100%; border-radius: 50%; border: 12px solid #fff; position: absolute; top: 0; left: 0;}
.progress>span {width: 50%; height: 100%; overflow: hidden; position: absolute; top: 0; z-index: 1;}
.progress .left {left: 0;}
.progress .progress-bar {width: 100%; height: 100%; background: none; border-width: 12px; border-style: solid; position: absolute; top: 0;}
.progress .left .progress-bar {left: 100%; border-top-right-radius: 80px; border-bottom-right-radius: 80px; border-left: 0; -webkit-transform-origin: center left; transform-origin: center left;}
.progress .right {right: 0;}
.progress .right .progress-bar {left: -100%; border-top-left-radius: 80px; border-bottom-left-radius: 80px; border-right: 0; -webkit-transform-origin: center right; transform-origin: center right;}
.progress .progress-value {width: 90%; height: 90%; border-radius: 50%; font-size: 32px; color: #000; line-height: 135px; text-align: center; position: absolute; top: 5%; left: 5%;}
.progress .progress-bar {border-color: #049dff;}
