:root{
    --primary_color:#444;
    --secondary_color:#666;
    --third_color:#333;
    --font_color:#fff;
    --accent_color:#fcff4c;
    --online_color:#ec2a2a;
}
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}
body{
    width: 100%;
    height: 100vh;
    background-color:var(--primary_color);
    color:var(--font_color);
    position: relative;
}

.container{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.title{
    width: 100%;
    height: 7%;
    background-color: var(--secondary_color);
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    font-weight: bold;
}

.upper_layout{
    width: 100%;
    height: 70%;
    display: flex;
    flex-direction: row;
    justify-content:center;
    align-items: center;
    position: relative;
    background-color:var(--third_color);
    margin-top: 0.1rem;
}

.lower_layout{
    width: 100%;
    height: 23%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.timetable_list{
    width:50%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    flex-direction: column;
}

.file_manager{
    width:50%;
    height: 100%;
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    justify-content: flex-start;
    align-items: stretch;
    position: relative;
    flex-direction: column;
    overflow: hidden;
}

.file_manager iframe{
    width: 100%;
    height: 100%;
    border: none;
    position: relative;
    overflow: hidden;
}

.file_container{
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    position: relative;
    overflow-y: auto;
}

.add_btn{
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: var(--secondary_color);
    position: absolute;
    bottom: 2rem;
    right: 2rem;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--font_color);
    transition:0.3s ease-in-out;
}
.add_btn:hover{
    background-color: var(--accent_color);
    color: var(--primary_color);
    transform:rotate(90deg);
    transition: 0.3s ease-in-out;
}
.category{
    width: 100%;
    height: 7%;
    display: flex;
    position: relative;
    flex-direction: row;
    gap:0.5rem;
    margin:0.5rem;
    align-items: center;
    font-size: 0.8rem;
    padding-left: 0.5rem;
    justify-content: start;
}
.category_btn{
    user-select: none;
    width: max-content;
    padding: 0 0.5rem;
    height: 1.5rem;
    background-color: var(--secondary_color);
    cursor: pointer;
    display: flex;
    gap:0.3rem;
    border-radius: 5px;
    justify-content: center;
    align-items: center;
    position: relative;
    transition: 0.3s ease-in-out;
}

.category_btn:hover{
    background-color: var(--third_color);
    transition: 0.3s ease-in-out;
}

.category_btn.active{
    background-color: var(--third_color);
    transition: 0.3s ease-in-out;
}

/* file -table  */

.file_table{
    padding-left:0.5rem ;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    flex: 1 1 auto;
    min-height: 0;
}

.table_title{
    user-select: none;
    width: 95%;
    height: 9%;
    display: flex;
    position: relative;
    flex-direction: row;
    align-items: center;
    justify-content: start;
    background-color: var(--third_color);
    padding: 0.2rem;
    padding-left: 1rem;
    padding-right: 1rem;
    border-radius: 3px;
}

.table_title div:nth-child(1){
    padding-left: 0.5rem;
    width: 60%;
    text-overflow: ellipsis;
}

.table_title div:nth-child(2){
    justify-content: center;
    width: 20%;
}
.table_title div:nth-child(3){
    justify-content: center;
    width: 20%;
}
.table_body{
    width: 95%;
    display: flex;
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    margin-top: 0.1rem;
    overflow: auto;
}
.file_item_holder{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.file_container::-webkit-scrollbar,
.file_item_holder::-webkit-scrollbar{
    width: 0.5rem;
}
.file_container::-webkit-scrollbar-thumb,
.file_item_holder::-webkit-scrollbar-thumb{
    background-color: var(--third_color);
    border-radius: 0.25rem;
}

.file_item{
    width: 100%;
    height: 2rem;
    min-height: 1.5rem;
    /** text is not selectable **/
    user-select: none;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    justify-content: start;
    align-items: center;
    background-color: var(--secondary_color);
}

.file_item div:nth-child(1){
    padding-left: 0.5rem;
    width: 60%;
    min-width: 0;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.file_item div:nth-child(2){
    justify-content: center;
    width: 15%;
}
.file_item div:nth-child(3){
    justify-content: center;
    width: 10%;
}
.file_item div:nth-child(4){
    display: flex;
    flex-direction: row;
    gap:0.3rem;
    justify-content: center;
    align-items: center;
    width: 3.5rem;
    margin: 0;
    background-color: var(--third_color);
}
.edit_item_btn{
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--primary_color);
    color: var(--font_color);
    border-radius: 2px;
    cursor: pointer;
    transition: 0.3s ease-in-out;
    overflow: hidden;
}

.edit_item_btn:hover{
    background-color: var(--accent_color);
    color: var(--primary_color);
    transition: 0.3s ease-in-out;
}

.delete_item_btn{
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--primary_color);
    color: var(--font_color);
    border-radius: 2px;
    cursor: pointer;
    transition: 0.3s ease-in-out;
    overflow: hidden;
}

.delete_item_btn:hover{
    background-color: var(--online_color);
    color: var(--primary_color);
    transition: 0.3s ease-in-out;
}


/* loading */
.loading{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2rem;
    color: var(--font_color);
}