:root {
  --sidebar-width: 300px;
  --sidebar-right-gap: 15px;
  --brand-red: #ff0505;
  --text-gray: #777;
}

@font-face {
  font-family: "fl-icons";
  src: url("assets/fl-icons.woff2") format("woff2");
  font-style: normal;
  font-weight: normal;
  font-display: block;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  margin: 0;
}

body {
  font-family: "Be Vietnam Pro", Arial, sans-serif;
  color: #fff;
  background: #cf0000;
}

.app-shell {
  display: flex;
  min-height: 100vh;
}

.sidebar {
  position: fixed;
  z-index: 20;
  inset: 0 auto 0 0;
  width: var(--sidebar-width);
  padding: 0 var(--sidebar-right-gap) 30px 0;
  color: var(--text-gray);
  background: #fff;
  border-right: 0;
}

/* Đường phân cách nằm bên trong sidebar, trước dải trắng bên phải */
.sidebar::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: var(--sidebar-right-gap);
  width: 1px;
  height: 100%;
  background-color: rgba(120, 120, 120, 0.28);
  transform: scaleX(0.5);
  transform-origin: right center;
  pointer-events: none;
}

.brand {
  height: 77px;
  padding: 4px 26px 10px;
  display: flex;
  align-items: center;
}

.brand img {
  display: block;
  width: 190px;
  height: 62px;
  object-fit: contain;
}

.menu {
  padding: 1px 0;
}

.menu-item {
  min-height: 51px;
  margin: 4px 0;
  padding: 0 28px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text-gray);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.menu-item:hover,
.menu-item:focus-visible {
  color: #222;
  background: #fff2f2;
  outline: none;
}

.menu-item.active {
  width: calc(100% - 16px);
  margin: 13px 0 5px 16px;
  padding-left: 12px;
  min-height: 61px;
  color: #111;
  background: var(--brand-red);
  border-radius: 6px;
}

.menu-icon {
  width: 14px;
  flex: 0 0 16px;
  color: currentColor;
  font-size: 15px;
  line-height: 1;
  text-align: center;
}

.icon-chat::before,
.icon-star::before,
.icon-checkmark::before,
.icon-user::before {
  font-family: "fl-icons";
  font-style: normal;
  font-weight: normal;
  speak: never;
}

.icon-chat::before {
  content: "\e903";
}

.icon-star::before {
  content: "\e005";
}

.icon-checkmark::before {
  content: "\e00a";
}

.icon-user::before {
  content: "\e901";
}

.hero {
  min-height: 100vh;
  width: calc(100% - var(--sidebar-width));
  margin-left: var(--sidebar-width);
  display: grid;
  place-items: start center;
  overflow: hidden;
  background: url("assets/anh-nen.png") center center / cover no-repeat;
}

.hero-content {
  width: min(948px, calc(100% - 64px));
  padding-top: clamp(185px, 22vh, 218px);
  text-align: center;
}

.date {
  display: block;
  margin-bottom: 34px;
  font-size: clamp(38px, 3.5vw, 53px);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -1px;
}

.employee-card {
  width: 100%;
  min-height: 114px;
  padding: 26px 24px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255, 255, 255, 0.95);
  border-radius: 11px;
  background: rgba(125, 0, 0, 0.13);
}

.employee-card h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(32px, 3.5vw, 51px);
  line-height: 1.2;
  font-weight: 800;
}

.clock {
  margin: 39px auto 0;
  display: flex;
  justify-content: center;
  gap: 39px;
}

.clock-unit {
  width: 101px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.time-value {
  width: 101px;
  height: 91px;
  display: grid;
  place-items: center;
  border: 1px solid #fff;
  border-radius: 11px;
  color: #fff;
  background: rgba(255, 156, 156, 0.66);
  font-size: 53px;
  line-height: 1;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  cursor: text;
  caret-color: #fff;
  outline: none;
  user-select: text;
}

.time-value:hover {
  background: rgba(255, 178, 178, 0.74);
}

.time-value:focus {
  border-color: #fff;
  background: rgba(255, 178, 178, 0.86);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.28);
}

.clock-unit span {
  margin-top: 36px;
  color: #fff;
  font-size: 32px;
  line-height: 1;
}

.menu-toggle,
.menu-backdrop {
  display: none;
}

@media (max-width: 900px) {
  .hero-content {
    width: min(720px, calc(100% - 36px));
  }
}

@media (max-width: 700px) {
  .sidebar {
    width: min(310px, 84vw);
    transform: translateX(-105%);
    box-shadow: 8px 0 30px rgba(0, 0, 0, 0.22);
    transition: transform 0.25s ease;
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .menu-toggle {
    position: fixed;
    z-index: 30;
    top: 17px;
    left: 17px;
    width: 45px;
    height: 45px;
    padding: 11px;
    display: grid;
    align-content: space-between;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 8px;
    background: rgba(125, 0, 0, 0.58);
    cursor: pointer;
  }

  .menu-toggle span {
    display: block;
    height: 3px;
    border-radius: 4px;
    background: #fff;
  }

  .menu-backdrop {
    position: fixed;
    z-index: 10;
    inset: 0;
    display: block;
    background: rgba(0, 0, 0, 0.42);
  }

  .menu-backdrop[hidden] {
    display: none;
  }

  .hero {
    width: 100%;
    margin-left: 0;
    background-position: 52% center;
  }

  .hero-content {
    width: calc(100% - 30px);
    padding-top: 155px;
  }

  .date {
    margin-bottom: 28px;
    font-size: 37px;
  }

  .employee-card {
    min-height: 95px;
    padding: 19px 12px;
  }

  .employee-card h1 {
    font-size: clamp(25px, 8vw, 38px);
  }

  .clock {
    margin-top: 34px;
    gap: clamp(14px, 5vw, 27px);
  }

  .clock-unit,
  .time-value {
    width: clamp(78px, 23vw, 96px);
  }

  .time-value {
    height: clamp(76px, 23vw, 91px);
    font-size: clamp(39px, 12vw, 51px);
  }

  .clock-unit span {
    margin-top: 25px;
    font-size: clamp(22px, 7vw, 29px);
  }
}

@media (max-height: 680px) and (min-width: 701px) {
  .hero-content {
    padding-top: 118px;
  }

  .date {
    margin-bottom: 22px;
  }

  .clock {
    margin-top: 26px;
  }

  .clock-unit span {
    margin-top: 22px;
  }
}
