main {
  padding: 20px;
}
.subjects-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 40px;
  }
  
  .subject-box {
    width: 90%;
    max-width: 500px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    overflow: hidden;
  }
  .subject-box:not(.available) {
    background-color: #ddd;
    box-shadow: none;
  }
  
  .subject-header {
    display: flex;
    position: relative;
    align-items: center;
    padding: 15px 20px;
    font-size: 20px;
    font-weight: bold;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    transition: background-color 0.3s;
  }
  .subject-box:not(.available) .subject-header {
    cursor: default;
  }
  .available .subject-header:hover {
    background-color: #eaf4ff;
  }
  .folder {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    overflow: hidden;
  }
  .folder-header {
    display: flex;
    align-items: center;
    padding: 10px 14px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    transition: background-color 0.3s;
  }
  .folder-header:hover {
    background-color: #eaf4ff;
  }
  .units {
    padding: 10px 20px;
    background: #f9f9f9;
  }
  
  .unit {
    margin: 6px 0;
    padding: 8px 12px;
    background: #e0ecff;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s;
  }
  .unit.fake {
    background: #ffe0e0;
  }
  .unit:hover {
    background: #bcdfff;
  }
  .unit.fake:hover  {
    background: #ffb7b7;
  }
  
  .hidden {
    display: none;
  }
  
  .progress {
    position: absolute;
    height: 100%;
    width: 0%;
    top: 0;
    left: 0;
    background-color: rgb(171, 214, 171);
    transition: width 0.5s ease-in-out, opacity 0.5s ease-in;
  }
  .label {
    z-index: 2;
  }