/* 養鶏生産成績管理システム 共通スタイル */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

* { font-family: 'Noto Sans JP', sans-serif; }

body { background-color: #f3f4f6; }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
}
.badge-normal { background-color: #dcfce7; color: #15803d; }
.badge-caution { background-color: #fef9c3; color: #a16207; }
.badge-alert { background-color: #fee2e2; color: #b91c1c; }
.badge-neutral { background-color: #e5e7eb; color: #374151; }

.row-normal { border-left: 4px solid #22c55e; }
.row-caution { border-left: 4px solid #eab308; }
.row-alert { border-left: 4px solid #ef4444; }

.nav-link {
  padding: 8px 16px;
  border-radius: 8px;
  font-weight: 500;
  color: #374151;
  transition: all 0.15s;
}
.nav-link:hover { background-color: #f0fdf4; color: #15803d; }
.nav-link.active { background-color: #15803d; color: #fff; }

.card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
}

.stat-card {
  background: #fff;
  border-radius: 14px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.diff-up { color: #b91c1c; }
.diff-down { color: #2563eb; }
.diff-flat { color: #6b7280; }

table.data-table th {
  background-color: #f9fafb;
  font-size: 0.8rem;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}
table.data-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.92rem;
}
table.data-table tbody tr:hover { background-color: #f8fafc; }

.modal-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,0.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 50;
}
.modal-box {
  background: #fff; border-radius: 16px; padding: 24px;
  width: 92%; max-width: 520px; max-height: 90vh; overflow-y: auto;
}

.loading-spinner {
  border: 3px solid #e5e7eb; border-top-color: #15803d;
  border-radius: 50%; width: 28px; height: 28px;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.notify-card {
  border-radius: 12px;
  padding: 16px 20px;
}
.notify-alert { background: #fef2f2; border: 1px solid #fecaca; }
.notify-caution { background: #fefce8; border: 1px solid #fde68a; }
