/* LinkVault スタイルシート */

/* モーダル */
.modal {
  z-index: 50;
}

/* ドラッグ中のスタイル */
.dragging {
  opacity: 0.5;
  border: 2px dashed #4299e1;
}

/* グリッドレイアウト */
.groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  width: 100%;
}

/* コンテナのスタイル */
.group-container {
  transition: all 0.2s ease-in-out;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.blocks-container {
  flex-grow: 1;
  overflow-y: auto;
  max-height: 500px;
}

.block-container {
  transition: all 0.2s ease-in-out;
}

.link-item {
  transition: all 0.2s ease-in-out;
}

/* ホバーエフェクト */
.group-header button {
  transition: all 0.2s ease-in-out;
}

.link-item:hover {
  background-color: rgba(243, 244, 246, 0.8);
}

/* カラーピッカーのスタイル */
input[type="color"] {
  height: 2.5rem;
  padding: 0.25rem;
  border-radius: 0.25rem;
  cursor: pointer;
}

/* カスタムスクロールバー */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* フラッシュメッセージのフェードアウト */
@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

#flash-message {
  animation: fadeOut 0.5s ease-in forwards;
  animation-delay: 4.5s;
}

/* レスポンシブ調整 */
@media (max-width: 1200px) {
  .groups-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .groups-grid {
    grid-template-columns: 1fr;
  }
  
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  
  h1 {
    font-size: 1.5rem;
  }
  
  .group-container {
    margin-bottom: 1rem;
  }
  
  .blocks-container {
    max-height: none;
  }
}