/* File Type Icons CSS */
.file-icon {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  position: relative;
  margin: 0 auto;
  flex-shrink: 0;
}

.file-icon.sm {
  width: 40px;
  height: 40px;
  border-radius: 6px;
}

.file-icon.lg {
  width: 80px;
  height: 80px;
  border-radius: 10px;
}

/* SVG Icons */
.file-icon-svg {
  width: 60px;
  height: 60px;
  margin: 0 auto;
  display: block;
  flex-shrink: 0;
}

.file-icon-svg.sm {
  width: 40px;
  height: 40px;
}

.file-icon-svg.lg {
  width: 80px;
  height: 80px;
}

/* PowerPoint Logo */
.file-icon.powerpoint {
  background-color: #D24726;
}

.file-icon.powerpoint::before {
  content: "P";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.powerpoint.sm::before {
  font-size: 20px;
}

.file-icon.powerpoint.lg::before {
  font-size: 42px;
}

/* Presentation Logo (alternative to PowerPoint) */
.file-icon.presentation {
  background-color: #D24726;
}

.file-icon.presentation::before {
  content: "P";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.presentation.sm::before {
  font-size: 20px;
}

.file-icon.presentation.lg::before {
  font-size: 42px;
}

/* Word Logo */
.file-icon.word {
  background-color: #2B579A;
}

.file-icon.word::before {
  content: "W";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.word.sm::before {
  font-size: 20px;
}

.file-icon.word.lg::before {
  font-size: 42px;
}

/* Document Logo (alternative to Word) */
.file-icon.document {
  background-color: #2B579A;
}

.file-icon.document::before {
  content: "D";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.document.sm::before {
  font-size: 20px;
}

.file-icon.document.lg::before {
  font-size: 42px;
}

/* PDF Logo */
.file-icon.pdf {
  background-color: #DB3A29;
}

.file-icon.pdf::before {
  content: "PDF";
  font-size: 18px;
  font-weight: bold;
  color: white;
}

.file-icon.pdf.sm::before {
  font-size: 12px;
}

.file-icon.pdf.lg::before {
  font-size: 24px;
}

/* Image Logo */
.file-icon.image {
  background-color: #0078D7;
  position: relative;
  overflow: hidden;
}

.file-icon.image::before {
  content: "";
  position: absolute;
  width: 30px;
  height: 30px;
  background-color: #fff;
  border-radius: 50%;
  top: 7px;
}

.file-icon.image::after {
  content: "";
  position: absolute;
  border-style: solid;
  border-width: 0 10px 15px 10px;
  border-color: transparent transparent #fff transparent;
  bottom: 7px;
  left: 20px;
}

.file-icon.image.sm::before {
  width: 20px;
  height: 20px;
  top: 5px;
}

.file-icon.image.sm::after {
  border-width: 0 7px 10px 7px;
  bottom: 5px;
  left: 13px;
}

.file-icon.image.lg::before {
  width: 40px;
  height: 40px;
  top: 10px;
}

.file-icon.image.lg::after {
  border-width: 0 15px 20px 15px;
  bottom: 10px;
  left: 25px;
}

/* Text File Logo */
.file-icon.text {
  background-color: #7D7D7D;
  position: relative;
}

.file-icon.text::before {
  content: "";
  position: absolute;
  width: 30px;
  height: 40px;
  background-color: white;
  top: 10px;
  border-radius: 2px;
}

.file-icon.text::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 2px;
  background-color: #7D7D7D;
  top: 18px;
  left: 20px;
  box-shadow: 
    0 6px 0 #7D7D7D,
    0 12px 0 #7D7D7D,
    0 18px 0 #7D7D7D,
    0 24px 0 #7D7D7D;
}

.file-icon.text.sm::before {
  width: 20px;
  height: 28px;
  top: 6px;
}

.file-icon.text.sm::after {
  width: 14px;
  height: 1.5px;
  top: 12px;
  left: 13px;
  box-shadow: 
    0 4px 0 #7D7D7D,
    0 8px 0 #7D7D7D,
    0 12px 0 #7D7D7D,
    0 16px 0 #7D7D7D;
}

.file-icon.text.lg::before {
  width: 40px;
  height: 54px;
  top: 13px;
}

.file-icon.text.lg::after {
  width: 28px;
  height: 3px;
  top: 23px;
  left: 26px;
  box-shadow: 
    0 8px 0 #7D7D7D,
    0 16px 0 #7D7D7D,
    0 24px 0 #7D7D7D,
    0 32px 0 #7D7D7D;
}

/* Excel Logo */
.file-icon.excel {
  background-color: #217346;
}

.file-icon.excel::before {
  content: "X";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.excel.sm::before {
  font-size: 20px;
}

.file-icon.excel.lg::before {
  font-size: 42px;
}

/* Spreadsheet Logo (alternative to Excel) */
.file-icon.spreadsheet {
  background-color: #217346;
}

.file-icon.spreadsheet::before {
  content: "X";
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.file-icon.spreadsheet.sm::before {
  font-size: 20px;
}

.file-icon.spreadsheet.lg::before {
  font-size: 42px;
}

/* Audio File */
.file-icon.audio {
  background-color: #1DB954;
}

.file-icon.audio::before {
  content: "";
  position: absolute;
  height: 16px;
  width: 6px;
  background-color: white;
  top: 25px;
  left: 20px;
  border-radius: 1px;
  box-shadow: 
    10px -6px 0 white,
    20px 3px 0 white;
}

.file-icon.audio.sm::before {
  height: 12px;
  width: 4px;
  top: 16px;
  left: 13px;
  box-shadow: 
    7px -4px 0 white,
    14px 2px 0 white;
}

.file-icon.audio.lg::before {
  height: 22px;
  width: 8px;
  top: 32px;
  left: 26px;
  box-shadow: 
    13px -8px 0 white,
    26px 4px 0 white;
}

/* Video File */
.file-icon.video {
  background-color: #FF3D00;
}

.file-icon.video::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 0 15px 26px;
  border-color: transparent transparent transparent #ffffff;
  left: 22px;
  top: 15px;
}

.file-icon.video.sm::before {
  border-width: 10px 0 10px 18px;
  left: 15px;
  top: 10px;
}

.file-icon.video.lg::before {
  border-width: 20px 0 20px 34px;
  left: 28px;
  top: 20px;
}

/* Archive File */
.file-icon.archive {
  background-color: #8D6E63;
}

.file-icon.archive::before {
  content: "";
  position: absolute;
  width: 30px;
  height: 20px;
  background-color: white;
  top: 10px;
  left: 15px;
  border-radius: 2px 2px 0 0;
}

.file-icon.archive::after {
  content: "";
  position: absolute;
  width: 30px;
  height: 22px;
  background-color: #ddd;
  top: 28px;
  left: 15px;
  border-radius: 0 0 2px 2px;
  background-image: linear-gradient(to bottom, #8D6E63 50%, transparent 50%);
  background-size: 100% 6px;
}

.file-icon.archive.sm::before {
  width: 20px;
  height: 14px;
  top: 7px;
  left: 10px;
}

.file-icon.archive.sm::after {
  width: 20px;
  height: 15px;
  top: 19px;
  left: 10px;
  background-size: 100% 4px;
}

.file-icon.archive.lg::before {
  width: 40px;
  height: 28px;
  top: 13px;
  left: 20px;
}

.file-icon.archive.lg::after {
  width: 40px;
  height: 30px;
  top: 37px;
  left: 20px;
  background-size: 100% 8px;
}

/* CSV File */
.file-icon.csv {
  background-color: #1A7345;
}

.file-icon.csv::before {
  content: "CSV";
  font-size: 18px;
  font-weight: bold;
  color: white;
}

.file-icon.csv.sm::before {
  font-size: 14px;
}

.file-icon.csv.lg::before {
  font-size: 24px;
}

/* Generic File */
.file-icon.generic {
  background-color: #607D8B;
}

.file-icon.generic::before {
  content: "";
  position: absolute;
  width: 30px;
  height: 36px;
  background-color: white;
  border-radius: 2px;
  top: 12px;
  left: 15px;
}

.file-icon.generic::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 0 0 8px;
  border-color: transparent transparent transparent #607D8B;
  right: 15px;
  top: 12px;
}

.file-icon.generic.sm::before {
  width: 20px;
  height: 24px;
  top: 8px;
  left: 10px;
}

.file-icon.generic.sm::after {
  border-width: 6px 0 0 6px;
  right: 10px;
  top: 8px;
}

.file-icon.generic.lg::before {
  width: 40px;
  height: 48px;
  top: 16px;
  left: 20px;
}

.file-icon.generic.lg::after {
  border-width: 12px 0 0 12px;
  right: 20px;
  top: 16px;
}