
.app-body {
  display: flex;
  margin-top: var(--header-h);
  min-height: calc(100vh - var(--header-h));
}
 

aside {
  width: var(--sidebar-w);
  background: var(--teal-dark);
  flex-shrink: 0;
  padding-top: 10px;
  position: fixed;
  top: var(--header-h);
  left: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
 
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  color: #c5e8e4;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, padding-left 0.18s;
  border-left: 4px solid transparent;
  user-select: none;
  text-decoration: none;
}
.nav-item:hover {
  background: rgba(255,255,255,0.07);
  color: #fff;
  padding-left: 24px;
}
.nav-item.active {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border-left-color: var(--accent-cyan);
}
.nav-icon { font-size: 17px; opacity: 0.8; }
 

main {
  margin-left: var(--sidebar-w);
  flex: 1;
  padding: 32px 36px;
}
 
.grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 860px;
}
 

.card {
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  height: 200px;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(0,0,0,0.15);
  transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.22s;
}
.card:hover {
  transform: translateY(-5px) scale(1.015);
  box-shadow: 0 12px 36px rgba(0,0,0,0.22);
}
 
.card-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
 

.card.admin .card-title { color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.5); }
.card.admin .card-subtitle { color: rgba(255,255,255,0.8); }
 
.card-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 14px 18px 16px;
  background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.0) 100%);
}
.card-title {
  font-size: 22px;
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.card-subtitle {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,0.8);
  font-style: italic;
  margin-top: 2px;
}