/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*
 * Overall tiled grid layout.
 */

.tiled-client-grid {
    width: 100%;
    height: 100%;
}

.tiled-client-grid,
.tiled-client-grid .tiled-client-row,
.tiled-client-grid .tiled-client-cell,
.tiled-client-grid .client-tile {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.tiled-client-grid {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
}

.tiled-client-grid .tiled-client-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
}

/*
 * Rendering of individual clients within tiles.
 */

.tiled-client-grid .client-tile {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    line-height: 1.5;
}

.tiled-client-grid .client-tile .client-tile-header {

    display: -webkit-box;

    display: -webkit-flex;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;

    margin: 0;
    background: #444;
    padding: 0 0.25em;
    font-size: 0.8em;
    color: white;
    z-index: 30;
    min-height: 1.5em;

}

.tiled-client-grid .client-tile.focused .client-tile-header {
    background-color: #3161a9;
}

.tiled-client-grid .client-tile .client-tile-header > * {
    -webkit-box-flex: 0;
    -webkit-flex: 0;
    -ms-flex: 0;
    flex: 0;
}

.tiled-client-grid .client-tile .client-tile-header .client-tile-name {

    -webkit-box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;

    padding: 0 0.5em;
    margin-bottom: -0.125em;

}

.tiled-client-grid .client-tile .main {
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.tiled-client-grid .client-tile-disconnect,
.tiled-client-grid .client-tile-shared-indicator {
    max-height: 1em;
    height: 100%;
}

.tiled-client-grid .client-tile-shared-indicator {
    display: none;
}

.tiled-client-grid .shared .client-tile-shared-indicator {
    display: inline;
}

.tiled-client-grid .client-user-count {

    visibility: hidden;

    display: block;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;

    border-radius: 0.25em;
    padding: 0.125em 0.75em;
    margin: 0.5em;

    background: #055;
    color: white;
    font-weight: bold;
    font-size: 0.8em;

}

.tiled-client-grid .client-user-count::before {

    content: ' ';
    display: inline-block;

    margin-bottom: -0.2em;
    padding-right: 0.25em;
    width: 1em;
    height: 1em;

    background: center / contain no-repeat url('images/user-icons/guac-user-white.svg');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;

}

.tiled-client-grid .client-user-count .client-user-count-users,
.tiled-client-grid .client-user-count .client-user-count-messages {

    position: absolute;
    right: 0;

    margin: 0;
    padding: 0;
    margin-top: 0.5em;
    list-style: none;

}

.tiled-client-grid .client-user-count .client-user-count-users,
.tiled-client-grid .client-user-count .client-user-count-message {
    border-radius: 0.25em;
    background: black;
    color: white;
    padding: 0.5em;
}

.tiled-client-grid .client-user-count .client-user-count-message {
    white-space: nowrap;
    animation: 1s linear 3s fadeout;
}

.tiled-client-grid .client-tile-header .client-user-count {
    display: inline-block;
    position: relative;
    white-space: nowrap;
    background: black;
    padding-left: 0.5em;
    padding-right: 0.75em;
}

.tiled-client-grid .client-tile-header .client-user-count::before {
    padding-right: 0.75em;
}

.tiled-client-grid .joined .client-user-count {
    visibility: visible;
}

.tiled-client-grid .client-user-count .client-user-count-users {
    display: none;
}

.tiled-client-grid .client-user-count:hover .client-user-count-users {
    display: block;
}

.tiled-client-grid .client-user-count .client-user-count-user::after {
    content: ', ';
    margin-right: 0.25em;
}

.tiled-client-grid .client-user-count .client-user-count-user:last-child::after {
    content: none;
}

.tiled-client-grid .client-user-count .client-user-count-user {
    display: inline-block;
}

.tiled-client-grid .client-user-count .client-user-count-user.anonymous {
    font-style: italic;
    opacity: 0.5;
}

.tiled-client-grid .client-user-count .client-user-count-users {
    width: 256px;
    max-width: 75vw;
    white-space: normal;
    border: 1px solid #333;
}

.tiled-client-grid .client-user-count .client-user-count-users::before {

    content: ' ';
    display: block;

    position: absolute;
    right: 0.5em;
    top: -0.5em;

    width: 1em;
    height: 1em;

    background: black;
    border: 1px solid #333;
    border-right: none;
    border-bottom: none;
    transform: rotate(45deg);

}
