@keyframes shake-head {
    0 {
        margin-left: .25em;
        margin-right: -0.25em
    }

    25% {
        margin-left: -0.25em;
        margin-right: .25em
    }

    50% {
        margin-left: .25em;
        margin-right: -0.25em
    }

    75% {
        margin-left: -0.25em;
        margin-right: .25em
    }

    100% {
        margin-left: .00em;
        margin-right: .00em
    }
}

@-webkit-keyframes shake-head {
    0 {
        margin-left: .25em;
        margin-right: -0.25em
    }

    25% {
        margin-left: -0.25em;
        margin-right: .25em
    }

    50% {
        margin-left: .25em;
        margin-right: -0.25em
    }

    75% {
        margin-left: -0.25em;
        margin-right: .25em
    }

    100% {
        margin-left: .00em;
        margin-right: .00em
    }
}

@keyframes fadein {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@-moz-keyframes fadein {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@-webkit-keyframes fadein {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes fadeout {
    from {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

@-moz-keyframes fadeout {
    from {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

@-webkit-keyframes fadeout {
    from {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

.attributes input[type=text],
.attributes input[type=email],
.attributes input[type=password],
.attributes input[type=number] {
    width: auto
}

.attributes .form .fields {
    display: table;
    margin: 1em
}

.attributes .form .fields .labeled-field {
    display: table-row
}

.attributes .form .fields .field-header,
.attributes .form .fields .form-field {
    display: table-cell;
    padding: 1em;
    vertical-align: top
}

.attributes .form .fields .field-header {
    padding-right: 1em
}

.attributes .form h3 {
    font-size: 1.25em;
    font-weight: bold;
    text-transform: uppercase;
    padding: .5em;
    margin: 1em 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
    border-top: 1px solid rgba(0, 0, 0, 0.125);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
    background: rgba(0, 0, 0, 0.04);
    width: 100%
}

a.button.add-user,
a.button.add-user-group,
a.button.add-connection,
a.button.add-connection-group {
    font-size: .8em;
    padding-left: 1.8em;
    position: relative
}

a.button.add-user::before,
a.button.add-user-group::before,
a.button.add-connection::before,
a.button.add-connection-group::before {
    content: ' ';
    position: absolute;
    width: 1.8em;
    top: 0;
    bottom: 0;
    left: 0;
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: .5em .45em
}

a.button.add-user::before {
    background-image: url('images/action-icons/guac-user-add.png')
}

a.button.add-user-group::before {
    background-image: url('images/action-icons/guac-user-group-add.png')
}

a.button.add-connection::before {
    background-image: url('images/action-icons/guac-monitor-add.png')
}

a.button.add-connection-group::before {
    background-image: url('images/action-icons/guac-group-add.png')
}

a.button {
    cursor: default;
    display: inline-block
}

input[type="submit"],
button,
a.button {
    -webkit-appearance: none;
    text-decoration: none;
    background-color: #367c36;
    border: none;
    color: white;
    font-size: 14px;
    font-weight: bold;
    font-family: Montserrat, FreeSans, Helvetica, Arial, sans-serif;
    padding:1em;
    min-width: 5em;
    margin: .25em;
}

input[type="submit"]:hover,
button:hover,
a.button:hover {
    background-color: #48a147
}

input[type="submit"]:active,
button:active,
a.button:active {
    background-color: #367c36;
    box-shadow: inset 1px 1px .25em rgba(0, 0, 0, 0.25), -1px -1px .25em rgba(0, 0, 0, 0.25), 1px 1px .25em rgba(255, 255, 255, 0.25)
}

button.danger,
a.button.danger {
    background: #48a147
}

button.danger:hover,
a.button.danger:hover {
    background: #5abd59
}

button.danger:active,
a.button.danger:active {
    background: #367c36
}

input[type="submit"]:disabled,
button:disabled,
button.danger:disabled {
    background-color: #3c3c3c;
    color: rgba(255, 255, 255, 0.5);
    opacity: .75;
    border-radius: 10px
}

.button.logout,
button.logout,
.button.reconnect,
button.reconnect,
.button.manage,
button.manage,
.button.back,
button.back,
.button.home,
button.home,
.button.change-password,
button.change-password {
    position: relative;
    border-radius: 10px;
    padding-left: 2.8em
}

.button.logout::before,
button.logout::before,
.button.reconnect::before,
button.reconnect::before,
.button.manage::before,
button.manage::before,
.button.back::before,
button.back::before,
.button.home::before,
button.home::before,
.button.change-password::before,
button.change-password::before {
    content: ' ';
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 0;
    width: 2.8em;
    border-radius: 10px;
    background-repeat: no-repeat;
    background-size: 2em;
    background-position: .5em .45em
}

.button.logout::before,
button.logout::before {
    background-image: url('images/action-icons/guac-logout.png')
}

.button.reconnect::before,
button.reconnect::before {
    background-image: url('images/circle-arrows.png')
}

.button.manage::before,
button.manage::before {
    background-image: url('images/action-icons/guac-config.png')
}

.button.back::before,
button.back::before {
    background-image: url('images/action-icons/guac-back.png')
}

.button.home::before,
button.home::before {
    background-image: url('images/action-icons/guac-home.png')
}

.button.change-password::before,
button.change-password::before {
    background-image: url('images/action-icons/guac-key.png')
}

body.client {
    background: black;
    padding: 0;
    margin: 0;
    overflow: hidden
}

#preload {
    visibility: hidden;
    position: absolute;
    left: 0;
    right: 0;
    width: 0;
    height: 0;
    overflow: hidden
}

.client-view {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 0
}

.client-view-content {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: column;
    -ms-flex-pack: end;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: vertical;
    -moz-box-pack: end;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: vertical;
    -webkit-box-pack: end;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: column;
    -webkit-flex-pack: end;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    flex-pack: end;
    width: 100%;
    height: 100%;
    font-size: 12pt
}

.client-view .client-body {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    position: relative
}

.client-view .client-bottom {
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto
}

.client-view .client-body .main {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: auto
}

.client .menu .header h2 {
    text-transform: none
}

.client .user-menu .menu-contents li a.disconnect {
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: .75em center;
    padding-left: 2.5em;
    background-image: url('images/x.png')
}

.clipboard,
.clipboard-service-target {
    background-color: #367c36;
    border: none;
    color: white
}

.clipboard {
    position: relative;
    border: 1px solid #AAA;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;
    width: 100%;
    height: 2in;
    white-space: pre;
    font-size: 14px;
    overflow: auto;
    padding: .25em
}

.clipboard p,
.clipboard div {
    margin: 0
}

.clipboard img {
    max-width: 100%;
    max-height: 100%;
    display: block;
    margin: 0 auto;
    border: 1px solid black;
    background: url('images/checker.png')
}

.clipboard-service-target {
    position: fixed;
    left: -1em;
    right: -1em;
    width: 1em;
    height: 1em;
    white-space: pre;
    overflow: hidden
}

.settings.connections .connection-list .new-connection,
.settings.connections .connection-list .new-connection-group,
.settings.connections .connection-list .new-sharing-profile {
    opacity: .5;
    font-style: italic
}

.settings.connections .connection-list .new-connection a,
.settings.connections .connection-list .new-connection a:hover,
.settings.connections .connection-list .new-connection a:visited,
.settings.connections .connection-list .new-connection-group a,
.settings.connections .connection-list .new-connection-group a:hover,
.settings.connections .connection-list .new-connection-group a:visited,
.settings.connections .connection-list .new-sharing-profile a,
.settings.connections .connection-list .new-sharing-profile a:hover,
.settings.connections .connection-list .new-sharing-profile a:visited {
    text-decoration: none;
    color: black
}

.connection-parameters input[type=text],
.connection-parameters input[type=email],
.connection-parameters input[type=password],
.connection-parameters input[type=number] {
    width: auto
}

.connection-parameters .form .fields {
    display: table;
    padding-left: .5em;
    border-left: 3px solid rgba(0, 0, 0, 0.125);
    width: 100%
}

.connection-parameters .form .fields .labeled-field {
    display: table-row
}

.connection-parameters .form .fields .field-header,
.connection-parameters .form .fields .form-field {
    display: table-cell;
    padding: 1em;
    vertical-align: top;
    width: 100%
}

.connection-parameters .form .fields .field-header {
    padding-right: 1em;
    width: 0;
    white-space: nowrap
}

#guac-menu .header h2.connection-select-menu {
    overflow: visible
}

.connection-select-menu {
    padding: 0;
    min-width: 0
}

.connection-select-menu .menu-dropdown {
    border: 0
}

.connection-select-menu .menu-dropdown .menu-contents {
    font-weight: normal;
    font-size: .8em;
    right: auto;
    left: 0;
    max-width: 100vw;
    width: 400px
}

.connection-select-menu .menu-dropdown .menu-contents .filter input {
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
    border-left: 0
}

.connection-select-menu .menu-dropdown .menu-contents .filter {
    margin-bottom: .5em;
    padding: 0
}

.connection-select-menu .menu-dropdown .menu-contents .group-list .caption {
    display: inline-block;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis
}

#connection-warning {
    position: absolute;
    right: .25em;
    bottom: .25em;
    z-index: 20;
    width: 3in;
    max-width: 100%;
    min-height: 1em;
    border-left: 2em solid #FA0;
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
    background: #FFE;
    padding: .5em .75em;
    font-size: .8em
}

#connection-warning::before {
    content: ' ';
    display: block;
    position: absolute;
    left: -2em;
    top: 0;
    width: 1.25em;
    height: 100%;
    margin: 0 .375em;
    background: url('images/warning.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat
}

.login-ui {
    animation: fadein .125s linear;
    -moz-animation: fadein .125s linear;
    -webkit-animation: fadein .125s linear
}

.login-ui .login-dialog-middle {
    width: 100%;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    background-image: url('images/main.jpg');
    background-size: cover;
    background-position-y: bottom
}

.login-ui .login-dialog {
    width: 100%;
    max-width: 3in;
    text-align: left;
    padding: 4px;
    font-size: 14px;
    display: inline-block;
    box-shadow: 0px 3px 4px #11222a4f;
    border-radius: 25px;
    background-color: white
}

.login-ui .login-dialog h1 {
    margin-top: 0;
    margin-bottom: 0;
    text-align: center
}

.login-ui .login-dialog .buttons {
    text-align: right;
    margin: 0;
    margin-top: 1em
}

.login-ui .login-dialog .login-fields {
    vertical-align: middle
}

.login-ui .login-dialog th {
    text-shadow: 1px 1px white
}

.login-ui .login-dialog .version {
    padding: 1em 0

}

.login-ui .login-dialog .version .app-name {
    font-weight: bold;
    text-transform: uppercase;
    text-align: center;
    display: none;
    font-size: 1.25em
}

.login-ui .login-dialog .version .version-number {
    position: absolute;
    bottom: 0;
    padding: 0.25em 0.75em;
    margin: 0.25em;
    border-radius: 10px;
    color: white;
    font-size: 1em;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
    font-weight: bold;
    text-align: center
}

.login-ui .login-dialog .logo {
    display: block;
    margin: 1em auto;
    width: 16em;
    height: 8em;
    background-size: 16em 8em;
    -moz-background-size: 16em 8em;
    -webkit-background-size: 16em 8em;
    -khtml-background-size: 16em 8em;
    background-image: url("images/guac-tricolor.png")
}

.login-ui.continuation .login-dialog {
    border-right: 0;
    border-left: 0;
    box-shadow: none;
    max-width: 6in
}

.login-ui.continuation .login-dialog .logo,
.login-ui.continuation .login-dialog .version {
    display: none
}

.login-ui.error .login-dialog {
    animation-name: shake-head;
    animation-duration: .25s;
    animation-timing-function: linear;
    -webkit-animation-name: shake-head;
    -webkit-animation-duration: .25s;
    -webkit-animation-timing-function: linear
}

.dialog-container {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.5);
    padding: 1em
}

.dialog-outer {
    display: table;
    height: 100%;
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    background: rgba(0, 0, 0, 0.5)
}

.dialog-middle {
    width: 100%;
    text-align: center;
    display: table-cell;
    vertical-align: middle
}

.dialog.edit {
    max-height: 100%
}

.dialog {
    max-width: 100%;
    width: 8in;
    margin-left: auto;
    margin-right: auto;
    overflow: auto;
    border: 1px solid rgba(0, 0, 0, 0.5);
    background: #e7e7e7;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;
    box-shadow: .1em .1em .2em rgba(0, 0, 0, 0.6)
}

.dialog>* {
    margin: 1em
}

.dialog .header {
    margin: 0
}

.dialog td {
    position: relative
}

.dialog .overlay {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1
}

.dialog .footer {
    text-align: center
}

.software-cursor {
    cursor: url('images/mouse/blank.gif'), url('images/mouse/blank.cur'), default;
    overflow: hidden;
    cursor: none
}

.guac-error .software-cursor {
    cursor: default
}

div.main {
    overflow: auto;
    width: 100%;
    height: 100%;
    position: relative;
    font-size: 0
}

div.displayOuter {
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    display: table
}

div.displayMiddle {
    width: 100%;
    height: 100%;
    display: table-cell;
    vertical-align: middle;
    text-align: center
}

div.display {
    display: inline-block
}

div.display * {
    position: relative
}

div.display>* {
    margin-left: auto;
    margin-right: auto
}

.fatal-page-error-outer {
    display: table;
    height: 100%;
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 30
}

.fatal-page-error-middle {
    width: 100%;
    text-align: center;
    display: table-cell;
    vertical-align: middle
}

.fatal-page-error {
    display: inline-block;
    width: 100%;
    max-width: 5in;
    padding: 1em;
    text-align: left
}

.fatal-page-error h1 {
    text-transform: uppercase;
    padding: 0;
    padding-right: 1em
}

.fatal-page-error h1::before {
    content: ' ';
    display: inline-block;
    background: url('images/warning.png');
    background-repeat: no-repeat;
    height: 1em;
    width: 1em;
    background-size: contain;
    margin: 0 .25em;
    margin-bottom: -0.2em
}

.fatal-page-error-outer {
    visibility: hidden;
    opacity: 0;
    transition: opacity, visibility;
    transition-duration: .25s
}

.shown.fatal-page-error-outer {
    visibility: visible;
    opacity: 1
}

.file-browser .directory>.children {
    padding-left: 1em;
    display: none
}

.file-browser .list-item .caption {
    white-space: nowrap;
    border: 1px solid transparent
}

.file-browser .list-item.focused .caption {
    border: 1px dotted rgba(0, 0, 0, 0.5);
    background: rgba(204, 221, 170, 0.5)
}

.file-browser .normal-file>.caption .icon {
    background-image: url('images/file.png')
}

.file-browser .directory>.caption .icon {
    background-image: url('images/folder-closed.png')
}

.file-browser .directory.previous>.caption .icon {
    background-image: url('images/folder-up.png')
}

#file-transfer-dialog {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 20;
    font-size: .8em;
    width: 4in;
    max-width: 100%;
    max-height: 3in
}

#file-transfer-dialog .transfer-manager {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: column;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: vertical;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: vertical;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: column;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    max-width: inherit;
    max-height: inherit;
    border: 1px solid rgba(0, 0, 0, 0.5);
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25)
}

#file-transfer-dialog .transfer-manager .header {
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto
}

#file-transfer-dialog .transfer-manager .transfer-manager-body {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    overflow: auto
}

@media all and (max-height:3in) {
    #file-transfer-dialog {
        max-height: 1.5in
    }
}

@media all and (max-height:1.5in) {
    #file-transfer-dialog {
        height: 100%
    }

    #file-transfer-dialog .transfer-manager {
        position: absolute;
        left: .5em;
        top: .5em;
        right: .5em;
        bottom: .5em
    }
}

#filesystem-menu .header h2 {
    font-size: 14px;
    font-weight: normal;
    padding-top: 0;
    padding-bottom: 0
}

#filesystem-menu .header {
    -ms-flex-align: center;
    -moz-box-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center
}

#filesystem-menu .menu-body {
    padding: .25em
}

#filesystem-menu .header.breadcrumbs {
    display: block;
    background: rgba(0, 0, 0, 0.0125);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: none;
    margin-top: 0;
    border-top: 0
}

#filesystem-menu .header.breadcrumbs .breadcrumb {
    display: inline-block;
    padding: .5em;
    font-size: .8em;
    font-weight: bold
}

#filesystem-menu .header.breadcrumbs .breadcrumb:hover {
    background-color: #dfdfdf;
    cursor: pointer
}

#filesystem-menu .header.breadcrumbs .breadcrumb.root {
    background-size: 1.5em 1.5em;
    -moz-background-size: 1.5em 1.5em;
    -webkit-background-size: 1.5em 1.5em;
    -khtml-background-size: 1.5em 1.5em;
    background-repeat: no-repeat;
    background-position: center center;
    background-image: url('images/drive.png');
    width: 2em;
    height: 2em;
    padding: 0;
    vertical-align: middle
}

.filter {
    margin: .5em 0
}

.filter .search-string {
    background-image: url('images/magnifier.png');
    background-repeat: no-repeat;
    background-size: 1.75em;
    background-position: .25em center;
    padding: .5em;
    padding-left: 2.25em;
    width: 100%;
    max-width: none;
    height: 100%;
    border-radius: 30px
}

@font-face {
    font-family: 'Montserrat';
    font-weight: normal;
    font-style: normal;
    src: url('fonts/mont/Montserrat-Regular.woff') format('woff')
}

@font-face {
    font-family: 'Montserrat';
    font-weight: bold;
    font-style: normal;
    src: url('fonts/mont/Montserrat-Medium.woff') format('woff')
}

@font-face {
    font-family: 'Montserrat';
    font-weight: 800;
    font-style: normal;
    src: url('fonts/mont/Montserrat-ExtraBold.woff') format('woff')
}

.form-field .password-field {
    white-space: nowrap
}

.form-field .password-field .icon.toggle-password {
    display: inline-block;
    opacity: .5;
    cursor: default;
    background-repeat: no-repeat;
    background-size: 1em;
    width: 1em;
    height: 1em
}

.form-field .password-field input[type=password]~.icon.toggle-password {
    background-image: url('images/action-icons/guac-show-pass.png')
}

.form-field .password-field input[type=text]~.icon.toggle-password {
    background-image: url('images/action-icons/guac-hide-pass.png')
}

.form table.fields th {
    text-align: left;
    font-weight: normal;
    padding-right: 1em
}

.manage table.properties th {
    text-align: left;
    font-weight: normal;
    padding-right: 1em
}

.manage .action-buttons {
    text-align: center;
    margin-bottom: 1em
}

#guac-menu .content {
    padding: 0;
    margin: 0;
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: column;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: vertical;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: vertical;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: column;
    display: flex;
    align-items: stretch;
    flex-direction: column
}

#guac-menu .content>* {
    margin: 0;
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto
}

#guac-menu .content>*+* {
    margin-top: 1em
}

#guac-menu .header h2 {
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    text-overflow: ellipsis
}

#guac-menu #mouse-settings .choice {
    text-align: center
}

#guac-menu #mouse-settings .choice .figure {
    display: inline-block;
    vertical-align: middle;
    width: 75%;
    max-width: 320px
}

#guac-menu #keyboard-settings .caption {
    font-size: .9em;
    margin-left: 2em;
    margin-right: 2em
}

#guac-menu #mouse-settings .figure .caption {
    text-align: center;
    font-size: .9em
}

#guac-menu #mouse-settings .figure img {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 1em auto
}

#guac-menu #keyboard-settings .figure {
    float: right;
    max-width: 30%;
    margin: 1em
}

#guac-menu #keyboard-settings .figure img {
    max-width: 100%
}

#guac-menu #zoom-settings {
    text-align: center
}

#guac-menu #zoom-out,
#guac-menu #zoom-in,
#guac-menu #zoom-state {
    display: inline-block;
    vertical-align: middle
}

#guac-menu #zoom-out,
#guac-menu #zoom-in {
    max-width: 3em;
    border: 1px solid rgba(0, 0, 0, 0.5);
    background: rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    margin: .5em;
    cursor: pointer
}

#guac-menu #zoom-out img,
#guac-menu #zoom-in img {
    max-width: 100%;
    opacity: .5
}

#guac-menu #zoom-out:hover,
#guac-menu #zoom-in:hover {
    border: 1px solid rgba(0, 0, 0, 1);
    background: #dfdfdf
}

#guac-menu #zoom-out:hover img,
#guac-menu #zoom-in:hover img {
    opacity: 1
}

#guac-menu #zoom-state {
    font-size: 2em
}

#guac-menu #devices .device {
    padding: 1em;
    border: 1px solid rgba(0, 0, 0, 0.125);
    background: rgba(0, 0, 0, 0.04);
    padding-left: 3.5em;
    background-size: 1.5em 1.5em;
    -moz-background-size: 1.5em 1.5em;
    -webkit-background-size: 1.5em 1.5em;
    -khtml-background-size: 1.5em 1.5em;
    background-repeat: no-repeat;
    background-position: 1em center
}

#guac-menu #devices .device:hover {
    cursor: pointer;
    border-color: black
}

#guac-menu #devices .device.filesystem {
    background-image: url('images/drive.png')
}

#guac-menu #share-links {
    padding: 1em;
    border: 1px solid rgba(0, 0, 0, 0.125);
    background: rgba(0, 0, 0, 0.04);
    font-size: .8em
}

#guac-menu #share-links h3 {
    padding-bottom: 0
}

#guac-menu #share-links th {
    white-space: nowrap
}

#guac-menu #share-links a[href] {
    display: block;
    padding: 0 1em;
    font-family: monospace;
    font-weight: bold
}

h1 {
    margin: 0;
    padding: .5em;
    font-size: 2em;
    vertical-align: middle;
    text-align: center
}

h2 {
    font-size: 15px;
    font-weight: bold;
    text-transform: uppercase;
    padding: 1em;
    margin: 0
}

.header {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
    background: #367c36;
    color: white;
    margin-bottom: 1em;
    margin-top: 0;
    border-top: 0;
    width: 100%;
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: row;
    display: flex;
    align-items: stretch;
    flex-direction: row
}

.header.tabbed {
    margin-bottom: 0
}

.header~* .header,
.header~.header {
    margin-top: 1em
}

.header h2 {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto
}

.header .filter {
    margin: 0;
    padding: .5em;
    padding-right: 1em;
}

.header .filter input {
    -moz-border-radius: 30px;
    -webkit-border-radius: 30px;
    -khtml-border-radius: 30px;
    border-radius: 30px;
    border: none;
    background-color: white
}

.settings.connectionHistory .filter {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: row;
    display: flex;
    align-items: stretch;
    flex-direction: row
}

.settings.connectionHistory .filter .search-string {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto
}

.settings.connectionHistory .filter .search-button,
.settings.connectionHistory .filter button {
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 0;
    margin-bottom: 0
}

.settings.connectionHistory .history-list {
    width: 100%
}

.history-unavailable div.recent-connections {
    display: none
}

div.recent-connections,
div.clipboardDiv,
div.settings,
div.all-connections {
    margin: 1em;
    padding: 0
}

.all-connections .list-buttons {
    text-align: center;
    padding: 0
}

div.recent-connections {
    text-align: center
}

div.recent-connections div.connection {
    -moz-border-radius: 40px;
    -webkit-border-radius: 40px;
    -khtml-border-radius: 40px;
    border-radius: 40px;
    display: inline-block;
    padding: 1em;
    margin: 1em;
    text-align: center;
    max-width: 75%;
    overflow: hidden
}

a.home-connection,
.empty.balancer a.home-connection-group {
    display: block
}

.all-connections .connection-group>.caption .icon {
    display: none
}

.all-connections .connection-group>.caption .icon.expand {
    display: inline-block
}

.all-connections .connection-group.empty.balancer>.caption .icon {
    display: inline-block
}

.all-connections .connection-group.empty.balancer>.caption .icon.expand {
    display: none
}

.preferences .input-method .caption {
    margin-left: 2em;
    margin-right: 2em
}

.login-ui .login-dialog .login-fields input {
    display: block;
    border: none;
    -moz-border-radius: 30px;
    -webkit-border-radius: 30px;
    -khtml-border-radius: 30px;
    font-family: Montserrat, FreeSans, Helvetica, Arial, sans-serif;
    border-radius: 30px;
    width: 100%;
    margin: 0;
    margin-bottom: 0.75em;
    padding: 1em 1em;
    max-width: none;
    font-size: 14px;
}

.login-ui .login-dialog .login-fields input:focus {
    outline: auto 2px #367c36;
}

.login-ui .login-dialog .buttons input[type="submit"] {
    width: 100%;
    margin: 0;
    border-radius: 30px;
}

.login-ui.continuation .login-dialog .buttons input[type="submit"] {
    width: auto
}

.login-ui.initial .login-dialog input.continue-login,
.login-ui.continuation .login-dialog input.login {
    display: none
}

input[type=checkbox],
input[type=number],
input[type=text],
input[type=email],
input[type=radio],
label,
textarea {
    -webkit-tap-highlight-color: rgba(128, 192, 128, 0.5)
}

div.location,
input[type=text],
input[type=email],
input[type=number],
input[type=password],
textarea {
    border: 1px solid #777;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;
    width: 100%;
    max-width: 16em;
    padding: .25em;
    font-size: .8em;
    background: white;
    cursor: text
}

textarea {
    max-width: none;
    width: 30em;
    height: 10em;
    white-space: pre;
    word-wrap: normal;
    overflow: auto
}

.keyboard-container {
    text-align: center;
    width: 100%;
    margin: 0;
    padding: 0;
    border-top: 1px solid black;
    background: #222;
    opacity: .85;
    z-index: 1
}

.user,
.user-group,
.connection-group,
.connection {
    cursor: pointer
}

.user a,
.user-group a,
.connection a,
.connection-group a {
    text-decoration: none;
    color: black
}

.user a:hover,
.user-group a:hover,
.connection a:hover,
.connection-group a:hover {
    text-decoration: none;
    color: black
}

.user a:visited,
.user-group a:visited,
.connection a:visited,
.connection-group a:visited {
    text-decoration: none;
    color: black
}

.recent-connections .connection:hover {
    background: #dfdfdf
}

.recent-connections .connection .thumbnail {
    display: block;
    margin: .5em
}

.recent-connections .connection .thumbnail>* {
    border: 1px solid black;
    background: black;
    box-shadow: 0px 3px 4px #11222a4f;
    max-width: 75%;
    display: inline-block
}

.caption * {
    vertical-align: middle;
    font-weight: bold
}

.caption .choice {
    display: inline-block
}

.caption .name {
    margin-left: .25em
}

.placeholder {
    color: #b5b5b5;
    text-align: center;
    opacity: .5;
    font-size: 2em;
    font-weight: bolder
}

.loading {
    position: relative;
    min-height: 200px
}

.view.loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.loading * {
    visibility: hidden
}

.loading::before {
    display: block;
    position: absolute;
    content: '';
    width: 96px;
    height: 96px;
    margin-left: -48px;
    margin-top: -48px;
    top: 50%;
    left: 50%;
    background-image: url('images/cog.png');
    background-size: 96px 96px;
    background-position: center center;
    background-repeat: no-repeat;
    animation: spinning-cog 4s linear infinite;
    -moz-animation: spinning-cog 4s linear infinite;
    -webkit-animation: spinning-cog 4s linear infinite
}

@keyframes spinning-cog {
    0 {
        transform: rotate(0)
    }

    100% {
        transform: rotate(360deg)
    }
}

@-moz-keyframes spinning-cog {
    0 {
        -moz-transform: rotate(0)
    }

    100% {
        -moz-transform: rotate(360deg)
    }
}

@-webkit-keyframes spinning-cog {
    0 {
        -webkit-transform: rotate(0)
    }

    100% {
        -webkit-transform: rotate(360deg)
    }
}

.location-chooser .dropdown {
    position: absolute;
    z-index: 2;
    margin-top: -1px;
    width: 3in;
    max-height: 2in;
    overflow: auto;
    border: 1px solid rgba(0, 0, 0, 0.5);
    background: white;
    font-size: 10pt
}

div.login-ui {
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    display: table;
    background: white;
    z-index: 20
}

.login-ui p.login-error {
    display: none
}

.login-ui.error p.login-error {
    display: block;

    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;

    padding: 1em;
    margin: 1em;

    background: #48a147;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    text-align: center;
    color: white;
    font-weight: 800;
}

.login-ui .login-fields .form-field .password-field .toggle-password {
    display: none
}

.login-ui .login-fields .labeled-field {
    display: block;
    position: relative;
    z-index: 1
}

.login-ui .login-fields .labeled-field .field-header {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    overflow: hidden;
    z-index: -1;
    margin: 1em;
    font-size: 14px;
    opacity: .5
}

.login-ui .login-fields .labeled-field.empty input {
    background: transparent
}

.login-ui .login-fields .labeled-field input:focus {
    background: white
}

.manage-user-group .page-tabs .page-list li.read-only a[href],
.manage-user-group .page-tabs .page-list li.unlinked a[href],
.manage-user-group .page-tabs .page-list li.linked a[href] {
    padding-right: 2.5em;
    position: relative
}

.manage-user-group .page-tabs .page-list li.read-only a[href]:before,
.manage-user-group .page-tabs .page-list li.unlinked a[href]:before,
.manage-user-group .page-tabs .page-list li.linked a[href]:before {
    content: ' ';
    position: absolute;
    right: 0;
    bottom: 0;
    top: 0;
    width: 2.5em;
    background-size: 1.25em;
    background-repeat: no-repeat;
    background-position: center
}

.manage-user-group .page-tabs .page-list li.read-only a[href]:before {
    background-image: url('images/lock.png')
}

.manage-user-group .page-tabs .page-list li.unlinked a[href]:before {
    background-image: url('images/plus.png')
}

.manage-user-group .page-tabs .page-list li.unlinked a[href] {
    opacity: .5
}

.manage-user-group .page-tabs .page-list li.unlinked a[href]:hover,
.manage-user-group .page-tabs .page-list li.unlinked a[href].current {
    opacity: 1
}

.manage-user-group .page-tabs .page-list li.linked a[href]:before {
    background-image: url('images/checkmark.png')
}

.manage-user-group .notice.read-only {
    background: #FDA;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 10px;
    text-align: center;
    padding: 1em
}

.manage-user .page-tabs .page-list li.read-only a[href],
.manage-user .page-tabs .page-list li.unlinked a[href],
.manage-user .page-tabs .page-list li.linked a[href] {
    padding-right: 2.5em;
    position: relative
}

.manage-user .page-tabs .page-list li.read-only a[href]:before,
.manage-user .page-tabs .page-list li.unlinked a[href]:before,
.manage-user .page-tabs .page-list li.linked a[href]:before {
    content: ' ';
    position: absolute;
    right: 0;
    bottom: 0;
    top: 0;
    width: 2.5em;
    background-size: 1.25em;
    background-repeat: no-repeat;
    background-position: center
}

.manage-user .page-tabs .page-list li.read-only a[href]:before {
    background-image: url('images/lock.png')
}

.manage-user .page-tabs .page-list li.unlinked a[href]:before {
    background-image: url('images/plus.png')
}

.manage-user .page-tabs .page-list li.unlinked a[href] {
    opacity: .5
}

.manage-user .page-tabs .page-list li.unlinked a[href]:hover,
.manage-user .page-tabs .page-list li.unlinked a[href].current {
    opacity: 1
}

.manage-user .page-tabs .page-list li.linked a[href]:before {
    background-image: url('images/checkmark.png')
}

.manage-user .notice.read-only {
    background: #FDA;
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 10px;
    text-align: center;
    padding: 1em
}

.menu {
    overflow: hidden;
    position: absolute;
    top: 0;
    height: 100%;
    max-width: 100%;
    width: 480px;
    background: #EEE;
    box-shadow: inset -1px 0 2px white, 1px 0 2px black;
    z-index: 10;
    -webkit-transition: left .125s, opacity .125s;
    -moz-transition: left .125s, opacity .125s;
    -ms-transition: left .125s, opacity .125s;
    -o-transition: left .125s, opacity .125s;
    transition: left .125s, opacity .125s
}

.menu-content {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: column;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: vertical;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: vertical;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: column;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    width: 100%;
    height: 100%
}

.menu-content .header {
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-bottom: 0
}

.menu-body {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    padding: 1em;
    overflow: auto;
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: column;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: vertical;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: vertical;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: column;
    display: flex;
    align-items: stretch;
    flex-direction: column
}

.menu-body>* {
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto
}

.menu-section h3 {
    margin: 0;
    padding: 0;
    padding-bottom: 1em
}

.menu-section~.menu-section h3 {
    padding-top: 1em
}

.menu-section input.zoom-ctrl {
    width: 2em;
    font-size: 14px;
    padding: 0;
    background: transparent;
    border-color: rgba(0, 0, 0, 0.125)
}

.menu-section div.zoom-ctrl {
    font-size: 1.5em;
    display: inline;
    align-content: center;
    vertical-align: middle
}

.menu-section .zoom-ctrl::-webkit-inner-spin-button,
.menu-section .zoom-ctrl::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0
}

.menu,
.menu.closed {
    left: -480px;
    opacity: 0
}

.menu.open {
    left: 0;
    opacity: 1
}

.menu-dropdown {
    display: -ms-flexbox;
    -ms-flex-align: center;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: center;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: center;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: center;
    -webkit-flex-direction: row;
    display: flex;
    align-items: center;
    flex-direction: row
}

.menu-dropdown {
    position: relative;
    border-left: 1px solid #11222a80;
    background: #367c36
}

.menu-dropdown:hover {
    background: #48a147
}

.menu-dropdown.open,
.menu-dropdown.open:hover {
    background: #48a147
}

.menu-dropdown .menu-title {
    cursor: default;
    margin: 0;
    padding: .5em;
    padding-right: 2em;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    text-overflow: ellipsis;
    -ms-flex: 0 0 auto;
    -moz-box-flex: 0;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto
}

.menu-dropdown .menu-indicator {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 2em;
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: center center;
    background-image: url('images/arrows/down.png')
}

.menu-dropdown .menu-contents {
    visibility: hidden;
    position: absolute;
    top: 125%;
    right: 5%;
    min-width: 90%;
    white-space: nowrap;
    background: #367c36;
    border-bottom-left-radius: 15px;
    box-shadow: 0px 3px 4px #11222a4f;
    z-index: 5;
    border-radius: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.menu-dropdown .menu-contents ul {
    margin: 0;
    padding: 0
}

.menu-dropdown.open .menu-contents {
    visibility: visible
}

.menu-dropdown .menu-contents li {
    padding: 0;
    list-style-type: none
}

.menu-dropdown .menu-contents li a {
    display: block;
    cursor: pointer;
    color: white;
    text-decoration: none;
    padding: .75em
}

.menu-dropdown .menu-contents li a:hover {
    background-color: #48a147
}

.menu-dropdown .menu-contents li a.current,
.menu-dropdown .menu-contents li a.current:hover {
    background-color: transparent;
    cursor: default;
    opacity: .25
}

.menu-dropdown .menu-contents li a.danger {
    color: white;
    font-weight: bold;
    background-color: #48a147
}

.menu-dropdown .menu-contents li a.danger:hover {
    background-color: #5abd59
}

.preferences .mouse-mode .choices {
    text-align: center
}

.preferences .mouse-mode .choice {
    display: inline-block
}

.preferences .mouse-mode .choice .figure {
    display: inline-block;
    vertical-align: middle;
    width: 75%;
    max-width: 320px
}

.preferences .mouse-mode .figure img {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 1em auto
}

.preferences .mouse-mode .caption {
    text-align: left
}

.notification {
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.125);
    background-color: #48a147;
    border: none;
    color: white;
}

.notification.error {
    background: #48a147;
    color: white
}

.notification .body {
    margin: .5em
}

.notification .buttons {
    margin: .5em
}

@keyframes notification-progress {
    from {
        background-position: 0 0
    }

    to {
        background-position: 64px 0
    }
}

@-webkit-keyframes notification-progress {
    from {
        background-position: 0 0
    }

    to {
        background-position: 64px 0
    }
}

.notification .title-bar {
    font-size: 1.25em;
    font-weight: bold;
    text-transform: uppercase;
    padding: 1em;
    margin-bottom: 1em;
}

.notification .progress .bar {
    background: #a3d655;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.5), inset -1px -1px 0 rgba(0, 0, 0, 0.1), 1px 1px 0 gray
}

.notification .progress {
    width: 100%;
    background: #c2c2c2 url('images/progress.png');
    background-size: 16px 16px;
    -moz-background-size: 16px 16px;
    -webkit-background-size: 16px 16px;
    -khtml-background-size: 16px 16px;
    animation-name: notification-progress;
    animation-duration: 2s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    -webkit-animation-name: notification-progress;
    -webkit-animation-duration: 2s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    padding: .25em;
    border: 1px solid gray;
    position: relative
}

.notification .progress .text {
    position: relative
}

.notification .parameters {
    width: 100%
}

.notification .parameters .fields {
    display: table;
    width: 100%
}

.notification .parameters .fields .labeled-field {
    display: table-row
}

.notification .parameters .fields .field-header,
.notification .parameters .fields .form-field {
    text-align: left;
    display: table-cell;
    padding: 1em;
    vertical-align: top
}

.notification .parameters .fields .field-header {
    padding-right: 1em
}

.notification .parameters .fields .field-header {
    width: 0
}

.notification .parameters .fields .form-field {
    width: 100%
}

.notification .parameters input[type=text],
.notification .parameters input[type=email],
.notification .parameters input[type=number],
.notification .parameters input[type=password],
.notification .parameters textarea {
    max-width: 100%
}

.client .notification .parameters h3,
.client .notification .parameters .password-field .toggle-password {
    display: none
}

.osk {
    position: relative
}

.guac-keyboard {
    display: inline-block;
    width: 100%;
    margin: 0;
    padding: 0;
    cursor: default;
    text-align: left;
    vertical-align: middle
}

.guac-keyboard,
.guac-keyboard * {
    overflow: hidden;
    white-space: nowrap
}

.guac-keyboard .guac-keyboard-key-container {
    display: inline-block;
    margin: .05em;
    position: relative
}

.guac-keyboard .guac-keyboard-key {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: #444;
    border: .125em solid #666;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;
    color: white;
    font-size: 40%;
    font-weight: lighter;
    text-align: center;
    white-space: pre;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25), 1px -1px 0 rgba(0, 0, 0, 0.25), -1px 1px 0 rgba(0, 0, 0, 0.25), -1px -1px 0 rgba(0, 0, 0, 0.25)
}

.guac-keyboard .guac-keyboard-key:hover {
    cursor: pointer
}

.guac-keyboard .guac-keyboard-key.highlight {
    background: #666;
    border-color: #666
}

.guac-keyboard .guac-keyboard-key-caps,
.guac-keyboard .guac-keyboard-key-enter,
.guac-keyboard .guac-keyboard-key-tab,
.guac-keyboard .guac-keyboard-key-lalt,
.guac-keyboard .guac-keyboard-key-ralt,
.guac-keyboard .guac-keyboard-key-alt-gr,
.guac-keyboard .guac-keyboard-key-lctrl,
.guac-keyboard .guac-keyboard-key-rctrl,
.guac-keyboard .guac-keyboard-key-lshift,
.guac-keyboard .guac-keyboard-key-rshift {
    text-align: left;
    padding-left: .75em
}

.guac-keyboard.guac-keyboard-modifier-shift .guac-keyboard-key-rshift,
.guac-keyboard.guac-keyboard-modifier-shift .guac-keyboard-key-lshift,
.guac-keyboard.guac-keyboard-modifier-control .guac-keyboard-key-rctrl,
.guac-keyboard.guac-keyboard-modifier-control .guac-keyboard-key-lctrl,
.guac-keyboard.guac-keyboard-modifier-alt .guac-keyboard-key-ralt,
.guac-keyboard.guac-keyboard-modifier-alt .guac-keyboard-key-lalt,
.guac-keyboard.guac-keyboard-modifier-alt-gr .guac-keyboard-key-alt-gr,
.guac-keyboard.guac-keyboard-modifier-caps .guac-keyboard-key-caps,
.guac-keyboard.guac-keyboard-modifier-super .guac-keyboard-key-super {
    background: #882;
    border-color: #DD4
}

.guac-keyboard .guac-keyboard-key.guac-keyboard-pressed {
    background: #822;
    border-color: #D44
}

.guac-keyboard .guac-keyboard-group {
    line-height: 0
}

.guac-keyboard .guac-keyboard-group.guac-keyboard-alpha,
.guac-keyboard .guac-keyboard-group.guac-keyboard-movement {
    display: inline-block;
    text-align: center;
    vertical-align: top
}

.guac-keyboard .guac-keyboard-group.guac-keyboard-main {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: row;
    display: flex;
    align-items: stretch;
    flex-direction: row
}

.guac-keyboard .guac-keyboard-group.guac-keyboard-movement {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto
}

.guac-keyboard .guac-keyboard-gap {
    display: inline-block
}

.guac-keyboard:not(.guac-keyboard-modifier-caps) .guac-keyboard-cap.guac-keyboard-requires-caps,
.guac-keyboard:not(.guac-keyboard-modifier-shift) .guac-keyboard-cap.guac-keyboard-requires-shift,
.guac-keyboard:not(.guac-keyboard-modifier-alt-gr) .guac-keyboard-cap.guac-keyboard-requires-alt-gr,
.guac-keyboard.guac-keyboard-modifier-shift .guac-keyboard-key.guac-keyboard-uses-shift .guac-keyboard-cap:not(.guac-keyboard-requires-shift),
.guac-keyboard.guac-keyboard-modifier-caps .guac-keyboard-key.guac-keyboard-uses-caps .guac-keyboard-cap:not(.guac-keyboard-requires-caps),
.guac-keyboard.guac-keyboard-modifier-alt-gr .guac-keyboard-key.guac-keyboard-uses-alt-gr .guac-keyboard-cap:not(.guac-keyboard-requires-alt-gr) {
    display: none
}

.guac-keyboard.guac-keyboard-modifier-alt-gr .guac-keyboard-key:not(.guac-keyboard-uses-alt-gr):not(.guac-keyboard-key-alt-gr) {
    opacity: .5
}

#other-connections .client-panel {
    display: none;
    position: absolute;
    right: 0;
    bottom: 0;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(0, 0, 0, 0.25);
    max-width: 100%;
    white-space: nowrap;
    transition: max-width .125s, width .125s;
    z-index: 20
}

#other-connections .client-panel.has-clients {
    display: block
}

#other-connections .client-panel.hidden {
    max-width: 16px
}

#other-connections .client-panel-handle {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 100%;
    width: 16px;
    z-index: 1;
    background-color: white;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center center;
    background-image: url(images/arrows/right.png);
    opacity: .5
}

#other-connections .client-panel-handle:hover {
    opacity: .75
}

#other-connections .client-panel.hidden .client-panel-handle {
    background-image: url(images/arrows/left.png)
}

#other-connections .client-panel-connection-list {
    text-align: right;
    margin: 0;
    padding: 0;
    padding-left: 16px;
    overflow-x: auto;
    overflow-y: hidden
}

#other-connections .client-panel-connection {
    display: inline-block;
    position: relative;
    margin: .5em;
    border: 1px solid white;
    background: black;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    opacity: .5;
    transition: opacity .25s;
    max-height: 128px;
    overflow: hidden;
    vertical-align: middle
}

#other-connections .client-panel-connection .thumbnail-main img {
    max-width: none;
    max-height: 128px
}

#other-connections .client-panel-connection a[href]::before {
    display: block;
    content: ' ';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 1;
    background: url('images/warning-white.png');
    background-size: 48px;
    background-position: center;
    background-repeat: no-repeat;
    background-color: black;
    opacity: 0;
    transition: opacity .25s
}

#other-connections .client-panel-connection.needs-attention a[href]::before {
    opacity: .75
}

#other-connections button.close-other-connection {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    margin: 0;
    padding: 4px;
    min-width: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    text-shadow: none;
    opacity: .5;
    line-height: 1
}

#other-connections button.close-other-connection:hover {
    opacity: 1
}

#other-connections button.close-other-connection img {
    background: #48a147;
    border-radius: 18px;
    max-width: 18px;
    padding: 3px
}

#other-connections button.close-other-connection:hover img {
    background: #5abd59
}

#other-connections .client-panel.hidden .client-panel-connection-list {
    overflow-x: hidden
}

#other-connections .client-panel.hidden .client-panel-connection {
    visibility: hidden
}

#other-connections .client-panel-connection .name {
    position: absolute;
    padding: .25em .5em;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    text-align: left;
    color: white;
    background: rgba(0, 0, 0, 0.5);
    font-size: .75em;
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

#other-connections .client-panel-connection:hover {
    opacity: 1
}

.pager {
    text-align: center;
    margin: 1em
}

.pager .page-numbers {
    display: inline-block;
    margin: 0;
    padding: 0
}

.pager .first-page,
.pager .prev-page,
.pager .set-page,
.pager .next-page,
.pager .last-page {
    cursor: pointer;
    vertical-align: middle
}

.pager .first-page.disabled,
.pager .prev-page.disabled,
.pager .set-page.disabled,
.pager .next-page.disabled,
.pager .last-page.disabled {
    cursor: auto;
    opacity: .25
}

.pager .set-page,
.pager .more-pages {
    display: inline-block;
    padding: .25em;
    text-align: center;
    min-width: 1.25em
}

.pager .set-page {
    text-decoration: underline
}

.pager .set-page.current {
    cursor: auto;
    text-decoration: none;
    font-weight: bold;
    background: rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.1);
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px
}

.pager .icon.first-page {
    background-image: url('images/action-icons/guac-first-page.png')
}

.pager .icon.prev-page {
    background-image: url('images/action-icons/guac-prev-page.png')
}

.pager .icon.next-page {
    background-image: url('images/action-icons/guac-next-page.png')
}

.pager .icon.last-page {
    background-image: url('images/action-icons/guac-last-page.png')
}

.preferences .form .fields {
    display: table;
    padding-left: .5em;
    border-left: 3px solid rgba(0, 0, 0, 0.125)
}

.preferences .form .fields .labeled-field {
    display: table-row
}

.preferences .form .fields .field-header,
.preferences .form .fields .form-field {
    display: table-cell;
    padding: 1em;
    vertical-align: top
}

.preferences .form .fields .field-header {
    padding-right: 1em
}

.redirect-field-container {
    height: 100%;
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    display: table;
    background: white
}

.redirect-field {
    width: 100%;
    display: table-cell;
    vertical-align: middle;
    text-align: center
}

.related-objects .abbreviated-related-objects {
    display: table;
    margin: 1em 0
}

.related-objects .abbreviated-related-objects ul {
    display: table-cell;
    vertical-align: top
}

.related-objects .abbreviated-related-objects ul,
.related-objects .all-related-objects ul {
    padding: 0;
    list-style: none
}

.related-objects .abbreviated-related-objects ul li {
    display: inline-block;
    margin: .25em;
    padding: .25em;
    border: 1px solid silver;
    background: #f5f5f5;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px
}

.related-objects .abbreviated-related-objects ul li img.remove {
    max-height: .75em;
    max-width: .75em;
    margin: 0 .25em
}

.related-objects .abbreviated-related-objects ul li .identifier {
    margin: 0 .25em
}

.related-objects .abbreviated-related-objects img.expand,
.related-objects .abbreviated-related-objects img.collapse {
    display: table-cell;
    max-height: 1.5em;
    max-width: 1.5em;
    margin: .375em 0
}

.related-objects .all-related-objects {
    border-top: 1px solid silver
}

.related-objects .abbreviated-related-objects p.no-related-objects,
.related-objects .all-related-objects p.no-objects-available {
    font-style: italic;
    opacity: .5
}

.related-objects .abbreviated-related-objects p.no-related-objects {
    display: table-cell;
    vertical-align: middle
}

.resize-sensor {
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    overflow: hidden;
    border: 0;
    opacity: 0;
    z-index: -1
}

.settings table.session-list {
    width: 100%
}

.settings table.session-list tr.session:hover {
    background: #dfdfdf
}

.settings table.session-list .select-session {
display: none
}

.settings table.properties th {
    text-align: left;
    font-weight: normal;
    padding-right: 1em
}

.settings .action-buttons {
    text-align: center;
    margin: 1em 0
}

.settings .toolbar {
    display: -ms-flexbox;
    -ms-flex-align: center;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: center;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: center;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: center;
    -webkit-flex-direction: row;
    display: flex;
    align-items: center;
    flex-direction: row
}

.settings .toolbar .action-buttons {
    margin-right: .25em
}

.settings .toolbar .filter {
    -ms-flex: 1 1 auto;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto
}

.share-menu {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: row;
    display: flex;
    align-items: stretch;
    flex-direction: row
}

.share-menu .menu-dropdown .menu-title {
    padding-left: 2em;
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: .5em center;
    background-image: url('images/share.png')
}

table.sorted {
    border-collapse: collapse
}

table.sorted th {
    background: #48a147;
    font-weight: normal;
    color: white
}

table.sorted th,
table.sorted td {
    padding: .5em .5em
}

table.sorted th.sortable {
    cursor: pointer
}

table.sorted th.sort-primary {
    font-weight: bold
}

table.sorted th.sort-primary:after {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: middle;
    content: ' ';
    background-size: 1em 1em;
    background-position: right center;
    background-repeat: no-repeat;
    background-image: url('images/arrows/down.png')
}

table.sorted th.sort-primary.sort-descending:after {
    background-image: url('images/arrows/up.png')
}

.status-outer {
    display: table;
    height: 100%;
    width: 100%;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10;
    background: black
}

.status-middle {
    width: 100%;
    text-align: center;
    display: table-cell;
    vertical-align: middle
}

.status-middle .notification {
    width: 75%;
    max-width: 5in;
    margin-left: auto;
    margin-right: auto;
    overflow: auto;
    text-align: left
}

.status-middle .notification .body {
    margin: 1.25em
}

.status-middle .notification .buttons {
    margin: 1em
}

.status-outer {
    visibility: hidden;
    opacity: 0;
    transition: opacity, visibility;
    transition-duration: .25s
}

.shown.status-outer {
    visibility: visible;
    opacity: 1;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url('images/johny.png')
}

@media only screen and (max-width: 768px) {
    .shown.status-outer {
        background-color: black !important;
        background-image: none
    }
 }

.status-middle .notification {
    visibility: hidden
}

.shown .status-middle .notification {
    border-radius: 20px;
    visibility: visible
}

.page-tabs .page-list ul,
.section-tabs ul {
    margin: 0;
    padding: 0
}

.page-tabs .page-list ul+ul,
.section-tabs ul+ul {
    font-size: .75em
}

.page-tabs .page-list li,
.section-tabs li {
    display: inline-block;
    list-style: none;
    font-size: 14px
}

.page-tabs .page-list li a[href],
.section-tabs li a {
    display: block;
    color: black;
    text-decoration: none;
    padding: .75em 1em;
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px
}

.page-tabs .page-list li a[href]:visited {
    color: black
}

.page-tabs .page-list li a[href]:hover,
.section-tabs li a:hover {
    background-color: #5abd59;
    cursor: pointer;
    color: white !important;
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px
}

.page-tabs .page-list li a[href].current,
.page-tabs .page-list li a[href].current:hover,
.section-tabs li a.current,
.section-tabs li a.current:hover {
    background: #48a147;
    cursor: default;
    color: white;
    border-bottom-left-radius: 15px;
    border-bottom-right-radius: 15px
}

.terminal-color-scheme-field {
    max-width: 320px
}

.terminal-color-scheme-field select {
    width: 100%
}

.terminal-color-scheme-field .custom-color-scheme {
    background: #EEE;
    padding: .5em;
    border: 1px solid silver;
    border-spacing: 0;
    margin-top: -2px;
    width: 100%
}

.terminal-color-scheme-field .custom-color-scheme-section {
    display: -ms-flexbox;
    display: -moz-box;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex
}

.terminal-color-scheme-field .guac-input-color {
    display: block;
    margin: 2px;
    width: 1.5em;
    height: 1.5em;
    min-width: 1.25em;
    border-radius: 10px;
    line-height: 1.5em;
    text-align: center;
    font-size: .75em;
    cursor: pointer;
    color: black;
    -ms-flex: 1;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    flex: 1
}

.terminal-color-scheme-field .guac-input-color.read-only {
    cursor: not-allowed
}

.terminal-color-scheme-field .guac-input-color.dark {
    color: white
}

.terminal-color-scheme-field .palette .guac-input-color {
    font-weight: bold
}

.terminal-color-scheme-field.custom-color-scheme-details-hidden .custom-color-scheme .palette .guac-input-color {
    color: transparent
}

.terminal-color-scheme-field .custom-color-scheme-details-header {
    font-size: .8em;
    margin: .5em 0;
    padding: 0
}

.terminal-color-scheme-field .custom-color-scheme-details-header::before {
    content: '▸ '
}

.terminal-color-scheme-field.custom-color-scheme-details-visible .custom-color-scheme-details-header::before {
    content: '▾ '
}

.terminal-color-scheme-field .custom-color-scheme-hide-details,
.terminal-color-scheme-field .custom-color-scheme-show-details {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
    margin: 0 .25em;
    font-weight: normal
}

.terminal-color-scheme-field .custom-color-scheme-hide-details {
    display: none
}

.terminal-color-scheme-field.custom-color-scheme-details-visible .custom-color-scheme-hide-details {
    display: inline
}

.terminal-color-scheme-field.custom-color-scheme-details-visible .custom-color-scheme-show-details {
    display: none
}

.terminal-color-scheme-field .custom-color-scheme-details {
    display: none
}

.terminal-color-scheme-field.custom-color-scheme-details-visible .custom-color-scheme-details {
    display: block;
    width: 100%;
    margin: .5em 0
}

.guac-input-color-picker[data-theme="monolith"] {
    width: 16.25em
}

.guac-input-color-picker[data-theme="monolith"] button {
    min-width: 0;
    padding: 0;
    margin: 0;
    box-shadow: none
}

.text-input {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    background: #222;
    color: white
}

.text-input .text-input-field {
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    -moz-box-flex: 1;
    -ms-flex: 1;
    flex: 1
}

.text-input .text-input-field {
    overflow: hidden;
    white-space: nowrap
}

.text-input .target {
    border: 0;
    border-radius: 10px;
    display: inline-block;
    vertical-align: middle;
    color: white;
    font-size: 12pt;
    width: 100%;
    height: auto;
    resize: none;
    outline: 0;
    margin: 0;
    padding: .25em;
    padding-left: 0;
    background: transparent;
    overflow: hidden
}

.text-input .sent-history {
    display: inline-block;
    vertical-align: middle;
    padding: .25em;
    padding-right: 0
}

.text-input .sent-history .sent-text {
    display: inline-block;
    vertical-align: baseline;
    white-space: pre;
    font-size: 12pt;
    animation: fadeout 1s linear;
    -webkit-animation: fadeout 1s linear;
    opacity: 0
}

.text-input .text-input-buttons button {
    box-shadow: none;
    padding: .25em;
    max-width: 20%;
    margin: .1em;
    min-width: 3em;
    background: #444;
    border: .125em solid #666;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px;
    border-radius: 10px;
    color: white;
    font-weight: lighter;
    text-align: center;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25), 1px -1px 0 rgba(0, 0, 0, 0.25), -1px 1px 0 rgba(0, 0, 0, 0.25), -1px -1px 0 rgba(0, 0, 0, 0.25)
}

.text-input .text-input-buttons button:active {
    background: #822;
    border-color: #D44
}

.text-input .text-input-buttons button.pressed {
    background: #882;
    border-color: #DD4
}

div.thumbnail-main {
    overflow: hidden;
    width: 100%;
    height: 100%;
    position: relative;
    font-size: 0
}

.thumbnail-main img {
    max-width: 100%
}

.thumbnail-main .display {
    position: absolute;
    pointer-events: none
}

.transfer-manager {
    background: white
}

.transfer-manager .header h2 {
    font-size: 14px;
    padding-top: 0;
    padding-bottom: 0
}

.transfer-manager .header {
    margin: 0;
    -ms-flex-align: center;
    -moz-box-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center
}

.transfer-manager .transfers {
    display: table;
    padding: .25em;
    width: 100%
}

.transfer {
    display: table-row
}

.transfer .transfer-status {
    display: table-cell;
    padding: .25em;
    position: relative
}

.transfer .text {
    display: table-cell;
    text-align: right;
    padding: .25em
}

.transfer .filename {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    position: relative;
    font-family: monospace;
    font-weight: bold;
    padding: .125em
}

@keyframes transfer-progress {
    from {
        background-position: 0 0
    }

    to {
        background-position: 64px 0
    }
}

@-webkit-keyframes transfer-progress {
    from {
        background-position: 0 0
    }

    to {
        background-position: 64px 0
    }
}

.transfer .progress {
    width: 100%;
    padding: .25em;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    opacity: .25
}

.transfer.in-progress .progress {
    background-color: #EEE;
    background-image: url('images/progress.png');
    background-size: 16px 16px;
    -moz-background-size: 16px 16px;
    -webkit-background-size: 16px 16px;
    -khtml-background-size: 16px 16px;
    animation-name: transfer-progress;
    animation-duration: 2s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    -webkit-animation-name: transfer-progress;
    -webkit-animation-duration: 2s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite
}

.transfer .progress .bar {
    display: none;
    background: #a3d655;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0
}

.transfer.in-progress .progress .bar {
    display: initial
}

.transfer.savable {
    cursor: pointer
}

.transfer.savable .filename {
    color: blue;
    text-decoration: underline
}

.transfer.error {
    background: #FDD
}

.transfer.error .text,
.transfer.error .progress .bar {
    display: none
}

.transfer .error-text {
    display: none
}

.transfer.error .error-text {
    display: block;
    margin: 0;
    margin-top: .5em;
    width: 100%
}

* {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}

body {
    background-image: url("images/sky.svg");
    background-size: cover;
    background-position-y: top;
    background-repeat: no-repeat;
    font-family: Montserrat, FreeSans, Helvetica, Arial, sans-serif;
    padding: 0;
    margin: 0
}

img {
    border: 0;
    vertical-align: middle
}

div.section {
    margin: 1em;
    padding: 0;
    font-size: 13px
}

.list-item {
    display: block;
    text-align: left;
    cursor: pointer;
    position: relative
}

.icon {
    width: 24px;
    height: 24px;
    background-size: 16px 16px;
    -moz-background-size: 16px 16px;
    -webkit-background-size: 16px 16px;
    -khtml-background-size: 16px 16px;
    background-repeat: no-repeat;
    background-position: center center;
    display: inline-block;
    vertical-align: middle
}

.list-item * {
    vertical-align: middle
}

.list-item .caption {
    padding: 1em;
    border-radius: 15px;
}

.list-item .caption:after {
    clear: right;
    content: "";
    display: block
}

.list-item .name {
    color: black;
    font-weight: normal;
    padding: .1em;
    margin-left: .25em
}

.list-item .usage {
    float: right;
    font-style: italic;
    color: gray
}

.list-item.in-use {
    opacity: .5
}

.choice .list-item.in-use {
    opacity: 1
}

.list-item.selected {
    background: #DEB
}

.caption.active * {
    opacity: .5
}

.caption .activeUserCount {
    font-style: italic;
    margin-right: 1em;
    float: right
}

.list-item:not(.selected) .caption:hover {
    background: #dfdfdf
}

.choice .list-item {
    display: inline-block
}

.choice input[type='checkbox'] {
    vertical-align: top;
    height: 24px;
    padding: 0;
    margin: 0
}

.disabled .list-item:not(.selected) {
    opacity: .25
}

.disabled .list-item:not(.selected):hover {
    background: inherit
}

.icon.user {
    background-image: url('images/user-icons/guac-user.png')
}

.icon.user.add {
    background-image: url('images/action-icons/guac-user-add.png')
}

.icon.user-group {
    background-image: url('images/user-icons/guac-user-group.png')
}

.icon.user-group.add {
    background-image: url('images/action-icons/guac-user-group-add.png')
}

.icon.connection {
    background-image: url('images/protocol-icons/guac-plug.png')
}

.icon.connection.add {
    background-image: url('images/action-icons/guac-monitor-add.png')
}

.connection .icon,
.connection-group .icon,
.sharing-profile .icon {
    display: inline-block;
    width: 25px;
    height: 25px;
    background-size: 25px 25px;
    -moz-background-size: 25px 25px;
    -webkit-background-size: 25px 25px;
    -khtml-background-size: 25px 25px;
    background-repeat: no-repeat;
    background-position: center center
}

.connection-group>.caption .icon {
    background-image: url('images/folder-closed.png')
}

.connection-group.expanded>.caption .icon {
    background-image: url('images/folder-open.png')
}

.connection .icon {
    background-image: url('images/protocol-icons/guac-plug.png')
}

.connection .icon.kubernetes,
.connection .icon.ssh,
.connection .icon.telnet {
    background-image: url('images/protocol-icons/guac-text.png')
}

.connection .icon.vnc,
.connection .icon.rdp {
    background-image: url('images/protocol-icons/guac-monitor.png')
}

.sharing-profile .icon {
    background-image: url('images/share.png')
}

.expandable>.children {
    margin-left: 13px;
    padding-left: 13px
}

.connection-group.empty.balancer .icon {
    background-image: url('images/protocol-icons/guac-monitor.png')
}

.expandable.expanded>.children>.list-item {
    position: relative
}

.expandable.expanded>.children>.list-item:before,
.expandable.expanded>.children>.list-item:after {
    display: block;
    content: ' ';
    position: absolute;
    z-index: -1
}

.expandable.expanded>.children>.list-item:before {
    border-left: 1px solid #BBB;
    left: -13px;
    top: -0.75em;
    bottom: 0
}

.expandable.expanded>.children>.list-item:last-child:before {
    height: 1.5em
}

.expandable.expanded>.children>.list-item:after {
    display: block;
    content: ' ';
    border-bottom: 1px solid #BBB;
    left: -13px;
    width: 13px;
    top: .75em
}

.expandable>.caption .icon.expand {
    background-image: url('images/group-icons/guac-closed.png')
}

.expandable.expanded>.caption .icon.expand {
    background-image: url('images/group-icons/guac-open.png')
}

.expandable.empty>.caption .icon.expand {
    opacity: .25;
    background-image: url('images/group-icons/guac-open.png')
}

.history th,
.history td {
    padding-left: 1em;
    padding-right: 1em
}

.buttons {
    text-align: center;
    margin: 1em
}

.settings.user-groups table.user-group-list {
    width: 100%
}

.settings.user-groups table.user-group-list th.user-group-name,
.settings.user-groups table.user-group-list td.user-group-name {
    width: 100%
}

.settings.user-groups table.user-group-list tr.user td.user-group-name a[href] {
    display: block;
    padding: .5em 1em
}

.settings.user-groups table.user-group-list tr.user td.user-group-name {
    padding: 0
}

.user-item.anonymous {
    font-style: italic;
    opacity: .5
}

.settings.users table.user-list {
    width: 100%
}

.settings.users table.user-list th.last-active,
.settings.users table.user-list td.last-active {
    white-space: nowrap
}

.settings.users table.user-list th,
.settings.users table.user-list td {
    width: 25%
}

.settings.users table.user-list tr.user td.username a[href] {
    display: block;
    padding: .5em 1em
}

.settings.users table.user-list tr.user td.username {
    padding: 0
}

.user-menu {
    display: -ms-flexbox;
    -ms-flex-align: stretch;
    -ms-flex-direction: row;
    display: -moz-box;
    -moz-box-align: stretch;
    -moz-box-orient: horizontal;
    display: -webkit-box;
    -webkit-box-align: stretch;
    -webkit-box-orient: horizontal;
    display: -webkit-flex;
    -webkit-align-items: stretch;
    -webkit-flex-direction: row;
    display: flex;
    align-items: stretch;
    flex-direction: row
}

.user-menu .menu-dropdown .menu-title {
    font-weight: bold;
    color: white;
    padding-left: 3.85em;
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0.5em center;
    background-image: url('images/user-icons/guac-user.png');
    padding-right: 3.85em;
}

.user-menu .menu-dropdown .menu-contents li a {
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: .75em center;
    padding-left: 2.5em;
    background-image: url('images/protocol-icons/guac-monitor.png')
}

.user-menu .menu-dropdown .menu-contents li a[href="#/"] {
    background-image: url('images/action-icons/guac-home.png')
}

.user-menu .menu-dropdown .menu-contents li a[href="#/settings/users"],
.user-menu .menu-dropdown .menu-contents li a[href="#/settings/connections"],
.user-menu .menu-dropdown .menu-contents li a[href="#/settings/sessions"],
.user-menu .menu-dropdown .menu-contents li a[href="#/settings/preferences"] {
    background-image: url('images/action-icons/guac-config.png')
}

.user-menu .menu-dropdown .menu-contents li a.logout {
    background-image: url('images/action-icons/guac-logout.png')
}

.user-menu .menu-dropdown .menu-contents .profile {
    margin: 1em;
    padding-bottom: 1em;
    border-bottom: 1px solid rgba(0, 0, 0, 0.25);
    width: 2in
}

.user-menu .menu-dropdown .menu-contents .profile .full-name {
    font-weight: bold
}

.user-menu .menu-dropdown .menu-contents .profile .organization,
.user-menu .menu-dropdown .menu-contents .profile .organizational-role {
    font-size: .8em
}

.viewport {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: hidden
}