.fp-element-desc-title, .fp-preview-title, .modal-window-title {
    white-space: nowrap;
    text-overflow: ellipsis
}

@font-face {
    font-family: 'Open Sans';
    src: url('../assets/fonts/OpenSans-Medium.eot');
    src: local('Open Sans Medium'), local('OpenSans-Medium'), url('../assets/fonts/OpenSans-Medium.eot?#iefix') format('embedded-opentype'), url('../assets/fonts/OpenSans-Medium.woff2') format('woff2'), url('../assets/fonts/OpenSans-Medium.woff') format('woff'), url('../assets/fonts/OpenSans-Medium.ttf') format('truetype'), url('../assets/fonts/OpenSans-Medium.svg#OpenSans-Medium') format('svg');
    font-weight: 500;
    font-style: normal;
    font-display: fallback
}

@font-face {
    font-family: 'Open Sans';
    src: url('../assets/fonts/OpenSans-Bold.eot');
    src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../assets/fonts/OpenSans-Bold.eot?#iefix') format('embedded-opentype'), url('../assets/fonts/OpenSans-Bold.woff2') format('woff2'), url('../assets/fonts/OpenSans-Bold.woff') format('woff'), url('../assets/fonts/OpenSans-Bold.ttf') format('truetype'), url('../assets/fonts/OpenSans-Bold.svg#OpenSans-Bold') format('svg');
    font-weight: 700;
    font-style: normal;
    font-display: fallback
}

@font-face {
    font-family: 'Open Sans';
    src: url('../assets/fonts/OpenSans-Regular.eot');
    src: local('Open Sans Regular'), local('OpenSans-Regular'), url('../assets/fonts/OpenSans-Regular.eot?#iefix') format('embedded-opentype'), url('../assets/fonts/OpenSans-Regular.woff2') format('woff2'), url('../assets/fonts/OpenSans-Regular.woff') format('woff'), url('../assets/fonts/OpenSans-Regular.ttf') format('truetype'), url('../assets/fonts/OpenSans-Regular.svg#OpenSans-Regular') format('svg');
    font-weight: 400;
    font-style: normal;
    font-display: fallback
}

@font-face {
    font-family: Files-Icons;
    src: url('../assets/fonts/icons/fonts/Files-Icons.eot?e02quk');
    src: url('../assets/fonts/icons/fonts/Files-Icons.eot?e02quk#iefix') format('embedded-opentype'), url('../assets/fonts/icons/fonts/Files-Icons.ttf?e02quk') format('truetype'), url('../assets/fonts/icons/fonts/Files-Icons.woff?e02quk') format('woff'), url('../assets/fonts/icons/fonts/Files-Icons.svg?e02quk#Files-Icons') format('svg');
    font-weight: 400;
    font-style: normal;
    font-display: block
}

[class*=" icon-"], [class^=icon-] {
    font-family: Files-Icons, sans-serif !important;
    speak: never;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

.add-file-folder button, .file-context-menu button, .fp-add-new-button {
    outline: 0;
    text-transform: capitalize;
    cursor: pointer
}

.icon-cut:before {
    content: "\e910"
}

.icon-paste:before {
    content: "\e911"
}

.icon-rename:before {
    content: "\e912"
}

.icon-remove:before {
    content: "\e913"
}

.icon-copy:before {
    content: "\e914"
}

.icon-close-eye:before {
    content: "\e90f"
}

.icon-download:before {
    content: "\e90e"
}

.icon-eye:before {
    content: "\e90d"
}

.icon-close:before {
    content: "\e90c"
}

.icon-file:before {
    content: "\e90b"
}

.icon-refresh:before {
    content: "\e90a"
}

.icon-chevron:before {
    content: "\e900"
}

.icon-double-chevron:before {
    content: "\e901"
}

.icon-file-plus:before {
    content: "\e902"
}

.icon-file-upload:before {
    content: "\e903"
}

.icon-folder:before {
    content: "\e904"
}

.icon-folder-plus:before {
    content: "\e905"
}

.icon-folder-upload:before {
    content: "\e906"
}

.icon-grid:before {
    content: "\e907"
}

.icon-list:before {
    content: "\e908"
}

.icon-search:before {
    content: "\e909"
}

::-webkit-scrollbar-track {
    background-color: #fff
}

::-webkit-scrollbar {
    width: 4px;
    height: 4px;
    background-color: #fff;
    border-radius: 2px
}

.files-page, .fp-search input, body, html {
    width: 100%;
    height: 100%
}

::-webkit-scrollbar-thumb {
    background-color: #14879e
}

body {
    margin: 0
}

body, button, input, select, textarea {
    font-family: 'Open Sans', sans-serif
}

h1, h2, h3, h4, h5, h6, ol, p, ul {
    margin-top: 0;
    margin-bottom: 0
}

ol, ul {
    padding-left: 0
}

a {
    color: inherit;
    text-decoration: none
}

*, :after, :before {
    box-sizing: border-box
}

.files-page {
    display: grid;
    grid-template-rows:auto 11fr;
    grid-template-columns:12fr;
    grid-row-gap: 10px;
    background-color: #ebedf0
}

.fp-aside, .fp-header {
    background-color: #fff
}

#grid-view:checked ~ .fp-body .fp-window-address, #grid-view:checked ~ .fp-body .fp-window-thead, #grid-view:checked ~ .fp-body .fp-window-trow:after, #grid-view:checked ~ .fp-body p.fp-window-download, .files-page > input[type=checkbox], .files-page > input[type=radio], .fp-add-menu-btn input[type=file], .fp-folder-check {
    display: none
}

.fp-header {
    width: 100%;
    height: 58px;
    border: 1px solid #dadee0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-left: 12px;
    padding-right: 12px
}

.fp-element-desc-row, .fp-header-panel, .fp-right-panel {
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.fp-title {
    font-weight: 500;
    font-size: 24px;
    margin-right: 20px;
    color: #353739
}

.fp-search {
    position: relative;
    width: 300px;
    height: 32px;
    border: 1px solid #cfcfcf;
    border-radius: 4px;
    overflow: hidden
}

.fp-search input {
    border: none;
    outline: 0;
    padding-left: 15px;
    padding-right: 50px
}

.fp-search button {
    position: absolute;
    top: 50%;
    right: 0;
    color: #353739;
    transform: translateY(-50%);
    width: 32px;
    height: 100%;
    padding-left: 0;
    padding-right: 0;
    background-color: transparent;
    border: none;
    outline: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer
}

.fp-view-variants {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 32px;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #cfcfcf
}

.fp-view-variant {
    width: 40px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: background-color 240ms, color 240ms
}

.add-file-folder button, .file-context-menu button, .fp-add-menu-btn, .fp-add-new-button, .fp-preview-trigger, .fp-window-download {
    transition: background-color 240ms
}

#grid-view:checked ~ .fp-header .fp-view-variant[for=grid-view], #list-view:checked ~ .fp-header .fp-view-variant[for=list-view] {
    background-color: #1ca1c1;
    color: #fff;
    pointer-events: none
}

#grid-view:checked ~ .fp-body .fp-window-file-el {
    width: 45px;
    height: 59px
}

#grid-view:checked ~ .fp-body .fp-window-file-el:before {
    font-size: 13px
}

#grid-view:checked ~ .fp-body .fp-window-file-el:after {
    width: 15px;
    height: 15px
}

#grid-view:checked ~ .fp-body .fp-window-tbody {
    display: grid;
    grid-template-columns:repeat(7, 1fr);
    grid-gap: 12px;
    align-items: flex-start;
    padding: 12px
}

#grid-view:checked ~ .fp-body .fp-window-trow {
    flex-direction: column;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 0 5px rgba(0, 0, 0, .2)
}

#grid-view:checked ~ .fp-body .fp-window-td {
    flex-direction: column;
    order: 1;
    align-items: flex-start
}

#grid-view:checked ~ .fp-body .fp-window-size {
    order: 3;
    position: absolute;
    bottom: 17px;
    right: 0;
    width: auto
}

#grid-view:checked ~ .fp-body .fp-window-download {
    order: 4;
    margin-bottom: 12px;
    margin-top: 4px
}

#grid-view:checked ~ .fp-body .fp-window-file, #grid-view:checked ~ .fp-body .fp-window-folder {
    font-size: 55px;
    margin-bottom: 10px;
    width: 100%;
    height: 120px
}

#grid-view:checked ~ .fp-body .fp-window-el-title {
    display: block;
    height: auto;
    width: 100%;
    margin-bottom: 8px
}

#preview-trigger:checked ~ .fp-body .fp-preview-block, .fp-aside, .fp-body {
    display: flex
}

.fp-body {
    width: 100%;
    height: 100%;
    min-height: 0;
    justify-content: flex-start;
    align-items: stretch
}

.fp-aside {
    flex: 0 0 auto;
    width: 238px;
    margin-right: 10px;
    border: 1px solid #dadee0;
    padding: 11px 14px 28px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start
}

.fp-add-new {
    position: relative;
    width: 100%;
    margin-bottom: 11px;
    flex: 0 0 auto;
    z-index: 1
}

.fp-add-new-button {
    width: 100%;
    height: 40px;
    background-color: #1ca1c1;
    border: none;
    border-radius: 4px;
    color: #fff
}

.add-file-folder button:hover, .fp-add-new-button.active, .fp-add-new-button:hover, a.fp-window-download:hover {
    background-color: #14879e
}

.fp-add-new-button.active + .fp-add-new-menu, .fp-folder-label input:checked ~ .fp-folder-label, .fp-folder-structure > .fp-folder-label {
    display: block
}

.fp-add-new-menu {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    padding-top: 45px;
    width: 100%
}

.fp-add-menu-list {
    width: 100%;
    border: 1px solid #dadee0;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 0 3px rgba(0, 0, 0, .1);
    background-color: #fff
}

.fp-add-menu-li {
    width: 100%;
    height: 40px
}

.fp-add-menu-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: none;
    outline: 0;
    padding-left: 33px;
    padding-right: 33px;
    text-align: left;
    cursor: pointer
}

.fp-window-address, .fp-window-size, .fp-window-td, .fp-window-th, .fp-window-th:nth-child(4) {
    padding-left: 12px;
    padding-right: 12px
}

.file-context-menu button:hover, .fp-add-menu-btn:hover {
    background-color: #f5f5f5
}

.fp-add-menu-btn i {
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
    color: #94a1b3;
    font-size: 16px
}

.fp-add-menu-btn span {
    font-size: 14px;
    color: #353739;
    font-weight: 400
}

.fp-folder-structure {
    width: 100%;
    height: 100%;
    min-height: 0;
    flex: 1;
    overflow: overlay
}

.fp-storage-block {
    width: 100%;
    flex: 0 0 auto;
    margin-top: 10px
}

.fp-storage-progress {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background-color: #dfe2e6
}

.fp-storage-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: 4px;
    background-color: #14879e
}

.fp-storage-info {
    font-size: 12px;
    color: #94999f;
    margin-top: 5px
}

.bread-crumb, .fp-window-th {
    font-size: 14px
}

.fp-window {
    width: 100%;
    min-width: 0;
    flex: 1;
    background-color: #fff;
    border: 1px solid #dadee0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start
}

.fp-refresh-button, p.fp-window-download {
    background-color: transparent
}

.fp-window-header {
    width: 100%;
    height: 44px;
    flex: 0 0 auto;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.fp-window-header:after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: #cfcfcf
}

.fp-window-table {
    flex: 1;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start
}

.fp-refresh-button {
    width: 55px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
    outline: 0;
    cursor: pointer;
    flex: 0 0 auto
}

.fp-go-back-btn, .fp-window-thead {
    background-color: #f4f5f9;
    width: 100%
}

.fp-refresh-button i {
    font-size: 17px;
    color: #94a1b3
}

.bread-crumbs {
    width: 100%;
    min-width: 0;
    height: 100%;
    flex: 1;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    list-style: none
}

.bread-crumb:not(:last-child) {
    position: relative;
    margin-right: 15px
}

.bread-crumb:not(:last-child):after {
    content: "\e900";
    font-family: Files-Icons, sans-serif;
    position: absolute;
    top: 50%;
    right: -12px;
    font-size: 9px;
    transform: rotateZ(-90deg) translate(36%, 7%)
}

.fp-go-back-btn {
    height: 36px;
    flex: 0 0 auto
}

.fp-go-back-btn a {
    height: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: #1ca1c1;
    padding-left: 19px
}

.fp-go-back-btn a i {
    display: block;
    font-size: 12px;
    margin-right: 15px
}

.fp-window-table {
    width: 100%
}

.fp-window-thead {
    flex: 0 0 auto;
    height: 43px;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    position: relative
}

.fp-window-thead:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #24a9cc
}

.fp-window-th {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: #353739
}

.fp-window-th:first-child {
    width: 100%;
    flex: 1
}

.fp-window-th:nth-child(2), .fp-window-th:nth-child(3) {
    position: relative;
    flex: 0 0 auto
}

.fp-window-th:nth-child(2):after, .fp-window-th:nth-child(3):after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 1px;
    height: 100%;
    background-color: #cfcfcf
}

.fp-window-size, .fp-window-th:nth-child(2) {
    width: 100px
}

.fp-window-address, .fp-window-th:nth-child(3) {
    width: 150px
}

.fp-window-th:nth-child(4) {
    width: 124px
}

.fp-window-tbody {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: overlay
}

.fp-window-trow {
    width: 100%;
    height: 50px;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    position: relative;
    transition: background-color 240ms;
}

.fp-window-trow:hover, .fp-window-trow.active {
    background-color: #f5f5f5;
}

.fp-window-trow:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #cfcfcf
}

.fp-window-td {
    width: 100%;
    min-width: 0;
    flex: 1;
    font-size: 13px;
    color: #353739;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    cursor: pointer
}

.fp-window-address, .fp-window-size {
    font-size: 13px;
    color: #353739;
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.fp-window-folder {
    width: 40px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center
}

.fp-window-file {
    width: 40px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center
}

.fp-window-folder.icon-folder {
    font-size: 22px;
    color: #353739
}

.fp-window-file.icon-file {
    font-size: 20px;
    color: #1ca1c1
}

.fp-window-download {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 26px;
    border-radius: 4px;
    margin-left: 12px;
    margin-right: 12px;
    font-size: 13px;
    background-color: #1ca1c1;
    color: #fff;
    margin-top: 12px
}

.fp-folder-label {
    display: none;
    padding-left: 15px;
    user-select: none
}

.fp-folder {
    position: relative;
    display: block;
    margin-bottom: 10px;
    cursor: pointer
}

.fp-folder:not(:last-child):before {
    content: "\e900";
    font-family: Files-Icons, sans-serif;
    position: absolute;
    left: -15px;
    top: 5px;
    font-size: 10px;
    transform: rotateZ(-90deg)
}

.fp-folder-check:checked + span:before {
    transform: rotateZ(0)
}

.modal-window {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9;
    background-color: rgba(0, 0, 0, .6);
    display: flex
}

.modal-window-inner {
    margin: auto;
    width: 360px;
    background-color: #fff;
    border-radius: 4px;
    box-shadow: 0 0 4px rgba(0, 0, 0, .2);
    overflow: hidden
}

.fp-element-desc-row:not(:last-child), .fp-preview-window {
    margin-bottom: 10px
}

.modal-window-header {
    width: 100%;
    height: 40px;
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.modal-window-title {
    width: 100%;
    min-width: 0;
    flex: 1;
    padding-left: 10px;
    font-weight: 500;
    color: #353739;
    overflow: hidden
}

.modal-window-close {
    flex: 0 0 auto;
    width: 40px;
    height: 100%;
    border: none;
    outline: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    background-color: transparent;
    cursor: pointer;
    color: #353739
}

.fp-element-desc, .modal-window-body {
    width: 100%;
    padding: 10px
}

.add-file-folder {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center
}

.add-file-folder input[type=text] {
    width: 100%;
    height: 32px;
    min-width: 0;
    flex: 1;
    border-radius: 4px;
    border: 1px solid #cfcfcf;
    padding-left: 10px;
    padding-right: 10px;
    outline: 0
}

.add-file-folder input[type=text] + button {
    margin-left: 10px
}

.add-file-folder button {
    flex: 0 0 auto;
    height: 32px;
    background-color: #1ca1c1;
    min-width: 100px;
    border: none;
    border-radius: 4px;
    color: #fff
}

.fp-preview-trigger {
    width: 56px;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    margin-right: 15px;
    border-radius: 4px;
    border: 1px solid #cfcfcf;
    cursor: pointer
}

#preview-trigger:checked ~ .fp-header .fp-preview-trigger, .fp-preview-trigger:hover {
    background-color: rgba(0, 0, 0, .1)
}

.fp-preview-block {
    display: none;
    width: 467px;
    margin-left: 10px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start
}

.fp-preview-window {
    width: 100%;
    height: 100%;
    flex: 1;
    min-height: 0;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start
}

.fp-element-info {
    flex: 0 0 auto;
    width: 100%;
    background-color: #fff
}

.fp-preview-header {
    width: 100%;
    height: 44px;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    border-bottom: 1px solid #cfcfcf;
    flex: 0 0 auto
}

.fp-preview-title {
    width: 100%;
    min-width: 0;
    flex: 1;
    font-size: 16px;
    font-weight: 500;
    color: #353739;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding-left: 10px;
    padding-right: 10px;
    overflow: hidden
}

.fp-file-download {
    flex: 0 0 auto;
    width: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: #353739
}

.fp-element-desc-title {
    width: 100px;
    overflow: hidden
}

.fp-element-desc-info {
    margin-left: 0
}

.fp-preview-body {
    flex: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 10px;
    overflow-x: hidden;
    overflow-y: auto
}

.fp-preview-body > :not(.fp-unable-to-preview) {
    margin-bottom: 15px
}

.fp-preview-body ol, .fp-preview-body ul {
    padding-left: 18px
}

.fp-unable-to-preview {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column
}

.fp-unable-to-preview i {
    font-size: 40px;
    margin-bottom: 10px;
    color: #94999f
}

.fp-unable-text {
    font-size: 20px;
    font-weight: 400;
    color: #94999f
}

.fp-window-file-el {
    position: relative;
    width: 25px;
    height: 29px;
    background-color: var(--file-color);
    border-radius: 4px
}

.fp-window-file-el:before {
    content: attr(data-extension);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, .3);
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-transform: uppercase;
    font-size: 8px;
    padding-top: 4px;
    text-shadow: 0 1px 1px #000;
    font-weight: 700
}

.fp-window-file-el:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 10px;
    height: 10px;
    background-image: linear-gradient(225deg, #fff 0, #fff 50%, var(--file-color) 50.1%, var(--file-color) 100%);
    border-radius: 0 0 0 4px
}

.file-context-menu {
    width: 200px;
    position: absolute;
    top: 0;
    left: 0;
    box-shadow: 0 3px 10px 0 rgba(0, 0, 0, .1), 0 1px 7px 0 rgba(0, 0, 0, .1);
    background-color: #fff;
    padding: 10px;
    z-index: 3
}

.file-context-menu button {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    height: 36px;
    background-color: transparent;
    border: none;
    color: #353739;
    font-size: 14px;
    border-radius: 4px
}

.file-context-menu button.remove-btn, .file-context-menu button.remove-btn i {
    color: red
}

.file-context-menu i {
    font-size: 18px;
    color: #353739;
    margin-right: 10px
}